github.com/klaytn/klaytn@v1.12.1/contracts/bridge/Bridge.go (about)

     1  // Code generated - DO NOT EDIT.
     2  // This file is a generated binding and any manual changes will be lost.
     3  
     4  package bridge
     5  
     6  import (
     7  	"errors"
     8  	"math/big"
     9  	"strings"
    10  
    11  	"github.com/klaytn/klaytn"
    12  	"github.com/klaytn/klaytn/accounts/abi"
    13  	"github.com/klaytn/klaytn/accounts/abi/bind"
    14  	"github.com/klaytn/klaytn/blockchain/types"
    15  	"github.com/klaytn/klaytn/common"
    16  	"github.com/klaytn/klaytn/event"
    17  )
    18  
    19  // Reference imports to suppress errors if they are not otherwise used.
    20  var (
    21  	_ = errors.New
    22  	_ = big.NewInt
    23  	_ = strings.NewReader
    24  	_ = klaytn.NotFound
    25  	_ = bind.Bind
    26  	_ = common.Big1
    27  	_ = types.BloomLookup
    28  	_ = event.NewSubscription
    29  	_ = abi.ConvertType
    30  )
    31  
    32  // AddressMetaData contains all meta data concerning the Address contract.
    33  var AddressMetaData = &bind.MetaData{
    34  	ABI: "[]",
    35  	Bin: "0x604c6023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea165627a7a72305820299ebfdf39258e62f3b1db6c55ebb9d11001cde07d51662fa2fd336c270f24630029",
    36  }
    37  
    38  // AddressABI is the input ABI used to generate the binding from.
    39  // Deprecated: Use AddressMetaData.ABI instead.
    40  var AddressABI = AddressMetaData.ABI
    41  
    42  // AddressBinRuntime is the compiled bytecode used for adding genesis block without deploying code.
    43  const AddressBinRuntime = `73000000000000000000000000000000000000000030146080604052600080fdfea165627a7a72305820299ebfdf39258e62f3b1db6c55ebb9d11001cde07d51662fa2fd336c270f24630029`
    44  
    45  // AddressBin is the compiled bytecode used for deploying new contracts.
    46  // Deprecated: Use AddressMetaData.Bin instead.
    47  var AddressBin = AddressMetaData.Bin
    48  
    49  // DeployAddress deploys a new Klaytn contract, binding an instance of Address to it.
    50  func DeployAddress(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *types.Transaction, *Address, error) {
    51  	parsed, err := AddressMetaData.GetAbi()
    52  	if err != nil {
    53  		return common.Address{}, nil, nil, err
    54  	}
    55  	if parsed == nil {
    56  		return common.Address{}, nil, nil, errors.New("GetABI returned nil")
    57  	}
    58  
    59  	address, tx, contract, err := bind.DeployContract(auth, *parsed, common.FromHex(AddressBin), backend)
    60  	if err != nil {
    61  		return common.Address{}, nil, nil, err
    62  	}
    63  	return address, tx, &Address{AddressCaller: AddressCaller{contract: contract}, AddressTransactor: AddressTransactor{contract: contract}, AddressFilterer: AddressFilterer{contract: contract}}, nil
    64  }
    65  
    66  // Address is an auto generated Go binding around a Klaytn contract.
    67  type Address struct {
    68  	AddressCaller     // Read-only binding to the contract
    69  	AddressTransactor // Write-only binding to the contract
    70  	AddressFilterer   // Log filterer for contract events
    71  }
    72  
    73  // AddressCaller is an auto generated read-only Go binding around a Klaytn contract.
    74  type AddressCaller struct {
    75  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
    76  }
    77  
    78  // AddressTransactor is an auto generated write-only Go binding around a Klaytn contract.
    79  type AddressTransactor struct {
    80  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
    81  }
    82  
    83  // AddressFilterer is an auto generated log filtering Go binding around a Klaytn contract events.
    84  type AddressFilterer struct {
    85  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
    86  }
    87  
    88  // AddressSession is an auto generated Go binding around a Klaytn contract,
    89  // with pre-set call and transact options.
    90  type AddressSession struct {
    91  	Contract     *Address          // Generic contract binding to set the session for
    92  	CallOpts     bind.CallOpts     // Call options to use throughout this session
    93  	TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
    94  }
    95  
    96  // AddressCallerSession is an auto generated read-only Go binding around a Klaytn contract,
    97  // with pre-set call options.
    98  type AddressCallerSession struct {
    99  	Contract *AddressCaller // Generic contract caller binding to set the session for
   100  	CallOpts bind.CallOpts  // Call options to use throughout this session
   101  }
   102  
   103  // AddressTransactorSession is an auto generated write-only Go binding around a Klaytn contract,
   104  // with pre-set transact options.
   105  type AddressTransactorSession struct {
   106  	Contract     *AddressTransactor // Generic contract transactor binding to set the session for
   107  	TransactOpts bind.TransactOpts  // Transaction auth options to use throughout this session
   108  }
   109  
   110  // AddressRaw is an auto generated low-level Go binding around a Klaytn contract.
   111  type AddressRaw struct {
   112  	Contract *Address // Generic contract binding to access the raw methods on
   113  }
   114  
   115  // AddressCallerRaw is an auto generated low-level read-only Go binding around a Klaytn contract.
   116  type AddressCallerRaw struct {
   117  	Contract *AddressCaller // Generic read-only contract binding to access the raw methods on
   118  }
   119  
   120  // AddressTransactorRaw is an auto generated low-level write-only Go binding around a Klaytn contract.
   121  type AddressTransactorRaw struct {
   122  	Contract *AddressTransactor // Generic write-only contract binding to access the raw methods on
   123  }
   124  
   125  // NewAddress creates a new instance of Address, bound to a specific deployed contract.
   126  func NewAddress(address common.Address, backend bind.ContractBackend) (*Address, error) {
   127  	contract, err := bindAddress(address, backend, backend, backend)
   128  	if err != nil {
   129  		return nil, err
   130  	}
   131  	return &Address{AddressCaller: AddressCaller{contract: contract}, AddressTransactor: AddressTransactor{contract: contract}, AddressFilterer: AddressFilterer{contract: contract}}, nil
   132  }
   133  
   134  // NewAddressCaller creates a new read-only instance of Address, bound to a specific deployed contract.
   135  func NewAddressCaller(address common.Address, caller bind.ContractCaller) (*AddressCaller, error) {
   136  	contract, err := bindAddress(address, caller, nil, nil)
   137  	if err != nil {
   138  		return nil, err
   139  	}
   140  	return &AddressCaller{contract: contract}, nil
   141  }
   142  
   143  // NewAddressTransactor creates a new write-only instance of Address, bound to a specific deployed contract.
   144  func NewAddressTransactor(address common.Address, transactor bind.ContractTransactor) (*AddressTransactor, error) {
   145  	contract, err := bindAddress(address, nil, transactor, nil)
   146  	if err != nil {
   147  		return nil, err
   148  	}
   149  	return &AddressTransactor{contract: contract}, nil
   150  }
   151  
   152  // NewAddressFilterer creates a new log filterer instance of Address, bound to a specific deployed contract.
   153  func NewAddressFilterer(address common.Address, filterer bind.ContractFilterer) (*AddressFilterer, error) {
   154  	contract, err := bindAddress(address, nil, nil, filterer)
   155  	if err != nil {
   156  		return nil, err
   157  	}
   158  	return &AddressFilterer{contract: contract}, nil
   159  }
   160  
   161  // bindAddress binds a generic wrapper to an already deployed contract.
   162  func bindAddress(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
   163  	parsed, err := AddressMetaData.GetAbi()
   164  	if err != nil {
   165  		return nil, err
   166  	}
   167  	return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil
   168  }
   169  
   170  // Call invokes the (constant) contract method with params as input values and
   171  // sets the output to result. The result type might be a single field for simple
   172  // returns, a slice of interfaces for anonymous returns and a struct for named
   173  // returns.
   174  func (_Address *AddressRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
   175  	return _Address.Contract.AddressCaller.contract.Call(opts, result, method, params...)
   176  }
   177  
   178  // Transfer initiates a plain transaction to move funds to the contract, calling
   179  // its default method if one is available.
   180  func (_Address *AddressRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
   181  	return _Address.Contract.AddressTransactor.contract.Transfer(opts)
   182  }
   183  
   184  // Transact invokes the (paid) contract method with params as input values.
   185  func (_Address *AddressRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
   186  	return _Address.Contract.AddressTransactor.contract.Transact(opts, method, params...)
   187  }
   188  
   189  // Call invokes the (constant) contract method with params as input values and
   190  // sets the output to result. The result type might be a single field for simple
   191  // returns, a slice of interfaces for anonymous returns and a struct for named
   192  // returns.
   193  func (_Address *AddressCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
   194  	return _Address.Contract.contract.Call(opts, result, method, params...)
   195  }
   196  
   197  // Transfer initiates a plain transaction to move funds to the contract, calling
   198  // its default method if one is available.
   199  func (_Address *AddressTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
   200  	return _Address.Contract.contract.Transfer(opts)
   201  }
   202  
   203  // Transact invokes the (paid) contract method with params as input values.
   204  func (_Address *AddressTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
   205  	return _Address.Contract.contract.Transact(opts, method, params...)
   206  }
   207  
   208  // BridgeMetaData contains all meta data concerning the Bridge contract.
   209  var BridgeMetaData = &bind.MetaData{
   210  	ABI: "[{\"constant\":false,\"inputs\":[{\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"lockToken\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"uint64\"}],\"name\":\"handleNoncesToBlockNums\",\"outputs\":[{\"name\":\"\",\"type\":\"uint64\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"address\"}],\"name\":\"operators\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_fee\",\"type\":\"uint256\"},{\"name\":\"_requestNonce\",\"type\":\"uint64\"}],\"name\":\"setKLAYFee\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"unlockKLAY\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"isRunning\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_tokenAddress\",\"type\":\"address\"},{\"name\":\"_to\",\"type\":\"address\"},{\"name\":\"_tokenId\",\"type\":\"uint256\"},{\"name\":\"_extraData\",\"type\":\"bytes\"}],\"name\":\"requestERC721Transfer\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_tokenAddress\",\"type\":\"address\"},{\"name\":\"_to\",\"type\":\"address\"},{\"name\":\"_value\",\"type\":\"uint256\"},{\"name\":\"_feeLimit\",\"type\":\"uint256\"},{\"name\":\"_extraData\",\"type\":\"bytes\"}],\"name\":\"requestERC20Transfer\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_token\",\"type\":\"address\"},{\"name\":\"_fee\",\"type\":\"uint256\"},{\"name\":\"_requestNonce\",\"type\":\"uint64\"}],\"name\":\"setERC20Fee\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_operator\",\"type\":\"address\"}],\"name\":\"registerOperator\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"MAX_OPERATOR\",\"outputs\":[{\"name\":\"\",\"type\":\"uint64\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"counterpartBridge\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"registeredTokenList\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_requestTxHash\",\"type\":\"bytes32\"},{\"name\":\"_from\",\"type\":\"address\"},{\"name\":\"_to\",\"type\":\"address\"},{\"name\":\"_tokenAddress\",\"type\":\"address\"},{\"name\":\"_value\",\"type\":\"uint256\"},{\"name\":\"_requestedNonce\",\"type\":\"uint64\"},{\"name\":\"_requestedBlockNumber\",\"type\":\"uint64\"},{\"name\":\"_extraData\",\"type\":\"bytes\"}],\"name\":\"handleERC20Transfer\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_token\",\"type\":\"address\"},{\"name\":\"_cToken\",\"type\":\"address\"}],\"name\":\"registerToken\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"address\"}],\"name\":\"feeOfERC20\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"address\"}],\"name\":\"indexOfTokens\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"lowerHandleNonce\",\"outputs\":[{\"name\":\"\",\"type\":\"uint64\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"upperHandleNonce\",\"outputs\":[{\"name\":\"\",\"type\":\"uint64\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"uint8\"}],\"name\":\"operatorThresholds\",\"outputs\":[{\"name\":\"\",\"type\":\"uint8\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"address\"}],\"name\":\"lockedTokens\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"modeMintBurn\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_to\",\"type\":\"address\"},{\"name\":\"_value\",\"type\":\"uint256\"},{\"name\":\"_extraData\",\"type\":\"bytes\"}],\"name\":\"requestKLAYTransfer\",\"outputs\":[],\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"requestNonce\",\"outputs\":[{\"name\":\"\",\"type\":\"uint64\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_bridge\",\"type\":\"address\"}],\"name\":\"setCounterPartBridge\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"handledRequestTx\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"address\"}],\"name\":\"registeredTokens\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"isOwner\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"uint64\"}],\"name\":\"closedValueTransferVotes\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"recoveryBlockNumber\",\"outputs\":[{\"name\":\"\",\"type\":\"uint64\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"unlockToken\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"lockKLAY\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_requestTxHash\",\"type\":\"bytes32\"},{\"name\":\"_from\",\"type\":\"address\"},{\"name\":\"_to\",\"type\":\"address\"},{\"name\":\"_value\",\"type\":\"uint256\"},{\"name\":\"_requestedNonce\",\"type\":\"uint64\"},{\"name\":\"_requestedBlockNumber\",\"type\":\"uint64\"},{\"name\":\"_extraData\",\"type\":\"bytes\"}],\"name\":\"handleKLAYTransfer\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"configurationNonce\",\"outputs\":[{\"name\":\"\",\"type\":\"uint64\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_requestTxHash\",\"type\":\"bytes32\"},{\"name\":\"_from\",\"type\":\"address\"},{\"name\":\"_to\",\"type\":\"address\"},{\"name\":\"_tokenAddress\",\"type\":\"address\"},{\"name\":\"_tokenId\",\"type\":\"uint256\"},{\"name\":\"_requestedNonce\",\"type\":\"uint64\"},{\"name\":\"_requestedBlockNumber\",\"type\":\"uint64\"},{\"name\":\"_tokenURI\",\"type\":\"string\"},{\"name\":\"_extraData\",\"type\":\"bytes\"}],\"name\":\"handleERC721Transfer\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getOperatorList\",\"outputs\":[{\"name\":\"\",\"type\":\"address[]\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"feeReceiver\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"deregisterToken\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"feeOfKLAY\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_status\",\"type\":\"bool\"}],\"name\":\"start\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"operatorList\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_from\",\"type\":\"address\"},{\"name\":\"_tokenId\",\"type\":\"uint256\"},{\"name\":\"_to\",\"type\":\"address\"},{\"name\":\"_extraData\",\"type\":\"bytes\"}],\"name\":\"onERC721Received\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_operator\",\"type\":\"address\"}],\"name\":\"deregisterOperator\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"chargeWithoutEvent\",\"outputs\":[],\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getRegisteredTokenList\",\"outputs\":[{\"name\":\"\",\"type\":\"address[]\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_voteType\",\"type\":\"uint8\"},{\"name\":\"_threshold\",\"type\":\"uint8\"}],\"name\":\"setOperatorThreshold\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_feeReceiver\",\"type\":\"address\"}],\"name\":\"setFeeReceiver\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_from\",\"type\":\"address\"},{\"name\":\"_to\",\"type\":\"address\"},{\"name\":\"_value\",\"type\":\"uint256\"},{\"name\":\"_feeLimit\",\"type\":\"uint256\"},{\"name\":\"_extraData\",\"type\":\"bytes\"}],\"name\":\"onERC20Received\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"isLockedKLAY\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"VERSION\",\"outputs\":[{\"name\":\"\",\"type\":\"uint64\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"name\":\"_modeMintBurn\",\"type\":\"bool\"}],\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"constructor\"},{\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"KLAYLocked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"KLAYUnlocked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"tokenType\",\"type\":\"uint8\"},{\"indexed\":true,\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"tokenAddress\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"valueOrTokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"requestNonce\",\"type\":\"uint64\"},{\"indexed\":false,\"name\":\"fee\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"extraData\",\"type\":\"bytes\"}],\"name\":\"RequestValueTransfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"tokenType\",\"type\":\"uint8\"},{\"indexed\":true,\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"tokenAddress\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"valueOrTokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"requestNonce\",\"type\":\"uint64\"},{\"indexed\":false,\"name\":\"fee\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"extraData\",\"type\":\"bytes\"},{\"indexed\":false,\"name\":\"encodingVer\",\"type\":\"uint8\"},{\"indexed\":false,\"name\":\"encodedData\",\"type\":\"bytes\"}],\"name\":\"RequestValueTransferEncoded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"requestTxHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"name\":\"tokenType\",\"type\":\"uint8\"},{\"indexed\":true,\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"tokenAddress\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"valueOrTokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"handleNonce\",\"type\":\"uint64\"},{\"indexed\":false,\"name\":\"lowerHandleNonce\",\"type\":\"uint64\"},{\"indexed\":false,\"name\":\"extraData\",\"type\":\"bytes\"}],\"name\":\"HandleValueTransfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"token\",\"type\":\"address\"}],\"name\":\"TokenRegistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"token\",\"type\":\"address\"}],\"name\":\"TokenDeregistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"token\",\"type\":\"address\"}],\"name\":\"TokenLocked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"token\",\"type\":\"address\"}],\"name\":\"TokenUnlocked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"fee\",\"type\":\"uint256\"}],\"name\":\"KLAYFeeChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"token\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"fee\",\"type\":\"uint256\"}],\"name\":\"ERC20FeeChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"feeReceiver\",\"type\":\"address\"}],\"name\":\"FeeReceiverChanged\",\"type\":\"event\"}]",
   211  	Sigs: map[string]string{
   212  		"3a3099d1": "MAX_OPERATOR()",
   213  		"ffa1ad74": "VERSION()",
   214  		"dd9222d6": "chargeWithoutEvent()",
   215  		"9832c1d7": "closedValueTransferVotes(uint64)",
   216  		"ac6fff0b": "configurationNonce()",
   217  		"3a348533": "counterpartBridge()",
   218  		"d8cf98ca": "deregisterOperator(address)",
   219  		"bab2af1d": "deregisterToken(address)",
   220  		"488af871": "feeOfERC20(address)",
   221  		"c263b5d6": "feeOfKLAY()",
   222  		"b3f00674": "feeReceiver()",
   223  		"b2c01030": "getOperatorList()",
   224  		"ea21eade": "getRegisteredTokenList()",
   225  		"407e6bae": "handleERC20Transfer(bytes32,address,address,address,uint256,uint64,uint64,bytes)",
   226  		"afb60223": "handleERC721Transfer(bytes32,address,address,address,uint256,uint64,uint64,string,bytes)",
   227  		"a066a7ed": "handleKLAYTransfer(bytes32,address,address,uint256,uint64,uint64,bytes)",
   228  		"13a6738a": "handleNoncesToBlockNums(uint64)",
   229  		"8a75eee2": "handledRequestTx(bytes32)",
   230  		"48a18a6a": "indexOfTokens(address)",
   231  		"f1719966": "isLockedKLAY()",
   232  		"8f32d59b": "isOwner()",
   233  		"2014e5d1": "isRunning()",
   234  		"9f071329": "lockKLAY()",
   235  		"10693fcd": "lockToken(address)",
   236  		"5eb7413a": "lockedTokens(address)",
   237  		"4b40b826": "lowerHandleNonce()",
   238  		"6e176ec2": "modeMintBurn()",
   239  		"f1656e53": "onERC20Received(address,address,uint256,uint256,bytes)",
   240  		"cf0da290": "onERC721Received(address,uint256,address,bytes)",
   241  		"cb38f407": "operatorList(uint256)",
   242  		"5526f76b": "operatorThresholds(uint8)",
   243  		"13e7c9d8": "operators(address)",
   244  		"8da5cb5b": "owner()",
   245  		"989ba0d3": "recoveryBlockNumber()",
   246  		"3682a450": "registerOperator(address)",
   247  		"4739f7e5": "registerToken(address,address)",
   248  		"3e4fe949": "registeredTokenList(uint256)",
   249  		"8c0bd916": "registeredTokens(address)",
   250  		"715018a6": "renounceOwnership()",
   251  		"26c23b54": "requestERC20Transfer(address,address,uint256,uint256,bytes)",
   252  		"22604742": "requestERC721Transfer(address,address,uint256,bytes)",
   253  		"75ebdc09": "requestKLAYTransfer(address,uint256,bytes)",
   254  		"7c1a0302": "requestNonce()",
   255  		"87b04c55": "setCounterPartBridge(address)",
   256  		"2f88396c": "setERC20Fee(address,uint256,uint64)",
   257  		"efdcd974": "setFeeReceiver(address)",
   258  		"1a2ae53e": "setKLAYFee(uint256,uint64)",
   259  		"ee2aec65": "setOperatorThreshold(uint8,uint8)",
   260  		"c877cf37": "start(bool)",
   261  		"f2fde38b": "transferOwnership(address)",
   262  		"1ebdca38": "unlockKLAY()",
   263  		"9ef2017b": "unlockToken(address)",
   264  		"54edad72": "upperHandleNonce()",
   265  	},
   266  	Bin: "0x60806040819052600180546001600160a01b03191690556000600255600f8054600160401b61ffff021916690100000000000000000017905560108054600160401b600160801b031916680100000000000000001790556020806200489f833981018060405260208110156200007457600080fd5b5051600180546001600160a01b03199081169091556004805490911633179081905560405182916001600160a01b0316906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a360005b600260ff82161015620001045760ff81166000908152600e60205260409020805460ff1916600190811790915501620000d0565b50336000818152600c60205260408120805460ff19166001908117909155600d805491820181559091527fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb50180546001600160a01b0319169091179055600f80549115156801000000000000000002600160401b60ff02199092169190911790555061470980620001966000396000f3fe60806040526004361061031a5760003560e01c80638a75eee2116101ab578063bab2af1d116100f7578063ea21eade11610095578063f1656e531161006f578063f1656e5314611071578063f171996614611147578063f2fde38b1461115c578063ffa1ad741461118f5761031a565b8063ea21eade14610ff4578063ee2aec6514611009578063efdcd9741461103e5761031a565b8063cb38f407116100d1578063cb38f40714610ebf578063cf0da29014610ee9578063d8cf98ca14610fb9578063dd9222d614610fec5761031a565b8063bab2af1d14610e4b578063c263b5d614610e7e578063c877cf3714610e935761031a565b80639ef2017b11610164578063ac6fff0b1161013e578063ac6fff0b14610c3e578063afb6022314610c53578063b2c0103014610dd1578063b3f0067414610e365761031a565b80639ef2017b14610b075780639f07132914610b3a578063a066a7ed14610b4f5761031a565b80638a75eee214610a385780638c0bd91614610a625780638da5cb5b14610a955780638f32d59b14610aaa5780639832c1d714610abf578063989ba0d314610af25761031a565b8063407e6bae1161026a5780635526f76b11610223578063715018a6116101fd578063715018a61461095857806375ebdc091461096d5780637c1a0302146109f057806387b04c5514610a055761031a565b80635526f76b146108cd5780635eb7413a146109105780636e176ec2146109435761031a565b8063407e6bae146106f75780634739f7e5146107f0578063488af8711461082b57806348a18a6a146108705780634b40b826146108a357806354edad72146108b85761031a565b806322604742116102d75780633682a450116102b15780633682a450146106545780633a3099d1146106875780633a3485331461069c5780633e4fe949146106cd5761031a565b8063226047421461046557806326c23b54146105365780632f88396c1461060c5761031a565b806310693fcd1461033957806313a6738a1461036c57806313e7c9d8146103bb5780631a2ae53e146104025780631ebdca381461043b5780632014e5d114610450575b6002546040805160008152602081019091526103379133916111a4565b005b34801561034557600080fd5b506103376004803603602081101561035c57600080fd5b50356001600160a01b03166113e4565b34801561037857600080fd5b5061039f6004803603602081101561038f57600080fd5b50356001600160401b0316611549565b604080516001600160401b039092168252519081900360200190f35b3480156103c757600080fd5b506103ee600480360360208110156103de57600080fd5b50356001600160a01b0316611564565b604080519115158252519081900360200190f35b34801561040e57600080fd5b506103376004803603604081101561042557600080fd5b50803590602001356001600160401b0316611579565b34801561044757600080fd5b506103376115ed565b34801561045c57600080fd5b506103ee6116b9565b34801561047157600080fd5b506103376004803603608081101561048857600080fd5b6001600160a01b03823581169260208101359091169160408201359190810190608081016060820135600160201b8111156104c257600080fd5b8201836020820111156104d457600080fd5b803590602001918460018302840111600160201b831117156104f557600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506116c9945050505050565b34801561054257600080fd5b50610337600480360360a081101561055957600080fd5b6001600160a01b03823581169260208101359091169160408201359160608101359181019060a081016080820135600160201b81111561059857600080fd5b8201836020820111156105aa57600080fd5b803590602001918460018302840111600160201b831117156105cb57600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955061174b945050505050565b34801561061857600080fd5b506103376004803603606081101561062f57600080fd5b5080356001600160a01b031690602081013590604001356001600160401b031661183c565b34801561066057600080fd5b506103376004803603602081101561067757600080fd5b50356001600160a01b03166118b2565b34801561069357600080fd5b5061039f611a2d565b3480156106a857600080fd5b506106b1611a32565b604080516001600160a01b039092168252519081900360200190f35b3480156106d957600080fd5b506106b1600480360360208110156106f057600080fd5b5035611a41565b34801561070357600080fd5b50610337600480360361010081101561071b57600080fd5b8135916001600160a01b03602082013581169260408301358216926060810135909216916080810135916001600160401b0360a083013581169260c081013590911691810190610100810160e0820135600160201b81111561077c57600080fd5b82018360208201111561078e57600080fd5b803590602001918460018302840111600160201b831117156107af57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550611a68945050505050565b3480156107fc57600080fd5b506103376004803603604081101561081357600080fd5b506001600160a01b0381358116916020013516611e0b565b34801561083757600080fd5b5061085e6004803603602081101561084e57600080fd5b50356001600160a01b0316611f68565b60408051918252519081900360200190f35b34801561087c57600080fd5b5061085e6004803603602081101561089357600080fd5b50356001600160a01b0316611f7a565b3480156108af57600080fd5b5061039f611f8c565b3480156108c457600080fd5b5061039f611fa2565b3480156108d957600080fd5b506108fa600480360360208110156108f057600080fd5b503560ff16611fb1565b6040805160ff9092168252519081900360200190f35b34801561091c57600080fd5b506103ee6004803603602081101561093357600080fd5b50356001600160a01b0316611fc6565b34801561094f57600080fd5b506103ee611fdb565b34801561096457600080fd5b50610337611feb565b6103376004803603606081101561098357600080fd5b6001600160a01b0382351691602081013591810190606081016040820135600160201b8111156109b257600080fd5b8201836020820111156109c457600080fd5b803590602001918460018302840111600160201b831117156109e557600080fd5b50909250905061207f565b3480156109fc57600080fd5b5061039f6120d4565b348015610a1157600080fd5b5061033760048036036020811015610a2857600080fd5b50356001600160a01b03166120ea565b348015610a4457600080fd5b506103ee60048036036020811015610a5b57600080fd5b5035612156565b348015610a6e57600080fd5b506106b160048036036020811015610a8557600080fd5b50356001600160a01b031661216b565b348015610aa157600080fd5b506106b1612186565b348015610ab657600080fd5b506103ee612196565b348015610acb57600080fd5b506103ee60048036036020811015610ae257600080fd5b50356001600160401b03166121a7565b348015610afe57600080fd5b5061039f6121bc565b348015610b1357600080fd5b5061033760048036036020811015610b2a57600080fd5b50356001600160a01b03166121d2565b348015610b4657600080fd5b50610337612346565b348015610b5b57600080fd5b50610337600480360360e0811015610b7257600080fd5b8135916001600160a01b0360208201358116926040830135909116916060810135916001600160401b03608083013581169260a08101359091169181019060e0810160c0820135600160201b811115610bca57600080fd5b820183602082011115610bdc57600080fd5b803590602001918460018302840111600160201b83111715610bfd57600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955061240f945050505050565b348015610c4a57600080fd5b5061039f612627565b348015610c5f57600080fd5b506103376004803603610120811015610c7757600080fd5b8135916001600160a01b03602082013581169260408301358216926060810135909216916080810135916001600160401b0360a083013581169260c081013590911691810190610100810160e0820135600160201b811115610cd857600080fd5b820183602082011115610cea57600080fd5b803590602001918460018302840111600160201b83111715610d0b57600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295949360208101935035915050600160201b811115610d5d57600080fd5b820183602082011115610d6f57600080fd5b803590602001918460018302840111600160201b83111715610d9057600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550612636945050505050565b348015610ddd57600080fd5b50610de66129df565b60408051602080825283518183015283519192839290830191858101910280838360005b83811015610e22578181015183820152602001610e0a565b505050509050019250505060405180910390f35b348015610e4257600080fd5b506106b1612a41565b348015610e5757600080fd5b5061033760048036036020811015610e6e57600080fd5b50356001600160a01b0316612a50565b348015610e8a57600080fd5b5061085e612c3f565b348015610e9f57600080fd5b5061033760048036036020811015610eb657600080fd5b50351515612c45565b348015610ecb57600080fd5b506106b160048036036020811015610ee257600080fd5b5035612cb3565b348015610ef557600080fd5b5061033760048036036080811015610f0c57600080fd5b6001600160a01b038235811692602081013592604082013590921691810190608081016060820135600160201b811115610f4557600080fd5b820183602082011115610f5757600080fd5b803590602001918460018302840111600160201b83111715610f7857600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550612cc0945050505050565b348015610fc557600080fd5b5061033760048036036020811015610fdc57600080fd5b50356001600160a01b0316612ccd565b610337612e1b565b34801561100057600080fd5b50610de6612e1d565b34801561101557600080fd5b506103376004803603604081101561102c57600080fd5b5060ff81358116916020013516612e7d565b34801561104a57600080fd5b506103376004803603602081101561106157600080fd5b50356001600160a01b0316612fb9565b34801561107d57600080fd5b50610337600480360360a081101561109457600080fd5b6001600160a01b03823581169260208101359091169160408201359160608101359181019060a081016080820135600160201b8111156110d357600080fd5b8201836020820111156110e557600080fd5b803590602001918460018302840111600160201b8311171561110657600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955061300f945050505050565b34801561115357600080fd5b506103ee61301d565b34801561116857600080fd5b506103376004803603602081101561117f57600080fd5b50356001600160a01b0316613026565b34801561119b57600080fd5b5061039f613079565b60125460ff16156111eb5760408051600160e51b62461bcd0281526020600482015260066024820152600160d21b651b1bd8dad95902604482015290519081900360640190fd5b600f54600160481b900460ff166112405760408051600160e51b62461bcd02815260206004820152600e6024820152600160901b6d73746f707065642062726964676502604482015290519081900360640190fd5b8134116112975760408051600160e51b62461bcd02815260206004820152601360248201527f696e73756666696369656e7420616d6f756e7400000000000000000000000000604482015290519081900360640190fd5b60006112a28361307e565b905060006001600160a01b038516337feff76c36e53fa5ff52f27acc8a34d5047a8246abb07b77b12f1309f71e337f09836112e3348963ffffffff6131cd16565b600f600a9054906101000a90046001600160401b031687896040518086600281111561130b57fe5b60ff168152602001858152602001846001600160401b03166001600160401b0316815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b83811015611370578181015183820152602001611358565b50505050905090810190601f16801561139d5780820380516001836020036101000a031916815260200191505b50965050505050505060405180910390a45050600f805460016001600160401b03600160501b8084048216929092011602600160501b600160901b03199091161790555050565b6113ec612196565b61142e5760408051600160e51b62461bcd0281526020600482018190526024820152600080516020614625833981519152604482015290519081900360640190fd5b6001600160a01b038082166000908152600660205260409020548291166114965760408051600160e51b62461bcd0281526020600482015260116024820152600160791b703737ba1030b63637bbb2b2103a37b5b2b702604482015290519081900360640190fd5b6001600160a01b038216600090815260096020526040902054829060ff16156114fb5760408051600160e51b62461bcd02815260206004820152600c6024820152600160a11b6b3637b1b5b2b2103a37b5b2b702604482015290519081900360640190fd5b6001600160a01b038316600081815260096020526040808220805460ff19166001179055517fca1b0a14e18ada4c44846768dd186e35630cdc5cfeaca83c404ae4acaafbecd79190a2505050565b6011602052600090815260409020546001600160401b031681565b600c6020526000908152604090205460ff1681565b336000908152600c602052604090205460ff166115ce5760408051600160e51b62461bcd02815260206004820152601d602482015260008051602061469a833981519152604482015290519081900360640190fd5b6115d78161322d565b6115e0576115e9565b6115e9826132ff565b5050565b6115f5612196565b6116375760408051600160e51b62461bcd0281526020600482018190526024820152600080516020614625833981519152604482015290519081900360640190fd5b60125460ff1615156001146116845760408051600160e51b62461bcd0281526020600482015260086024820152600160c21b671d5b9b1bd8dad95902604482015290519081900360640190fd5b6012805460ff191690556040517fd20610c9b78a6903ef134539e3deb5d243be461de6ef12d4c29536bb9b54fa1b90600090a1565b600f54600160481b900460ff1681565b60408051600160e01b6323b872dd0281523360048201523060248201526044810184905290516001600160a01b038616916323b872dd91606480830192600092919082900301818387803b15801561172057600080fd5b505af1158015611734573d6000803e3d6000fd5b505050506117458433858585613332565b50505050565b6001600160a01b0385166323b872dd333061176c878763ffffffff61385616565b6040805163ffffffff861660e01b81526001600160a01b0394851660048201529290931660248301526044820152905160648083019260209291908290030181600087803b1580156117bd57600080fd5b505af11580156117d1573d6000803e3d6000fd5b505050506040513d60208110156117e757600080fd5b505161182757604051600160e51b62461bcd0281526004018080602001828103825260298152602001806146716029913960400191505060405180910390fd5b6118358533868686866138ba565b5050505050565b336000908152600c602052604090205460ff166118915760408051600160e51b62461bcd02815260206004820152601d602482015260008051602061469a833981519152604482015290519081900360640190fd5b61189a8161322d565b6118a3576118ad565b6118ad8383613bfd565b505050565b6118ba612196565b6118fc5760408051600160e51b62461bcd0281526020600482018190526024820152600080516020614625833981519152604482015290519081900360640190fd5b600d54600c116119565760408051600160e51b62461bcd02815260206004820152601260248201527f6d6178206f70657261746f72206c696d69740000000000000000000000000000604482015290519081900360640190fd5b6001600160a01b0381166000908152600c602052604090205460ff16156119c75760408051600160e51b62461bcd02815260206004820152600e60248201527f6578697374206f70657261746f72000000000000000000000000000000000000604482015290519081900360640190fd5b6001600160a01b03166000818152600c60205260408120805460ff19166001908117909155600d805491820181559091527fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb50180546001600160a01b0319169091179055565b600c81565b6005546001600160a01b031681565b60088181548110611a4e57fe5b6000918252602090912001546001600160a01b0316905081565b336000908152600c602052604090205460ff16611abd5760408051600160e51b62461bcd02815260206004820152601d602482015260008051602061469a833981519152604482015290519081900360640190fd5b611ac683613c44565b611acf83613cb1565b611ad857611e01565b611ae188613d74565b6001600160401b038381166000908152601160205260409020805467ffffffffffffffff1916918416919091179055611b1983613d8f565b846001600160a01b0316866001600160a01b0316886001600160a01b03167f12b02f226d965a2881e0e8ffed6c421803a22d57ad91f9ef996fe0748ea101758b60018989600f60129054906101000a90046001600160401b03168960405180878152602001866002811115611b8a57fe5b60ff168152602001858152602001846001600160401b03166001600160401b03168152602001836001600160401b03166001600160401b0316815260200180602001828103825283818151815260200191508051906020019080838360005b83811015611c01578181015183820152602001611be9565b50505050905090810190601f168015611c2e5780820380516001836020036101000a031916815260200191505b5097505050505050505060405180910390a4600f54600160401b900460ff1615611d3757846001600160a01b03166340c10f1987866040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b158015611cb257600080fd5b505af1158015611cc6573d6000803e3d6000fd5b505050506040513d6020811015611cdc57600080fd5b5051611d325760408051600160e51b62461bcd02815260206004820181905260248201527f68616e646c6545524332305472616e736665723a206d696e74206661696c6564604482015290519081900360640190fd5b611e01565b846001600160a01b031663a9059cbb87866040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b158015611d9757600080fd5b505af1158015611dab573d6000803e3d6000fd5b505050506040513d6020811015611dc157600080fd5b5051611e0157604051600160e51b62461bcd0281526004018080602001828103825260248152602001806146ba6024913960400191505060405180910390fd5b5050505050505050565b611e13612196565b611e555760408051600160e51b62461bcd0281526020600482018190526024820152600080516020614625833981519152604482015290519081900360640190fd5b6001600160a01b0380831660009081526006602052604090205483911615611ec75760408051600160e51b62461bcd02815260206004820152600d60248201527f616c6c6f77656420746f6b656e00000000000000000000000000000000000000604482015290519081900360640190fd5b6001600160a01b03808416600081815260066020908152604080832080549588166001600160a01b031996871617905560088054600790935281842083905560018301815583527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee390910180549094168317909355915190917f158412daecdc1456d01568828bcdb18464cc7f1ce0215ddbc3f3cfede9d1e63d91a2505050565b60036020526000908152604090205481565b60076020526000908152604090205481565b600f54600160901b90046001600160401b031681565b6010546001600160401b031681565b600e6020526000908152604090205460ff1681565b60096020526000908152604090205460ff1681565b600f54600160401b900460ff1681565b611ff3612196565b6120355760408051600160e51b62461bcd0281526020600482018190526024820152600080516020614625833981519152604482015290519081900360640190fd5b6004546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600480546001600160a01b0319169055565b6000612091348563ffffffff6131cd16565b9050611835858285858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506111a492505050565b600f54600160501b90046001600160401b031681565b6120f2612196565b6121345760408051600160e51b62461bcd0281526020600482018190526024820152600080516020614625833981519152604482015290519081900360640190fd5b600580546001600160a01b0319166001600160a01b0392909216919091179055565b60006020819052908152604090205460ff1681565b6006602052600090815260409020546001600160a01b031681565b6004546001600160a01b03165b90565b6004546001600160a01b0316331490565b600b6020526000908152604090205460ff1681565b601054600160401b90046001600160401b031681565b6121da612196565b61221c5760408051600160e51b62461bcd0281526020600482018190526024820152600080516020614625833981519152604482015290519081900360640190fd5b6001600160a01b038082166000908152600660205260409020548291166122845760408051600160e51b62461bcd0281526020600482015260116024820152600160791b703737ba1030b63637bbb2b2103a37b5b2b702604482015290519081900360640190fd5b6001600160a01b038216600090815260096020526040902054829060ff1615156001146122fb5760408051600160e51b62461bcd02815260206004820152600e60248201527f756e6c6f636b656420746f6b656e000000000000000000000000000000000000604482015290519081900360640190fd5b6001600160a01b038316600081815260096020526040808220805460ff19169055517f81ec08d3372506e176c49e626d8beb7e091712ef92908a130f4ccc6524fe2eec9190a2505050565b61234e612196565b6123905760408051600160e51b62461bcd0281526020600482018190526024820152600080516020614625833981519152604482015290519081900360640190fd5b60125460ff16156123d75760408051600160e51b62461bcd0281526020600482015260066024820152600160d21b651b1bd8dad95902604482015290519081900360640190fd5b6012805460ff191660011790556040517f915f3053cbc6842207cd97b68c0b585109b4f2fe61c5dbeb25d7678bfdfb8dfa90600090a1565b336000908152600c602052604090205460ff166124645760408051600160e51b62461bcd02815260206004820152601d602482015260008051602061469a833981519152604482015290519081900360640190fd5b61246d83613c44565b61247683613cb1565b61247f5761261e565b61248887613d74565b6001600160401b038381166000908152601160205260409020805467ffffffffffffffff19169184169190911790556124c083613d8f565b60006001600160a01b0316856001600160a01b0316876001600160a01b03167f12b02f226d965a2881e0e8ffed6c421803a22d57ad91f9ef996fe0748ea101758a60008989600f60129054906101000a90046001600160401b0316896040518087815260200186600281111561253257fe5b60ff168152602001858152602001846001600160401b03166001600160401b03168152602001836001600160401b03166001600160401b0316815260200180602001828103825283818151815260200191508051906020019080838360005b838110156125a9578181015183820152602001612591565b50505050905090810190601f1680156125d65780820380516001836020036101000a031916815260200191505b5097505050505050505060405180910390a46040516001600160a01b0386169085156108fc029086906000818181858888f19350505050158015611e01573d6000803e3d6000fd5b50505050505050565b600f546001600160401b031681565b336000908152600c602052604090205460ff1661268b5760408051600160e51b62461bcd02815260206004820152601d602482015260008051602061469a833981519152604482015290519081900360640190fd5b61269484613c44565b61269d84613cb1565b6126a6576129d4565b6126af89613d74565b6001600160401b038481166000908152601160205260409020805467ffffffffffffffff19169185169190911790556126e784613d8f565b856001600160a01b0316876001600160a01b0316896001600160a01b03167f12b02f226d965a2881e0e8ffed6c421803a22d57ad91f9ef996fe0748ea101758c60028a8a600f60129054906101000a90046001600160401b0316896040518087815260200186600281111561275857fe5b60ff168152602001858152602001846001600160401b03166001600160401b03168152602001836001600160401b03166001600160401b0316815260200180602001828103825283818151815260200191508051906020019080838360005b838110156127cf5781810151838201526020016127b7565b50505050905090810190601f1680156127fc5780820380516001836020036101000a031916815260200191505b5097505050505050505060405180910390a4600f54600160401b900460ff161561296057856001600160a01b03166350bb4e7f8887856040518463ffffffff1660e01b815260040180846001600160a01b03166001600160a01b0316815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561289c578181015183820152602001612884565b50505050905090810190601f1680156128c95780820380516001836020036101000a031916815260200191505b50945050505050602060405180830381600087803b1580156128ea57600080fd5b505af11580156128fe573d6000803e3d6000fd5b505050506040513d602081101561291457600080fd5b505161295b5760408051600160e51b62461bcd02815260206004820152600b6024820152600160aa1b6a1b5a5b9d0819985a5b195902604482015290519081900360640190fd5b6129d4565b60408051600160e01b6323b872dd0281523060048201526001600160a01b038981166024830152604482018890529151918816916323b872dd9160648082019260009290919082900301818387803b1580156129bb57600080fd5b505af11580156129cf573d6000803e3d6000fd5b505050505b505050505050505050565b6060600d805480602002602001604051908101604052809291908181526020018280548015612a3757602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612a19575b5050505050905090565b6001546001600160a01b031681565b612a58612196565b612a9a5760408051600160e51b62461bcd0281526020600482018190526024820152600080516020614625833981519152604482015290519081900360640190fd5b6001600160a01b03808216600090815260066020526040902054829116612b025760408051600160e51b62461bcd0281526020600482015260116024820152600160791b703737ba1030b63637bbb2b2103a37b5b2b702604482015290519081900360640190fd5b6001600160a01b038216600090815260066020908152604080832080546001600160a01b031916905560098252808320805460ff1916905560079091528120805491905560085460001901811015612bf257600880546000198101908110612b6657fe5b600091825260209091200154600880546001600160a01b039092169183908110612b8c57fe5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550806007600060088481548110612bcc57fe5b60009182526020808320909101546001600160a01b031683528201929092526040019020555b6008805490612c059060001983016145a2565b506040516001600160a01b038416907f1d735ca20b63676dde668b718be78606b061d6bd7534ff815a90a121a6c084b690600090a2505050565b60025481565b612c4d612196565b612c8f5760408051600160e51b62461bcd0281526020600482018190526024820152600080516020614625833981519152604482015290519081900360640190fd5b600f8054911515600160481b0269ff00000000000000000019909216919091179055565b600d8181548110611a4e57fe5b6117453385848685613332565b612cd5612196565b612d175760408051600160e51b62461bcd0281526020600482018190526024820152600080516020614625833981519152604482015290519081900360640190fd5b6001600160a01b0381166000908152600c602052604090205460ff16612d3c57600080fd5b6001600160a01b0381166000908152600c60205260408120805460ff191690555b600d548110156115e957816001600160a01b0316600d8281548110612d7e57fe5b6000918252602090912001546001600160a01b03161415612e1357600d80546000198101908110612dab57fe5b600091825260209091200154600d80546001600160a01b039092169183908110612dd157fe5b600091825260209091200180546001600160a01b0319166001600160a01b0392909216919091179055600d805490612e0d9060001983016145a2565b506115e9565b600101612d5d565b565b60606008805480602002602001604051908101604052809291908181526020018280548015612a37576020028201919060005260206000209081546001600160a01b03168152600190910190602001808311612a19575050505050905090565b612e85612196565b612ec75760408051600160e51b62461bcd0281526020600482018190526024820152600080516020614625833981519152604482015290519081900360640190fd5b60008160ff1611612f225760408051600160e51b62461bcd02815260206004820152600e60248201527f7a65726f207468726573686f6c64000000000000000000000000000000000000604482015290519081900360640190fd5b600d5460ff82161115612f7f5760408051600160e51b62461bcd02815260206004820152601c60248201527f626967676572207468616e206e756d206f66206f70657261746f727300000000604482015290519081900360640190fd5b80600e6000846002811115612f9057fe5b60ff90811682526020820192909252604001600020805460ff1916929091169190911790555050565b612fc1612196565b6130035760408051600160e51b62461bcd0281526020600482018190526024820152600080516020614625833981519152604482015290519081900360640190fd5b61300c81613ef3565b50565b6118353386868686866138ba565b60125460ff1681565b61302e612196565b6130705760408051600160e51b62461bcd0281526020600482018190526024820152600080516020614625833981519152604482015290519081900360640190fd5b61300c81613f3d565b600181565b600254600154600091906001600160a01b03161580159061309f5750600081115b1561319457808310156130fc5760408051600160e51b62461bcd02815260206004820152601560248201527f696e73756666696369656e74206665654c696d69740000000000000000000000604482015290519081900360640190fd5b6001546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015613136573d6000803e3d6000fd5b506000613149848363ffffffff6131cd16565b111561318d57336108fc613163858463ffffffff6131cd16565b6040518115909202916000818181858888f1935050505015801561318b573d6000803e3d6000fd5b505b90506131c8565b604051339084156108fc029085906000818181858888f193505050501580156131c1573d6000803e3d6000fd5b5060009150505b919050565b6000828211156132275760408051600160e51b62461bcd02815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b600f546000906001600160401b038381169116146132955760408051600160e51b62461bcd02815260206004820152600e60248201527f6e6f6e6365206d69736d61746368000000000000000000000000000000000000604482015290519081900360640190fd5b60008036604051808383808284378083019250505092505050604051809103902090506132c460018483613fe1565b156132f6575050600f805467ffffffffffffffff19811660016001600160401b039283168101909216179091556131c8565b50600092915050565b600281905560405181907fa7a33d0996347e1aa55ca2206015b61b9534bdd881d59d59aa680e25eefac36590600090a250565b6001600160a01b0380861660009081526006602052604090205486911661339a5760408051600160e51b62461bcd0281526020600482015260116024820152600160791b703737ba1030b63637bbb2b2103a37b5b2b702604482015290519081900360640190fd5b6001600160a01b038616600090815260096020526040902054869060ff16156133ff5760408051600160e51b62461bcd02815260206004820152600c6024820152600160a11b6b3637b1b5b2b2103a37b5b2b702604482015290519081900360640190fd5b600f54600160481b900460ff166134545760408051600160e51b62461bcd02815260206004820152600e6024820152600160901b6d73746f707065642062726964676502604482015290519081900360640190fd5b604080516020808201879052825180830382018152828401909352600160e01b63c87b56dd026060838101828152855160009692956001600160a01b038f1695606490910191908401908083835b602083106134c15780518252601f1990920191602091820191016134a2565b6001836020036101000a038019825116818451168082178552505050505050905001925050506040516020818303038152906040526040518082805190602001908083835b602083106135255780518252601f199092019160209182019101613506565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114613587576040519150601f19603f3d011682016040523d82523d6000602084013e61358c565b606091505b509092509050816135a857506040805160208101909152600081525b600f54600160401b900460ff161561361957886001600160a01b03166342966c68876040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b15801561360057600080fd5b505af1158015613614573d6000803e3d6000fd5b505050505b886001600160a01b0316876001600160a01b0316896001600160a01b03167f17d76053ca34a4dd8c402fe6498deb797fac89bf7ed02f3f5161aa9368cc8c1f60028a600f600a9054906101000a90046001600160401b031660008c60028a6040516020018080602001828103825283818151815260200191508051906020019080838360005b838110156136b757818101518382015260200161369f565b50505050905090810190601f1680156136e45780820380516001836020036101000a031916815260200191505b50925050506040516020818303038152906040526040518088600281111561370857fe5b60ff168152602001878152602001866001600160401b03166001600160401b03168152602001858152602001806020018460ff16815260200180602001838103835286818151815260200191508051906020019080838360005b8381101561377a578181015183820152602001613762565b50505050905090810190601f1680156137a75780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b838110156137da5781810151838201526020016137c2565b50505050905090810190601f1680156138075780820380516001836020036101000a031916815260200191505b50995050505050505050505060405180910390a45050600f805460016001600160401b03600160501b8084048216929092011602600160501b600160901b031990911617905550505050505050565b6000828201838110156138b35760408051600160e51b62461bcd02815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b6001600160a01b038087166000908152600660205260409020548791166139225760408051600160e51b62461bcd0281526020600482015260116024820152600160791b703737ba1030b63637bbb2b2103a37b5b2b702604482015290519081900360640190fd5b6001600160a01b038716600090815260096020526040902054879060ff16156139875760408051600160e51b62461bcd02815260206004820152600c6024820152600160a11b6b3637b1b5b2b2103a37b5b2b702604482015290519081900360640190fd5b600f54600160481b900460ff166139dc5760408051600160e51b62461bcd02815260206004820152600e6024820152600160901b6d73746f707065642062726964676502604482015290519081900360640190fd5b60008511613a345760408051600160e51b62461bcd02815260206004820152600e60248201527f7a65726f206d73672e76616c7565000000000000000000000000000000000000604482015290519081900360640190fd5b6000613a41888a8761414d565b600f54909150600160401b900460ff1615613ab557886001600160a01b03166342966c68876040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b158015613a9c57600080fd5b505af1158015613ab0573d6000803e3d6000fd5b505050505b886001600160a01b0316876001600160a01b0316896001600160a01b03167feff76c36e53fa5ff52f27acc8a34d5047a8246abb07b77b12f1309f71e337f0960018a600f600a9054906101000a90046001600160401b0316878b60405180866002811115613b1f57fe5b60ff168152602001858152602001846001600160401b03166001600160401b0316815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b83811015613b84578181015183820152602001613b6c565b50505050905090810190601f168015613bb15780820380516001836020036101000a031916815260200191505b50965050505050505060405180910390a45050600f805460016001600160401b03600160501b8084048216929092011602600160501b600160901b031990911617905550505050505050565b6001600160a01b038216600081815260036020526040808220849055518392917fdb5ad2e76ae20cfa4e7adbc7305d7538442164d85ead9937c98620a1aa4c255b91a35050565b600f546001600160401b03808316600160901b90920416111561300c5760408051600160e51b62461bcd02815260206004820152600c60248201527f72656d6f76656420766f74650000000000000000000000000000000000000000604482015290519081900360640190fd5b6001600160401b0381166000908152600b602052604081205460ff1615613d135760408051600160e51b62461bcd02815260206004820152600b6024820152600160a81b6a636c6f73656420766f746502604482015290519081900360640190fd5b6000803660405180838380828437808301925050509250505060405180910390209050613d4260008483613fe1565b156132f65750506001600160401b0381166000908152600b60205260409020805460ff191660019081179091556131c8565b6000908152602081905260409020805460ff19166001179055565b6010546001600160401b039081169082161115613dc3576010805467ffffffffffffffff19166001600160401b0383161790555b600f5460105460c86001600160401b03600160901b909304831601919081169082161115613df957506010546001600160401b03165b600f54600160901b90046001600160401b03165b816001600160401b0316816001600160401b031611158015613e4857506001600160401b038082166000908152601160205260409020541615155b15613eb5576001600160401b0381811660009081526011602090815260408083208054601080546fffffffffffffffff0000000000000000191691909616600160401b0217909455835467ffffffffffffffff1916909355600b905220805460ff19169055600101613e0d565b600f80546001600160401b03909216600160901b0279ffffffffffffffff000000000000000000000000000000000000199092169190911790555050565b600180546001600160a01b0319166001600160a01b0383169081179091556040517f647672599d3468abcfa241a13c9e3d34383caadb5cc80fb67c3cdfcd5f78605990600090a250565b6001600160a01b038116613f8557604051600160e51b62461bcd0281526004018080602001828103825260268152602001806145ff6026913960400191505060405180910390fd5b6004546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600480546001600160a01b0319166001600160a01b0392909216919091179055565b600080600a6000866002811115613ff457fe5b60ff168152602080820192909252604090810160009081206001600160401b03881682528352818120338252600181019093522054909150806140585781546001810183556000838152602090200180546001600160a01b0319163317905561407f565b60008181526003830160205260409020805460ff19811660ff918216600019019091161790555b33600090815260018301602090815260408083208790558683526003850190915290205460ff166140c55760028201805460018101825560009182526020909120018490555b60008481526003830160205260408120805460ff8082166001011660ff19909116179055600e908760028111156140f857fe5b60ff9081168252602080830193909352604091820160009081205488825260038701909452919091205491811691161061414157614136868661446a565b6001925050506138b3565b50600095945050505050565b6001600160a01b0380831660009081526003602052604081205460015491929091161580159061417d5750600081115b1561439557808310156141da5760408051600160e51b62461bcd02815260206004820152601560248201527f696e73756666696369656e74206665654c696d69740000000000000000000000604482015290519081900360640190fd5b60015460408051600160e01b63a9059cbb0281526001600160a01b0392831660048201526024810184905290519186169163a9059cbb916044808201926020929091908290030181600087803b15801561423357600080fd5b505af1158015614247573d6000803e3d6000fd5b505050506040513d602081101561425d57600080fd5b505161429d57604051600160e51b62461bcd02815260040180806020018281038252602c815260200180614645602c913960400191505060405180910390fd5b60006142af848363ffffffff6131cd16565b111561438e576001600160a01b03841663a9059cbb866142d5868563ffffffff6131cd16565b6040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b15801561432457600080fd5b505af1158015614338573d6000803e3d6000fd5b505050506040513d602081101561434e57600080fd5b505161438e57604051600160e51b62461bcd02815260040180806020018281038252602c815260200180614645602c913960400191505060405180910390fd5b90506138b3565b836001600160a01b031663a9059cbb86856040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b1580156143f557600080fd5b505af1158015614409573d6000803e3d6000fd5b505050506040513d602081101561441f57600080fd5b505161445f57604051600160e51b62461bcd02815260040180806020018281038252602c815260200180614645602c913960400191505060405180910390fd5b506000949350505050565b6000600a600084600281111561447c57fe5b60ff168152602080820192909252604090810160009081206001600160401b0386168252909252812091505b815460ff821610156144f957816001016000836000018360ff16815481106144cc57fe5b60009182526020808320909101546001600160a01b031683528201929092526040018120556001016144a8565b5060005b600282015460ff8216101561454f57816003016000836002018360ff168154811061452457fe5b600091825260208083209091015483528201929092526040019020805460ff191690556001016144fd565b50600a600084600281111561456057fe5b60ff168152602080820192909252604090810160009081206001600160401b038616825290925281209061459482826145c6565b6118356002830160006145c6565b8154818355818111156118ad576000838152602090206118ad9181019083016145e0565b508054600082559060005260206000209081019061300c91905b61219391905b808211156145fa57600081556001016145e6565b509056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f20616464726573734f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f7061794552433230466565416e64526566756e644368616e67653a207472616e73666572206661696c65647265717565737445524332305472616e736665723a207472616e7366657246726f6d206661696c65646d73672e73656e646572206973206e6f7420616e206f70657261746f7200000068616e646c6545524332305472616e736665723a207472616e73666572206661696c6564a165627a7a72305820836e30befca5f63fec720b95a47f79f0c6c113f6b719c851f9b09a50100edc080029",
   267  }
   268  
   269  // BridgeABI is the input ABI used to generate the binding from.
   270  // Deprecated: Use BridgeMetaData.ABI instead.
   271  var BridgeABI = BridgeMetaData.ABI
   272  
   273  // BridgeBinRuntime is the compiled bytecode used for adding genesis block without deploying code.
   274  const BridgeBinRuntime = `60806040526004361061031a5760003560e01c80638a75eee2116101ab578063bab2af1d116100f7578063ea21eade11610095578063f1656e531161006f578063f1656e5314611071578063f171996614611147578063f2fde38b1461115c578063ffa1ad741461118f5761031a565b8063ea21eade14610ff4578063ee2aec6514611009578063efdcd9741461103e5761031a565b8063cb38f407116100d1578063cb38f40714610ebf578063cf0da29014610ee9578063d8cf98ca14610fb9578063dd9222d614610fec5761031a565b8063bab2af1d14610e4b578063c263b5d614610e7e578063c877cf3714610e935761031a565b80639ef2017b11610164578063ac6fff0b1161013e578063ac6fff0b14610c3e578063afb6022314610c53578063b2c0103014610dd1578063b3f0067414610e365761031a565b80639ef2017b14610b075780639f07132914610b3a578063a066a7ed14610b4f5761031a565b80638a75eee214610a385780638c0bd91614610a625780638da5cb5b14610a955780638f32d59b14610aaa5780639832c1d714610abf578063989ba0d314610af25761031a565b8063407e6bae1161026a5780635526f76b11610223578063715018a6116101fd578063715018a61461095857806375ebdc091461096d5780637c1a0302146109f057806387b04c5514610a055761031a565b80635526f76b146108cd5780635eb7413a146109105780636e176ec2146109435761031a565b8063407e6bae146106f75780634739f7e5146107f0578063488af8711461082b57806348a18a6a146108705780634b40b826146108a357806354edad72146108b85761031a565b806322604742116102d75780633682a450116102b15780633682a450146106545780633a3099d1146106875780633a3485331461069c5780633e4fe949146106cd5761031a565b8063226047421461046557806326c23b54146105365780632f88396c1461060c5761031a565b806310693fcd1461033957806313a6738a1461036c57806313e7c9d8146103bb5780631a2ae53e146104025780631ebdca381461043b5780632014e5d114610450575b6002546040805160008152602081019091526103379133916111a4565b005b34801561034557600080fd5b506103376004803603602081101561035c57600080fd5b50356001600160a01b03166113e4565b34801561037857600080fd5b5061039f6004803603602081101561038f57600080fd5b50356001600160401b0316611549565b604080516001600160401b039092168252519081900360200190f35b3480156103c757600080fd5b506103ee600480360360208110156103de57600080fd5b50356001600160a01b0316611564565b604080519115158252519081900360200190f35b34801561040e57600080fd5b506103376004803603604081101561042557600080fd5b50803590602001356001600160401b0316611579565b34801561044757600080fd5b506103376115ed565b34801561045c57600080fd5b506103ee6116b9565b34801561047157600080fd5b506103376004803603608081101561048857600080fd5b6001600160a01b03823581169260208101359091169160408201359190810190608081016060820135600160201b8111156104c257600080fd5b8201836020820111156104d457600080fd5b803590602001918460018302840111600160201b831117156104f557600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506116c9945050505050565b34801561054257600080fd5b50610337600480360360a081101561055957600080fd5b6001600160a01b03823581169260208101359091169160408201359160608101359181019060a081016080820135600160201b81111561059857600080fd5b8201836020820111156105aa57600080fd5b803590602001918460018302840111600160201b831117156105cb57600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955061174b945050505050565b34801561061857600080fd5b506103376004803603606081101561062f57600080fd5b5080356001600160a01b031690602081013590604001356001600160401b031661183c565b34801561066057600080fd5b506103376004803603602081101561067757600080fd5b50356001600160a01b03166118b2565b34801561069357600080fd5b5061039f611a2d565b3480156106a857600080fd5b506106b1611a32565b604080516001600160a01b039092168252519081900360200190f35b3480156106d957600080fd5b506106b1600480360360208110156106f057600080fd5b5035611a41565b34801561070357600080fd5b50610337600480360361010081101561071b57600080fd5b8135916001600160a01b03602082013581169260408301358216926060810135909216916080810135916001600160401b0360a083013581169260c081013590911691810190610100810160e0820135600160201b81111561077c57600080fd5b82018360208201111561078e57600080fd5b803590602001918460018302840111600160201b831117156107af57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550611a68945050505050565b3480156107fc57600080fd5b506103376004803603604081101561081357600080fd5b506001600160a01b0381358116916020013516611e0b565b34801561083757600080fd5b5061085e6004803603602081101561084e57600080fd5b50356001600160a01b0316611f68565b60408051918252519081900360200190f35b34801561087c57600080fd5b5061085e6004803603602081101561089357600080fd5b50356001600160a01b0316611f7a565b3480156108af57600080fd5b5061039f611f8c565b3480156108c457600080fd5b5061039f611fa2565b3480156108d957600080fd5b506108fa600480360360208110156108f057600080fd5b503560ff16611fb1565b6040805160ff9092168252519081900360200190f35b34801561091c57600080fd5b506103ee6004803603602081101561093357600080fd5b50356001600160a01b0316611fc6565b34801561094f57600080fd5b506103ee611fdb565b34801561096457600080fd5b50610337611feb565b6103376004803603606081101561098357600080fd5b6001600160a01b0382351691602081013591810190606081016040820135600160201b8111156109b257600080fd5b8201836020820111156109c457600080fd5b803590602001918460018302840111600160201b831117156109e557600080fd5b50909250905061207f565b3480156109fc57600080fd5b5061039f6120d4565b348015610a1157600080fd5b5061033760048036036020811015610a2857600080fd5b50356001600160a01b03166120ea565b348015610a4457600080fd5b506103ee60048036036020811015610a5b57600080fd5b5035612156565b348015610a6e57600080fd5b506106b160048036036020811015610a8557600080fd5b50356001600160a01b031661216b565b348015610aa157600080fd5b506106b1612186565b348015610ab657600080fd5b506103ee612196565b348015610acb57600080fd5b506103ee60048036036020811015610ae257600080fd5b50356001600160401b03166121a7565b348015610afe57600080fd5b5061039f6121bc565b348015610b1357600080fd5b5061033760048036036020811015610b2a57600080fd5b50356001600160a01b03166121d2565b348015610b4657600080fd5b50610337612346565b348015610b5b57600080fd5b50610337600480360360e0811015610b7257600080fd5b8135916001600160a01b0360208201358116926040830135909116916060810135916001600160401b03608083013581169260a08101359091169181019060e0810160c0820135600160201b811115610bca57600080fd5b820183602082011115610bdc57600080fd5b803590602001918460018302840111600160201b83111715610bfd57600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955061240f945050505050565b348015610c4a57600080fd5b5061039f612627565b348015610c5f57600080fd5b506103376004803603610120811015610c7757600080fd5b8135916001600160a01b03602082013581169260408301358216926060810135909216916080810135916001600160401b0360a083013581169260c081013590911691810190610100810160e0820135600160201b811115610cd857600080fd5b820183602082011115610cea57600080fd5b803590602001918460018302840111600160201b83111715610d0b57600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295949360208101935035915050600160201b811115610d5d57600080fd5b820183602082011115610d6f57600080fd5b803590602001918460018302840111600160201b83111715610d9057600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550612636945050505050565b348015610ddd57600080fd5b50610de66129df565b60408051602080825283518183015283519192839290830191858101910280838360005b83811015610e22578181015183820152602001610e0a565b505050509050019250505060405180910390f35b348015610e4257600080fd5b506106b1612a41565b348015610e5757600080fd5b5061033760048036036020811015610e6e57600080fd5b50356001600160a01b0316612a50565b348015610e8a57600080fd5b5061085e612c3f565b348015610e9f57600080fd5b5061033760048036036020811015610eb657600080fd5b50351515612c45565b348015610ecb57600080fd5b506106b160048036036020811015610ee257600080fd5b5035612cb3565b348015610ef557600080fd5b5061033760048036036080811015610f0c57600080fd5b6001600160a01b038235811692602081013592604082013590921691810190608081016060820135600160201b811115610f4557600080fd5b820183602082011115610f5757600080fd5b803590602001918460018302840111600160201b83111715610f7857600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550612cc0945050505050565b348015610fc557600080fd5b5061033760048036036020811015610fdc57600080fd5b50356001600160a01b0316612ccd565b610337612e1b565b34801561100057600080fd5b50610de6612e1d565b34801561101557600080fd5b506103376004803603604081101561102c57600080fd5b5060ff81358116916020013516612e7d565b34801561104a57600080fd5b506103376004803603602081101561106157600080fd5b50356001600160a01b0316612fb9565b34801561107d57600080fd5b50610337600480360360a081101561109457600080fd5b6001600160a01b03823581169260208101359091169160408201359160608101359181019060a081016080820135600160201b8111156110d357600080fd5b8201836020820111156110e557600080fd5b803590602001918460018302840111600160201b8311171561110657600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955061300f945050505050565b34801561115357600080fd5b506103ee61301d565b34801561116857600080fd5b506103376004803603602081101561117f57600080fd5b50356001600160a01b0316613026565b34801561119b57600080fd5b5061039f613079565b60125460ff16156111eb5760408051600160e51b62461bcd0281526020600482015260066024820152600160d21b651b1bd8dad95902604482015290519081900360640190fd5b600f54600160481b900460ff166112405760408051600160e51b62461bcd02815260206004820152600e6024820152600160901b6d73746f707065642062726964676502604482015290519081900360640190fd5b8134116112975760408051600160e51b62461bcd02815260206004820152601360248201527f696e73756666696369656e7420616d6f756e7400000000000000000000000000604482015290519081900360640190fd5b60006112a28361307e565b905060006001600160a01b038516337feff76c36e53fa5ff52f27acc8a34d5047a8246abb07b77b12f1309f71e337f09836112e3348963ffffffff6131cd16565b600f600a9054906101000a90046001600160401b031687896040518086600281111561130b57fe5b60ff168152602001858152602001846001600160401b03166001600160401b0316815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b83811015611370578181015183820152602001611358565b50505050905090810190601f16801561139d5780820380516001836020036101000a031916815260200191505b50965050505050505060405180910390a45050600f805460016001600160401b03600160501b8084048216929092011602600160501b600160901b03199091161790555050565b6113ec612196565b61142e5760408051600160e51b62461bcd0281526020600482018190526024820152600080516020614625833981519152604482015290519081900360640190fd5b6001600160a01b038082166000908152600660205260409020548291166114965760408051600160e51b62461bcd0281526020600482015260116024820152600160791b703737ba1030b63637bbb2b2103a37b5b2b702604482015290519081900360640190fd5b6001600160a01b038216600090815260096020526040902054829060ff16156114fb5760408051600160e51b62461bcd02815260206004820152600c6024820152600160a11b6b3637b1b5b2b2103a37b5b2b702604482015290519081900360640190fd5b6001600160a01b038316600081815260096020526040808220805460ff19166001179055517fca1b0a14e18ada4c44846768dd186e35630cdc5cfeaca83c404ae4acaafbecd79190a2505050565b6011602052600090815260409020546001600160401b031681565b600c6020526000908152604090205460ff1681565b336000908152600c602052604090205460ff166115ce5760408051600160e51b62461bcd02815260206004820152601d602482015260008051602061469a833981519152604482015290519081900360640190fd5b6115d78161322d565b6115e0576115e9565b6115e9826132ff565b5050565b6115f5612196565b6116375760408051600160e51b62461bcd0281526020600482018190526024820152600080516020614625833981519152604482015290519081900360640190fd5b60125460ff1615156001146116845760408051600160e51b62461bcd0281526020600482015260086024820152600160c21b671d5b9b1bd8dad95902604482015290519081900360640190fd5b6012805460ff191690556040517fd20610c9b78a6903ef134539e3deb5d243be461de6ef12d4c29536bb9b54fa1b90600090a1565b600f54600160481b900460ff1681565b60408051600160e01b6323b872dd0281523360048201523060248201526044810184905290516001600160a01b038616916323b872dd91606480830192600092919082900301818387803b15801561172057600080fd5b505af1158015611734573d6000803e3d6000fd5b505050506117458433858585613332565b50505050565b6001600160a01b0385166323b872dd333061176c878763ffffffff61385616565b6040805163ffffffff861660e01b81526001600160a01b0394851660048201529290931660248301526044820152905160648083019260209291908290030181600087803b1580156117bd57600080fd5b505af11580156117d1573d6000803e3d6000fd5b505050506040513d60208110156117e757600080fd5b505161182757604051600160e51b62461bcd0281526004018080602001828103825260298152602001806146716029913960400191505060405180910390fd5b6118358533868686866138ba565b5050505050565b336000908152600c602052604090205460ff166118915760408051600160e51b62461bcd02815260206004820152601d602482015260008051602061469a833981519152604482015290519081900360640190fd5b61189a8161322d565b6118a3576118ad565b6118ad8383613bfd565b505050565b6118ba612196565b6118fc5760408051600160e51b62461bcd0281526020600482018190526024820152600080516020614625833981519152604482015290519081900360640190fd5b600d54600c116119565760408051600160e51b62461bcd02815260206004820152601260248201527f6d6178206f70657261746f72206c696d69740000000000000000000000000000604482015290519081900360640190fd5b6001600160a01b0381166000908152600c602052604090205460ff16156119c75760408051600160e51b62461bcd02815260206004820152600e60248201527f6578697374206f70657261746f72000000000000000000000000000000000000604482015290519081900360640190fd5b6001600160a01b03166000818152600c60205260408120805460ff19166001908117909155600d805491820181559091527fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb50180546001600160a01b0319169091179055565b600c81565b6005546001600160a01b031681565b60088181548110611a4e57fe5b6000918252602090912001546001600160a01b0316905081565b336000908152600c602052604090205460ff16611abd5760408051600160e51b62461bcd02815260206004820152601d602482015260008051602061469a833981519152604482015290519081900360640190fd5b611ac683613c44565b611acf83613cb1565b611ad857611e01565b611ae188613d74565b6001600160401b038381166000908152601160205260409020805467ffffffffffffffff1916918416919091179055611b1983613d8f565b846001600160a01b0316866001600160a01b0316886001600160a01b03167f12b02f226d965a2881e0e8ffed6c421803a22d57ad91f9ef996fe0748ea101758b60018989600f60129054906101000a90046001600160401b03168960405180878152602001866002811115611b8a57fe5b60ff168152602001858152602001846001600160401b03166001600160401b03168152602001836001600160401b03166001600160401b0316815260200180602001828103825283818151815260200191508051906020019080838360005b83811015611c01578181015183820152602001611be9565b50505050905090810190601f168015611c2e5780820380516001836020036101000a031916815260200191505b5097505050505050505060405180910390a4600f54600160401b900460ff1615611d3757846001600160a01b03166340c10f1987866040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b158015611cb257600080fd5b505af1158015611cc6573d6000803e3d6000fd5b505050506040513d6020811015611cdc57600080fd5b5051611d325760408051600160e51b62461bcd02815260206004820181905260248201527f68616e646c6545524332305472616e736665723a206d696e74206661696c6564604482015290519081900360640190fd5b611e01565b846001600160a01b031663a9059cbb87866040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b158015611d9757600080fd5b505af1158015611dab573d6000803e3d6000fd5b505050506040513d6020811015611dc157600080fd5b5051611e0157604051600160e51b62461bcd0281526004018080602001828103825260248152602001806146ba6024913960400191505060405180910390fd5b5050505050505050565b611e13612196565b611e555760408051600160e51b62461bcd0281526020600482018190526024820152600080516020614625833981519152604482015290519081900360640190fd5b6001600160a01b0380831660009081526006602052604090205483911615611ec75760408051600160e51b62461bcd02815260206004820152600d60248201527f616c6c6f77656420746f6b656e00000000000000000000000000000000000000604482015290519081900360640190fd5b6001600160a01b03808416600081815260066020908152604080832080549588166001600160a01b031996871617905560088054600790935281842083905560018301815583527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee390910180549094168317909355915190917f158412daecdc1456d01568828bcdb18464cc7f1ce0215ddbc3f3cfede9d1e63d91a2505050565b60036020526000908152604090205481565b60076020526000908152604090205481565b600f54600160901b90046001600160401b031681565b6010546001600160401b031681565b600e6020526000908152604090205460ff1681565b60096020526000908152604090205460ff1681565b600f54600160401b900460ff1681565b611ff3612196565b6120355760408051600160e51b62461bcd0281526020600482018190526024820152600080516020614625833981519152604482015290519081900360640190fd5b6004546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600480546001600160a01b0319169055565b6000612091348563ffffffff6131cd16565b9050611835858285858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506111a492505050565b600f54600160501b90046001600160401b031681565b6120f2612196565b6121345760408051600160e51b62461bcd0281526020600482018190526024820152600080516020614625833981519152604482015290519081900360640190fd5b600580546001600160a01b0319166001600160a01b0392909216919091179055565b60006020819052908152604090205460ff1681565b6006602052600090815260409020546001600160a01b031681565b6004546001600160a01b03165b90565b6004546001600160a01b0316331490565b600b6020526000908152604090205460ff1681565b601054600160401b90046001600160401b031681565b6121da612196565b61221c5760408051600160e51b62461bcd0281526020600482018190526024820152600080516020614625833981519152604482015290519081900360640190fd5b6001600160a01b038082166000908152600660205260409020548291166122845760408051600160e51b62461bcd0281526020600482015260116024820152600160791b703737ba1030b63637bbb2b2103a37b5b2b702604482015290519081900360640190fd5b6001600160a01b038216600090815260096020526040902054829060ff1615156001146122fb5760408051600160e51b62461bcd02815260206004820152600e60248201527f756e6c6f636b656420746f6b656e000000000000000000000000000000000000604482015290519081900360640190fd5b6001600160a01b038316600081815260096020526040808220805460ff19169055517f81ec08d3372506e176c49e626d8beb7e091712ef92908a130f4ccc6524fe2eec9190a2505050565b61234e612196565b6123905760408051600160e51b62461bcd0281526020600482018190526024820152600080516020614625833981519152604482015290519081900360640190fd5b60125460ff16156123d75760408051600160e51b62461bcd0281526020600482015260066024820152600160d21b651b1bd8dad95902604482015290519081900360640190fd5b6012805460ff191660011790556040517f915f3053cbc6842207cd97b68c0b585109b4f2fe61c5dbeb25d7678bfdfb8dfa90600090a1565b336000908152600c602052604090205460ff166124645760408051600160e51b62461bcd02815260206004820152601d602482015260008051602061469a833981519152604482015290519081900360640190fd5b61246d83613c44565b61247683613cb1565b61247f5761261e565b61248887613d74565b6001600160401b038381166000908152601160205260409020805467ffffffffffffffff19169184169190911790556124c083613d8f565b60006001600160a01b0316856001600160a01b0316876001600160a01b03167f12b02f226d965a2881e0e8ffed6c421803a22d57ad91f9ef996fe0748ea101758a60008989600f60129054906101000a90046001600160401b0316896040518087815260200186600281111561253257fe5b60ff168152602001858152602001846001600160401b03166001600160401b03168152602001836001600160401b03166001600160401b0316815260200180602001828103825283818151815260200191508051906020019080838360005b838110156125a9578181015183820152602001612591565b50505050905090810190601f1680156125d65780820380516001836020036101000a031916815260200191505b5097505050505050505060405180910390a46040516001600160a01b0386169085156108fc029086906000818181858888f19350505050158015611e01573d6000803e3d6000fd5b50505050505050565b600f546001600160401b031681565b336000908152600c602052604090205460ff1661268b5760408051600160e51b62461bcd02815260206004820152601d602482015260008051602061469a833981519152604482015290519081900360640190fd5b61269484613c44565b61269d84613cb1565b6126a6576129d4565b6126af89613d74565b6001600160401b038481166000908152601160205260409020805467ffffffffffffffff19169185169190911790556126e784613d8f565b856001600160a01b0316876001600160a01b0316896001600160a01b03167f12b02f226d965a2881e0e8ffed6c421803a22d57ad91f9ef996fe0748ea101758c60028a8a600f60129054906101000a90046001600160401b0316896040518087815260200186600281111561275857fe5b60ff168152602001858152602001846001600160401b03166001600160401b03168152602001836001600160401b03166001600160401b0316815260200180602001828103825283818151815260200191508051906020019080838360005b838110156127cf5781810151838201526020016127b7565b50505050905090810190601f1680156127fc5780820380516001836020036101000a031916815260200191505b5097505050505050505060405180910390a4600f54600160401b900460ff161561296057856001600160a01b03166350bb4e7f8887856040518463ffffffff1660e01b815260040180846001600160a01b03166001600160a01b0316815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561289c578181015183820152602001612884565b50505050905090810190601f1680156128c95780820380516001836020036101000a031916815260200191505b50945050505050602060405180830381600087803b1580156128ea57600080fd5b505af11580156128fe573d6000803e3d6000fd5b505050506040513d602081101561291457600080fd5b505161295b5760408051600160e51b62461bcd02815260206004820152600b6024820152600160aa1b6a1b5a5b9d0819985a5b195902604482015290519081900360640190fd5b6129d4565b60408051600160e01b6323b872dd0281523060048201526001600160a01b038981166024830152604482018890529151918816916323b872dd9160648082019260009290919082900301818387803b1580156129bb57600080fd5b505af11580156129cf573d6000803e3d6000fd5b505050505b505050505050505050565b6060600d805480602002602001604051908101604052809291908181526020018280548015612a3757602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612a19575b5050505050905090565b6001546001600160a01b031681565b612a58612196565b612a9a5760408051600160e51b62461bcd0281526020600482018190526024820152600080516020614625833981519152604482015290519081900360640190fd5b6001600160a01b03808216600090815260066020526040902054829116612b025760408051600160e51b62461bcd0281526020600482015260116024820152600160791b703737ba1030b63637bbb2b2103a37b5b2b702604482015290519081900360640190fd5b6001600160a01b038216600090815260066020908152604080832080546001600160a01b031916905560098252808320805460ff1916905560079091528120805491905560085460001901811015612bf257600880546000198101908110612b6657fe5b600091825260209091200154600880546001600160a01b039092169183908110612b8c57fe5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550806007600060088481548110612bcc57fe5b60009182526020808320909101546001600160a01b031683528201929092526040019020555b6008805490612c059060001983016145a2565b506040516001600160a01b038416907f1d735ca20b63676dde668b718be78606b061d6bd7534ff815a90a121a6c084b690600090a2505050565b60025481565b612c4d612196565b612c8f5760408051600160e51b62461bcd0281526020600482018190526024820152600080516020614625833981519152604482015290519081900360640190fd5b600f8054911515600160481b0269ff00000000000000000019909216919091179055565b600d8181548110611a4e57fe5b6117453385848685613332565b612cd5612196565b612d175760408051600160e51b62461bcd0281526020600482018190526024820152600080516020614625833981519152604482015290519081900360640190fd5b6001600160a01b0381166000908152600c602052604090205460ff16612d3c57600080fd5b6001600160a01b0381166000908152600c60205260408120805460ff191690555b600d548110156115e957816001600160a01b0316600d8281548110612d7e57fe5b6000918252602090912001546001600160a01b03161415612e1357600d80546000198101908110612dab57fe5b600091825260209091200154600d80546001600160a01b039092169183908110612dd157fe5b600091825260209091200180546001600160a01b0319166001600160a01b0392909216919091179055600d805490612e0d9060001983016145a2565b506115e9565b600101612d5d565b565b60606008805480602002602001604051908101604052809291908181526020018280548015612a37576020028201919060005260206000209081546001600160a01b03168152600190910190602001808311612a19575050505050905090565b612e85612196565b612ec75760408051600160e51b62461bcd0281526020600482018190526024820152600080516020614625833981519152604482015290519081900360640190fd5b60008160ff1611612f225760408051600160e51b62461bcd02815260206004820152600e60248201527f7a65726f207468726573686f6c64000000000000000000000000000000000000604482015290519081900360640190fd5b600d5460ff82161115612f7f5760408051600160e51b62461bcd02815260206004820152601c60248201527f626967676572207468616e206e756d206f66206f70657261746f727300000000604482015290519081900360640190fd5b80600e6000846002811115612f9057fe5b60ff90811682526020820192909252604001600020805460ff1916929091169190911790555050565b612fc1612196565b6130035760408051600160e51b62461bcd0281526020600482018190526024820152600080516020614625833981519152604482015290519081900360640190fd5b61300c81613ef3565b50565b6118353386868686866138ba565b60125460ff1681565b61302e612196565b6130705760408051600160e51b62461bcd0281526020600482018190526024820152600080516020614625833981519152604482015290519081900360640190fd5b61300c81613f3d565b600181565b600254600154600091906001600160a01b03161580159061309f5750600081115b1561319457808310156130fc5760408051600160e51b62461bcd02815260206004820152601560248201527f696e73756666696369656e74206665654c696d69740000000000000000000000604482015290519081900360640190fd5b6001546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015613136573d6000803e3d6000fd5b506000613149848363ffffffff6131cd16565b111561318d57336108fc613163858463ffffffff6131cd16565b6040518115909202916000818181858888f1935050505015801561318b573d6000803e3d6000fd5b505b90506131c8565b604051339084156108fc029085906000818181858888f193505050501580156131c1573d6000803e3d6000fd5b5060009150505b919050565b6000828211156132275760408051600160e51b62461bcd02815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b600f546000906001600160401b038381169116146132955760408051600160e51b62461bcd02815260206004820152600e60248201527f6e6f6e6365206d69736d61746368000000000000000000000000000000000000604482015290519081900360640190fd5b60008036604051808383808284378083019250505092505050604051809103902090506132c460018483613fe1565b156132f6575050600f805467ffffffffffffffff19811660016001600160401b039283168101909216179091556131c8565b50600092915050565b600281905560405181907fa7a33d0996347e1aa55ca2206015b61b9534bdd881d59d59aa680e25eefac36590600090a250565b6001600160a01b0380861660009081526006602052604090205486911661339a5760408051600160e51b62461bcd0281526020600482015260116024820152600160791b703737ba1030b63637bbb2b2103a37b5b2b702604482015290519081900360640190fd5b6001600160a01b038616600090815260096020526040902054869060ff16156133ff5760408051600160e51b62461bcd02815260206004820152600c6024820152600160a11b6b3637b1b5b2b2103a37b5b2b702604482015290519081900360640190fd5b600f54600160481b900460ff166134545760408051600160e51b62461bcd02815260206004820152600e6024820152600160901b6d73746f707065642062726964676502604482015290519081900360640190fd5b604080516020808201879052825180830382018152828401909352600160e01b63c87b56dd026060838101828152855160009692956001600160a01b038f1695606490910191908401908083835b602083106134c15780518252601f1990920191602091820191016134a2565b6001836020036101000a038019825116818451168082178552505050505050905001925050506040516020818303038152906040526040518082805190602001908083835b602083106135255780518252601f199092019160209182019101613506565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114613587576040519150601f19603f3d011682016040523d82523d6000602084013e61358c565b606091505b509092509050816135a857506040805160208101909152600081525b600f54600160401b900460ff161561361957886001600160a01b03166342966c68876040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b15801561360057600080fd5b505af1158015613614573d6000803e3d6000fd5b505050505b886001600160a01b0316876001600160a01b0316896001600160a01b03167f17d76053ca34a4dd8c402fe6498deb797fac89bf7ed02f3f5161aa9368cc8c1f60028a600f600a9054906101000a90046001600160401b031660008c60028a6040516020018080602001828103825283818151815260200191508051906020019080838360005b838110156136b757818101518382015260200161369f565b50505050905090810190601f1680156136e45780820380516001836020036101000a031916815260200191505b50925050506040516020818303038152906040526040518088600281111561370857fe5b60ff168152602001878152602001866001600160401b03166001600160401b03168152602001858152602001806020018460ff16815260200180602001838103835286818151815260200191508051906020019080838360005b8381101561377a578181015183820152602001613762565b50505050905090810190601f1680156137a75780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b838110156137da5781810151838201526020016137c2565b50505050905090810190601f1680156138075780820380516001836020036101000a031916815260200191505b50995050505050505050505060405180910390a45050600f805460016001600160401b03600160501b8084048216929092011602600160501b600160901b031990911617905550505050505050565b6000828201838110156138b35760408051600160e51b62461bcd02815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b6001600160a01b038087166000908152600660205260409020548791166139225760408051600160e51b62461bcd0281526020600482015260116024820152600160791b703737ba1030b63637bbb2b2103a37b5b2b702604482015290519081900360640190fd5b6001600160a01b038716600090815260096020526040902054879060ff16156139875760408051600160e51b62461bcd02815260206004820152600c6024820152600160a11b6b3637b1b5b2b2103a37b5b2b702604482015290519081900360640190fd5b600f54600160481b900460ff166139dc5760408051600160e51b62461bcd02815260206004820152600e6024820152600160901b6d73746f707065642062726964676502604482015290519081900360640190fd5b60008511613a345760408051600160e51b62461bcd02815260206004820152600e60248201527f7a65726f206d73672e76616c7565000000000000000000000000000000000000604482015290519081900360640190fd5b6000613a41888a8761414d565b600f54909150600160401b900460ff1615613ab557886001600160a01b03166342966c68876040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b158015613a9c57600080fd5b505af1158015613ab0573d6000803e3d6000fd5b505050505b886001600160a01b0316876001600160a01b0316896001600160a01b03167feff76c36e53fa5ff52f27acc8a34d5047a8246abb07b77b12f1309f71e337f0960018a600f600a9054906101000a90046001600160401b0316878b60405180866002811115613b1f57fe5b60ff168152602001858152602001846001600160401b03166001600160401b0316815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b83811015613b84578181015183820152602001613b6c565b50505050905090810190601f168015613bb15780820380516001836020036101000a031916815260200191505b50965050505050505060405180910390a45050600f805460016001600160401b03600160501b8084048216929092011602600160501b600160901b031990911617905550505050505050565b6001600160a01b038216600081815260036020526040808220849055518392917fdb5ad2e76ae20cfa4e7adbc7305d7538442164d85ead9937c98620a1aa4c255b91a35050565b600f546001600160401b03808316600160901b90920416111561300c5760408051600160e51b62461bcd02815260206004820152600c60248201527f72656d6f76656420766f74650000000000000000000000000000000000000000604482015290519081900360640190fd5b6001600160401b0381166000908152600b602052604081205460ff1615613d135760408051600160e51b62461bcd02815260206004820152600b6024820152600160a81b6a636c6f73656420766f746502604482015290519081900360640190fd5b6000803660405180838380828437808301925050509250505060405180910390209050613d4260008483613fe1565b156132f65750506001600160401b0381166000908152600b60205260409020805460ff191660019081179091556131c8565b6000908152602081905260409020805460ff19166001179055565b6010546001600160401b039081169082161115613dc3576010805467ffffffffffffffff19166001600160401b0383161790555b600f5460105460c86001600160401b03600160901b909304831601919081169082161115613df957506010546001600160401b03165b600f54600160901b90046001600160401b03165b816001600160401b0316816001600160401b031611158015613e4857506001600160401b038082166000908152601160205260409020541615155b15613eb5576001600160401b0381811660009081526011602090815260408083208054601080546fffffffffffffffff0000000000000000191691909616600160401b0217909455835467ffffffffffffffff1916909355600b905220805460ff19169055600101613e0d565b600f80546001600160401b03909216600160901b0279ffffffffffffffff000000000000000000000000000000000000199092169190911790555050565b600180546001600160a01b0319166001600160a01b0383169081179091556040517f647672599d3468abcfa241a13c9e3d34383caadb5cc80fb67c3cdfcd5f78605990600090a250565b6001600160a01b038116613f8557604051600160e51b62461bcd0281526004018080602001828103825260268152602001806145ff6026913960400191505060405180910390fd5b6004546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600480546001600160a01b0319166001600160a01b0392909216919091179055565b600080600a6000866002811115613ff457fe5b60ff168152602080820192909252604090810160009081206001600160401b03881682528352818120338252600181019093522054909150806140585781546001810183556000838152602090200180546001600160a01b0319163317905561407f565b60008181526003830160205260409020805460ff19811660ff918216600019019091161790555b33600090815260018301602090815260408083208790558683526003850190915290205460ff166140c55760028201805460018101825560009182526020909120018490555b60008481526003830160205260408120805460ff8082166001011660ff19909116179055600e908760028111156140f857fe5b60ff9081168252602080830193909352604091820160009081205488825260038701909452919091205491811691161061414157614136868661446a565b6001925050506138b3565b50600095945050505050565b6001600160a01b0380831660009081526003602052604081205460015491929091161580159061417d5750600081115b1561439557808310156141da5760408051600160e51b62461bcd02815260206004820152601560248201527f696e73756666696369656e74206665654c696d69740000000000000000000000604482015290519081900360640190fd5b60015460408051600160e01b63a9059cbb0281526001600160a01b0392831660048201526024810184905290519186169163a9059cbb916044808201926020929091908290030181600087803b15801561423357600080fd5b505af1158015614247573d6000803e3d6000fd5b505050506040513d602081101561425d57600080fd5b505161429d57604051600160e51b62461bcd02815260040180806020018281038252602c815260200180614645602c913960400191505060405180910390fd5b60006142af848363ffffffff6131cd16565b111561438e576001600160a01b03841663a9059cbb866142d5868563ffffffff6131cd16565b6040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b15801561432457600080fd5b505af1158015614338573d6000803e3d6000fd5b505050506040513d602081101561434e57600080fd5b505161438e57604051600160e51b62461bcd02815260040180806020018281038252602c815260200180614645602c913960400191505060405180910390fd5b90506138b3565b836001600160a01b031663a9059cbb86856040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b1580156143f557600080fd5b505af1158015614409573d6000803e3d6000fd5b505050506040513d602081101561441f57600080fd5b505161445f57604051600160e51b62461bcd02815260040180806020018281038252602c815260200180614645602c913960400191505060405180910390fd5b506000949350505050565b6000600a600084600281111561447c57fe5b60ff168152602080820192909252604090810160009081206001600160401b0386168252909252812091505b815460ff821610156144f957816001016000836000018360ff16815481106144cc57fe5b60009182526020808320909101546001600160a01b031683528201929092526040018120556001016144a8565b5060005b600282015460ff8216101561454f57816003016000836002018360ff168154811061452457fe5b600091825260208083209091015483528201929092526040019020805460ff191690556001016144fd565b50600a600084600281111561456057fe5b60ff168152602080820192909252604090810160009081206001600160401b038616825290925281209061459482826145c6565b6118356002830160006145c6565b8154818355818111156118ad576000838152602090206118ad9181019083016145e0565b508054600082559060005260206000209081019061300c91905b61219391905b808211156145fa57600081556001016145e6565b509056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f20616464726573734f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f7061794552433230466565416e64526566756e644368616e67653a207472616e73666572206661696c65647265717565737445524332305472616e736665723a207472616e7366657246726f6d206661696c65646d73672e73656e646572206973206e6f7420616e206f70657261746f7200000068616e646c6545524332305472616e736665723a207472616e73666572206661696c6564a165627a7a72305820836e30befca5f63fec720b95a47f79f0c6c113f6b719c851f9b09a50100edc080029`
   275  
   276  // BridgeFuncSigs maps the 4-byte function signature to its string representation.
   277  // Deprecated: Use BridgeMetaData.Sigs instead.
   278  var BridgeFuncSigs = BridgeMetaData.Sigs
   279  
   280  // BridgeBin is the compiled bytecode used for deploying new contracts.
   281  // Deprecated: Use BridgeMetaData.Bin instead.
   282  var BridgeBin = BridgeMetaData.Bin
   283  
   284  // DeployBridge deploys a new Klaytn contract, binding an instance of Bridge to it.
   285  func DeployBridge(auth *bind.TransactOpts, backend bind.ContractBackend, _modeMintBurn bool) (common.Address, *types.Transaction, *Bridge, error) {
   286  	parsed, err := BridgeMetaData.GetAbi()
   287  	if err != nil {
   288  		return common.Address{}, nil, nil, err
   289  	}
   290  	if parsed == nil {
   291  		return common.Address{}, nil, nil, errors.New("GetABI returned nil")
   292  	}
   293  
   294  	address, tx, contract, err := bind.DeployContract(auth, *parsed, common.FromHex(BridgeBin), backend, _modeMintBurn)
   295  	if err != nil {
   296  		return common.Address{}, nil, nil, err
   297  	}
   298  	return address, tx, &Bridge{BridgeCaller: BridgeCaller{contract: contract}, BridgeTransactor: BridgeTransactor{contract: contract}, BridgeFilterer: BridgeFilterer{contract: contract}}, nil
   299  }
   300  
   301  // Bridge is an auto generated Go binding around a Klaytn contract.
   302  type Bridge struct {
   303  	BridgeCaller     // Read-only binding to the contract
   304  	BridgeTransactor // Write-only binding to the contract
   305  	BridgeFilterer   // Log filterer for contract events
   306  }
   307  
   308  // BridgeCaller is an auto generated read-only Go binding around a Klaytn contract.
   309  type BridgeCaller struct {
   310  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
   311  }
   312  
   313  // BridgeTransactor is an auto generated write-only Go binding around a Klaytn contract.
   314  type BridgeTransactor struct {
   315  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
   316  }
   317  
   318  // BridgeFilterer is an auto generated log filtering Go binding around a Klaytn contract events.
   319  type BridgeFilterer struct {
   320  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
   321  }
   322  
   323  // BridgeSession is an auto generated Go binding around a Klaytn contract,
   324  // with pre-set call and transact options.
   325  type BridgeSession struct {
   326  	Contract     *Bridge           // Generic contract binding to set the session for
   327  	CallOpts     bind.CallOpts     // Call options to use throughout this session
   328  	TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
   329  }
   330  
   331  // BridgeCallerSession is an auto generated read-only Go binding around a Klaytn contract,
   332  // with pre-set call options.
   333  type BridgeCallerSession struct {
   334  	Contract *BridgeCaller // Generic contract caller binding to set the session for
   335  	CallOpts bind.CallOpts // Call options to use throughout this session
   336  }
   337  
   338  // BridgeTransactorSession is an auto generated write-only Go binding around a Klaytn contract,
   339  // with pre-set transact options.
   340  type BridgeTransactorSession struct {
   341  	Contract     *BridgeTransactor // Generic contract transactor binding to set the session for
   342  	TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
   343  }
   344  
   345  // BridgeRaw is an auto generated low-level Go binding around a Klaytn contract.
   346  type BridgeRaw struct {
   347  	Contract *Bridge // Generic contract binding to access the raw methods on
   348  }
   349  
   350  // BridgeCallerRaw is an auto generated low-level read-only Go binding around a Klaytn contract.
   351  type BridgeCallerRaw struct {
   352  	Contract *BridgeCaller // Generic read-only contract binding to access the raw methods on
   353  }
   354  
   355  // BridgeTransactorRaw is an auto generated low-level write-only Go binding around a Klaytn contract.
   356  type BridgeTransactorRaw struct {
   357  	Contract *BridgeTransactor // Generic write-only contract binding to access the raw methods on
   358  }
   359  
   360  // NewBridge creates a new instance of Bridge, bound to a specific deployed contract.
   361  func NewBridge(address common.Address, backend bind.ContractBackend) (*Bridge, error) {
   362  	contract, err := bindBridge(address, backend, backend, backend)
   363  	if err != nil {
   364  		return nil, err
   365  	}
   366  	return &Bridge{BridgeCaller: BridgeCaller{contract: contract}, BridgeTransactor: BridgeTransactor{contract: contract}, BridgeFilterer: BridgeFilterer{contract: contract}}, nil
   367  }
   368  
   369  // NewBridgeCaller creates a new read-only instance of Bridge, bound to a specific deployed contract.
   370  func NewBridgeCaller(address common.Address, caller bind.ContractCaller) (*BridgeCaller, error) {
   371  	contract, err := bindBridge(address, caller, nil, nil)
   372  	if err != nil {
   373  		return nil, err
   374  	}
   375  	return &BridgeCaller{contract: contract}, nil
   376  }
   377  
   378  // NewBridgeTransactor creates a new write-only instance of Bridge, bound to a specific deployed contract.
   379  func NewBridgeTransactor(address common.Address, transactor bind.ContractTransactor) (*BridgeTransactor, error) {
   380  	contract, err := bindBridge(address, nil, transactor, nil)
   381  	if err != nil {
   382  		return nil, err
   383  	}
   384  	return &BridgeTransactor{contract: contract}, nil
   385  }
   386  
   387  // NewBridgeFilterer creates a new log filterer instance of Bridge, bound to a specific deployed contract.
   388  func NewBridgeFilterer(address common.Address, filterer bind.ContractFilterer) (*BridgeFilterer, error) {
   389  	contract, err := bindBridge(address, nil, nil, filterer)
   390  	if err != nil {
   391  		return nil, err
   392  	}
   393  	return &BridgeFilterer{contract: contract}, nil
   394  }
   395  
   396  // bindBridge binds a generic wrapper to an already deployed contract.
   397  func bindBridge(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
   398  	parsed, err := BridgeMetaData.GetAbi()
   399  	if err != nil {
   400  		return nil, err
   401  	}
   402  	return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil
   403  }
   404  
   405  // Call invokes the (constant) contract method with params as input values and
   406  // sets the output to result. The result type might be a single field for simple
   407  // returns, a slice of interfaces for anonymous returns and a struct for named
   408  // returns.
   409  func (_Bridge *BridgeRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
   410  	return _Bridge.Contract.BridgeCaller.contract.Call(opts, result, method, params...)
   411  }
   412  
   413  // Transfer initiates a plain transaction to move funds to the contract, calling
   414  // its default method if one is available.
   415  func (_Bridge *BridgeRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
   416  	return _Bridge.Contract.BridgeTransactor.contract.Transfer(opts)
   417  }
   418  
   419  // Transact invokes the (paid) contract method with params as input values.
   420  func (_Bridge *BridgeRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
   421  	return _Bridge.Contract.BridgeTransactor.contract.Transact(opts, method, params...)
   422  }
   423  
   424  // Call invokes the (constant) contract method with params as input values and
   425  // sets the output to result. The result type might be a single field for simple
   426  // returns, a slice of interfaces for anonymous returns and a struct for named
   427  // returns.
   428  func (_Bridge *BridgeCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
   429  	return _Bridge.Contract.contract.Call(opts, result, method, params...)
   430  }
   431  
   432  // Transfer initiates a plain transaction to move funds to the contract, calling
   433  // its default method if one is available.
   434  func (_Bridge *BridgeTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
   435  	return _Bridge.Contract.contract.Transfer(opts)
   436  }
   437  
   438  // Transact invokes the (paid) contract method with params as input values.
   439  func (_Bridge *BridgeTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
   440  	return _Bridge.Contract.contract.Transact(opts, method, params...)
   441  }
   442  
   443  // MAXOPERATOR is a free data retrieval call binding the contract method 0x3a3099d1.
   444  //
   445  // Solidity: function MAX_OPERATOR() view returns(uint64)
   446  func (_Bridge *BridgeCaller) MAXOPERATOR(opts *bind.CallOpts) (uint64, error) {
   447  	var out []interface{}
   448  	err := _Bridge.contract.Call(opts, &out, "MAX_OPERATOR")
   449  
   450  	if err != nil {
   451  		return *new(uint64), err
   452  	}
   453  
   454  	out0 := *abi.ConvertType(out[0], new(uint64)).(*uint64)
   455  
   456  	return out0, err
   457  
   458  }
   459  
   460  // MAXOPERATOR is a free data retrieval call binding the contract method 0x3a3099d1.
   461  //
   462  // Solidity: function MAX_OPERATOR() view returns(uint64)
   463  func (_Bridge *BridgeSession) MAXOPERATOR() (uint64, error) {
   464  	return _Bridge.Contract.MAXOPERATOR(&_Bridge.CallOpts)
   465  }
   466  
   467  // MAXOPERATOR is a free data retrieval call binding the contract method 0x3a3099d1.
   468  //
   469  // Solidity: function MAX_OPERATOR() view returns(uint64)
   470  func (_Bridge *BridgeCallerSession) MAXOPERATOR() (uint64, error) {
   471  	return _Bridge.Contract.MAXOPERATOR(&_Bridge.CallOpts)
   472  }
   473  
   474  // VERSION is a free data retrieval call binding the contract method 0xffa1ad74.
   475  //
   476  // Solidity: function VERSION() view returns(uint64)
   477  func (_Bridge *BridgeCaller) VERSION(opts *bind.CallOpts) (uint64, error) {
   478  	var out []interface{}
   479  	err := _Bridge.contract.Call(opts, &out, "VERSION")
   480  
   481  	if err != nil {
   482  		return *new(uint64), err
   483  	}
   484  
   485  	out0 := *abi.ConvertType(out[0], new(uint64)).(*uint64)
   486  
   487  	return out0, err
   488  
   489  }
   490  
   491  // VERSION is a free data retrieval call binding the contract method 0xffa1ad74.
   492  //
   493  // Solidity: function VERSION() view returns(uint64)
   494  func (_Bridge *BridgeSession) VERSION() (uint64, error) {
   495  	return _Bridge.Contract.VERSION(&_Bridge.CallOpts)
   496  }
   497  
   498  // VERSION is a free data retrieval call binding the contract method 0xffa1ad74.
   499  //
   500  // Solidity: function VERSION() view returns(uint64)
   501  func (_Bridge *BridgeCallerSession) VERSION() (uint64, error) {
   502  	return _Bridge.Contract.VERSION(&_Bridge.CallOpts)
   503  }
   504  
   505  // ClosedValueTransferVotes is a free data retrieval call binding the contract method 0x9832c1d7.
   506  //
   507  // Solidity: function closedValueTransferVotes(uint64 ) view returns(bool)
   508  func (_Bridge *BridgeCaller) ClosedValueTransferVotes(opts *bind.CallOpts, arg0 uint64) (bool, error) {
   509  	var out []interface{}
   510  	err := _Bridge.contract.Call(opts, &out, "closedValueTransferVotes", arg0)
   511  
   512  	if err != nil {
   513  		return *new(bool), err
   514  	}
   515  
   516  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
   517  
   518  	return out0, err
   519  
   520  }
   521  
   522  // ClosedValueTransferVotes is a free data retrieval call binding the contract method 0x9832c1d7.
   523  //
   524  // Solidity: function closedValueTransferVotes(uint64 ) view returns(bool)
   525  func (_Bridge *BridgeSession) ClosedValueTransferVotes(arg0 uint64) (bool, error) {
   526  	return _Bridge.Contract.ClosedValueTransferVotes(&_Bridge.CallOpts, arg0)
   527  }
   528  
   529  // ClosedValueTransferVotes is a free data retrieval call binding the contract method 0x9832c1d7.
   530  //
   531  // Solidity: function closedValueTransferVotes(uint64 ) view returns(bool)
   532  func (_Bridge *BridgeCallerSession) ClosedValueTransferVotes(arg0 uint64) (bool, error) {
   533  	return _Bridge.Contract.ClosedValueTransferVotes(&_Bridge.CallOpts, arg0)
   534  }
   535  
   536  // ConfigurationNonce is a free data retrieval call binding the contract method 0xac6fff0b.
   537  //
   538  // Solidity: function configurationNonce() view returns(uint64)
   539  func (_Bridge *BridgeCaller) ConfigurationNonce(opts *bind.CallOpts) (uint64, error) {
   540  	var out []interface{}
   541  	err := _Bridge.contract.Call(opts, &out, "configurationNonce")
   542  
   543  	if err != nil {
   544  		return *new(uint64), err
   545  	}
   546  
   547  	out0 := *abi.ConvertType(out[0], new(uint64)).(*uint64)
   548  
   549  	return out0, err
   550  
   551  }
   552  
   553  // ConfigurationNonce is a free data retrieval call binding the contract method 0xac6fff0b.
   554  //
   555  // Solidity: function configurationNonce() view returns(uint64)
   556  func (_Bridge *BridgeSession) ConfigurationNonce() (uint64, error) {
   557  	return _Bridge.Contract.ConfigurationNonce(&_Bridge.CallOpts)
   558  }
   559  
   560  // ConfigurationNonce is a free data retrieval call binding the contract method 0xac6fff0b.
   561  //
   562  // Solidity: function configurationNonce() view returns(uint64)
   563  func (_Bridge *BridgeCallerSession) ConfigurationNonce() (uint64, error) {
   564  	return _Bridge.Contract.ConfigurationNonce(&_Bridge.CallOpts)
   565  }
   566  
   567  // CounterpartBridge is a free data retrieval call binding the contract method 0x3a348533.
   568  //
   569  // Solidity: function counterpartBridge() view returns(address)
   570  func (_Bridge *BridgeCaller) CounterpartBridge(opts *bind.CallOpts) (common.Address, error) {
   571  	var out []interface{}
   572  	err := _Bridge.contract.Call(opts, &out, "counterpartBridge")
   573  
   574  	if err != nil {
   575  		return *new(common.Address), err
   576  	}
   577  
   578  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
   579  
   580  	return out0, err
   581  
   582  }
   583  
   584  // CounterpartBridge is a free data retrieval call binding the contract method 0x3a348533.
   585  //
   586  // Solidity: function counterpartBridge() view returns(address)
   587  func (_Bridge *BridgeSession) CounterpartBridge() (common.Address, error) {
   588  	return _Bridge.Contract.CounterpartBridge(&_Bridge.CallOpts)
   589  }
   590  
   591  // CounterpartBridge is a free data retrieval call binding the contract method 0x3a348533.
   592  //
   593  // Solidity: function counterpartBridge() view returns(address)
   594  func (_Bridge *BridgeCallerSession) CounterpartBridge() (common.Address, error) {
   595  	return _Bridge.Contract.CounterpartBridge(&_Bridge.CallOpts)
   596  }
   597  
   598  // FeeOfERC20 is a free data retrieval call binding the contract method 0x488af871.
   599  //
   600  // Solidity: function feeOfERC20(address ) view returns(uint256)
   601  func (_Bridge *BridgeCaller) FeeOfERC20(opts *bind.CallOpts, arg0 common.Address) (*big.Int, error) {
   602  	var out []interface{}
   603  	err := _Bridge.contract.Call(opts, &out, "feeOfERC20", arg0)
   604  
   605  	if err != nil {
   606  		return *new(*big.Int), err
   607  	}
   608  
   609  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
   610  
   611  	return out0, err
   612  
   613  }
   614  
   615  // FeeOfERC20 is a free data retrieval call binding the contract method 0x488af871.
   616  //
   617  // Solidity: function feeOfERC20(address ) view returns(uint256)
   618  func (_Bridge *BridgeSession) FeeOfERC20(arg0 common.Address) (*big.Int, error) {
   619  	return _Bridge.Contract.FeeOfERC20(&_Bridge.CallOpts, arg0)
   620  }
   621  
   622  // FeeOfERC20 is a free data retrieval call binding the contract method 0x488af871.
   623  //
   624  // Solidity: function feeOfERC20(address ) view returns(uint256)
   625  func (_Bridge *BridgeCallerSession) FeeOfERC20(arg0 common.Address) (*big.Int, error) {
   626  	return _Bridge.Contract.FeeOfERC20(&_Bridge.CallOpts, arg0)
   627  }
   628  
   629  // FeeOfKLAY is a free data retrieval call binding the contract method 0xc263b5d6.
   630  //
   631  // Solidity: function feeOfKLAY() view returns(uint256)
   632  func (_Bridge *BridgeCaller) FeeOfKLAY(opts *bind.CallOpts) (*big.Int, error) {
   633  	var out []interface{}
   634  	err := _Bridge.contract.Call(opts, &out, "feeOfKLAY")
   635  
   636  	if err != nil {
   637  		return *new(*big.Int), err
   638  	}
   639  
   640  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
   641  
   642  	return out0, err
   643  
   644  }
   645  
   646  // FeeOfKLAY is a free data retrieval call binding the contract method 0xc263b5d6.
   647  //
   648  // Solidity: function feeOfKLAY() view returns(uint256)
   649  func (_Bridge *BridgeSession) FeeOfKLAY() (*big.Int, error) {
   650  	return _Bridge.Contract.FeeOfKLAY(&_Bridge.CallOpts)
   651  }
   652  
   653  // FeeOfKLAY is a free data retrieval call binding the contract method 0xc263b5d6.
   654  //
   655  // Solidity: function feeOfKLAY() view returns(uint256)
   656  func (_Bridge *BridgeCallerSession) FeeOfKLAY() (*big.Int, error) {
   657  	return _Bridge.Contract.FeeOfKLAY(&_Bridge.CallOpts)
   658  }
   659  
   660  // FeeReceiver is a free data retrieval call binding the contract method 0xb3f00674.
   661  //
   662  // Solidity: function feeReceiver() view returns(address)
   663  func (_Bridge *BridgeCaller) FeeReceiver(opts *bind.CallOpts) (common.Address, error) {
   664  	var out []interface{}
   665  	err := _Bridge.contract.Call(opts, &out, "feeReceiver")
   666  
   667  	if err != nil {
   668  		return *new(common.Address), err
   669  	}
   670  
   671  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
   672  
   673  	return out0, err
   674  
   675  }
   676  
   677  // FeeReceiver is a free data retrieval call binding the contract method 0xb3f00674.
   678  //
   679  // Solidity: function feeReceiver() view returns(address)
   680  func (_Bridge *BridgeSession) FeeReceiver() (common.Address, error) {
   681  	return _Bridge.Contract.FeeReceiver(&_Bridge.CallOpts)
   682  }
   683  
   684  // FeeReceiver is a free data retrieval call binding the contract method 0xb3f00674.
   685  //
   686  // Solidity: function feeReceiver() view returns(address)
   687  func (_Bridge *BridgeCallerSession) FeeReceiver() (common.Address, error) {
   688  	return _Bridge.Contract.FeeReceiver(&_Bridge.CallOpts)
   689  }
   690  
   691  // GetOperatorList is a free data retrieval call binding the contract method 0xb2c01030.
   692  //
   693  // Solidity: function getOperatorList() view returns(address[])
   694  func (_Bridge *BridgeCaller) GetOperatorList(opts *bind.CallOpts) ([]common.Address, error) {
   695  	var out []interface{}
   696  	err := _Bridge.contract.Call(opts, &out, "getOperatorList")
   697  
   698  	if err != nil {
   699  		return *new([]common.Address), err
   700  	}
   701  
   702  	out0 := *abi.ConvertType(out[0], new([]common.Address)).(*[]common.Address)
   703  
   704  	return out0, err
   705  
   706  }
   707  
   708  // GetOperatorList is a free data retrieval call binding the contract method 0xb2c01030.
   709  //
   710  // Solidity: function getOperatorList() view returns(address[])
   711  func (_Bridge *BridgeSession) GetOperatorList() ([]common.Address, error) {
   712  	return _Bridge.Contract.GetOperatorList(&_Bridge.CallOpts)
   713  }
   714  
   715  // GetOperatorList is a free data retrieval call binding the contract method 0xb2c01030.
   716  //
   717  // Solidity: function getOperatorList() view returns(address[])
   718  func (_Bridge *BridgeCallerSession) GetOperatorList() ([]common.Address, error) {
   719  	return _Bridge.Contract.GetOperatorList(&_Bridge.CallOpts)
   720  }
   721  
   722  // GetRegisteredTokenList is a free data retrieval call binding the contract method 0xea21eade.
   723  //
   724  // Solidity: function getRegisteredTokenList() view returns(address[])
   725  func (_Bridge *BridgeCaller) GetRegisteredTokenList(opts *bind.CallOpts) ([]common.Address, error) {
   726  	var out []interface{}
   727  	err := _Bridge.contract.Call(opts, &out, "getRegisteredTokenList")
   728  
   729  	if err != nil {
   730  		return *new([]common.Address), err
   731  	}
   732  
   733  	out0 := *abi.ConvertType(out[0], new([]common.Address)).(*[]common.Address)
   734  
   735  	return out0, err
   736  
   737  }
   738  
   739  // GetRegisteredTokenList is a free data retrieval call binding the contract method 0xea21eade.
   740  //
   741  // Solidity: function getRegisteredTokenList() view returns(address[])
   742  func (_Bridge *BridgeSession) GetRegisteredTokenList() ([]common.Address, error) {
   743  	return _Bridge.Contract.GetRegisteredTokenList(&_Bridge.CallOpts)
   744  }
   745  
   746  // GetRegisteredTokenList is a free data retrieval call binding the contract method 0xea21eade.
   747  //
   748  // Solidity: function getRegisteredTokenList() view returns(address[])
   749  func (_Bridge *BridgeCallerSession) GetRegisteredTokenList() ([]common.Address, error) {
   750  	return _Bridge.Contract.GetRegisteredTokenList(&_Bridge.CallOpts)
   751  }
   752  
   753  // HandleNoncesToBlockNums is a free data retrieval call binding the contract method 0x13a6738a.
   754  //
   755  // Solidity: function handleNoncesToBlockNums(uint64 ) view returns(uint64)
   756  func (_Bridge *BridgeCaller) HandleNoncesToBlockNums(opts *bind.CallOpts, arg0 uint64) (uint64, error) {
   757  	var out []interface{}
   758  	err := _Bridge.contract.Call(opts, &out, "handleNoncesToBlockNums", arg0)
   759  
   760  	if err != nil {
   761  		return *new(uint64), err
   762  	}
   763  
   764  	out0 := *abi.ConvertType(out[0], new(uint64)).(*uint64)
   765  
   766  	return out0, err
   767  
   768  }
   769  
   770  // HandleNoncesToBlockNums is a free data retrieval call binding the contract method 0x13a6738a.
   771  //
   772  // Solidity: function handleNoncesToBlockNums(uint64 ) view returns(uint64)
   773  func (_Bridge *BridgeSession) HandleNoncesToBlockNums(arg0 uint64) (uint64, error) {
   774  	return _Bridge.Contract.HandleNoncesToBlockNums(&_Bridge.CallOpts, arg0)
   775  }
   776  
   777  // HandleNoncesToBlockNums is a free data retrieval call binding the contract method 0x13a6738a.
   778  //
   779  // Solidity: function handleNoncesToBlockNums(uint64 ) view returns(uint64)
   780  func (_Bridge *BridgeCallerSession) HandleNoncesToBlockNums(arg0 uint64) (uint64, error) {
   781  	return _Bridge.Contract.HandleNoncesToBlockNums(&_Bridge.CallOpts, arg0)
   782  }
   783  
   784  // HandledRequestTx is a free data retrieval call binding the contract method 0x8a75eee2.
   785  //
   786  // Solidity: function handledRequestTx(bytes32 ) view returns(bool)
   787  func (_Bridge *BridgeCaller) HandledRequestTx(opts *bind.CallOpts, arg0 [32]byte) (bool, error) {
   788  	var out []interface{}
   789  	err := _Bridge.contract.Call(opts, &out, "handledRequestTx", arg0)
   790  
   791  	if err != nil {
   792  		return *new(bool), err
   793  	}
   794  
   795  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
   796  
   797  	return out0, err
   798  
   799  }
   800  
   801  // HandledRequestTx is a free data retrieval call binding the contract method 0x8a75eee2.
   802  //
   803  // Solidity: function handledRequestTx(bytes32 ) view returns(bool)
   804  func (_Bridge *BridgeSession) HandledRequestTx(arg0 [32]byte) (bool, error) {
   805  	return _Bridge.Contract.HandledRequestTx(&_Bridge.CallOpts, arg0)
   806  }
   807  
   808  // HandledRequestTx is a free data retrieval call binding the contract method 0x8a75eee2.
   809  //
   810  // Solidity: function handledRequestTx(bytes32 ) view returns(bool)
   811  func (_Bridge *BridgeCallerSession) HandledRequestTx(arg0 [32]byte) (bool, error) {
   812  	return _Bridge.Contract.HandledRequestTx(&_Bridge.CallOpts, arg0)
   813  }
   814  
   815  // IndexOfTokens is a free data retrieval call binding the contract method 0x48a18a6a.
   816  //
   817  // Solidity: function indexOfTokens(address ) view returns(uint256)
   818  func (_Bridge *BridgeCaller) IndexOfTokens(opts *bind.CallOpts, arg0 common.Address) (*big.Int, error) {
   819  	var out []interface{}
   820  	err := _Bridge.contract.Call(opts, &out, "indexOfTokens", arg0)
   821  
   822  	if err != nil {
   823  		return *new(*big.Int), err
   824  	}
   825  
   826  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
   827  
   828  	return out0, err
   829  
   830  }
   831  
   832  // IndexOfTokens is a free data retrieval call binding the contract method 0x48a18a6a.
   833  //
   834  // Solidity: function indexOfTokens(address ) view returns(uint256)
   835  func (_Bridge *BridgeSession) IndexOfTokens(arg0 common.Address) (*big.Int, error) {
   836  	return _Bridge.Contract.IndexOfTokens(&_Bridge.CallOpts, arg0)
   837  }
   838  
   839  // IndexOfTokens is a free data retrieval call binding the contract method 0x48a18a6a.
   840  //
   841  // Solidity: function indexOfTokens(address ) view returns(uint256)
   842  func (_Bridge *BridgeCallerSession) IndexOfTokens(arg0 common.Address) (*big.Int, error) {
   843  	return _Bridge.Contract.IndexOfTokens(&_Bridge.CallOpts, arg0)
   844  }
   845  
   846  // IsLockedKLAY is a free data retrieval call binding the contract method 0xf1719966.
   847  //
   848  // Solidity: function isLockedKLAY() view returns(bool)
   849  func (_Bridge *BridgeCaller) IsLockedKLAY(opts *bind.CallOpts) (bool, error) {
   850  	var out []interface{}
   851  	err := _Bridge.contract.Call(opts, &out, "isLockedKLAY")
   852  
   853  	if err != nil {
   854  		return *new(bool), err
   855  	}
   856  
   857  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
   858  
   859  	return out0, err
   860  
   861  }
   862  
   863  // IsLockedKLAY is a free data retrieval call binding the contract method 0xf1719966.
   864  //
   865  // Solidity: function isLockedKLAY() view returns(bool)
   866  func (_Bridge *BridgeSession) IsLockedKLAY() (bool, error) {
   867  	return _Bridge.Contract.IsLockedKLAY(&_Bridge.CallOpts)
   868  }
   869  
   870  // IsLockedKLAY is a free data retrieval call binding the contract method 0xf1719966.
   871  //
   872  // Solidity: function isLockedKLAY() view returns(bool)
   873  func (_Bridge *BridgeCallerSession) IsLockedKLAY() (bool, error) {
   874  	return _Bridge.Contract.IsLockedKLAY(&_Bridge.CallOpts)
   875  }
   876  
   877  // IsOwner is a free data retrieval call binding the contract method 0x8f32d59b.
   878  //
   879  // Solidity: function isOwner() view returns(bool)
   880  func (_Bridge *BridgeCaller) IsOwner(opts *bind.CallOpts) (bool, error) {
   881  	var out []interface{}
   882  	err := _Bridge.contract.Call(opts, &out, "isOwner")
   883  
   884  	if err != nil {
   885  		return *new(bool), err
   886  	}
   887  
   888  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
   889  
   890  	return out0, err
   891  
   892  }
   893  
   894  // IsOwner is a free data retrieval call binding the contract method 0x8f32d59b.
   895  //
   896  // Solidity: function isOwner() view returns(bool)
   897  func (_Bridge *BridgeSession) IsOwner() (bool, error) {
   898  	return _Bridge.Contract.IsOwner(&_Bridge.CallOpts)
   899  }
   900  
   901  // IsOwner is a free data retrieval call binding the contract method 0x8f32d59b.
   902  //
   903  // Solidity: function isOwner() view returns(bool)
   904  func (_Bridge *BridgeCallerSession) IsOwner() (bool, error) {
   905  	return _Bridge.Contract.IsOwner(&_Bridge.CallOpts)
   906  }
   907  
   908  // IsRunning is a free data retrieval call binding the contract method 0x2014e5d1.
   909  //
   910  // Solidity: function isRunning() view returns(bool)
   911  func (_Bridge *BridgeCaller) IsRunning(opts *bind.CallOpts) (bool, error) {
   912  	var out []interface{}
   913  	err := _Bridge.contract.Call(opts, &out, "isRunning")
   914  
   915  	if err != nil {
   916  		return *new(bool), err
   917  	}
   918  
   919  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
   920  
   921  	return out0, err
   922  
   923  }
   924  
   925  // IsRunning is a free data retrieval call binding the contract method 0x2014e5d1.
   926  //
   927  // Solidity: function isRunning() view returns(bool)
   928  func (_Bridge *BridgeSession) IsRunning() (bool, error) {
   929  	return _Bridge.Contract.IsRunning(&_Bridge.CallOpts)
   930  }
   931  
   932  // IsRunning is a free data retrieval call binding the contract method 0x2014e5d1.
   933  //
   934  // Solidity: function isRunning() view returns(bool)
   935  func (_Bridge *BridgeCallerSession) IsRunning() (bool, error) {
   936  	return _Bridge.Contract.IsRunning(&_Bridge.CallOpts)
   937  }
   938  
   939  // LockedTokens is a free data retrieval call binding the contract method 0x5eb7413a.
   940  //
   941  // Solidity: function lockedTokens(address ) view returns(bool)
   942  func (_Bridge *BridgeCaller) LockedTokens(opts *bind.CallOpts, arg0 common.Address) (bool, error) {
   943  	var out []interface{}
   944  	err := _Bridge.contract.Call(opts, &out, "lockedTokens", arg0)
   945  
   946  	if err != nil {
   947  		return *new(bool), err
   948  	}
   949  
   950  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
   951  
   952  	return out0, err
   953  
   954  }
   955  
   956  // LockedTokens is a free data retrieval call binding the contract method 0x5eb7413a.
   957  //
   958  // Solidity: function lockedTokens(address ) view returns(bool)
   959  func (_Bridge *BridgeSession) LockedTokens(arg0 common.Address) (bool, error) {
   960  	return _Bridge.Contract.LockedTokens(&_Bridge.CallOpts, arg0)
   961  }
   962  
   963  // LockedTokens is a free data retrieval call binding the contract method 0x5eb7413a.
   964  //
   965  // Solidity: function lockedTokens(address ) view returns(bool)
   966  func (_Bridge *BridgeCallerSession) LockedTokens(arg0 common.Address) (bool, error) {
   967  	return _Bridge.Contract.LockedTokens(&_Bridge.CallOpts, arg0)
   968  }
   969  
   970  // LowerHandleNonce is a free data retrieval call binding the contract method 0x4b40b826.
   971  //
   972  // Solidity: function lowerHandleNonce() view returns(uint64)
   973  func (_Bridge *BridgeCaller) LowerHandleNonce(opts *bind.CallOpts) (uint64, error) {
   974  	var out []interface{}
   975  	err := _Bridge.contract.Call(opts, &out, "lowerHandleNonce")
   976  
   977  	if err != nil {
   978  		return *new(uint64), err
   979  	}
   980  
   981  	out0 := *abi.ConvertType(out[0], new(uint64)).(*uint64)
   982  
   983  	return out0, err
   984  
   985  }
   986  
   987  // LowerHandleNonce is a free data retrieval call binding the contract method 0x4b40b826.
   988  //
   989  // Solidity: function lowerHandleNonce() view returns(uint64)
   990  func (_Bridge *BridgeSession) LowerHandleNonce() (uint64, error) {
   991  	return _Bridge.Contract.LowerHandleNonce(&_Bridge.CallOpts)
   992  }
   993  
   994  // LowerHandleNonce is a free data retrieval call binding the contract method 0x4b40b826.
   995  //
   996  // Solidity: function lowerHandleNonce() view returns(uint64)
   997  func (_Bridge *BridgeCallerSession) LowerHandleNonce() (uint64, error) {
   998  	return _Bridge.Contract.LowerHandleNonce(&_Bridge.CallOpts)
   999  }
  1000  
  1001  // ModeMintBurn is a free data retrieval call binding the contract method 0x6e176ec2.
  1002  //
  1003  // Solidity: function modeMintBurn() view returns(bool)
  1004  func (_Bridge *BridgeCaller) ModeMintBurn(opts *bind.CallOpts) (bool, error) {
  1005  	var out []interface{}
  1006  	err := _Bridge.contract.Call(opts, &out, "modeMintBurn")
  1007  
  1008  	if err != nil {
  1009  		return *new(bool), err
  1010  	}
  1011  
  1012  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
  1013  
  1014  	return out0, err
  1015  
  1016  }
  1017  
  1018  // ModeMintBurn is a free data retrieval call binding the contract method 0x6e176ec2.
  1019  //
  1020  // Solidity: function modeMintBurn() view returns(bool)
  1021  func (_Bridge *BridgeSession) ModeMintBurn() (bool, error) {
  1022  	return _Bridge.Contract.ModeMintBurn(&_Bridge.CallOpts)
  1023  }
  1024  
  1025  // ModeMintBurn is a free data retrieval call binding the contract method 0x6e176ec2.
  1026  //
  1027  // Solidity: function modeMintBurn() view returns(bool)
  1028  func (_Bridge *BridgeCallerSession) ModeMintBurn() (bool, error) {
  1029  	return _Bridge.Contract.ModeMintBurn(&_Bridge.CallOpts)
  1030  }
  1031  
  1032  // OperatorList is a free data retrieval call binding the contract method 0xcb38f407.
  1033  //
  1034  // Solidity: function operatorList(uint256 ) view returns(address)
  1035  func (_Bridge *BridgeCaller) OperatorList(opts *bind.CallOpts, arg0 *big.Int) (common.Address, error) {
  1036  	var out []interface{}
  1037  	err := _Bridge.contract.Call(opts, &out, "operatorList", arg0)
  1038  
  1039  	if err != nil {
  1040  		return *new(common.Address), err
  1041  	}
  1042  
  1043  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
  1044  
  1045  	return out0, err
  1046  
  1047  }
  1048  
  1049  // OperatorList is a free data retrieval call binding the contract method 0xcb38f407.
  1050  //
  1051  // Solidity: function operatorList(uint256 ) view returns(address)
  1052  func (_Bridge *BridgeSession) OperatorList(arg0 *big.Int) (common.Address, error) {
  1053  	return _Bridge.Contract.OperatorList(&_Bridge.CallOpts, arg0)
  1054  }
  1055  
  1056  // OperatorList is a free data retrieval call binding the contract method 0xcb38f407.
  1057  //
  1058  // Solidity: function operatorList(uint256 ) view returns(address)
  1059  func (_Bridge *BridgeCallerSession) OperatorList(arg0 *big.Int) (common.Address, error) {
  1060  	return _Bridge.Contract.OperatorList(&_Bridge.CallOpts, arg0)
  1061  }
  1062  
  1063  // OperatorThresholds is a free data retrieval call binding the contract method 0x5526f76b.
  1064  //
  1065  // Solidity: function operatorThresholds(uint8 ) view returns(uint8)
  1066  func (_Bridge *BridgeCaller) OperatorThresholds(opts *bind.CallOpts, arg0 uint8) (uint8, error) {
  1067  	var out []interface{}
  1068  	err := _Bridge.contract.Call(opts, &out, "operatorThresholds", arg0)
  1069  
  1070  	if err != nil {
  1071  		return *new(uint8), err
  1072  	}
  1073  
  1074  	out0 := *abi.ConvertType(out[0], new(uint8)).(*uint8)
  1075  
  1076  	return out0, err
  1077  
  1078  }
  1079  
  1080  // OperatorThresholds is a free data retrieval call binding the contract method 0x5526f76b.
  1081  //
  1082  // Solidity: function operatorThresholds(uint8 ) view returns(uint8)
  1083  func (_Bridge *BridgeSession) OperatorThresholds(arg0 uint8) (uint8, error) {
  1084  	return _Bridge.Contract.OperatorThresholds(&_Bridge.CallOpts, arg0)
  1085  }
  1086  
  1087  // OperatorThresholds is a free data retrieval call binding the contract method 0x5526f76b.
  1088  //
  1089  // Solidity: function operatorThresholds(uint8 ) view returns(uint8)
  1090  func (_Bridge *BridgeCallerSession) OperatorThresholds(arg0 uint8) (uint8, error) {
  1091  	return _Bridge.Contract.OperatorThresholds(&_Bridge.CallOpts, arg0)
  1092  }
  1093  
  1094  // Operators is a free data retrieval call binding the contract method 0x13e7c9d8.
  1095  //
  1096  // Solidity: function operators(address ) view returns(bool)
  1097  func (_Bridge *BridgeCaller) Operators(opts *bind.CallOpts, arg0 common.Address) (bool, error) {
  1098  	var out []interface{}
  1099  	err := _Bridge.contract.Call(opts, &out, "operators", arg0)
  1100  
  1101  	if err != nil {
  1102  		return *new(bool), err
  1103  	}
  1104  
  1105  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
  1106  
  1107  	return out0, err
  1108  
  1109  }
  1110  
  1111  // Operators is a free data retrieval call binding the contract method 0x13e7c9d8.
  1112  //
  1113  // Solidity: function operators(address ) view returns(bool)
  1114  func (_Bridge *BridgeSession) Operators(arg0 common.Address) (bool, error) {
  1115  	return _Bridge.Contract.Operators(&_Bridge.CallOpts, arg0)
  1116  }
  1117  
  1118  // Operators is a free data retrieval call binding the contract method 0x13e7c9d8.
  1119  //
  1120  // Solidity: function operators(address ) view returns(bool)
  1121  func (_Bridge *BridgeCallerSession) Operators(arg0 common.Address) (bool, error) {
  1122  	return _Bridge.Contract.Operators(&_Bridge.CallOpts, arg0)
  1123  }
  1124  
  1125  // Owner is a free data retrieval call binding the contract method 0x8da5cb5b.
  1126  //
  1127  // Solidity: function owner() view returns(address)
  1128  func (_Bridge *BridgeCaller) Owner(opts *bind.CallOpts) (common.Address, error) {
  1129  	var out []interface{}
  1130  	err := _Bridge.contract.Call(opts, &out, "owner")
  1131  
  1132  	if err != nil {
  1133  		return *new(common.Address), err
  1134  	}
  1135  
  1136  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
  1137  
  1138  	return out0, err
  1139  
  1140  }
  1141  
  1142  // Owner is a free data retrieval call binding the contract method 0x8da5cb5b.
  1143  //
  1144  // Solidity: function owner() view returns(address)
  1145  func (_Bridge *BridgeSession) Owner() (common.Address, error) {
  1146  	return _Bridge.Contract.Owner(&_Bridge.CallOpts)
  1147  }
  1148  
  1149  // Owner is a free data retrieval call binding the contract method 0x8da5cb5b.
  1150  //
  1151  // Solidity: function owner() view returns(address)
  1152  func (_Bridge *BridgeCallerSession) Owner() (common.Address, error) {
  1153  	return _Bridge.Contract.Owner(&_Bridge.CallOpts)
  1154  }
  1155  
  1156  // RecoveryBlockNumber is a free data retrieval call binding the contract method 0x989ba0d3.
  1157  //
  1158  // Solidity: function recoveryBlockNumber() view returns(uint64)
  1159  func (_Bridge *BridgeCaller) RecoveryBlockNumber(opts *bind.CallOpts) (uint64, error) {
  1160  	var out []interface{}
  1161  	err := _Bridge.contract.Call(opts, &out, "recoveryBlockNumber")
  1162  
  1163  	if err != nil {
  1164  		return *new(uint64), err
  1165  	}
  1166  
  1167  	out0 := *abi.ConvertType(out[0], new(uint64)).(*uint64)
  1168  
  1169  	return out0, err
  1170  
  1171  }
  1172  
  1173  // RecoveryBlockNumber is a free data retrieval call binding the contract method 0x989ba0d3.
  1174  //
  1175  // Solidity: function recoveryBlockNumber() view returns(uint64)
  1176  func (_Bridge *BridgeSession) RecoveryBlockNumber() (uint64, error) {
  1177  	return _Bridge.Contract.RecoveryBlockNumber(&_Bridge.CallOpts)
  1178  }
  1179  
  1180  // RecoveryBlockNumber is a free data retrieval call binding the contract method 0x989ba0d3.
  1181  //
  1182  // Solidity: function recoveryBlockNumber() view returns(uint64)
  1183  func (_Bridge *BridgeCallerSession) RecoveryBlockNumber() (uint64, error) {
  1184  	return _Bridge.Contract.RecoveryBlockNumber(&_Bridge.CallOpts)
  1185  }
  1186  
  1187  // RegisteredTokenList is a free data retrieval call binding the contract method 0x3e4fe949.
  1188  //
  1189  // Solidity: function registeredTokenList(uint256 ) view returns(address)
  1190  func (_Bridge *BridgeCaller) RegisteredTokenList(opts *bind.CallOpts, arg0 *big.Int) (common.Address, error) {
  1191  	var out []interface{}
  1192  	err := _Bridge.contract.Call(opts, &out, "registeredTokenList", arg0)
  1193  
  1194  	if err != nil {
  1195  		return *new(common.Address), err
  1196  	}
  1197  
  1198  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
  1199  
  1200  	return out0, err
  1201  
  1202  }
  1203  
  1204  // RegisteredTokenList is a free data retrieval call binding the contract method 0x3e4fe949.
  1205  //
  1206  // Solidity: function registeredTokenList(uint256 ) view returns(address)
  1207  func (_Bridge *BridgeSession) RegisteredTokenList(arg0 *big.Int) (common.Address, error) {
  1208  	return _Bridge.Contract.RegisteredTokenList(&_Bridge.CallOpts, arg0)
  1209  }
  1210  
  1211  // RegisteredTokenList is a free data retrieval call binding the contract method 0x3e4fe949.
  1212  //
  1213  // Solidity: function registeredTokenList(uint256 ) view returns(address)
  1214  func (_Bridge *BridgeCallerSession) RegisteredTokenList(arg0 *big.Int) (common.Address, error) {
  1215  	return _Bridge.Contract.RegisteredTokenList(&_Bridge.CallOpts, arg0)
  1216  }
  1217  
  1218  // RegisteredTokens is a free data retrieval call binding the contract method 0x8c0bd916.
  1219  //
  1220  // Solidity: function registeredTokens(address ) view returns(address)
  1221  func (_Bridge *BridgeCaller) RegisteredTokens(opts *bind.CallOpts, arg0 common.Address) (common.Address, error) {
  1222  	var out []interface{}
  1223  	err := _Bridge.contract.Call(opts, &out, "registeredTokens", arg0)
  1224  
  1225  	if err != nil {
  1226  		return *new(common.Address), err
  1227  	}
  1228  
  1229  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
  1230  
  1231  	return out0, err
  1232  
  1233  }
  1234  
  1235  // RegisteredTokens is a free data retrieval call binding the contract method 0x8c0bd916.
  1236  //
  1237  // Solidity: function registeredTokens(address ) view returns(address)
  1238  func (_Bridge *BridgeSession) RegisteredTokens(arg0 common.Address) (common.Address, error) {
  1239  	return _Bridge.Contract.RegisteredTokens(&_Bridge.CallOpts, arg0)
  1240  }
  1241  
  1242  // RegisteredTokens is a free data retrieval call binding the contract method 0x8c0bd916.
  1243  //
  1244  // Solidity: function registeredTokens(address ) view returns(address)
  1245  func (_Bridge *BridgeCallerSession) RegisteredTokens(arg0 common.Address) (common.Address, error) {
  1246  	return _Bridge.Contract.RegisteredTokens(&_Bridge.CallOpts, arg0)
  1247  }
  1248  
  1249  // RequestNonce is a free data retrieval call binding the contract method 0x7c1a0302.
  1250  //
  1251  // Solidity: function requestNonce() view returns(uint64)
  1252  func (_Bridge *BridgeCaller) RequestNonce(opts *bind.CallOpts) (uint64, error) {
  1253  	var out []interface{}
  1254  	err := _Bridge.contract.Call(opts, &out, "requestNonce")
  1255  
  1256  	if err != nil {
  1257  		return *new(uint64), err
  1258  	}
  1259  
  1260  	out0 := *abi.ConvertType(out[0], new(uint64)).(*uint64)
  1261  
  1262  	return out0, err
  1263  
  1264  }
  1265  
  1266  // RequestNonce is a free data retrieval call binding the contract method 0x7c1a0302.
  1267  //
  1268  // Solidity: function requestNonce() view returns(uint64)
  1269  func (_Bridge *BridgeSession) RequestNonce() (uint64, error) {
  1270  	return _Bridge.Contract.RequestNonce(&_Bridge.CallOpts)
  1271  }
  1272  
  1273  // RequestNonce is a free data retrieval call binding the contract method 0x7c1a0302.
  1274  //
  1275  // Solidity: function requestNonce() view returns(uint64)
  1276  func (_Bridge *BridgeCallerSession) RequestNonce() (uint64, error) {
  1277  	return _Bridge.Contract.RequestNonce(&_Bridge.CallOpts)
  1278  }
  1279  
  1280  // UpperHandleNonce is a free data retrieval call binding the contract method 0x54edad72.
  1281  //
  1282  // Solidity: function upperHandleNonce() view returns(uint64)
  1283  func (_Bridge *BridgeCaller) UpperHandleNonce(opts *bind.CallOpts) (uint64, error) {
  1284  	var out []interface{}
  1285  	err := _Bridge.contract.Call(opts, &out, "upperHandleNonce")
  1286  
  1287  	if err != nil {
  1288  		return *new(uint64), err
  1289  	}
  1290  
  1291  	out0 := *abi.ConvertType(out[0], new(uint64)).(*uint64)
  1292  
  1293  	return out0, err
  1294  
  1295  }
  1296  
  1297  // UpperHandleNonce is a free data retrieval call binding the contract method 0x54edad72.
  1298  //
  1299  // Solidity: function upperHandleNonce() view returns(uint64)
  1300  func (_Bridge *BridgeSession) UpperHandleNonce() (uint64, error) {
  1301  	return _Bridge.Contract.UpperHandleNonce(&_Bridge.CallOpts)
  1302  }
  1303  
  1304  // UpperHandleNonce is a free data retrieval call binding the contract method 0x54edad72.
  1305  //
  1306  // Solidity: function upperHandleNonce() view returns(uint64)
  1307  func (_Bridge *BridgeCallerSession) UpperHandleNonce() (uint64, error) {
  1308  	return _Bridge.Contract.UpperHandleNonce(&_Bridge.CallOpts)
  1309  }
  1310  
  1311  // ChargeWithoutEvent is a paid mutator transaction binding the contract method 0xdd9222d6.
  1312  //
  1313  // Solidity: function chargeWithoutEvent() payable returns()
  1314  func (_Bridge *BridgeTransactor) ChargeWithoutEvent(opts *bind.TransactOpts) (*types.Transaction, error) {
  1315  	return _Bridge.contract.Transact(opts, "chargeWithoutEvent")
  1316  }
  1317  
  1318  // ChargeWithoutEvent is a paid mutator transaction binding the contract method 0xdd9222d6.
  1319  //
  1320  // Solidity: function chargeWithoutEvent() payable returns()
  1321  func (_Bridge *BridgeSession) ChargeWithoutEvent() (*types.Transaction, error) {
  1322  	return _Bridge.Contract.ChargeWithoutEvent(&_Bridge.TransactOpts)
  1323  }
  1324  
  1325  // ChargeWithoutEvent is a paid mutator transaction binding the contract method 0xdd9222d6.
  1326  //
  1327  // Solidity: function chargeWithoutEvent() payable returns()
  1328  func (_Bridge *BridgeTransactorSession) ChargeWithoutEvent() (*types.Transaction, error) {
  1329  	return _Bridge.Contract.ChargeWithoutEvent(&_Bridge.TransactOpts)
  1330  }
  1331  
  1332  // DeregisterOperator is a paid mutator transaction binding the contract method 0xd8cf98ca.
  1333  //
  1334  // Solidity: function deregisterOperator(address _operator) returns()
  1335  func (_Bridge *BridgeTransactor) DeregisterOperator(opts *bind.TransactOpts, _operator common.Address) (*types.Transaction, error) {
  1336  	return _Bridge.contract.Transact(opts, "deregisterOperator", _operator)
  1337  }
  1338  
  1339  // DeregisterOperator is a paid mutator transaction binding the contract method 0xd8cf98ca.
  1340  //
  1341  // Solidity: function deregisterOperator(address _operator) returns()
  1342  func (_Bridge *BridgeSession) DeregisterOperator(_operator common.Address) (*types.Transaction, error) {
  1343  	return _Bridge.Contract.DeregisterOperator(&_Bridge.TransactOpts, _operator)
  1344  }
  1345  
  1346  // DeregisterOperator is a paid mutator transaction binding the contract method 0xd8cf98ca.
  1347  //
  1348  // Solidity: function deregisterOperator(address _operator) returns()
  1349  func (_Bridge *BridgeTransactorSession) DeregisterOperator(_operator common.Address) (*types.Transaction, error) {
  1350  	return _Bridge.Contract.DeregisterOperator(&_Bridge.TransactOpts, _operator)
  1351  }
  1352  
  1353  // DeregisterToken is a paid mutator transaction binding the contract method 0xbab2af1d.
  1354  //
  1355  // Solidity: function deregisterToken(address _token) returns()
  1356  func (_Bridge *BridgeTransactor) DeregisterToken(opts *bind.TransactOpts, _token common.Address) (*types.Transaction, error) {
  1357  	return _Bridge.contract.Transact(opts, "deregisterToken", _token)
  1358  }
  1359  
  1360  // DeregisterToken is a paid mutator transaction binding the contract method 0xbab2af1d.
  1361  //
  1362  // Solidity: function deregisterToken(address _token) returns()
  1363  func (_Bridge *BridgeSession) DeregisterToken(_token common.Address) (*types.Transaction, error) {
  1364  	return _Bridge.Contract.DeregisterToken(&_Bridge.TransactOpts, _token)
  1365  }
  1366  
  1367  // DeregisterToken is a paid mutator transaction binding the contract method 0xbab2af1d.
  1368  //
  1369  // Solidity: function deregisterToken(address _token) returns()
  1370  func (_Bridge *BridgeTransactorSession) DeregisterToken(_token common.Address) (*types.Transaction, error) {
  1371  	return _Bridge.Contract.DeregisterToken(&_Bridge.TransactOpts, _token)
  1372  }
  1373  
  1374  // HandleERC20Transfer is a paid mutator transaction binding the contract method 0x407e6bae.
  1375  //
  1376  // Solidity: function handleERC20Transfer(bytes32 _requestTxHash, address _from, address _to, address _tokenAddress, uint256 _value, uint64 _requestedNonce, uint64 _requestedBlockNumber, bytes _extraData) returns()
  1377  func (_Bridge *BridgeTransactor) HandleERC20Transfer(opts *bind.TransactOpts, _requestTxHash [32]byte, _from common.Address, _to common.Address, _tokenAddress common.Address, _value *big.Int, _requestedNonce uint64, _requestedBlockNumber uint64, _extraData []byte) (*types.Transaction, error) {
  1378  	return _Bridge.contract.Transact(opts, "handleERC20Transfer", _requestTxHash, _from, _to, _tokenAddress, _value, _requestedNonce, _requestedBlockNumber, _extraData)
  1379  }
  1380  
  1381  // HandleERC20Transfer is a paid mutator transaction binding the contract method 0x407e6bae.
  1382  //
  1383  // Solidity: function handleERC20Transfer(bytes32 _requestTxHash, address _from, address _to, address _tokenAddress, uint256 _value, uint64 _requestedNonce, uint64 _requestedBlockNumber, bytes _extraData) returns()
  1384  func (_Bridge *BridgeSession) HandleERC20Transfer(_requestTxHash [32]byte, _from common.Address, _to common.Address, _tokenAddress common.Address, _value *big.Int, _requestedNonce uint64, _requestedBlockNumber uint64, _extraData []byte) (*types.Transaction, error) {
  1385  	return _Bridge.Contract.HandleERC20Transfer(&_Bridge.TransactOpts, _requestTxHash, _from, _to, _tokenAddress, _value, _requestedNonce, _requestedBlockNumber, _extraData)
  1386  }
  1387  
  1388  // HandleERC20Transfer is a paid mutator transaction binding the contract method 0x407e6bae.
  1389  //
  1390  // Solidity: function handleERC20Transfer(bytes32 _requestTxHash, address _from, address _to, address _tokenAddress, uint256 _value, uint64 _requestedNonce, uint64 _requestedBlockNumber, bytes _extraData) returns()
  1391  func (_Bridge *BridgeTransactorSession) HandleERC20Transfer(_requestTxHash [32]byte, _from common.Address, _to common.Address, _tokenAddress common.Address, _value *big.Int, _requestedNonce uint64, _requestedBlockNumber uint64, _extraData []byte) (*types.Transaction, error) {
  1392  	return _Bridge.Contract.HandleERC20Transfer(&_Bridge.TransactOpts, _requestTxHash, _from, _to, _tokenAddress, _value, _requestedNonce, _requestedBlockNumber, _extraData)
  1393  }
  1394  
  1395  // HandleERC721Transfer is a paid mutator transaction binding the contract method 0xafb60223.
  1396  //
  1397  // Solidity: function handleERC721Transfer(bytes32 _requestTxHash, address _from, address _to, address _tokenAddress, uint256 _tokenId, uint64 _requestedNonce, uint64 _requestedBlockNumber, string _tokenURI, bytes _extraData) returns()
  1398  func (_Bridge *BridgeTransactor) HandleERC721Transfer(opts *bind.TransactOpts, _requestTxHash [32]byte, _from common.Address, _to common.Address, _tokenAddress common.Address, _tokenId *big.Int, _requestedNonce uint64, _requestedBlockNumber uint64, _tokenURI string, _extraData []byte) (*types.Transaction, error) {
  1399  	return _Bridge.contract.Transact(opts, "handleERC721Transfer", _requestTxHash, _from, _to, _tokenAddress, _tokenId, _requestedNonce, _requestedBlockNumber, _tokenURI, _extraData)
  1400  }
  1401  
  1402  // HandleERC721Transfer is a paid mutator transaction binding the contract method 0xafb60223.
  1403  //
  1404  // Solidity: function handleERC721Transfer(bytes32 _requestTxHash, address _from, address _to, address _tokenAddress, uint256 _tokenId, uint64 _requestedNonce, uint64 _requestedBlockNumber, string _tokenURI, bytes _extraData) returns()
  1405  func (_Bridge *BridgeSession) HandleERC721Transfer(_requestTxHash [32]byte, _from common.Address, _to common.Address, _tokenAddress common.Address, _tokenId *big.Int, _requestedNonce uint64, _requestedBlockNumber uint64, _tokenURI string, _extraData []byte) (*types.Transaction, error) {
  1406  	return _Bridge.Contract.HandleERC721Transfer(&_Bridge.TransactOpts, _requestTxHash, _from, _to, _tokenAddress, _tokenId, _requestedNonce, _requestedBlockNumber, _tokenURI, _extraData)
  1407  }
  1408  
  1409  // HandleERC721Transfer is a paid mutator transaction binding the contract method 0xafb60223.
  1410  //
  1411  // Solidity: function handleERC721Transfer(bytes32 _requestTxHash, address _from, address _to, address _tokenAddress, uint256 _tokenId, uint64 _requestedNonce, uint64 _requestedBlockNumber, string _tokenURI, bytes _extraData) returns()
  1412  func (_Bridge *BridgeTransactorSession) HandleERC721Transfer(_requestTxHash [32]byte, _from common.Address, _to common.Address, _tokenAddress common.Address, _tokenId *big.Int, _requestedNonce uint64, _requestedBlockNumber uint64, _tokenURI string, _extraData []byte) (*types.Transaction, error) {
  1413  	return _Bridge.Contract.HandleERC721Transfer(&_Bridge.TransactOpts, _requestTxHash, _from, _to, _tokenAddress, _tokenId, _requestedNonce, _requestedBlockNumber, _tokenURI, _extraData)
  1414  }
  1415  
  1416  // HandleKLAYTransfer is a paid mutator transaction binding the contract method 0xa066a7ed.
  1417  //
  1418  // Solidity: function handleKLAYTransfer(bytes32 _requestTxHash, address _from, address _to, uint256 _value, uint64 _requestedNonce, uint64 _requestedBlockNumber, bytes _extraData) returns()
  1419  func (_Bridge *BridgeTransactor) HandleKLAYTransfer(opts *bind.TransactOpts, _requestTxHash [32]byte, _from common.Address, _to common.Address, _value *big.Int, _requestedNonce uint64, _requestedBlockNumber uint64, _extraData []byte) (*types.Transaction, error) {
  1420  	return _Bridge.contract.Transact(opts, "handleKLAYTransfer", _requestTxHash, _from, _to, _value, _requestedNonce, _requestedBlockNumber, _extraData)
  1421  }
  1422  
  1423  // HandleKLAYTransfer is a paid mutator transaction binding the contract method 0xa066a7ed.
  1424  //
  1425  // Solidity: function handleKLAYTransfer(bytes32 _requestTxHash, address _from, address _to, uint256 _value, uint64 _requestedNonce, uint64 _requestedBlockNumber, bytes _extraData) returns()
  1426  func (_Bridge *BridgeSession) HandleKLAYTransfer(_requestTxHash [32]byte, _from common.Address, _to common.Address, _value *big.Int, _requestedNonce uint64, _requestedBlockNumber uint64, _extraData []byte) (*types.Transaction, error) {
  1427  	return _Bridge.Contract.HandleKLAYTransfer(&_Bridge.TransactOpts, _requestTxHash, _from, _to, _value, _requestedNonce, _requestedBlockNumber, _extraData)
  1428  }
  1429  
  1430  // HandleKLAYTransfer is a paid mutator transaction binding the contract method 0xa066a7ed.
  1431  //
  1432  // Solidity: function handleKLAYTransfer(bytes32 _requestTxHash, address _from, address _to, uint256 _value, uint64 _requestedNonce, uint64 _requestedBlockNumber, bytes _extraData) returns()
  1433  func (_Bridge *BridgeTransactorSession) HandleKLAYTransfer(_requestTxHash [32]byte, _from common.Address, _to common.Address, _value *big.Int, _requestedNonce uint64, _requestedBlockNumber uint64, _extraData []byte) (*types.Transaction, error) {
  1434  	return _Bridge.Contract.HandleKLAYTransfer(&_Bridge.TransactOpts, _requestTxHash, _from, _to, _value, _requestedNonce, _requestedBlockNumber, _extraData)
  1435  }
  1436  
  1437  // LockKLAY is a paid mutator transaction binding the contract method 0x9f071329.
  1438  //
  1439  // Solidity: function lockKLAY() returns()
  1440  func (_Bridge *BridgeTransactor) LockKLAY(opts *bind.TransactOpts) (*types.Transaction, error) {
  1441  	return _Bridge.contract.Transact(opts, "lockKLAY")
  1442  }
  1443  
  1444  // LockKLAY is a paid mutator transaction binding the contract method 0x9f071329.
  1445  //
  1446  // Solidity: function lockKLAY() returns()
  1447  func (_Bridge *BridgeSession) LockKLAY() (*types.Transaction, error) {
  1448  	return _Bridge.Contract.LockKLAY(&_Bridge.TransactOpts)
  1449  }
  1450  
  1451  // LockKLAY is a paid mutator transaction binding the contract method 0x9f071329.
  1452  //
  1453  // Solidity: function lockKLAY() returns()
  1454  func (_Bridge *BridgeTransactorSession) LockKLAY() (*types.Transaction, error) {
  1455  	return _Bridge.Contract.LockKLAY(&_Bridge.TransactOpts)
  1456  }
  1457  
  1458  // LockToken is a paid mutator transaction binding the contract method 0x10693fcd.
  1459  //
  1460  // Solidity: function lockToken(address _token) returns()
  1461  func (_Bridge *BridgeTransactor) LockToken(opts *bind.TransactOpts, _token common.Address) (*types.Transaction, error) {
  1462  	return _Bridge.contract.Transact(opts, "lockToken", _token)
  1463  }
  1464  
  1465  // LockToken is a paid mutator transaction binding the contract method 0x10693fcd.
  1466  //
  1467  // Solidity: function lockToken(address _token) returns()
  1468  func (_Bridge *BridgeSession) LockToken(_token common.Address) (*types.Transaction, error) {
  1469  	return _Bridge.Contract.LockToken(&_Bridge.TransactOpts, _token)
  1470  }
  1471  
  1472  // LockToken is a paid mutator transaction binding the contract method 0x10693fcd.
  1473  //
  1474  // Solidity: function lockToken(address _token) returns()
  1475  func (_Bridge *BridgeTransactorSession) LockToken(_token common.Address) (*types.Transaction, error) {
  1476  	return _Bridge.Contract.LockToken(&_Bridge.TransactOpts, _token)
  1477  }
  1478  
  1479  // OnERC20Received is a paid mutator transaction binding the contract method 0xf1656e53.
  1480  //
  1481  // Solidity: function onERC20Received(address _from, address _to, uint256 _value, uint256 _feeLimit, bytes _extraData) returns()
  1482  func (_Bridge *BridgeTransactor) OnERC20Received(opts *bind.TransactOpts, _from common.Address, _to common.Address, _value *big.Int, _feeLimit *big.Int, _extraData []byte) (*types.Transaction, error) {
  1483  	return _Bridge.contract.Transact(opts, "onERC20Received", _from, _to, _value, _feeLimit, _extraData)
  1484  }
  1485  
  1486  // OnERC20Received is a paid mutator transaction binding the contract method 0xf1656e53.
  1487  //
  1488  // Solidity: function onERC20Received(address _from, address _to, uint256 _value, uint256 _feeLimit, bytes _extraData) returns()
  1489  func (_Bridge *BridgeSession) OnERC20Received(_from common.Address, _to common.Address, _value *big.Int, _feeLimit *big.Int, _extraData []byte) (*types.Transaction, error) {
  1490  	return _Bridge.Contract.OnERC20Received(&_Bridge.TransactOpts, _from, _to, _value, _feeLimit, _extraData)
  1491  }
  1492  
  1493  // OnERC20Received is a paid mutator transaction binding the contract method 0xf1656e53.
  1494  //
  1495  // Solidity: function onERC20Received(address _from, address _to, uint256 _value, uint256 _feeLimit, bytes _extraData) returns()
  1496  func (_Bridge *BridgeTransactorSession) OnERC20Received(_from common.Address, _to common.Address, _value *big.Int, _feeLimit *big.Int, _extraData []byte) (*types.Transaction, error) {
  1497  	return _Bridge.Contract.OnERC20Received(&_Bridge.TransactOpts, _from, _to, _value, _feeLimit, _extraData)
  1498  }
  1499  
  1500  // OnERC721Received is a paid mutator transaction binding the contract method 0xcf0da290.
  1501  //
  1502  // Solidity: function onERC721Received(address _from, uint256 _tokenId, address _to, bytes _extraData) returns()
  1503  func (_Bridge *BridgeTransactor) OnERC721Received(opts *bind.TransactOpts, _from common.Address, _tokenId *big.Int, _to common.Address, _extraData []byte) (*types.Transaction, error) {
  1504  	return _Bridge.contract.Transact(opts, "onERC721Received", _from, _tokenId, _to, _extraData)
  1505  }
  1506  
  1507  // OnERC721Received is a paid mutator transaction binding the contract method 0xcf0da290.
  1508  //
  1509  // Solidity: function onERC721Received(address _from, uint256 _tokenId, address _to, bytes _extraData) returns()
  1510  func (_Bridge *BridgeSession) OnERC721Received(_from common.Address, _tokenId *big.Int, _to common.Address, _extraData []byte) (*types.Transaction, error) {
  1511  	return _Bridge.Contract.OnERC721Received(&_Bridge.TransactOpts, _from, _tokenId, _to, _extraData)
  1512  }
  1513  
  1514  // OnERC721Received is a paid mutator transaction binding the contract method 0xcf0da290.
  1515  //
  1516  // Solidity: function onERC721Received(address _from, uint256 _tokenId, address _to, bytes _extraData) returns()
  1517  func (_Bridge *BridgeTransactorSession) OnERC721Received(_from common.Address, _tokenId *big.Int, _to common.Address, _extraData []byte) (*types.Transaction, error) {
  1518  	return _Bridge.Contract.OnERC721Received(&_Bridge.TransactOpts, _from, _tokenId, _to, _extraData)
  1519  }
  1520  
  1521  // RegisterOperator is a paid mutator transaction binding the contract method 0x3682a450.
  1522  //
  1523  // Solidity: function registerOperator(address _operator) returns()
  1524  func (_Bridge *BridgeTransactor) RegisterOperator(opts *bind.TransactOpts, _operator common.Address) (*types.Transaction, error) {
  1525  	return _Bridge.contract.Transact(opts, "registerOperator", _operator)
  1526  }
  1527  
  1528  // RegisterOperator is a paid mutator transaction binding the contract method 0x3682a450.
  1529  //
  1530  // Solidity: function registerOperator(address _operator) returns()
  1531  func (_Bridge *BridgeSession) RegisterOperator(_operator common.Address) (*types.Transaction, error) {
  1532  	return _Bridge.Contract.RegisterOperator(&_Bridge.TransactOpts, _operator)
  1533  }
  1534  
  1535  // RegisterOperator is a paid mutator transaction binding the contract method 0x3682a450.
  1536  //
  1537  // Solidity: function registerOperator(address _operator) returns()
  1538  func (_Bridge *BridgeTransactorSession) RegisterOperator(_operator common.Address) (*types.Transaction, error) {
  1539  	return _Bridge.Contract.RegisterOperator(&_Bridge.TransactOpts, _operator)
  1540  }
  1541  
  1542  // RegisterToken is a paid mutator transaction binding the contract method 0x4739f7e5.
  1543  //
  1544  // Solidity: function registerToken(address _token, address _cToken) returns()
  1545  func (_Bridge *BridgeTransactor) RegisterToken(opts *bind.TransactOpts, _token common.Address, _cToken common.Address) (*types.Transaction, error) {
  1546  	return _Bridge.contract.Transact(opts, "registerToken", _token, _cToken)
  1547  }
  1548  
  1549  // RegisterToken is a paid mutator transaction binding the contract method 0x4739f7e5.
  1550  //
  1551  // Solidity: function registerToken(address _token, address _cToken) returns()
  1552  func (_Bridge *BridgeSession) RegisterToken(_token common.Address, _cToken common.Address) (*types.Transaction, error) {
  1553  	return _Bridge.Contract.RegisterToken(&_Bridge.TransactOpts, _token, _cToken)
  1554  }
  1555  
  1556  // RegisterToken is a paid mutator transaction binding the contract method 0x4739f7e5.
  1557  //
  1558  // Solidity: function registerToken(address _token, address _cToken) returns()
  1559  func (_Bridge *BridgeTransactorSession) RegisterToken(_token common.Address, _cToken common.Address) (*types.Transaction, error) {
  1560  	return _Bridge.Contract.RegisterToken(&_Bridge.TransactOpts, _token, _cToken)
  1561  }
  1562  
  1563  // RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6.
  1564  //
  1565  // Solidity: function renounceOwnership() returns()
  1566  func (_Bridge *BridgeTransactor) RenounceOwnership(opts *bind.TransactOpts) (*types.Transaction, error) {
  1567  	return _Bridge.contract.Transact(opts, "renounceOwnership")
  1568  }
  1569  
  1570  // RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6.
  1571  //
  1572  // Solidity: function renounceOwnership() returns()
  1573  func (_Bridge *BridgeSession) RenounceOwnership() (*types.Transaction, error) {
  1574  	return _Bridge.Contract.RenounceOwnership(&_Bridge.TransactOpts)
  1575  }
  1576  
  1577  // RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6.
  1578  //
  1579  // Solidity: function renounceOwnership() returns()
  1580  func (_Bridge *BridgeTransactorSession) RenounceOwnership() (*types.Transaction, error) {
  1581  	return _Bridge.Contract.RenounceOwnership(&_Bridge.TransactOpts)
  1582  }
  1583  
  1584  // RequestERC20Transfer is a paid mutator transaction binding the contract method 0x26c23b54.
  1585  //
  1586  // Solidity: function requestERC20Transfer(address _tokenAddress, address _to, uint256 _value, uint256 _feeLimit, bytes _extraData) returns()
  1587  func (_Bridge *BridgeTransactor) RequestERC20Transfer(opts *bind.TransactOpts, _tokenAddress common.Address, _to common.Address, _value *big.Int, _feeLimit *big.Int, _extraData []byte) (*types.Transaction, error) {
  1588  	return _Bridge.contract.Transact(opts, "requestERC20Transfer", _tokenAddress, _to, _value, _feeLimit, _extraData)
  1589  }
  1590  
  1591  // RequestERC20Transfer is a paid mutator transaction binding the contract method 0x26c23b54.
  1592  //
  1593  // Solidity: function requestERC20Transfer(address _tokenAddress, address _to, uint256 _value, uint256 _feeLimit, bytes _extraData) returns()
  1594  func (_Bridge *BridgeSession) RequestERC20Transfer(_tokenAddress common.Address, _to common.Address, _value *big.Int, _feeLimit *big.Int, _extraData []byte) (*types.Transaction, error) {
  1595  	return _Bridge.Contract.RequestERC20Transfer(&_Bridge.TransactOpts, _tokenAddress, _to, _value, _feeLimit, _extraData)
  1596  }
  1597  
  1598  // RequestERC20Transfer is a paid mutator transaction binding the contract method 0x26c23b54.
  1599  //
  1600  // Solidity: function requestERC20Transfer(address _tokenAddress, address _to, uint256 _value, uint256 _feeLimit, bytes _extraData) returns()
  1601  func (_Bridge *BridgeTransactorSession) RequestERC20Transfer(_tokenAddress common.Address, _to common.Address, _value *big.Int, _feeLimit *big.Int, _extraData []byte) (*types.Transaction, error) {
  1602  	return _Bridge.Contract.RequestERC20Transfer(&_Bridge.TransactOpts, _tokenAddress, _to, _value, _feeLimit, _extraData)
  1603  }
  1604  
  1605  // RequestERC721Transfer is a paid mutator transaction binding the contract method 0x22604742.
  1606  //
  1607  // Solidity: function requestERC721Transfer(address _tokenAddress, address _to, uint256 _tokenId, bytes _extraData) returns()
  1608  func (_Bridge *BridgeTransactor) RequestERC721Transfer(opts *bind.TransactOpts, _tokenAddress common.Address, _to common.Address, _tokenId *big.Int, _extraData []byte) (*types.Transaction, error) {
  1609  	return _Bridge.contract.Transact(opts, "requestERC721Transfer", _tokenAddress, _to, _tokenId, _extraData)
  1610  }
  1611  
  1612  // RequestERC721Transfer is a paid mutator transaction binding the contract method 0x22604742.
  1613  //
  1614  // Solidity: function requestERC721Transfer(address _tokenAddress, address _to, uint256 _tokenId, bytes _extraData) returns()
  1615  func (_Bridge *BridgeSession) RequestERC721Transfer(_tokenAddress common.Address, _to common.Address, _tokenId *big.Int, _extraData []byte) (*types.Transaction, error) {
  1616  	return _Bridge.Contract.RequestERC721Transfer(&_Bridge.TransactOpts, _tokenAddress, _to, _tokenId, _extraData)
  1617  }
  1618  
  1619  // RequestERC721Transfer is a paid mutator transaction binding the contract method 0x22604742.
  1620  //
  1621  // Solidity: function requestERC721Transfer(address _tokenAddress, address _to, uint256 _tokenId, bytes _extraData) returns()
  1622  func (_Bridge *BridgeTransactorSession) RequestERC721Transfer(_tokenAddress common.Address, _to common.Address, _tokenId *big.Int, _extraData []byte) (*types.Transaction, error) {
  1623  	return _Bridge.Contract.RequestERC721Transfer(&_Bridge.TransactOpts, _tokenAddress, _to, _tokenId, _extraData)
  1624  }
  1625  
  1626  // RequestKLAYTransfer is a paid mutator transaction binding the contract method 0x75ebdc09.
  1627  //
  1628  // Solidity: function requestKLAYTransfer(address _to, uint256 _value, bytes _extraData) payable returns()
  1629  func (_Bridge *BridgeTransactor) RequestKLAYTransfer(opts *bind.TransactOpts, _to common.Address, _value *big.Int, _extraData []byte) (*types.Transaction, error) {
  1630  	return _Bridge.contract.Transact(opts, "requestKLAYTransfer", _to, _value, _extraData)
  1631  }
  1632  
  1633  // RequestKLAYTransfer is a paid mutator transaction binding the contract method 0x75ebdc09.
  1634  //
  1635  // Solidity: function requestKLAYTransfer(address _to, uint256 _value, bytes _extraData) payable returns()
  1636  func (_Bridge *BridgeSession) RequestKLAYTransfer(_to common.Address, _value *big.Int, _extraData []byte) (*types.Transaction, error) {
  1637  	return _Bridge.Contract.RequestKLAYTransfer(&_Bridge.TransactOpts, _to, _value, _extraData)
  1638  }
  1639  
  1640  // RequestKLAYTransfer is a paid mutator transaction binding the contract method 0x75ebdc09.
  1641  //
  1642  // Solidity: function requestKLAYTransfer(address _to, uint256 _value, bytes _extraData) payable returns()
  1643  func (_Bridge *BridgeTransactorSession) RequestKLAYTransfer(_to common.Address, _value *big.Int, _extraData []byte) (*types.Transaction, error) {
  1644  	return _Bridge.Contract.RequestKLAYTransfer(&_Bridge.TransactOpts, _to, _value, _extraData)
  1645  }
  1646  
  1647  // SetCounterPartBridge is a paid mutator transaction binding the contract method 0x87b04c55.
  1648  //
  1649  // Solidity: function setCounterPartBridge(address _bridge) returns()
  1650  func (_Bridge *BridgeTransactor) SetCounterPartBridge(opts *bind.TransactOpts, _bridge common.Address) (*types.Transaction, error) {
  1651  	return _Bridge.contract.Transact(opts, "setCounterPartBridge", _bridge)
  1652  }
  1653  
  1654  // SetCounterPartBridge is a paid mutator transaction binding the contract method 0x87b04c55.
  1655  //
  1656  // Solidity: function setCounterPartBridge(address _bridge) returns()
  1657  func (_Bridge *BridgeSession) SetCounterPartBridge(_bridge common.Address) (*types.Transaction, error) {
  1658  	return _Bridge.Contract.SetCounterPartBridge(&_Bridge.TransactOpts, _bridge)
  1659  }
  1660  
  1661  // SetCounterPartBridge is a paid mutator transaction binding the contract method 0x87b04c55.
  1662  //
  1663  // Solidity: function setCounterPartBridge(address _bridge) returns()
  1664  func (_Bridge *BridgeTransactorSession) SetCounterPartBridge(_bridge common.Address) (*types.Transaction, error) {
  1665  	return _Bridge.Contract.SetCounterPartBridge(&_Bridge.TransactOpts, _bridge)
  1666  }
  1667  
  1668  // SetERC20Fee is a paid mutator transaction binding the contract method 0x2f88396c.
  1669  //
  1670  // Solidity: function setERC20Fee(address _token, uint256 _fee, uint64 _requestNonce) returns()
  1671  func (_Bridge *BridgeTransactor) SetERC20Fee(opts *bind.TransactOpts, _token common.Address, _fee *big.Int, _requestNonce uint64) (*types.Transaction, error) {
  1672  	return _Bridge.contract.Transact(opts, "setERC20Fee", _token, _fee, _requestNonce)
  1673  }
  1674  
  1675  // SetERC20Fee is a paid mutator transaction binding the contract method 0x2f88396c.
  1676  //
  1677  // Solidity: function setERC20Fee(address _token, uint256 _fee, uint64 _requestNonce) returns()
  1678  func (_Bridge *BridgeSession) SetERC20Fee(_token common.Address, _fee *big.Int, _requestNonce uint64) (*types.Transaction, error) {
  1679  	return _Bridge.Contract.SetERC20Fee(&_Bridge.TransactOpts, _token, _fee, _requestNonce)
  1680  }
  1681  
  1682  // SetERC20Fee is a paid mutator transaction binding the contract method 0x2f88396c.
  1683  //
  1684  // Solidity: function setERC20Fee(address _token, uint256 _fee, uint64 _requestNonce) returns()
  1685  func (_Bridge *BridgeTransactorSession) SetERC20Fee(_token common.Address, _fee *big.Int, _requestNonce uint64) (*types.Transaction, error) {
  1686  	return _Bridge.Contract.SetERC20Fee(&_Bridge.TransactOpts, _token, _fee, _requestNonce)
  1687  }
  1688  
  1689  // SetFeeReceiver is a paid mutator transaction binding the contract method 0xefdcd974.
  1690  //
  1691  // Solidity: function setFeeReceiver(address _feeReceiver) returns()
  1692  func (_Bridge *BridgeTransactor) SetFeeReceiver(opts *bind.TransactOpts, _feeReceiver common.Address) (*types.Transaction, error) {
  1693  	return _Bridge.contract.Transact(opts, "setFeeReceiver", _feeReceiver)
  1694  }
  1695  
  1696  // SetFeeReceiver is a paid mutator transaction binding the contract method 0xefdcd974.
  1697  //
  1698  // Solidity: function setFeeReceiver(address _feeReceiver) returns()
  1699  func (_Bridge *BridgeSession) SetFeeReceiver(_feeReceiver common.Address) (*types.Transaction, error) {
  1700  	return _Bridge.Contract.SetFeeReceiver(&_Bridge.TransactOpts, _feeReceiver)
  1701  }
  1702  
  1703  // SetFeeReceiver is a paid mutator transaction binding the contract method 0xefdcd974.
  1704  //
  1705  // Solidity: function setFeeReceiver(address _feeReceiver) returns()
  1706  func (_Bridge *BridgeTransactorSession) SetFeeReceiver(_feeReceiver common.Address) (*types.Transaction, error) {
  1707  	return _Bridge.Contract.SetFeeReceiver(&_Bridge.TransactOpts, _feeReceiver)
  1708  }
  1709  
  1710  // SetKLAYFee is a paid mutator transaction binding the contract method 0x1a2ae53e.
  1711  //
  1712  // Solidity: function setKLAYFee(uint256 _fee, uint64 _requestNonce) returns()
  1713  func (_Bridge *BridgeTransactor) SetKLAYFee(opts *bind.TransactOpts, _fee *big.Int, _requestNonce uint64) (*types.Transaction, error) {
  1714  	return _Bridge.contract.Transact(opts, "setKLAYFee", _fee, _requestNonce)
  1715  }
  1716  
  1717  // SetKLAYFee is a paid mutator transaction binding the contract method 0x1a2ae53e.
  1718  //
  1719  // Solidity: function setKLAYFee(uint256 _fee, uint64 _requestNonce) returns()
  1720  func (_Bridge *BridgeSession) SetKLAYFee(_fee *big.Int, _requestNonce uint64) (*types.Transaction, error) {
  1721  	return _Bridge.Contract.SetKLAYFee(&_Bridge.TransactOpts, _fee, _requestNonce)
  1722  }
  1723  
  1724  // SetKLAYFee is a paid mutator transaction binding the contract method 0x1a2ae53e.
  1725  //
  1726  // Solidity: function setKLAYFee(uint256 _fee, uint64 _requestNonce) returns()
  1727  func (_Bridge *BridgeTransactorSession) SetKLAYFee(_fee *big.Int, _requestNonce uint64) (*types.Transaction, error) {
  1728  	return _Bridge.Contract.SetKLAYFee(&_Bridge.TransactOpts, _fee, _requestNonce)
  1729  }
  1730  
  1731  // SetOperatorThreshold is a paid mutator transaction binding the contract method 0xee2aec65.
  1732  //
  1733  // Solidity: function setOperatorThreshold(uint8 _voteType, uint8 _threshold) returns()
  1734  func (_Bridge *BridgeTransactor) SetOperatorThreshold(opts *bind.TransactOpts, _voteType uint8, _threshold uint8) (*types.Transaction, error) {
  1735  	return _Bridge.contract.Transact(opts, "setOperatorThreshold", _voteType, _threshold)
  1736  }
  1737  
  1738  // SetOperatorThreshold is a paid mutator transaction binding the contract method 0xee2aec65.
  1739  //
  1740  // Solidity: function setOperatorThreshold(uint8 _voteType, uint8 _threshold) returns()
  1741  func (_Bridge *BridgeSession) SetOperatorThreshold(_voteType uint8, _threshold uint8) (*types.Transaction, error) {
  1742  	return _Bridge.Contract.SetOperatorThreshold(&_Bridge.TransactOpts, _voteType, _threshold)
  1743  }
  1744  
  1745  // SetOperatorThreshold is a paid mutator transaction binding the contract method 0xee2aec65.
  1746  //
  1747  // Solidity: function setOperatorThreshold(uint8 _voteType, uint8 _threshold) returns()
  1748  func (_Bridge *BridgeTransactorSession) SetOperatorThreshold(_voteType uint8, _threshold uint8) (*types.Transaction, error) {
  1749  	return _Bridge.Contract.SetOperatorThreshold(&_Bridge.TransactOpts, _voteType, _threshold)
  1750  }
  1751  
  1752  // Start is a paid mutator transaction binding the contract method 0xc877cf37.
  1753  //
  1754  // Solidity: function start(bool _status) returns()
  1755  func (_Bridge *BridgeTransactor) Start(opts *bind.TransactOpts, _status bool) (*types.Transaction, error) {
  1756  	return _Bridge.contract.Transact(opts, "start", _status)
  1757  }
  1758  
  1759  // Start is a paid mutator transaction binding the contract method 0xc877cf37.
  1760  //
  1761  // Solidity: function start(bool _status) returns()
  1762  func (_Bridge *BridgeSession) Start(_status bool) (*types.Transaction, error) {
  1763  	return _Bridge.Contract.Start(&_Bridge.TransactOpts, _status)
  1764  }
  1765  
  1766  // Start is a paid mutator transaction binding the contract method 0xc877cf37.
  1767  //
  1768  // Solidity: function start(bool _status) returns()
  1769  func (_Bridge *BridgeTransactorSession) Start(_status bool) (*types.Transaction, error) {
  1770  	return _Bridge.Contract.Start(&_Bridge.TransactOpts, _status)
  1771  }
  1772  
  1773  // TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b.
  1774  //
  1775  // Solidity: function transferOwnership(address newOwner) returns()
  1776  func (_Bridge *BridgeTransactor) TransferOwnership(opts *bind.TransactOpts, newOwner common.Address) (*types.Transaction, error) {
  1777  	return _Bridge.contract.Transact(opts, "transferOwnership", newOwner)
  1778  }
  1779  
  1780  // TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b.
  1781  //
  1782  // Solidity: function transferOwnership(address newOwner) returns()
  1783  func (_Bridge *BridgeSession) TransferOwnership(newOwner common.Address) (*types.Transaction, error) {
  1784  	return _Bridge.Contract.TransferOwnership(&_Bridge.TransactOpts, newOwner)
  1785  }
  1786  
  1787  // TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b.
  1788  //
  1789  // Solidity: function transferOwnership(address newOwner) returns()
  1790  func (_Bridge *BridgeTransactorSession) TransferOwnership(newOwner common.Address) (*types.Transaction, error) {
  1791  	return _Bridge.Contract.TransferOwnership(&_Bridge.TransactOpts, newOwner)
  1792  }
  1793  
  1794  // UnlockKLAY is a paid mutator transaction binding the contract method 0x1ebdca38.
  1795  //
  1796  // Solidity: function unlockKLAY() returns()
  1797  func (_Bridge *BridgeTransactor) UnlockKLAY(opts *bind.TransactOpts) (*types.Transaction, error) {
  1798  	return _Bridge.contract.Transact(opts, "unlockKLAY")
  1799  }
  1800  
  1801  // UnlockKLAY is a paid mutator transaction binding the contract method 0x1ebdca38.
  1802  //
  1803  // Solidity: function unlockKLAY() returns()
  1804  func (_Bridge *BridgeSession) UnlockKLAY() (*types.Transaction, error) {
  1805  	return _Bridge.Contract.UnlockKLAY(&_Bridge.TransactOpts)
  1806  }
  1807  
  1808  // UnlockKLAY is a paid mutator transaction binding the contract method 0x1ebdca38.
  1809  //
  1810  // Solidity: function unlockKLAY() returns()
  1811  func (_Bridge *BridgeTransactorSession) UnlockKLAY() (*types.Transaction, error) {
  1812  	return _Bridge.Contract.UnlockKLAY(&_Bridge.TransactOpts)
  1813  }
  1814  
  1815  // UnlockToken is a paid mutator transaction binding the contract method 0x9ef2017b.
  1816  //
  1817  // Solidity: function unlockToken(address _token) returns()
  1818  func (_Bridge *BridgeTransactor) UnlockToken(opts *bind.TransactOpts, _token common.Address) (*types.Transaction, error) {
  1819  	return _Bridge.contract.Transact(opts, "unlockToken", _token)
  1820  }
  1821  
  1822  // UnlockToken is a paid mutator transaction binding the contract method 0x9ef2017b.
  1823  //
  1824  // Solidity: function unlockToken(address _token) returns()
  1825  func (_Bridge *BridgeSession) UnlockToken(_token common.Address) (*types.Transaction, error) {
  1826  	return _Bridge.Contract.UnlockToken(&_Bridge.TransactOpts, _token)
  1827  }
  1828  
  1829  // UnlockToken is a paid mutator transaction binding the contract method 0x9ef2017b.
  1830  //
  1831  // Solidity: function unlockToken(address _token) returns()
  1832  func (_Bridge *BridgeTransactorSession) UnlockToken(_token common.Address) (*types.Transaction, error) {
  1833  	return _Bridge.Contract.UnlockToken(&_Bridge.TransactOpts, _token)
  1834  }
  1835  
  1836  // Fallback is a paid mutator transaction binding the contract fallback function.
  1837  //
  1838  // Solidity: fallback() payable returns()
  1839  func (_Bridge *BridgeTransactor) Fallback(opts *bind.TransactOpts, calldata []byte) (*types.Transaction, error) {
  1840  	return _Bridge.contract.RawTransact(opts, calldata)
  1841  }
  1842  
  1843  // Fallback is a paid mutator transaction binding the contract fallback function.
  1844  //
  1845  // Solidity: fallback() payable returns()
  1846  func (_Bridge *BridgeSession) Fallback(calldata []byte) (*types.Transaction, error) {
  1847  	return _Bridge.Contract.Fallback(&_Bridge.TransactOpts, calldata)
  1848  }
  1849  
  1850  // Fallback is a paid mutator transaction binding the contract fallback function.
  1851  //
  1852  // Solidity: fallback() payable returns()
  1853  func (_Bridge *BridgeTransactorSession) Fallback(calldata []byte) (*types.Transaction, error) {
  1854  	return _Bridge.Contract.Fallback(&_Bridge.TransactOpts, calldata)
  1855  }
  1856  
  1857  // BridgeERC20FeeChangedIterator is returned from FilterERC20FeeChanged and is used to iterate over the raw logs and unpacked data for ERC20FeeChanged events raised by the Bridge contract.
  1858  type BridgeERC20FeeChangedIterator struct {
  1859  	Event *BridgeERC20FeeChanged // Event containing the contract specifics and raw log
  1860  
  1861  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  1862  	event    string              // Event name to use for unpacking event data
  1863  
  1864  	logs chan types.Log      // Log channel receiving the found contract events
  1865  	sub  klaytn.Subscription // Subscription for errors, completion and termination
  1866  	done bool                // Whether the subscription completed delivering logs
  1867  	fail error               // Occurred error to stop iteration
  1868  }
  1869  
  1870  // Next advances the iterator to the subsequent event, returning whether there
  1871  // are any more events found. In case of a retrieval or parsing error, false is
  1872  // returned and Error() can be queried for the exact failure.
  1873  func (it *BridgeERC20FeeChangedIterator) Next() bool {
  1874  	// If the iterator failed, stop iterating
  1875  	if it.fail != nil {
  1876  		return false
  1877  	}
  1878  	// If the iterator completed, deliver directly whatever's available
  1879  	if it.done {
  1880  		select {
  1881  		case log := <-it.logs:
  1882  			it.Event = new(BridgeERC20FeeChanged)
  1883  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1884  				it.fail = err
  1885  				return false
  1886  			}
  1887  			it.Event.Raw = log
  1888  			return true
  1889  
  1890  		default:
  1891  			return false
  1892  		}
  1893  	}
  1894  	// Iterator still in progress, wait for either a data or an error event
  1895  	select {
  1896  	case log := <-it.logs:
  1897  		it.Event = new(BridgeERC20FeeChanged)
  1898  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1899  			it.fail = err
  1900  			return false
  1901  		}
  1902  		it.Event.Raw = log
  1903  		return true
  1904  
  1905  	case err := <-it.sub.Err():
  1906  		it.done = true
  1907  		it.fail = err
  1908  		return it.Next()
  1909  	}
  1910  }
  1911  
  1912  // Error returns any retrieval or parsing error occurred during filtering.
  1913  func (it *BridgeERC20FeeChangedIterator) Error() error {
  1914  	return it.fail
  1915  }
  1916  
  1917  // Close terminates the iteration process, releasing any pending underlying
  1918  // resources.
  1919  func (it *BridgeERC20FeeChangedIterator) Close() error {
  1920  	it.sub.Unsubscribe()
  1921  	return nil
  1922  }
  1923  
  1924  // BridgeERC20FeeChanged represents a ERC20FeeChanged event raised by the Bridge contract.
  1925  type BridgeERC20FeeChanged struct {
  1926  	Token common.Address
  1927  	Fee   *big.Int
  1928  	Raw   types.Log // Blockchain specific contextual infos
  1929  }
  1930  
  1931  // FilterERC20FeeChanged is a free log retrieval operation binding the contract event 0xdb5ad2e76ae20cfa4e7adbc7305d7538442164d85ead9937c98620a1aa4c255b.
  1932  //
  1933  // Solidity: event ERC20FeeChanged(address indexed token, uint256 indexed fee)
  1934  func (_Bridge *BridgeFilterer) FilterERC20FeeChanged(opts *bind.FilterOpts, token []common.Address, fee []*big.Int) (*BridgeERC20FeeChangedIterator, error) {
  1935  
  1936  	var tokenRule []interface{}
  1937  	for _, tokenItem := range token {
  1938  		tokenRule = append(tokenRule, tokenItem)
  1939  	}
  1940  	var feeRule []interface{}
  1941  	for _, feeItem := range fee {
  1942  		feeRule = append(feeRule, feeItem)
  1943  	}
  1944  
  1945  	logs, sub, err := _Bridge.contract.FilterLogs(opts, "ERC20FeeChanged", tokenRule, feeRule)
  1946  	if err != nil {
  1947  		return nil, err
  1948  	}
  1949  	return &BridgeERC20FeeChangedIterator{contract: _Bridge.contract, event: "ERC20FeeChanged", logs: logs, sub: sub}, nil
  1950  }
  1951  
  1952  // WatchERC20FeeChanged is a free log subscription operation binding the contract event 0xdb5ad2e76ae20cfa4e7adbc7305d7538442164d85ead9937c98620a1aa4c255b.
  1953  //
  1954  // Solidity: event ERC20FeeChanged(address indexed token, uint256 indexed fee)
  1955  func (_Bridge *BridgeFilterer) WatchERC20FeeChanged(opts *bind.WatchOpts, sink chan<- *BridgeERC20FeeChanged, token []common.Address, fee []*big.Int) (event.Subscription, error) {
  1956  
  1957  	var tokenRule []interface{}
  1958  	for _, tokenItem := range token {
  1959  		tokenRule = append(tokenRule, tokenItem)
  1960  	}
  1961  	var feeRule []interface{}
  1962  	for _, feeItem := range fee {
  1963  		feeRule = append(feeRule, feeItem)
  1964  	}
  1965  
  1966  	logs, sub, err := _Bridge.contract.WatchLogs(opts, "ERC20FeeChanged", tokenRule, feeRule)
  1967  	if err != nil {
  1968  		return nil, err
  1969  	}
  1970  	return event.NewSubscription(func(quit <-chan struct{}) error {
  1971  		defer sub.Unsubscribe()
  1972  		for {
  1973  			select {
  1974  			case log := <-logs:
  1975  				// New log arrived, parse the event and forward to the user
  1976  				event := new(BridgeERC20FeeChanged)
  1977  				if err := _Bridge.contract.UnpackLog(event, "ERC20FeeChanged", log); err != nil {
  1978  					return err
  1979  				}
  1980  				event.Raw = log
  1981  
  1982  				select {
  1983  				case sink <- event:
  1984  				case err := <-sub.Err():
  1985  					return err
  1986  				case <-quit:
  1987  					return nil
  1988  				}
  1989  			case err := <-sub.Err():
  1990  				return err
  1991  			case <-quit:
  1992  				return nil
  1993  			}
  1994  		}
  1995  	}), nil
  1996  }
  1997  
  1998  // ParseERC20FeeChanged is a log parse operation binding the contract event 0xdb5ad2e76ae20cfa4e7adbc7305d7538442164d85ead9937c98620a1aa4c255b.
  1999  //
  2000  // Solidity: event ERC20FeeChanged(address indexed token, uint256 indexed fee)
  2001  func (_Bridge *BridgeFilterer) ParseERC20FeeChanged(log types.Log) (*BridgeERC20FeeChanged, error) {
  2002  	event := new(BridgeERC20FeeChanged)
  2003  	if err := _Bridge.contract.UnpackLog(event, "ERC20FeeChanged", log); err != nil {
  2004  		return nil, err
  2005  	}
  2006  	return event, nil
  2007  }
  2008  
  2009  // BridgeFeeReceiverChangedIterator is returned from FilterFeeReceiverChanged and is used to iterate over the raw logs and unpacked data for FeeReceiverChanged events raised by the Bridge contract.
  2010  type BridgeFeeReceiverChangedIterator struct {
  2011  	Event *BridgeFeeReceiverChanged // Event containing the contract specifics and raw log
  2012  
  2013  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  2014  	event    string              // Event name to use for unpacking event data
  2015  
  2016  	logs chan types.Log      // Log channel receiving the found contract events
  2017  	sub  klaytn.Subscription // Subscription for errors, completion and termination
  2018  	done bool                // Whether the subscription completed delivering logs
  2019  	fail error               // Occurred error to stop iteration
  2020  }
  2021  
  2022  // Next advances the iterator to the subsequent event, returning whether there
  2023  // are any more events found. In case of a retrieval or parsing error, false is
  2024  // returned and Error() can be queried for the exact failure.
  2025  func (it *BridgeFeeReceiverChangedIterator) Next() bool {
  2026  	// If the iterator failed, stop iterating
  2027  	if it.fail != nil {
  2028  		return false
  2029  	}
  2030  	// If the iterator completed, deliver directly whatever's available
  2031  	if it.done {
  2032  		select {
  2033  		case log := <-it.logs:
  2034  			it.Event = new(BridgeFeeReceiverChanged)
  2035  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  2036  				it.fail = err
  2037  				return false
  2038  			}
  2039  			it.Event.Raw = log
  2040  			return true
  2041  
  2042  		default:
  2043  			return false
  2044  		}
  2045  	}
  2046  	// Iterator still in progress, wait for either a data or an error event
  2047  	select {
  2048  	case log := <-it.logs:
  2049  		it.Event = new(BridgeFeeReceiverChanged)
  2050  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  2051  			it.fail = err
  2052  			return false
  2053  		}
  2054  		it.Event.Raw = log
  2055  		return true
  2056  
  2057  	case err := <-it.sub.Err():
  2058  		it.done = true
  2059  		it.fail = err
  2060  		return it.Next()
  2061  	}
  2062  }
  2063  
  2064  // Error returns any retrieval or parsing error occurred during filtering.
  2065  func (it *BridgeFeeReceiverChangedIterator) Error() error {
  2066  	return it.fail
  2067  }
  2068  
  2069  // Close terminates the iteration process, releasing any pending underlying
  2070  // resources.
  2071  func (it *BridgeFeeReceiverChangedIterator) Close() error {
  2072  	it.sub.Unsubscribe()
  2073  	return nil
  2074  }
  2075  
  2076  // BridgeFeeReceiverChanged represents a FeeReceiverChanged event raised by the Bridge contract.
  2077  type BridgeFeeReceiverChanged struct {
  2078  	FeeReceiver common.Address
  2079  	Raw         types.Log // Blockchain specific contextual infos
  2080  }
  2081  
  2082  // FilterFeeReceiverChanged is a free log retrieval operation binding the contract event 0x647672599d3468abcfa241a13c9e3d34383caadb5cc80fb67c3cdfcd5f786059.
  2083  //
  2084  // Solidity: event FeeReceiverChanged(address indexed feeReceiver)
  2085  func (_Bridge *BridgeFilterer) FilterFeeReceiverChanged(opts *bind.FilterOpts, feeReceiver []common.Address) (*BridgeFeeReceiverChangedIterator, error) {
  2086  
  2087  	var feeReceiverRule []interface{}
  2088  	for _, feeReceiverItem := range feeReceiver {
  2089  		feeReceiverRule = append(feeReceiverRule, feeReceiverItem)
  2090  	}
  2091  
  2092  	logs, sub, err := _Bridge.contract.FilterLogs(opts, "FeeReceiverChanged", feeReceiverRule)
  2093  	if err != nil {
  2094  		return nil, err
  2095  	}
  2096  	return &BridgeFeeReceiverChangedIterator{contract: _Bridge.contract, event: "FeeReceiverChanged", logs: logs, sub: sub}, nil
  2097  }
  2098  
  2099  // WatchFeeReceiverChanged is a free log subscription operation binding the contract event 0x647672599d3468abcfa241a13c9e3d34383caadb5cc80fb67c3cdfcd5f786059.
  2100  //
  2101  // Solidity: event FeeReceiverChanged(address indexed feeReceiver)
  2102  func (_Bridge *BridgeFilterer) WatchFeeReceiverChanged(opts *bind.WatchOpts, sink chan<- *BridgeFeeReceiverChanged, feeReceiver []common.Address) (event.Subscription, error) {
  2103  
  2104  	var feeReceiverRule []interface{}
  2105  	for _, feeReceiverItem := range feeReceiver {
  2106  		feeReceiverRule = append(feeReceiverRule, feeReceiverItem)
  2107  	}
  2108  
  2109  	logs, sub, err := _Bridge.contract.WatchLogs(opts, "FeeReceiverChanged", feeReceiverRule)
  2110  	if err != nil {
  2111  		return nil, err
  2112  	}
  2113  	return event.NewSubscription(func(quit <-chan struct{}) error {
  2114  		defer sub.Unsubscribe()
  2115  		for {
  2116  			select {
  2117  			case log := <-logs:
  2118  				// New log arrived, parse the event and forward to the user
  2119  				event := new(BridgeFeeReceiverChanged)
  2120  				if err := _Bridge.contract.UnpackLog(event, "FeeReceiverChanged", log); err != nil {
  2121  					return err
  2122  				}
  2123  				event.Raw = log
  2124  
  2125  				select {
  2126  				case sink <- event:
  2127  				case err := <-sub.Err():
  2128  					return err
  2129  				case <-quit:
  2130  					return nil
  2131  				}
  2132  			case err := <-sub.Err():
  2133  				return err
  2134  			case <-quit:
  2135  				return nil
  2136  			}
  2137  		}
  2138  	}), nil
  2139  }
  2140  
  2141  // ParseFeeReceiverChanged is a log parse operation binding the contract event 0x647672599d3468abcfa241a13c9e3d34383caadb5cc80fb67c3cdfcd5f786059.
  2142  //
  2143  // Solidity: event FeeReceiverChanged(address indexed feeReceiver)
  2144  func (_Bridge *BridgeFilterer) ParseFeeReceiverChanged(log types.Log) (*BridgeFeeReceiverChanged, error) {
  2145  	event := new(BridgeFeeReceiverChanged)
  2146  	if err := _Bridge.contract.UnpackLog(event, "FeeReceiverChanged", log); err != nil {
  2147  		return nil, err
  2148  	}
  2149  	return event, nil
  2150  }
  2151  
  2152  // BridgeHandleValueTransferIterator is returned from FilterHandleValueTransfer and is used to iterate over the raw logs and unpacked data for HandleValueTransfer events raised by the Bridge contract.
  2153  type BridgeHandleValueTransferIterator struct {
  2154  	Event *BridgeHandleValueTransfer // Event containing the contract specifics and raw log
  2155  
  2156  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  2157  	event    string              // Event name to use for unpacking event data
  2158  
  2159  	logs chan types.Log      // Log channel receiving the found contract events
  2160  	sub  klaytn.Subscription // Subscription for errors, completion and termination
  2161  	done bool                // Whether the subscription completed delivering logs
  2162  	fail error               // Occurred error to stop iteration
  2163  }
  2164  
  2165  // Next advances the iterator to the subsequent event, returning whether there
  2166  // are any more events found. In case of a retrieval or parsing error, false is
  2167  // returned and Error() can be queried for the exact failure.
  2168  func (it *BridgeHandleValueTransferIterator) Next() bool {
  2169  	// If the iterator failed, stop iterating
  2170  	if it.fail != nil {
  2171  		return false
  2172  	}
  2173  	// If the iterator completed, deliver directly whatever's available
  2174  	if it.done {
  2175  		select {
  2176  		case log := <-it.logs:
  2177  			it.Event = new(BridgeHandleValueTransfer)
  2178  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  2179  				it.fail = err
  2180  				return false
  2181  			}
  2182  			it.Event.Raw = log
  2183  			return true
  2184  
  2185  		default:
  2186  			return false
  2187  		}
  2188  	}
  2189  	// Iterator still in progress, wait for either a data or an error event
  2190  	select {
  2191  	case log := <-it.logs:
  2192  		it.Event = new(BridgeHandleValueTransfer)
  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  	case err := <-it.sub.Err():
  2201  		it.done = true
  2202  		it.fail = err
  2203  		return it.Next()
  2204  	}
  2205  }
  2206  
  2207  // Error returns any retrieval or parsing error occurred during filtering.
  2208  func (it *BridgeHandleValueTransferIterator) Error() error {
  2209  	return it.fail
  2210  }
  2211  
  2212  // Close terminates the iteration process, releasing any pending underlying
  2213  // resources.
  2214  func (it *BridgeHandleValueTransferIterator) Close() error {
  2215  	it.sub.Unsubscribe()
  2216  	return nil
  2217  }
  2218  
  2219  // BridgeHandleValueTransfer represents a HandleValueTransfer event raised by the Bridge contract.
  2220  type BridgeHandleValueTransfer struct {
  2221  	RequestTxHash    [32]byte
  2222  	TokenType        uint8
  2223  	From             common.Address
  2224  	To               common.Address
  2225  	TokenAddress     common.Address
  2226  	ValueOrTokenId   *big.Int
  2227  	HandleNonce      uint64
  2228  	LowerHandleNonce uint64
  2229  	ExtraData        []byte
  2230  	Raw              types.Log // Blockchain specific contextual infos
  2231  }
  2232  
  2233  // FilterHandleValueTransfer is a free log retrieval operation binding the contract event 0x12b02f226d965a2881e0e8ffed6c421803a22d57ad91f9ef996fe0748ea10175.
  2234  //
  2235  // Solidity: event HandleValueTransfer(bytes32 requestTxHash, uint8 tokenType, address indexed from, address indexed to, address indexed tokenAddress, uint256 valueOrTokenId, uint64 handleNonce, uint64 lowerHandleNonce, bytes extraData)
  2236  func (_Bridge *BridgeFilterer) FilterHandleValueTransfer(opts *bind.FilterOpts, from []common.Address, to []common.Address, tokenAddress []common.Address) (*BridgeHandleValueTransferIterator, error) {
  2237  
  2238  	var fromRule []interface{}
  2239  	for _, fromItem := range from {
  2240  		fromRule = append(fromRule, fromItem)
  2241  	}
  2242  	var toRule []interface{}
  2243  	for _, toItem := range to {
  2244  		toRule = append(toRule, toItem)
  2245  	}
  2246  	var tokenAddressRule []interface{}
  2247  	for _, tokenAddressItem := range tokenAddress {
  2248  		tokenAddressRule = append(tokenAddressRule, tokenAddressItem)
  2249  	}
  2250  
  2251  	logs, sub, err := _Bridge.contract.FilterLogs(opts, "HandleValueTransfer", fromRule, toRule, tokenAddressRule)
  2252  	if err != nil {
  2253  		return nil, err
  2254  	}
  2255  	return &BridgeHandleValueTransferIterator{contract: _Bridge.contract, event: "HandleValueTransfer", logs: logs, sub: sub}, nil
  2256  }
  2257  
  2258  // WatchHandleValueTransfer is a free log subscription operation binding the contract event 0x12b02f226d965a2881e0e8ffed6c421803a22d57ad91f9ef996fe0748ea10175.
  2259  //
  2260  // Solidity: event HandleValueTransfer(bytes32 requestTxHash, uint8 tokenType, address indexed from, address indexed to, address indexed tokenAddress, uint256 valueOrTokenId, uint64 handleNonce, uint64 lowerHandleNonce, bytes extraData)
  2261  func (_Bridge *BridgeFilterer) WatchHandleValueTransfer(opts *bind.WatchOpts, sink chan<- *BridgeHandleValueTransfer, from []common.Address, to []common.Address, tokenAddress []common.Address) (event.Subscription, error) {
  2262  
  2263  	var fromRule []interface{}
  2264  	for _, fromItem := range from {
  2265  		fromRule = append(fromRule, fromItem)
  2266  	}
  2267  	var toRule []interface{}
  2268  	for _, toItem := range to {
  2269  		toRule = append(toRule, toItem)
  2270  	}
  2271  	var tokenAddressRule []interface{}
  2272  	for _, tokenAddressItem := range tokenAddress {
  2273  		tokenAddressRule = append(tokenAddressRule, tokenAddressItem)
  2274  	}
  2275  
  2276  	logs, sub, err := _Bridge.contract.WatchLogs(opts, "HandleValueTransfer", fromRule, toRule, tokenAddressRule)
  2277  	if err != nil {
  2278  		return nil, err
  2279  	}
  2280  	return event.NewSubscription(func(quit <-chan struct{}) error {
  2281  		defer sub.Unsubscribe()
  2282  		for {
  2283  			select {
  2284  			case log := <-logs:
  2285  				// New log arrived, parse the event and forward to the user
  2286  				event := new(BridgeHandleValueTransfer)
  2287  				if err := _Bridge.contract.UnpackLog(event, "HandleValueTransfer", log); err != nil {
  2288  					return err
  2289  				}
  2290  				event.Raw = log
  2291  
  2292  				select {
  2293  				case sink <- event:
  2294  				case err := <-sub.Err():
  2295  					return err
  2296  				case <-quit:
  2297  					return nil
  2298  				}
  2299  			case err := <-sub.Err():
  2300  				return err
  2301  			case <-quit:
  2302  				return nil
  2303  			}
  2304  		}
  2305  	}), nil
  2306  }
  2307  
  2308  // ParseHandleValueTransfer is a log parse operation binding the contract event 0x12b02f226d965a2881e0e8ffed6c421803a22d57ad91f9ef996fe0748ea10175.
  2309  //
  2310  // Solidity: event HandleValueTransfer(bytes32 requestTxHash, uint8 tokenType, address indexed from, address indexed to, address indexed tokenAddress, uint256 valueOrTokenId, uint64 handleNonce, uint64 lowerHandleNonce, bytes extraData)
  2311  func (_Bridge *BridgeFilterer) ParseHandleValueTransfer(log types.Log) (*BridgeHandleValueTransfer, error) {
  2312  	event := new(BridgeHandleValueTransfer)
  2313  	if err := _Bridge.contract.UnpackLog(event, "HandleValueTransfer", log); err != nil {
  2314  		return nil, err
  2315  	}
  2316  	return event, nil
  2317  }
  2318  
  2319  // BridgeKLAYFeeChangedIterator is returned from FilterKLAYFeeChanged and is used to iterate over the raw logs and unpacked data for KLAYFeeChanged events raised by the Bridge contract.
  2320  type BridgeKLAYFeeChangedIterator struct {
  2321  	Event *BridgeKLAYFeeChanged // Event containing the contract specifics and raw log
  2322  
  2323  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  2324  	event    string              // Event name to use for unpacking event data
  2325  
  2326  	logs chan types.Log      // Log channel receiving the found contract events
  2327  	sub  klaytn.Subscription // Subscription for errors, completion and termination
  2328  	done bool                // Whether the subscription completed delivering logs
  2329  	fail error               // Occurred error to stop iteration
  2330  }
  2331  
  2332  // Next advances the iterator to the subsequent event, returning whether there
  2333  // are any more events found. In case of a retrieval or parsing error, false is
  2334  // returned and Error() can be queried for the exact failure.
  2335  func (it *BridgeKLAYFeeChangedIterator) Next() bool {
  2336  	// If the iterator failed, stop iterating
  2337  	if it.fail != nil {
  2338  		return false
  2339  	}
  2340  	// If the iterator completed, deliver directly whatever's available
  2341  	if it.done {
  2342  		select {
  2343  		case log := <-it.logs:
  2344  			it.Event = new(BridgeKLAYFeeChanged)
  2345  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  2346  				it.fail = err
  2347  				return false
  2348  			}
  2349  			it.Event.Raw = log
  2350  			return true
  2351  
  2352  		default:
  2353  			return false
  2354  		}
  2355  	}
  2356  	// Iterator still in progress, wait for either a data or an error event
  2357  	select {
  2358  	case log := <-it.logs:
  2359  		it.Event = new(BridgeKLAYFeeChanged)
  2360  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  2361  			it.fail = err
  2362  			return false
  2363  		}
  2364  		it.Event.Raw = log
  2365  		return true
  2366  
  2367  	case err := <-it.sub.Err():
  2368  		it.done = true
  2369  		it.fail = err
  2370  		return it.Next()
  2371  	}
  2372  }
  2373  
  2374  // Error returns any retrieval or parsing error occurred during filtering.
  2375  func (it *BridgeKLAYFeeChangedIterator) Error() error {
  2376  	return it.fail
  2377  }
  2378  
  2379  // Close terminates the iteration process, releasing any pending underlying
  2380  // resources.
  2381  func (it *BridgeKLAYFeeChangedIterator) Close() error {
  2382  	it.sub.Unsubscribe()
  2383  	return nil
  2384  }
  2385  
  2386  // BridgeKLAYFeeChanged represents a KLAYFeeChanged event raised by the Bridge contract.
  2387  type BridgeKLAYFeeChanged struct {
  2388  	Fee *big.Int
  2389  	Raw types.Log // Blockchain specific contextual infos
  2390  }
  2391  
  2392  // FilterKLAYFeeChanged is a free log retrieval operation binding the contract event 0xa7a33d0996347e1aa55ca2206015b61b9534bdd881d59d59aa680e25eefac365.
  2393  //
  2394  // Solidity: event KLAYFeeChanged(uint256 indexed fee)
  2395  func (_Bridge *BridgeFilterer) FilterKLAYFeeChanged(opts *bind.FilterOpts, fee []*big.Int) (*BridgeKLAYFeeChangedIterator, error) {
  2396  
  2397  	var feeRule []interface{}
  2398  	for _, feeItem := range fee {
  2399  		feeRule = append(feeRule, feeItem)
  2400  	}
  2401  
  2402  	logs, sub, err := _Bridge.contract.FilterLogs(opts, "KLAYFeeChanged", feeRule)
  2403  	if err != nil {
  2404  		return nil, err
  2405  	}
  2406  	return &BridgeKLAYFeeChangedIterator{contract: _Bridge.contract, event: "KLAYFeeChanged", logs: logs, sub: sub}, nil
  2407  }
  2408  
  2409  // WatchKLAYFeeChanged is a free log subscription operation binding the contract event 0xa7a33d0996347e1aa55ca2206015b61b9534bdd881d59d59aa680e25eefac365.
  2410  //
  2411  // Solidity: event KLAYFeeChanged(uint256 indexed fee)
  2412  func (_Bridge *BridgeFilterer) WatchKLAYFeeChanged(opts *bind.WatchOpts, sink chan<- *BridgeKLAYFeeChanged, fee []*big.Int) (event.Subscription, error) {
  2413  
  2414  	var feeRule []interface{}
  2415  	for _, feeItem := range fee {
  2416  		feeRule = append(feeRule, feeItem)
  2417  	}
  2418  
  2419  	logs, sub, err := _Bridge.contract.WatchLogs(opts, "KLAYFeeChanged", feeRule)
  2420  	if err != nil {
  2421  		return nil, err
  2422  	}
  2423  	return event.NewSubscription(func(quit <-chan struct{}) error {
  2424  		defer sub.Unsubscribe()
  2425  		for {
  2426  			select {
  2427  			case log := <-logs:
  2428  				// New log arrived, parse the event and forward to the user
  2429  				event := new(BridgeKLAYFeeChanged)
  2430  				if err := _Bridge.contract.UnpackLog(event, "KLAYFeeChanged", log); err != nil {
  2431  					return err
  2432  				}
  2433  				event.Raw = log
  2434  
  2435  				select {
  2436  				case sink <- event:
  2437  				case err := <-sub.Err():
  2438  					return err
  2439  				case <-quit:
  2440  					return nil
  2441  				}
  2442  			case err := <-sub.Err():
  2443  				return err
  2444  			case <-quit:
  2445  				return nil
  2446  			}
  2447  		}
  2448  	}), nil
  2449  }
  2450  
  2451  // ParseKLAYFeeChanged is a log parse operation binding the contract event 0xa7a33d0996347e1aa55ca2206015b61b9534bdd881d59d59aa680e25eefac365.
  2452  //
  2453  // Solidity: event KLAYFeeChanged(uint256 indexed fee)
  2454  func (_Bridge *BridgeFilterer) ParseKLAYFeeChanged(log types.Log) (*BridgeKLAYFeeChanged, error) {
  2455  	event := new(BridgeKLAYFeeChanged)
  2456  	if err := _Bridge.contract.UnpackLog(event, "KLAYFeeChanged", log); err != nil {
  2457  		return nil, err
  2458  	}
  2459  	return event, nil
  2460  }
  2461  
  2462  // BridgeKLAYLockedIterator is returned from FilterKLAYLocked and is used to iterate over the raw logs and unpacked data for KLAYLocked events raised by the Bridge contract.
  2463  type BridgeKLAYLockedIterator struct {
  2464  	Event *BridgeKLAYLocked // Event containing the contract specifics and raw log
  2465  
  2466  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  2467  	event    string              // Event name to use for unpacking event data
  2468  
  2469  	logs chan types.Log      // Log channel receiving the found contract events
  2470  	sub  klaytn.Subscription // Subscription for errors, completion and termination
  2471  	done bool                // Whether the subscription completed delivering logs
  2472  	fail error               // Occurred error to stop iteration
  2473  }
  2474  
  2475  // Next advances the iterator to the subsequent event, returning whether there
  2476  // are any more events found. In case of a retrieval or parsing error, false is
  2477  // returned and Error() can be queried for the exact failure.
  2478  func (it *BridgeKLAYLockedIterator) Next() bool {
  2479  	// If the iterator failed, stop iterating
  2480  	if it.fail != nil {
  2481  		return false
  2482  	}
  2483  	// If the iterator completed, deliver directly whatever's available
  2484  	if it.done {
  2485  		select {
  2486  		case log := <-it.logs:
  2487  			it.Event = new(BridgeKLAYLocked)
  2488  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  2489  				it.fail = err
  2490  				return false
  2491  			}
  2492  			it.Event.Raw = log
  2493  			return true
  2494  
  2495  		default:
  2496  			return false
  2497  		}
  2498  	}
  2499  	// Iterator still in progress, wait for either a data or an error event
  2500  	select {
  2501  	case log := <-it.logs:
  2502  		it.Event = new(BridgeKLAYLocked)
  2503  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  2504  			it.fail = err
  2505  			return false
  2506  		}
  2507  		it.Event.Raw = log
  2508  		return true
  2509  
  2510  	case err := <-it.sub.Err():
  2511  		it.done = true
  2512  		it.fail = err
  2513  		return it.Next()
  2514  	}
  2515  }
  2516  
  2517  // Error returns any retrieval or parsing error occurred during filtering.
  2518  func (it *BridgeKLAYLockedIterator) Error() error {
  2519  	return it.fail
  2520  }
  2521  
  2522  // Close terminates the iteration process, releasing any pending underlying
  2523  // resources.
  2524  func (it *BridgeKLAYLockedIterator) Close() error {
  2525  	it.sub.Unsubscribe()
  2526  	return nil
  2527  }
  2528  
  2529  // BridgeKLAYLocked represents a KLAYLocked event raised by the Bridge contract.
  2530  type BridgeKLAYLocked struct {
  2531  	Raw types.Log // Blockchain specific contextual infos
  2532  }
  2533  
  2534  // FilterKLAYLocked is a free log retrieval operation binding the contract event 0x915f3053cbc6842207cd97b68c0b585109b4f2fe61c5dbeb25d7678bfdfb8dfa.
  2535  //
  2536  // Solidity: event KLAYLocked()
  2537  func (_Bridge *BridgeFilterer) FilterKLAYLocked(opts *bind.FilterOpts) (*BridgeKLAYLockedIterator, error) {
  2538  
  2539  	logs, sub, err := _Bridge.contract.FilterLogs(opts, "KLAYLocked")
  2540  	if err != nil {
  2541  		return nil, err
  2542  	}
  2543  	return &BridgeKLAYLockedIterator{contract: _Bridge.contract, event: "KLAYLocked", logs: logs, sub: sub}, nil
  2544  }
  2545  
  2546  // WatchKLAYLocked is a free log subscription operation binding the contract event 0x915f3053cbc6842207cd97b68c0b585109b4f2fe61c5dbeb25d7678bfdfb8dfa.
  2547  //
  2548  // Solidity: event KLAYLocked()
  2549  func (_Bridge *BridgeFilterer) WatchKLAYLocked(opts *bind.WatchOpts, sink chan<- *BridgeKLAYLocked) (event.Subscription, error) {
  2550  
  2551  	logs, sub, err := _Bridge.contract.WatchLogs(opts, "KLAYLocked")
  2552  	if err != nil {
  2553  		return nil, err
  2554  	}
  2555  	return event.NewSubscription(func(quit <-chan struct{}) error {
  2556  		defer sub.Unsubscribe()
  2557  		for {
  2558  			select {
  2559  			case log := <-logs:
  2560  				// New log arrived, parse the event and forward to the user
  2561  				event := new(BridgeKLAYLocked)
  2562  				if err := _Bridge.contract.UnpackLog(event, "KLAYLocked", log); err != nil {
  2563  					return err
  2564  				}
  2565  				event.Raw = log
  2566  
  2567  				select {
  2568  				case sink <- event:
  2569  				case err := <-sub.Err():
  2570  					return err
  2571  				case <-quit:
  2572  					return nil
  2573  				}
  2574  			case err := <-sub.Err():
  2575  				return err
  2576  			case <-quit:
  2577  				return nil
  2578  			}
  2579  		}
  2580  	}), nil
  2581  }
  2582  
  2583  // ParseKLAYLocked is a log parse operation binding the contract event 0x915f3053cbc6842207cd97b68c0b585109b4f2fe61c5dbeb25d7678bfdfb8dfa.
  2584  //
  2585  // Solidity: event KLAYLocked()
  2586  func (_Bridge *BridgeFilterer) ParseKLAYLocked(log types.Log) (*BridgeKLAYLocked, error) {
  2587  	event := new(BridgeKLAYLocked)
  2588  	if err := _Bridge.contract.UnpackLog(event, "KLAYLocked", log); err != nil {
  2589  		return nil, err
  2590  	}
  2591  	return event, nil
  2592  }
  2593  
  2594  // BridgeKLAYUnlockedIterator is returned from FilterKLAYUnlocked and is used to iterate over the raw logs and unpacked data for KLAYUnlocked events raised by the Bridge contract.
  2595  type BridgeKLAYUnlockedIterator struct {
  2596  	Event *BridgeKLAYUnlocked // Event containing the contract specifics and raw log
  2597  
  2598  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  2599  	event    string              // Event name to use for unpacking event data
  2600  
  2601  	logs chan types.Log      // Log channel receiving the found contract events
  2602  	sub  klaytn.Subscription // Subscription for errors, completion and termination
  2603  	done bool                // Whether the subscription completed delivering logs
  2604  	fail error               // Occurred error to stop iteration
  2605  }
  2606  
  2607  // Next advances the iterator to the subsequent event, returning whether there
  2608  // are any more events found. In case of a retrieval or parsing error, false is
  2609  // returned and Error() can be queried for the exact failure.
  2610  func (it *BridgeKLAYUnlockedIterator) Next() bool {
  2611  	// If the iterator failed, stop iterating
  2612  	if it.fail != nil {
  2613  		return false
  2614  	}
  2615  	// If the iterator completed, deliver directly whatever's available
  2616  	if it.done {
  2617  		select {
  2618  		case log := <-it.logs:
  2619  			it.Event = new(BridgeKLAYUnlocked)
  2620  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  2621  				it.fail = err
  2622  				return false
  2623  			}
  2624  			it.Event.Raw = log
  2625  			return true
  2626  
  2627  		default:
  2628  			return false
  2629  		}
  2630  	}
  2631  	// Iterator still in progress, wait for either a data or an error event
  2632  	select {
  2633  	case log := <-it.logs:
  2634  		it.Event = new(BridgeKLAYUnlocked)
  2635  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  2636  			it.fail = err
  2637  			return false
  2638  		}
  2639  		it.Event.Raw = log
  2640  		return true
  2641  
  2642  	case err := <-it.sub.Err():
  2643  		it.done = true
  2644  		it.fail = err
  2645  		return it.Next()
  2646  	}
  2647  }
  2648  
  2649  // Error returns any retrieval or parsing error occurred during filtering.
  2650  func (it *BridgeKLAYUnlockedIterator) Error() error {
  2651  	return it.fail
  2652  }
  2653  
  2654  // Close terminates the iteration process, releasing any pending underlying
  2655  // resources.
  2656  func (it *BridgeKLAYUnlockedIterator) Close() error {
  2657  	it.sub.Unsubscribe()
  2658  	return nil
  2659  }
  2660  
  2661  // BridgeKLAYUnlocked represents a KLAYUnlocked event raised by the Bridge contract.
  2662  type BridgeKLAYUnlocked struct {
  2663  	Raw types.Log // Blockchain specific contextual infos
  2664  }
  2665  
  2666  // FilterKLAYUnlocked is a free log retrieval operation binding the contract event 0xd20610c9b78a6903ef134539e3deb5d243be461de6ef12d4c29536bb9b54fa1b.
  2667  //
  2668  // Solidity: event KLAYUnlocked()
  2669  func (_Bridge *BridgeFilterer) FilterKLAYUnlocked(opts *bind.FilterOpts) (*BridgeKLAYUnlockedIterator, error) {
  2670  
  2671  	logs, sub, err := _Bridge.contract.FilterLogs(opts, "KLAYUnlocked")
  2672  	if err != nil {
  2673  		return nil, err
  2674  	}
  2675  	return &BridgeKLAYUnlockedIterator{contract: _Bridge.contract, event: "KLAYUnlocked", logs: logs, sub: sub}, nil
  2676  }
  2677  
  2678  // WatchKLAYUnlocked is a free log subscription operation binding the contract event 0xd20610c9b78a6903ef134539e3deb5d243be461de6ef12d4c29536bb9b54fa1b.
  2679  //
  2680  // Solidity: event KLAYUnlocked()
  2681  func (_Bridge *BridgeFilterer) WatchKLAYUnlocked(opts *bind.WatchOpts, sink chan<- *BridgeKLAYUnlocked) (event.Subscription, error) {
  2682  
  2683  	logs, sub, err := _Bridge.contract.WatchLogs(opts, "KLAYUnlocked")
  2684  	if err != nil {
  2685  		return nil, err
  2686  	}
  2687  	return event.NewSubscription(func(quit <-chan struct{}) error {
  2688  		defer sub.Unsubscribe()
  2689  		for {
  2690  			select {
  2691  			case log := <-logs:
  2692  				// New log arrived, parse the event and forward to the user
  2693  				event := new(BridgeKLAYUnlocked)
  2694  				if err := _Bridge.contract.UnpackLog(event, "KLAYUnlocked", log); err != nil {
  2695  					return err
  2696  				}
  2697  				event.Raw = log
  2698  
  2699  				select {
  2700  				case sink <- event:
  2701  				case err := <-sub.Err():
  2702  					return err
  2703  				case <-quit:
  2704  					return nil
  2705  				}
  2706  			case err := <-sub.Err():
  2707  				return err
  2708  			case <-quit:
  2709  				return nil
  2710  			}
  2711  		}
  2712  	}), nil
  2713  }
  2714  
  2715  // ParseKLAYUnlocked is a log parse operation binding the contract event 0xd20610c9b78a6903ef134539e3deb5d243be461de6ef12d4c29536bb9b54fa1b.
  2716  //
  2717  // Solidity: event KLAYUnlocked()
  2718  func (_Bridge *BridgeFilterer) ParseKLAYUnlocked(log types.Log) (*BridgeKLAYUnlocked, error) {
  2719  	event := new(BridgeKLAYUnlocked)
  2720  	if err := _Bridge.contract.UnpackLog(event, "KLAYUnlocked", log); err != nil {
  2721  		return nil, err
  2722  	}
  2723  	return event, nil
  2724  }
  2725  
  2726  // BridgeOwnershipTransferredIterator is returned from FilterOwnershipTransferred and is used to iterate over the raw logs and unpacked data for OwnershipTransferred events raised by the Bridge contract.
  2727  type BridgeOwnershipTransferredIterator struct {
  2728  	Event *BridgeOwnershipTransferred // Event containing the contract specifics and raw log
  2729  
  2730  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  2731  	event    string              // Event name to use for unpacking event data
  2732  
  2733  	logs chan types.Log      // Log channel receiving the found contract events
  2734  	sub  klaytn.Subscription // Subscription for errors, completion and termination
  2735  	done bool                // Whether the subscription completed delivering logs
  2736  	fail error               // Occurred error to stop iteration
  2737  }
  2738  
  2739  // Next advances the iterator to the subsequent event, returning whether there
  2740  // are any more events found. In case of a retrieval or parsing error, false is
  2741  // returned and Error() can be queried for the exact failure.
  2742  func (it *BridgeOwnershipTransferredIterator) Next() bool {
  2743  	// If the iterator failed, stop iterating
  2744  	if it.fail != nil {
  2745  		return false
  2746  	}
  2747  	// If the iterator completed, deliver directly whatever's available
  2748  	if it.done {
  2749  		select {
  2750  		case log := <-it.logs:
  2751  			it.Event = new(BridgeOwnershipTransferred)
  2752  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  2753  				it.fail = err
  2754  				return false
  2755  			}
  2756  			it.Event.Raw = log
  2757  			return true
  2758  
  2759  		default:
  2760  			return false
  2761  		}
  2762  	}
  2763  	// Iterator still in progress, wait for either a data or an error event
  2764  	select {
  2765  	case log := <-it.logs:
  2766  		it.Event = new(BridgeOwnershipTransferred)
  2767  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  2768  			it.fail = err
  2769  			return false
  2770  		}
  2771  		it.Event.Raw = log
  2772  		return true
  2773  
  2774  	case err := <-it.sub.Err():
  2775  		it.done = true
  2776  		it.fail = err
  2777  		return it.Next()
  2778  	}
  2779  }
  2780  
  2781  // Error returns any retrieval or parsing error occurred during filtering.
  2782  func (it *BridgeOwnershipTransferredIterator) Error() error {
  2783  	return it.fail
  2784  }
  2785  
  2786  // Close terminates the iteration process, releasing any pending underlying
  2787  // resources.
  2788  func (it *BridgeOwnershipTransferredIterator) Close() error {
  2789  	it.sub.Unsubscribe()
  2790  	return nil
  2791  }
  2792  
  2793  // BridgeOwnershipTransferred represents a OwnershipTransferred event raised by the Bridge contract.
  2794  type BridgeOwnershipTransferred struct {
  2795  	PreviousOwner common.Address
  2796  	NewOwner      common.Address
  2797  	Raw           types.Log // Blockchain specific contextual infos
  2798  }
  2799  
  2800  // FilterOwnershipTransferred is a free log retrieval operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0.
  2801  //
  2802  // Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
  2803  func (_Bridge *BridgeFilterer) FilterOwnershipTransferred(opts *bind.FilterOpts, previousOwner []common.Address, newOwner []common.Address) (*BridgeOwnershipTransferredIterator, error) {
  2804  
  2805  	var previousOwnerRule []interface{}
  2806  	for _, previousOwnerItem := range previousOwner {
  2807  		previousOwnerRule = append(previousOwnerRule, previousOwnerItem)
  2808  	}
  2809  	var newOwnerRule []interface{}
  2810  	for _, newOwnerItem := range newOwner {
  2811  		newOwnerRule = append(newOwnerRule, newOwnerItem)
  2812  	}
  2813  
  2814  	logs, sub, err := _Bridge.contract.FilterLogs(opts, "OwnershipTransferred", previousOwnerRule, newOwnerRule)
  2815  	if err != nil {
  2816  		return nil, err
  2817  	}
  2818  	return &BridgeOwnershipTransferredIterator{contract: _Bridge.contract, event: "OwnershipTransferred", logs: logs, sub: sub}, nil
  2819  }
  2820  
  2821  // WatchOwnershipTransferred is a free log subscription operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0.
  2822  //
  2823  // Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
  2824  func (_Bridge *BridgeFilterer) WatchOwnershipTransferred(opts *bind.WatchOpts, sink chan<- *BridgeOwnershipTransferred, previousOwner []common.Address, newOwner []common.Address) (event.Subscription, error) {
  2825  
  2826  	var previousOwnerRule []interface{}
  2827  	for _, previousOwnerItem := range previousOwner {
  2828  		previousOwnerRule = append(previousOwnerRule, previousOwnerItem)
  2829  	}
  2830  	var newOwnerRule []interface{}
  2831  	for _, newOwnerItem := range newOwner {
  2832  		newOwnerRule = append(newOwnerRule, newOwnerItem)
  2833  	}
  2834  
  2835  	logs, sub, err := _Bridge.contract.WatchLogs(opts, "OwnershipTransferred", previousOwnerRule, newOwnerRule)
  2836  	if err != nil {
  2837  		return nil, err
  2838  	}
  2839  	return event.NewSubscription(func(quit <-chan struct{}) error {
  2840  		defer sub.Unsubscribe()
  2841  		for {
  2842  			select {
  2843  			case log := <-logs:
  2844  				// New log arrived, parse the event and forward to the user
  2845  				event := new(BridgeOwnershipTransferred)
  2846  				if err := _Bridge.contract.UnpackLog(event, "OwnershipTransferred", log); err != nil {
  2847  					return err
  2848  				}
  2849  				event.Raw = log
  2850  
  2851  				select {
  2852  				case sink <- event:
  2853  				case err := <-sub.Err():
  2854  					return err
  2855  				case <-quit:
  2856  					return nil
  2857  				}
  2858  			case err := <-sub.Err():
  2859  				return err
  2860  			case <-quit:
  2861  				return nil
  2862  			}
  2863  		}
  2864  	}), nil
  2865  }
  2866  
  2867  // ParseOwnershipTransferred is a log parse operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0.
  2868  //
  2869  // Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
  2870  func (_Bridge *BridgeFilterer) ParseOwnershipTransferred(log types.Log) (*BridgeOwnershipTransferred, error) {
  2871  	event := new(BridgeOwnershipTransferred)
  2872  	if err := _Bridge.contract.UnpackLog(event, "OwnershipTransferred", log); err != nil {
  2873  		return nil, err
  2874  	}
  2875  	return event, nil
  2876  }
  2877  
  2878  // BridgeRequestValueTransferIterator is returned from FilterRequestValueTransfer and is used to iterate over the raw logs and unpacked data for RequestValueTransfer events raised by the Bridge contract.
  2879  type BridgeRequestValueTransferIterator struct {
  2880  	Event *BridgeRequestValueTransfer // Event containing the contract specifics and raw log
  2881  
  2882  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  2883  	event    string              // Event name to use for unpacking event data
  2884  
  2885  	logs chan types.Log      // Log channel receiving the found contract events
  2886  	sub  klaytn.Subscription // Subscription for errors, completion and termination
  2887  	done bool                // Whether the subscription completed delivering logs
  2888  	fail error               // Occurred error to stop iteration
  2889  }
  2890  
  2891  // Next advances the iterator to the subsequent event, returning whether there
  2892  // are any more events found. In case of a retrieval or parsing error, false is
  2893  // returned and Error() can be queried for the exact failure.
  2894  func (it *BridgeRequestValueTransferIterator) Next() bool {
  2895  	// If the iterator failed, stop iterating
  2896  	if it.fail != nil {
  2897  		return false
  2898  	}
  2899  	// If the iterator completed, deliver directly whatever's available
  2900  	if it.done {
  2901  		select {
  2902  		case log := <-it.logs:
  2903  			it.Event = new(BridgeRequestValueTransfer)
  2904  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  2905  				it.fail = err
  2906  				return false
  2907  			}
  2908  			it.Event.Raw = log
  2909  			return true
  2910  
  2911  		default:
  2912  			return false
  2913  		}
  2914  	}
  2915  	// Iterator still in progress, wait for either a data or an error event
  2916  	select {
  2917  	case log := <-it.logs:
  2918  		it.Event = new(BridgeRequestValueTransfer)
  2919  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  2920  			it.fail = err
  2921  			return false
  2922  		}
  2923  		it.Event.Raw = log
  2924  		return true
  2925  
  2926  	case err := <-it.sub.Err():
  2927  		it.done = true
  2928  		it.fail = err
  2929  		return it.Next()
  2930  	}
  2931  }
  2932  
  2933  // Error returns any retrieval or parsing error occurred during filtering.
  2934  func (it *BridgeRequestValueTransferIterator) Error() error {
  2935  	return it.fail
  2936  }
  2937  
  2938  // Close terminates the iteration process, releasing any pending underlying
  2939  // resources.
  2940  func (it *BridgeRequestValueTransferIterator) Close() error {
  2941  	it.sub.Unsubscribe()
  2942  	return nil
  2943  }
  2944  
  2945  // BridgeRequestValueTransfer represents a RequestValueTransfer event raised by the Bridge contract.
  2946  type BridgeRequestValueTransfer struct {
  2947  	TokenType      uint8
  2948  	From           common.Address
  2949  	To             common.Address
  2950  	TokenAddress   common.Address
  2951  	ValueOrTokenId *big.Int
  2952  	RequestNonce   uint64
  2953  	Fee            *big.Int
  2954  	ExtraData      []byte
  2955  	Raw            types.Log // Blockchain specific contextual infos
  2956  }
  2957  
  2958  // FilterRequestValueTransfer is a free log retrieval operation binding the contract event 0xeff76c36e53fa5ff52f27acc8a34d5047a8246abb07b77b12f1309f71e337f09.
  2959  //
  2960  // Solidity: event RequestValueTransfer(uint8 tokenType, address indexed from, address indexed to, address indexed tokenAddress, uint256 valueOrTokenId, uint64 requestNonce, uint256 fee, bytes extraData)
  2961  func (_Bridge *BridgeFilterer) FilterRequestValueTransfer(opts *bind.FilterOpts, from []common.Address, to []common.Address, tokenAddress []common.Address) (*BridgeRequestValueTransferIterator, error) {
  2962  
  2963  	var fromRule []interface{}
  2964  	for _, fromItem := range from {
  2965  		fromRule = append(fromRule, fromItem)
  2966  	}
  2967  	var toRule []interface{}
  2968  	for _, toItem := range to {
  2969  		toRule = append(toRule, toItem)
  2970  	}
  2971  	var tokenAddressRule []interface{}
  2972  	for _, tokenAddressItem := range tokenAddress {
  2973  		tokenAddressRule = append(tokenAddressRule, tokenAddressItem)
  2974  	}
  2975  
  2976  	logs, sub, err := _Bridge.contract.FilterLogs(opts, "RequestValueTransfer", fromRule, toRule, tokenAddressRule)
  2977  	if err != nil {
  2978  		return nil, err
  2979  	}
  2980  	return &BridgeRequestValueTransferIterator{contract: _Bridge.contract, event: "RequestValueTransfer", logs: logs, sub: sub}, nil
  2981  }
  2982  
  2983  // WatchRequestValueTransfer is a free log subscription operation binding the contract event 0xeff76c36e53fa5ff52f27acc8a34d5047a8246abb07b77b12f1309f71e337f09.
  2984  //
  2985  // Solidity: event RequestValueTransfer(uint8 tokenType, address indexed from, address indexed to, address indexed tokenAddress, uint256 valueOrTokenId, uint64 requestNonce, uint256 fee, bytes extraData)
  2986  func (_Bridge *BridgeFilterer) WatchRequestValueTransfer(opts *bind.WatchOpts, sink chan<- *BridgeRequestValueTransfer, from []common.Address, to []common.Address, tokenAddress []common.Address) (event.Subscription, error) {
  2987  
  2988  	var fromRule []interface{}
  2989  	for _, fromItem := range from {
  2990  		fromRule = append(fromRule, fromItem)
  2991  	}
  2992  	var toRule []interface{}
  2993  	for _, toItem := range to {
  2994  		toRule = append(toRule, toItem)
  2995  	}
  2996  	var tokenAddressRule []interface{}
  2997  	for _, tokenAddressItem := range tokenAddress {
  2998  		tokenAddressRule = append(tokenAddressRule, tokenAddressItem)
  2999  	}
  3000  
  3001  	logs, sub, err := _Bridge.contract.WatchLogs(opts, "RequestValueTransfer", fromRule, toRule, tokenAddressRule)
  3002  	if err != nil {
  3003  		return nil, err
  3004  	}
  3005  	return event.NewSubscription(func(quit <-chan struct{}) error {
  3006  		defer sub.Unsubscribe()
  3007  		for {
  3008  			select {
  3009  			case log := <-logs:
  3010  				// New log arrived, parse the event and forward to the user
  3011  				event := new(BridgeRequestValueTransfer)
  3012  				if err := _Bridge.contract.UnpackLog(event, "RequestValueTransfer", log); err != nil {
  3013  					return err
  3014  				}
  3015  				event.Raw = log
  3016  
  3017  				select {
  3018  				case sink <- event:
  3019  				case err := <-sub.Err():
  3020  					return err
  3021  				case <-quit:
  3022  					return nil
  3023  				}
  3024  			case err := <-sub.Err():
  3025  				return err
  3026  			case <-quit:
  3027  				return nil
  3028  			}
  3029  		}
  3030  	}), nil
  3031  }
  3032  
  3033  // ParseRequestValueTransfer is a log parse operation binding the contract event 0xeff76c36e53fa5ff52f27acc8a34d5047a8246abb07b77b12f1309f71e337f09.
  3034  //
  3035  // Solidity: event RequestValueTransfer(uint8 tokenType, address indexed from, address indexed to, address indexed tokenAddress, uint256 valueOrTokenId, uint64 requestNonce, uint256 fee, bytes extraData)
  3036  func (_Bridge *BridgeFilterer) ParseRequestValueTransfer(log types.Log) (*BridgeRequestValueTransfer, error) {
  3037  	event := new(BridgeRequestValueTransfer)
  3038  	if err := _Bridge.contract.UnpackLog(event, "RequestValueTransfer", log); err != nil {
  3039  		return nil, err
  3040  	}
  3041  	return event, nil
  3042  }
  3043  
  3044  // BridgeRequestValueTransferEncodedIterator is returned from FilterRequestValueTransferEncoded and is used to iterate over the raw logs and unpacked data for RequestValueTransferEncoded events raised by the Bridge contract.
  3045  type BridgeRequestValueTransferEncodedIterator struct {
  3046  	Event *BridgeRequestValueTransferEncoded // Event containing the contract specifics and raw log
  3047  
  3048  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  3049  	event    string              // Event name to use for unpacking event data
  3050  
  3051  	logs chan types.Log      // Log channel receiving the found contract events
  3052  	sub  klaytn.Subscription // Subscription for errors, completion and termination
  3053  	done bool                // Whether the subscription completed delivering logs
  3054  	fail error               // Occurred error to stop iteration
  3055  }
  3056  
  3057  // Next advances the iterator to the subsequent event, returning whether there
  3058  // are any more events found. In case of a retrieval or parsing error, false is
  3059  // returned and Error() can be queried for the exact failure.
  3060  func (it *BridgeRequestValueTransferEncodedIterator) Next() bool {
  3061  	// If the iterator failed, stop iterating
  3062  	if it.fail != nil {
  3063  		return false
  3064  	}
  3065  	// If the iterator completed, deliver directly whatever's available
  3066  	if it.done {
  3067  		select {
  3068  		case log := <-it.logs:
  3069  			it.Event = new(BridgeRequestValueTransferEncoded)
  3070  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  3071  				it.fail = err
  3072  				return false
  3073  			}
  3074  			it.Event.Raw = log
  3075  			return true
  3076  
  3077  		default:
  3078  			return false
  3079  		}
  3080  	}
  3081  	// Iterator still in progress, wait for either a data or an error event
  3082  	select {
  3083  	case log := <-it.logs:
  3084  		it.Event = new(BridgeRequestValueTransferEncoded)
  3085  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  3086  			it.fail = err
  3087  			return false
  3088  		}
  3089  		it.Event.Raw = log
  3090  		return true
  3091  
  3092  	case err := <-it.sub.Err():
  3093  		it.done = true
  3094  		it.fail = err
  3095  		return it.Next()
  3096  	}
  3097  }
  3098  
  3099  // Error returns any retrieval or parsing error occurred during filtering.
  3100  func (it *BridgeRequestValueTransferEncodedIterator) Error() error {
  3101  	return it.fail
  3102  }
  3103  
  3104  // Close terminates the iteration process, releasing any pending underlying
  3105  // resources.
  3106  func (it *BridgeRequestValueTransferEncodedIterator) Close() error {
  3107  	it.sub.Unsubscribe()
  3108  	return nil
  3109  }
  3110  
  3111  // BridgeRequestValueTransferEncoded represents a RequestValueTransferEncoded event raised by the Bridge contract.
  3112  type BridgeRequestValueTransferEncoded struct {
  3113  	TokenType      uint8
  3114  	From           common.Address
  3115  	To             common.Address
  3116  	TokenAddress   common.Address
  3117  	ValueOrTokenId *big.Int
  3118  	RequestNonce   uint64
  3119  	Fee            *big.Int
  3120  	ExtraData      []byte
  3121  	EncodingVer    uint8
  3122  	EncodedData    []byte
  3123  	Raw            types.Log // Blockchain specific contextual infos
  3124  }
  3125  
  3126  // FilterRequestValueTransferEncoded is a free log retrieval operation binding the contract event 0x17d76053ca34a4dd8c402fe6498deb797fac89bf7ed02f3f5161aa9368cc8c1f.
  3127  //
  3128  // Solidity: event RequestValueTransferEncoded(uint8 tokenType, address indexed from, address indexed to, address indexed tokenAddress, uint256 valueOrTokenId, uint64 requestNonce, uint256 fee, bytes extraData, uint8 encodingVer, bytes encodedData)
  3129  func (_Bridge *BridgeFilterer) FilterRequestValueTransferEncoded(opts *bind.FilterOpts, from []common.Address, to []common.Address, tokenAddress []common.Address) (*BridgeRequestValueTransferEncodedIterator, error) {
  3130  
  3131  	var fromRule []interface{}
  3132  	for _, fromItem := range from {
  3133  		fromRule = append(fromRule, fromItem)
  3134  	}
  3135  	var toRule []interface{}
  3136  	for _, toItem := range to {
  3137  		toRule = append(toRule, toItem)
  3138  	}
  3139  	var tokenAddressRule []interface{}
  3140  	for _, tokenAddressItem := range tokenAddress {
  3141  		tokenAddressRule = append(tokenAddressRule, tokenAddressItem)
  3142  	}
  3143  
  3144  	logs, sub, err := _Bridge.contract.FilterLogs(opts, "RequestValueTransferEncoded", fromRule, toRule, tokenAddressRule)
  3145  	if err != nil {
  3146  		return nil, err
  3147  	}
  3148  	return &BridgeRequestValueTransferEncodedIterator{contract: _Bridge.contract, event: "RequestValueTransferEncoded", logs: logs, sub: sub}, nil
  3149  }
  3150  
  3151  // WatchRequestValueTransferEncoded is a free log subscription operation binding the contract event 0x17d76053ca34a4dd8c402fe6498deb797fac89bf7ed02f3f5161aa9368cc8c1f.
  3152  //
  3153  // Solidity: event RequestValueTransferEncoded(uint8 tokenType, address indexed from, address indexed to, address indexed tokenAddress, uint256 valueOrTokenId, uint64 requestNonce, uint256 fee, bytes extraData, uint8 encodingVer, bytes encodedData)
  3154  func (_Bridge *BridgeFilterer) WatchRequestValueTransferEncoded(opts *bind.WatchOpts, sink chan<- *BridgeRequestValueTransferEncoded, from []common.Address, to []common.Address, tokenAddress []common.Address) (event.Subscription, error) {
  3155  
  3156  	var fromRule []interface{}
  3157  	for _, fromItem := range from {
  3158  		fromRule = append(fromRule, fromItem)
  3159  	}
  3160  	var toRule []interface{}
  3161  	for _, toItem := range to {
  3162  		toRule = append(toRule, toItem)
  3163  	}
  3164  	var tokenAddressRule []interface{}
  3165  	for _, tokenAddressItem := range tokenAddress {
  3166  		tokenAddressRule = append(tokenAddressRule, tokenAddressItem)
  3167  	}
  3168  
  3169  	logs, sub, err := _Bridge.contract.WatchLogs(opts, "RequestValueTransferEncoded", fromRule, toRule, tokenAddressRule)
  3170  	if err != nil {
  3171  		return nil, err
  3172  	}
  3173  	return event.NewSubscription(func(quit <-chan struct{}) error {
  3174  		defer sub.Unsubscribe()
  3175  		for {
  3176  			select {
  3177  			case log := <-logs:
  3178  				// New log arrived, parse the event and forward to the user
  3179  				event := new(BridgeRequestValueTransferEncoded)
  3180  				if err := _Bridge.contract.UnpackLog(event, "RequestValueTransferEncoded", log); err != nil {
  3181  					return err
  3182  				}
  3183  				event.Raw = log
  3184  
  3185  				select {
  3186  				case sink <- event:
  3187  				case err := <-sub.Err():
  3188  					return err
  3189  				case <-quit:
  3190  					return nil
  3191  				}
  3192  			case err := <-sub.Err():
  3193  				return err
  3194  			case <-quit:
  3195  				return nil
  3196  			}
  3197  		}
  3198  	}), nil
  3199  }
  3200  
  3201  // ParseRequestValueTransferEncoded is a log parse operation binding the contract event 0x17d76053ca34a4dd8c402fe6498deb797fac89bf7ed02f3f5161aa9368cc8c1f.
  3202  //
  3203  // Solidity: event RequestValueTransferEncoded(uint8 tokenType, address indexed from, address indexed to, address indexed tokenAddress, uint256 valueOrTokenId, uint64 requestNonce, uint256 fee, bytes extraData, uint8 encodingVer, bytes encodedData)
  3204  func (_Bridge *BridgeFilterer) ParseRequestValueTransferEncoded(log types.Log) (*BridgeRequestValueTransferEncoded, error) {
  3205  	event := new(BridgeRequestValueTransferEncoded)
  3206  	if err := _Bridge.contract.UnpackLog(event, "RequestValueTransferEncoded", log); err != nil {
  3207  		return nil, err
  3208  	}
  3209  	return event, nil
  3210  }
  3211  
  3212  // BridgeTokenDeregisteredIterator is returned from FilterTokenDeregistered and is used to iterate over the raw logs and unpacked data for TokenDeregistered events raised by the Bridge contract.
  3213  type BridgeTokenDeregisteredIterator struct {
  3214  	Event *BridgeTokenDeregistered // Event containing the contract specifics and raw log
  3215  
  3216  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  3217  	event    string              // Event name to use for unpacking event data
  3218  
  3219  	logs chan types.Log      // Log channel receiving the found contract events
  3220  	sub  klaytn.Subscription // Subscription for errors, completion and termination
  3221  	done bool                // Whether the subscription completed delivering logs
  3222  	fail error               // Occurred error to stop iteration
  3223  }
  3224  
  3225  // Next advances the iterator to the subsequent event, returning whether there
  3226  // are any more events found. In case of a retrieval or parsing error, false is
  3227  // returned and Error() can be queried for the exact failure.
  3228  func (it *BridgeTokenDeregisteredIterator) Next() bool {
  3229  	// If the iterator failed, stop iterating
  3230  	if it.fail != nil {
  3231  		return false
  3232  	}
  3233  	// If the iterator completed, deliver directly whatever's available
  3234  	if it.done {
  3235  		select {
  3236  		case log := <-it.logs:
  3237  			it.Event = new(BridgeTokenDeregistered)
  3238  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  3239  				it.fail = err
  3240  				return false
  3241  			}
  3242  			it.Event.Raw = log
  3243  			return true
  3244  
  3245  		default:
  3246  			return false
  3247  		}
  3248  	}
  3249  	// Iterator still in progress, wait for either a data or an error event
  3250  	select {
  3251  	case log := <-it.logs:
  3252  		it.Event = new(BridgeTokenDeregistered)
  3253  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  3254  			it.fail = err
  3255  			return false
  3256  		}
  3257  		it.Event.Raw = log
  3258  		return true
  3259  
  3260  	case err := <-it.sub.Err():
  3261  		it.done = true
  3262  		it.fail = err
  3263  		return it.Next()
  3264  	}
  3265  }
  3266  
  3267  // Error returns any retrieval or parsing error occurred during filtering.
  3268  func (it *BridgeTokenDeregisteredIterator) Error() error {
  3269  	return it.fail
  3270  }
  3271  
  3272  // Close terminates the iteration process, releasing any pending underlying
  3273  // resources.
  3274  func (it *BridgeTokenDeregisteredIterator) Close() error {
  3275  	it.sub.Unsubscribe()
  3276  	return nil
  3277  }
  3278  
  3279  // BridgeTokenDeregistered represents a TokenDeregistered event raised by the Bridge contract.
  3280  type BridgeTokenDeregistered struct {
  3281  	Token common.Address
  3282  	Raw   types.Log // Blockchain specific contextual infos
  3283  }
  3284  
  3285  // FilterTokenDeregistered is a free log retrieval operation binding the contract event 0x1d735ca20b63676dde668b718be78606b061d6bd7534ff815a90a121a6c084b6.
  3286  //
  3287  // Solidity: event TokenDeregistered(address indexed token)
  3288  func (_Bridge *BridgeFilterer) FilterTokenDeregistered(opts *bind.FilterOpts, token []common.Address) (*BridgeTokenDeregisteredIterator, error) {
  3289  
  3290  	var tokenRule []interface{}
  3291  	for _, tokenItem := range token {
  3292  		tokenRule = append(tokenRule, tokenItem)
  3293  	}
  3294  
  3295  	logs, sub, err := _Bridge.contract.FilterLogs(opts, "TokenDeregistered", tokenRule)
  3296  	if err != nil {
  3297  		return nil, err
  3298  	}
  3299  	return &BridgeTokenDeregisteredIterator{contract: _Bridge.contract, event: "TokenDeregistered", logs: logs, sub: sub}, nil
  3300  }
  3301  
  3302  // WatchTokenDeregistered is a free log subscription operation binding the contract event 0x1d735ca20b63676dde668b718be78606b061d6bd7534ff815a90a121a6c084b6.
  3303  //
  3304  // Solidity: event TokenDeregistered(address indexed token)
  3305  func (_Bridge *BridgeFilterer) WatchTokenDeregistered(opts *bind.WatchOpts, sink chan<- *BridgeTokenDeregistered, token []common.Address) (event.Subscription, error) {
  3306  
  3307  	var tokenRule []interface{}
  3308  	for _, tokenItem := range token {
  3309  		tokenRule = append(tokenRule, tokenItem)
  3310  	}
  3311  
  3312  	logs, sub, err := _Bridge.contract.WatchLogs(opts, "TokenDeregistered", tokenRule)
  3313  	if err != nil {
  3314  		return nil, err
  3315  	}
  3316  	return event.NewSubscription(func(quit <-chan struct{}) error {
  3317  		defer sub.Unsubscribe()
  3318  		for {
  3319  			select {
  3320  			case log := <-logs:
  3321  				// New log arrived, parse the event and forward to the user
  3322  				event := new(BridgeTokenDeregistered)
  3323  				if err := _Bridge.contract.UnpackLog(event, "TokenDeregistered", log); err != nil {
  3324  					return err
  3325  				}
  3326  				event.Raw = log
  3327  
  3328  				select {
  3329  				case sink <- event:
  3330  				case err := <-sub.Err():
  3331  					return err
  3332  				case <-quit:
  3333  					return nil
  3334  				}
  3335  			case err := <-sub.Err():
  3336  				return err
  3337  			case <-quit:
  3338  				return nil
  3339  			}
  3340  		}
  3341  	}), nil
  3342  }
  3343  
  3344  // ParseTokenDeregistered is a log parse operation binding the contract event 0x1d735ca20b63676dde668b718be78606b061d6bd7534ff815a90a121a6c084b6.
  3345  //
  3346  // Solidity: event TokenDeregistered(address indexed token)
  3347  func (_Bridge *BridgeFilterer) ParseTokenDeregistered(log types.Log) (*BridgeTokenDeregistered, error) {
  3348  	event := new(BridgeTokenDeregistered)
  3349  	if err := _Bridge.contract.UnpackLog(event, "TokenDeregistered", log); err != nil {
  3350  		return nil, err
  3351  	}
  3352  	return event, nil
  3353  }
  3354  
  3355  // BridgeTokenLockedIterator is returned from FilterTokenLocked and is used to iterate over the raw logs and unpacked data for TokenLocked events raised by the Bridge contract.
  3356  type BridgeTokenLockedIterator struct {
  3357  	Event *BridgeTokenLocked // Event containing the contract specifics and raw log
  3358  
  3359  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  3360  	event    string              // Event name to use for unpacking event data
  3361  
  3362  	logs chan types.Log      // Log channel receiving the found contract events
  3363  	sub  klaytn.Subscription // Subscription for errors, completion and termination
  3364  	done bool                // Whether the subscription completed delivering logs
  3365  	fail error               // Occurred error to stop iteration
  3366  }
  3367  
  3368  // Next advances the iterator to the subsequent event, returning whether there
  3369  // are any more events found. In case of a retrieval or parsing error, false is
  3370  // returned and Error() can be queried for the exact failure.
  3371  func (it *BridgeTokenLockedIterator) Next() bool {
  3372  	// If the iterator failed, stop iterating
  3373  	if it.fail != nil {
  3374  		return false
  3375  	}
  3376  	// If the iterator completed, deliver directly whatever's available
  3377  	if it.done {
  3378  		select {
  3379  		case log := <-it.logs:
  3380  			it.Event = new(BridgeTokenLocked)
  3381  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  3382  				it.fail = err
  3383  				return false
  3384  			}
  3385  			it.Event.Raw = log
  3386  			return true
  3387  
  3388  		default:
  3389  			return false
  3390  		}
  3391  	}
  3392  	// Iterator still in progress, wait for either a data or an error event
  3393  	select {
  3394  	case log := <-it.logs:
  3395  		it.Event = new(BridgeTokenLocked)
  3396  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  3397  			it.fail = err
  3398  			return false
  3399  		}
  3400  		it.Event.Raw = log
  3401  		return true
  3402  
  3403  	case err := <-it.sub.Err():
  3404  		it.done = true
  3405  		it.fail = err
  3406  		return it.Next()
  3407  	}
  3408  }
  3409  
  3410  // Error returns any retrieval or parsing error occurred during filtering.
  3411  func (it *BridgeTokenLockedIterator) Error() error {
  3412  	return it.fail
  3413  }
  3414  
  3415  // Close terminates the iteration process, releasing any pending underlying
  3416  // resources.
  3417  func (it *BridgeTokenLockedIterator) Close() error {
  3418  	it.sub.Unsubscribe()
  3419  	return nil
  3420  }
  3421  
  3422  // BridgeTokenLocked represents a TokenLocked event raised by the Bridge contract.
  3423  type BridgeTokenLocked struct {
  3424  	Token common.Address
  3425  	Raw   types.Log // Blockchain specific contextual infos
  3426  }
  3427  
  3428  // FilterTokenLocked is a free log retrieval operation binding the contract event 0xca1b0a14e18ada4c44846768dd186e35630cdc5cfeaca83c404ae4acaafbecd7.
  3429  //
  3430  // Solidity: event TokenLocked(address indexed token)
  3431  func (_Bridge *BridgeFilterer) FilterTokenLocked(opts *bind.FilterOpts, token []common.Address) (*BridgeTokenLockedIterator, error) {
  3432  
  3433  	var tokenRule []interface{}
  3434  	for _, tokenItem := range token {
  3435  		tokenRule = append(tokenRule, tokenItem)
  3436  	}
  3437  
  3438  	logs, sub, err := _Bridge.contract.FilterLogs(opts, "TokenLocked", tokenRule)
  3439  	if err != nil {
  3440  		return nil, err
  3441  	}
  3442  	return &BridgeTokenLockedIterator{contract: _Bridge.contract, event: "TokenLocked", logs: logs, sub: sub}, nil
  3443  }
  3444  
  3445  // WatchTokenLocked is a free log subscription operation binding the contract event 0xca1b0a14e18ada4c44846768dd186e35630cdc5cfeaca83c404ae4acaafbecd7.
  3446  //
  3447  // Solidity: event TokenLocked(address indexed token)
  3448  func (_Bridge *BridgeFilterer) WatchTokenLocked(opts *bind.WatchOpts, sink chan<- *BridgeTokenLocked, token []common.Address) (event.Subscription, error) {
  3449  
  3450  	var tokenRule []interface{}
  3451  	for _, tokenItem := range token {
  3452  		tokenRule = append(tokenRule, tokenItem)
  3453  	}
  3454  
  3455  	logs, sub, err := _Bridge.contract.WatchLogs(opts, "TokenLocked", tokenRule)
  3456  	if err != nil {
  3457  		return nil, err
  3458  	}
  3459  	return event.NewSubscription(func(quit <-chan struct{}) error {
  3460  		defer sub.Unsubscribe()
  3461  		for {
  3462  			select {
  3463  			case log := <-logs:
  3464  				// New log arrived, parse the event and forward to the user
  3465  				event := new(BridgeTokenLocked)
  3466  				if err := _Bridge.contract.UnpackLog(event, "TokenLocked", log); err != nil {
  3467  					return err
  3468  				}
  3469  				event.Raw = log
  3470  
  3471  				select {
  3472  				case sink <- event:
  3473  				case err := <-sub.Err():
  3474  					return err
  3475  				case <-quit:
  3476  					return nil
  3477  				}
  3478  			case err := <-sub.Err():
  3479  				return err
  3480  			case <-quit:
  3481  				return nil
  3482  			}
  3483  		}
  3484  	}), nil
  3485  }
  3486  
  3487  // ParseTokenLocked is a log parse operation binding the contract event 0xca1b0a14e18ada4c44846768dd186e35630cdc5cfeaca83c404ae4acaafbecd7.
  3488  //
  3489  // Solidity: event TokenLocked(address indexed token)
  3490  func (_Bridge *BridgeFilterer) ParseTokenLocked(log types.Log) (*BridgeTokenLocked, error) {
  3491  	event := new(BridgeTokenLocked)
  3492  	if err := _Bridge.contract.UnpackLog(event, "TokenLocked", log); err != nil {
  3493  		return nil, err
  3494  	}
  3495  	return event, nil
  3496  }
  3497  
  3498  // BridgeTokenRegisteredIterator is returned from FilterTokenRegistered and is used to iterate over the raw logs and unpacked data for TokenRegistered events raised by the Bridge contract.
  3499  type BridgeTokenRegisteredIterator struct {
  3500  	Event *BridgeTokenRegistered // Event containing the contract specifics and raw log
  3501  
  3502  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  3503  	event    string              // Event name to use for unpacking event data
  3504  
  3505  	logs chan types.Log      // Log channel receiving the found contract events
  3506  	sub  klaytn.Subscription // Subscription for errors, completion and termination
  3507  	done bool                // Whether the subscription completed delivering logs
  3508  	fail error               // Occurred error to stop iteration
  3509  }
  3510  
  3511  // Next advances the iterator to the subsequent event, returning whether there
  3512  // are any more events found. In case of a retrieval or parsing error, false is
  3513  // returned and Error() can be queried for the exact failure.
  3514  func (it *BridgeTokenRegisteredIterator) Next() bool {
  3515  	// If the iterator failed, stop iterating
  3516  	if it.fail != nil {
  3517  		return false
  3518  	}
  3519  	// If the iterator completed, deliver directly whatever's available
  3520  	if it.done {
  3521  		select {
  3522  		case log := <-it.logs:
  3523  			it.Event = new(BridgeTokenRegistered)
  3524  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  3525  				it.fail = err
  3526  				return false
  3527  			}
  3528  			it.Event.Raw = log
  3529  			return true
  3530  
  3531  		default:
  3532  			return false
  3533  		}
  3534  	}
  3535  	// Iterator still in progress, wait for either a data or an error event
  3536  	select {
  3537  	case log := <-it.logs:
  3538  		it.Event = new(BridgeTokenRegistered)
  3539  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  3540  			it.fail = err
  3541  			return false
  3542  		}
  3543  		it.Event.Raw = log
  3544  		return true
  3545  
  3546  	case err := <-it.sub.Err():
  3547  		it.done = true
  3548  		it.fail = err
  3549  		return it.Next()
  3550  	}
  3551  }
  3552  
  3553  // Error returns any retrieval or parsing error occurred during filtering.
  3554  func (it *BridgeTokenRegisteredIterator) Error() error {
  3555  	return it.fail
  3556  }
  3557  
  3558  // Close terminates the iteration process, releasing any pending underlying
  3559  // resources.
  3560  func (it *BridgeTokenRegisteredIterator) Close() error {
  3561  	it.sub.Unsubscribe()
  3562  	return nil
  3563  }
  3564  
  3565  // BridgeTokenRegistered represents a TokenRegistered event raised by the Bridge contract.
  3566  type BridgeTokenRegistered struct {
  3567  	Token common.Address
  3568  	Raw   types.Log // Blockchain specific contextual infos
  3569  }
  3570  
  3571  // FilterTokenRegistered is a free log retrieval operation binding the contract event 0x158412daecdc1456d01568828bcdb18464cc7f1ce0215ddbc3f3cfede9d1e63d.
  3572  //
  3573  // Solidity: event TokenRegistered(address indexed token)
  3574  func (_Bridge *BridgeFilterer) FilterTokenRegistered(opts *bind.FilterOpts, token []common.Address) (*BridgeTokenRegisteredIterator, error) {
  3575  
  3576  	var tokenRule []interface{}
  3577  	for _, tokenItem := range token {
  3578  		tokenRule = append(tokenRule, tokenItem)
  3579  	}
  3580  
  3581  	logs, sub, err := _Bridge.contract.FilterLogs(opts, "TokenRegistered", tokenRule)
  3582  	if err != nil {
  3583  		return nil, err
  3584  	}
  3585  	return &BridgeTokenRegisteredIterator{contract: _Bridge.contract, event: "TokenRegistered", logs: logs, sub: sub}, nil
  3586  }
  3587  
  3588  // WatchTokenRegistered is a free log subscription operation binding the contract event 0x158412daecdc1456d01568828bcdb18464cc7f1ce0215ddbc3f3cfede9d1e63d.
  3589  //
  3590  // Solidity: event TokenRegistered(address indexed token)
  3591  func (_Bridge *BridgeFilterer) WatchTokenRegistered(opts *bind.WatchOpts, sink chan<- *BridgeTokenRegistered, token []common.Address) (event.Subscription, error) {
  3592  
  3593  	var tokenRule []interface{}
  3594  	for _, tokenItem := range token {
  3595  		tokenRule = append(tokenRule, tokenItem)
  3596  	}
  3597  
  3598  	logs, sub, err := _Bridge.contract.WatchLogs(opts, "TokenRegistered", tokenRule)
  3599  	if err != nil {
  3600  		return nil, err
  3601  	}
  3602  	return event.NewSubscription(func(quit <-chan struct{}) error {
  3603  		defer sub.Unsubscribe()
  3604  		for {
  3605  			select {
  3606  			case log := <-logs:
  3607  				// New log arrived, parse the event and forward to the user
  3608  				event := new(BridgeTokenRegistered)
  3609  				if err := _Bridge.contract.UnpackLog(event, "TokenRegistered", log); err != nil {
  3610  					return err
  3611  				}
  3612  				event.Raw = log
  3613  
  3614  				select {
  3615  				case sink <- event:
  3616  				case err := <-sub.Err():
  3617  					return err
  3618  				case <-quit:
  3619  					return nil
  3620  				}
  3621  			case err := <-sub.Err():
  3622  				return err
  3623  			case <-quit:
  3624  				return nil
  3625  			}
  3626  		}
  3627  	}), nil
  3628  }
  3629  
  3630  // ParseTokenRegistered is a log parse operation binding the contract event 0x158412daecdc1456d01568828bcdb18464cc7f1ce0215ddbc3f3cfede9d1e63d.
  3631  //
  3632  // Solidity: event TokenRegistered(address indexed token)
  3633  func (_Bridge *BridgeFilterer) ParseTokenRegistered(log types.Log) (*BridgeTokenRegistered, error) {
  3634  	event := new(BridgeTokenRegistered)
  3635  	if err := _Bridge.contract.UnpackLog(event, "TokenRegistered", log); err != nil {
  3636  		return nil, err
  3637  	}
  3638  	return event, nil
  3639  }
  3640  
  3641  // BridgeTokenUnlockedIterator is returned from FilterTokenUnlocked and is used to iterate over the raw logs and unpacked data for TokenUnlocked events raised by the Bridge contract.
  3642  type BridgeTokenUnlockedIterator struct {
  3643  	Event *BridgeTokenUnlocked // Event containing the contract specifics and raw log
  3644  
  3645  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  3646  	event    string              // Event name to use for unpacking event data
  3647  
  3648  	logs chan types.Log      // Log channel receiving the found contract events
  3649  	sub  klaytn.Subscription // Subscription for errors, completion and termination
  3650  	done bool                // Whether the subscription completed delivering logs
  3651  	fail error               // Occurred error to stop iteration
  3652  }
  3653  
  3654  // Next advances the iterator to the subsequent event, returning whether there
  3655  // are any more events found. In case of a retrieval or parsing error, false is
  3656  // returned and Error() can be queried for the exact failure.
  3657  func (it *BridgeTokenUnlockedIterator) Next() bool {
  3658  	// If the iterator failed, stop iterating
  3659  	if it.fail != nil {
  3660  		return false
  3661  	}
  3662  	// If the iterator completed, deliver directly whatever's available
  3663  	if it.done {
  3664  		select {
  3665  		case log := <-it.logs:
  3666  			it.Event = new(BridgeTokenUnlocked)
  3667  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  3668  				it.fail = err
  3669  				return false
  3670  			}
  3671  			it.Event.Raw = log
  3672  			return true
  3673  
  3674  		default:
  3675  			return false
  3676  		}
  3677  	}
  3678  	// Iterator still in progress, wait for either a data or an error event
  3679  	select {
  3680  	case log := <-it.logs:
  3681  		it.Event = new(BridgeTokenUnlocked)
  3682  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  3683  			it.fail = err
  3684  			return false
  3685  		}
  3686  		it.Event.Raw = log
  3687  		return true
  3688  
  3689  	case err := <-it.sub.Err():
  3690  		it.done = true
  3691  		it.fail = err
  3692  		return it.Next()
  3693  	}
  3694  }
  3695  
  3696  // Error returns any retrieval or parsing error occurred during filtering.
  3697  func (it *BridgeTokenUnlockedIterator) Error() error {
  3698  	return it.fail
  3699  }
  3700  
  3701  // Close terminates the iteration process, releasing any pending underlying
  3702  // resources.
  3703  func (it *BridgeTokenUnlockedIterator) Close() error {
  3704  	it.sub.Unsubscribe()
  3705  	return nil
  3706  }
  3707  
  3708  // BridgeTokenUnlocked represents a TokenUnlocked event raised by the Bridge contract.
  3709  type BridgeTokenUnlocked struct {
  3710  	Token common.Address
  3711  	Raw   types.Log // Blockchain specific contextual infos
  3712  }
  3713  
  3714  // FilterTokenUnlocked is a free log retrieval operation binding the contract event 0x81ec08d3372506e176c49e626d8beb7e091712ef92908a130f4ccc6524fe2eec.
  3715  //
  3716  // Solidity: event TokenUnlocked(address indexed token)
  3717  func (_Bridge *BridgeFilterer) FilterTokenUnlocked(opts *bind.FilterOpts, token []common.Address) (*BridgeTokenUnlockedIterator, error) {
  3718  
  3719  	var tokenRule []interface{}
  3720  	for _, tokenItem := range token {
  3721  		tokenRule = append(tokenRule, tokenItem)
  3722  	}
  3723  
  3724  	logs, sub, err := _Bridge.contract.FilterLogs(opts, "TokenUnlocked", tokenRule)
  3725  	if err != nil {
  3726  		return nil, err
  3727  	}
  3728  	return &BridgeTokenUnlockedIterator{contract: _Bridge.contract, event: "TokenUnlocked", logs: logs, sub: sub}, nil
  3729  }
  3730  
  3731  // WatchTokenUnlocked is a free log subscription operation binding the contract event 0x81ec08d3372506e176c49e626d8beb7e091712ef92908a130f4ccc6524fe2eec.
  3732  //
  3733  // Solidity: event TokenUnlocked(address indexed token)
  3734  func (_Bridge *BridgeFilterer) WatchTokenUnlocked(opts *bind.WatchOpts, sink chan<- *BridgeTokenUnlocked, token []common.Address) (event.Subscription, error) {
  3735  
  3736  	var tokenRule []interface{}
  3737  	for _, tokenItem := range token {
  3738  		tokenRule = append(tokenRule, tokenItem)
  3739  	}
  3740  
  3741  	logs, sub, err := _Bridge.contract.WatchLogs(opts, "TokenUnlocked", tokenRule)
  3742  	if err != nil {
  3743  		return nil, err
  3744  	}
  3745  	return event.NewSubscription(func(quit <-chan struct{}) error {
  3746  		defer sub.Unsubscribe()
  3747  		for {
  3748  			select {
  3749  			case log := <-logs:
  3750  				// New log arrived, parse the event and forward to the user
  3751  				event := new(BridgeTokenUnlocked)
  3752  				if err := _Bridge.contract.UnpackLog(event, "TokenUnlocked", log); err != nil {
  3753  					return err
  3754  				}
  3755  				event.Raw = log
  3756  
  3757  				select {
  3758  				case sink <- event:
  3759  				case err := <-sub.Err():
  3760  					return err
  3761  				case <-quit:
  3762  					return nil
  3763  				}
  3764  			case err := <-sub.Err():
  3765  				return err
  3766  			case <-quit:
  3767  				return nil
  3768  			}
  3769  		}
  3770  	}), nil
  3771  }
  3772  
  3773  // ParseTokenUnlocked is a log parse operation binding the contract event 0x81ec08d3372506e176c49e626d8beb7e091712ef92908a130f4ccc6524fe2eec.
  3774  //
  3775  // Solidity: event TokenUnlocked(address indexed token)
  3776  func (_Bridge *BridgeFilterer) ParseTokenUnlocked(log types.Log) (*BridgeTokenUnlocked, error) {
  3777  	event := new(BridgeTokenUnlocked)
  3778  	if err := _Bridge.contract.UnpackLog(event, "TokenUnlocked", log); err != nil {
  3779  		return nil, err
  3780  	}
  3781  	return event, nil
  3782  }
  3783  
  3784  // BridgeCounterPartMetaData contains all meta data concerning the BridgeCounterPart contract.
  3785  var BridgeCounterPartMetaData = &bind.MetaData{
  3786  	ABI: "[{\"constant\":true,\"inputs\":[],\"name\":\"counterpartBridge\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_bridge\",\"type\":\"address\"}],\"name\":\"setCounterPartBridge\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"isOwner\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"}]",
  3787  	Sigs: map[string]string{
  3788  		"3a348533": "counterpartBridge()",
  3789  		"8f32d59b": "isOwner()",
  3790  		"8da5cb5b": "owner()",
  3791  		"715018a6": "renounceOwnership()",
  3792  		"87b04c55": "setCounterPartBridge(address)",
  3793  		"f2fde38b": "transferOwnership(address)",
  3794  	},
  3795  	Bin: "0x60806040819052600080546001600160a01b03191633178082556001600160a01b0316917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a36103b5806100576000396000f3fe608060405234801561001057600080fd5b50600436106100625760003560e01c80633a34853314610067578063715018a61461008b57806387b04c55146100955780638da5cb5b146100bb5780638f32d59b146100c3578063f2fde38b146100df575b600080fd5b61006f610105565b604080516001600160a01b039092168252519081900360200190f35b610093610114565b005b610093600480360360208110156100ab57600080fd5b50356001600160a01b03166101ba565b61006f610238565b6100cb610247565b604080519115158252519081900360200190f35b610093600480360360208110156100f557600080fd5b50356001600160a01b0316610258565b6001546001600160a01b031681565b61011c610247565b6101705760408051600160e51b62461bcd02815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6101c2610247565b6102165760408051600160e51b62461bcd02815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600180546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031690565b6000546001600160a01b0316331490565b610260610247565b6102b45760408051600160e51b62461bcd02815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6102bd816102c0565b50565b6001600160a01b03811661030857604051600160e51b62461bcd0281526004018080602001828103825260268152602001806103646026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b039290921691909117905556fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373a165627a7a72305820e7681c96057ab0d49783ca33bf89818b1c7372fbcf9a3b43630785bc6329fd6f0029",
  3796  }
  3797  
  3798  // BridgeCounterPartABI is the input ABI used to generate the binding from.
  3799  // Deprecated: Use BridgeCounterPartMetaData.ABI instead.
  3800  var BridgeCounterPartABI = BridgeCounterPartMetaData.ABI
  3801  
  3802  // BridgeCounterPartBinRuntime is the compiled bytecode used for adding genesis block without deploying code.
  3803  const BridgeCounterPartBinRuntime = `608060405234801561001057600080fd5b50600436106100625760003560e01c80633a34853314610067578063715018a61461008b57806387b04c55146100955780638da5cb5b146100bb5780638f32d59b146100c3578063f2fde38b146100df575b600080fd5b61006f610105565b604080516001600160a01b039092168252519081900360200190f35b610093610114565b005b610093600480360360208110156100ab57600080fd5b50356001600160a01b03166101ba565b61006f610238565b6100cb610247565b604080519115158252519081900360200190f35b610093600480360360208110156100f557600080fd5b50356001600160a01b0316610258565b6001546001600160a01b031681565b61011c610247565b6101705760408051600160e51b62461bcd02815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6101c2610247565b6102165760408051600160e51b62461bcd02815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600180546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031690565b6000546001600160a01b0316331490565b610260610247565b6102b45760408051600160e51b62461bcd02815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6102bd816102c0565b50565b6001600160a01b03811661030857604051600160e51b62461bcd0281526004018080602001828103825260268152602001806103646026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b039290921691909117905556fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373a165627a7a72305820e7681c96057ab0d49783ca33bf89818b1c7372fbcf9a3b43630785bc6329fd6f0029`
  3804  
  3805  // BridgeCounterPartFuncSigs maps the 4-byte function signature to its string representation.
  3806  // Deprecated: Use BridgeCounterPartMetaData.Sigs instead.
  3807  var BridgeCounterPartFuncSigs = BridgeCounterPartMetaData.Sigs
  3808  
  3809  // BridgeCounterPartBin is the compiled bytecode used for deploying new contracts.
  3810  // Deprecated: Use BridgeCounterPartMetaData.Bin instead.
  3811  var BridgeCounterPartBin = BridgeCounterPartMetaData.Bin
  3812  
  3813  // DeployBridgeCounterPart deploys a new Klaytn contract, binding an instance of BridgeCounterPart to it.
  3814  func DeployBridgeCounterPart(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *types.Transaction, *BridgeCounterPart, error) {
  3815  	parsed, err := BridgeCounterPartMetaData.GetAbi()
  3816  	if err != nil {
  3817  		return common.Address{}, nil, nil, err
  3818  	}
  3819  	if parsed == nil {
  3820  		return common.Address{}, nil, nil, errors.New("GetABI returned nil")
  3821  	}
  3822  
  3823  	address, tx, contract, err := bind.DeployContract(auth, *parsed, common.FromHex(BridgeCounterPartBin), backend)
  3824  	if err != nil {
  3825  		return common.Address{}, nil, nil, err
  3826  	}
  3827  	return address, tx, &BridgeCounterPart{BridgeCounterPartCaller: BridgeCounterPartCaller{contract: contract}, BridgeCounterPartTransactor: BridgeCounterPartTransactor{contract: contract}, BridgeCounterPartFilterer: BridgeCounterPartFilterer{contract: contract}}, nil
  3828  }
  3829  
  3830  // BridgeCounterPart is an auto generated Go binding around a Klaytn contract.
  3831  type BridgeCounterPart struct {
  3832  	BridgeCounterPartCaller     // Read-only binding to the contract
  3833  	BridgeCounterPartTransactor // Write-only binding to the contract
  3834  	BridgeCounterPartFilterer   // Log filterer for contract events
  3835  }
  3836  
  3837  // BridgeCounterPartCaller is an auto generated read-only Go binding around a Klaytn contract.
  3838  type BridgeCounterPartCaller struct {
  3839  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  3840  }
  3841  
  3842  // BridgeCounterPartTransactor is an auto generated write-only Go binding around a Klaytn contract.
  3843  type BridgeCounterPartTransactor struct {
  3844  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  3845  }
  3846  
  3847  // BridgeCounterPartFilterer is an auto generated log filtering Go binding around a Klaytn contract events.
  3848  type BridgeCounterPartFilterer struct {
  3849  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  3850  }
  3851  
  3852  // BridgeCounterPartSession is an auto generated Go binding around a Klaytn contract,
  3853  // with pre-set call and transact options.
  3854  type BridgeCounterPartSession struct {
  3855  	Contract     *BridgeCounterPart // Generic contract binding to set the session for
  3856  	CallOpts     bind.CallOpts      // Call options to use throughout this session
  3857  	TransactOpts bind.TransactOpts  // Transaction auth options to use throughout this session
  3858  }
  3859  
  3860  // BridgeCounterPartCallerSession is an auto generated read-only Go binding around a Klaytn contract,
  3861  // with pre-set call options.
  3862  type BridgeCounterPartCallerSession struct {
  3863  	Contract *BridgeCounterPartCaller // Generic contract caller binding to set the session for
  3864  	CallOpts bind.CallOpts            // Call options to use throughout this session
  3865  }
  3866  
  3867  // BridgeCounterPartTransactorSession is an auto generated write-only Go binding around a Klaytn contract,
  3868  // with pre-set transact options.
  3869  type BridgeCounterPartTransactorSession struct {
  3870  	Contract     *BridgeCounterPartTransactor // Generic contract transactor binding to set the session for
  3871  	TransactOpts bind.TransactOpts            // Transaction auth options to use throughout this session
  3872  }
  3873  
  3874  // BridgeCounterPartRaw is an auto generated low-level Go binding around a Klaytn contract.
  3875  type BridgeCounterPartRaw struct {
  3876  	Contract *BridgeCounterPart // Generic contract binding to access the raw methods on
  3877  }
  3878  
  3879  // BridgeCounterPartCallerRaw is an auto generated low-level read-only Go binding around a Klaytn contract.
  3880  type BridgeCounterPartCallerRaw struct {
  3881  	Contract *BridgeCounterPartCaller // Generic read-only contract binding to access the raw methods on
  3882  }
  3883  
  3884  // BridgeCounterPartTransactorRaw is an auto generated low-level write-only Go binding around a Klaytn contract.
  3885  type BridgeCounterPartTransactorRaw struct {
  3886  	Contract *BridgeCounterPartTransactor // Generic write-only contract binding to access the raw methods on
  3887  }
  3888  
  3889  // NewBridgeCounterPart creates a new instance of BridgeCounterPart, bound to a specific deployed contract.
  3890  func NewBridgeCounterPart(address common.Address, backend bind.ContractBackend) (*BridgeCounterPart, error) {
  3891  	contract, err := bindBridgeCounterPart(address, backend, backend, backend)
  3892  	if err != nil {
  3893  		return nil, err
  3894  	}
  3895  	return &BridgeCounterPart{BridgeCounterPartCaller: BridgeCounterPartCaller{contract: contract}, BridgeCounterPartTransactor: BridgeCounterPartTransactor{contract: contract}, BridgeCounterPartFilterer: BridgeCounterPartFilterer{contract: contract}}, nil
  3896  }
  3897  
  3898  // NewBridgeCounterPartCaller creates a new read-only instance of BridgeCounterPart, bound to a specific deployed contract.
  3899  func NewBridgeCounterPartCaller(address common.Address, caller bind.ContractCaller) (*BridgeCounterPartCaller, error) {
  3900  	contract, err := bindBridgeCounterPart(address, caller, nil, nil)
  3901  	if err != nil {
  3902  		return nil, err
  3903  	}
  3904  	return &BridgeCounterPartCaller{contract: contract}, nil
  3905  }
  3906  
  3907  // NewBridgeCounterPartTransactor creates a new write-only instance of BridgeCounterPart, bound to a specific deployed contract.
  3908  func NewBridgeCounterPartTransactor(address common.Address, transactor bind.ContractTransactor) (*BridgeCounterPartTransactor, error) {
  3909  	contract, err := bindBridgeCounterPart(address, nil, transactor, nil)
  3910  	if err != nil {
  3911  		return nil, err
  3912  	}
  3913  	return &BridgeCounterPartTransactor{contract: contract}, nil
  3914  }
  3915  
  3916  // NewBridgeCounterPartFilterer creates a new log filterer instance of BridgeCounterPart, bound to a specific deployed contract.
  3917  func NewBridgeCounterPartFilterer(address common.Address, filterer bind.ContractFilterer) (*BridgeCounterPartFilterer, error) {
  3918  	contract, err := bindBridgeCounterPart(address, nil, nil, filterer)
  3919  	if err != nil {
  3920  		return nil, err
  3921  	}
  3922  	return &BridgeCounterPartFilterer{contract: contract}, nil
  3923  }
  3924  
  3925  // bindBridgeCounterPart binds a generic wrapper to an already deployed contract.
  3926  func bindBridgeCounterPart(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
  3927  	parsed, err := BridgeCounterPartMetaData.GetAbi()
  3928  	if err != nil {
  3929  		return nil, err
  3930  	}
  3931  	return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil
  3932  }
  3933  
  3934  // Call invokes the (constant) contract method with params as input values and
  3935  // sets the output to result. The result type might be a single field for simple
  3936  // returns, a slice of interfaces for anonymous returns and a struct for named
  3937  // returns.
  3938  func (_BridgeCounterPart *BridgeCounterPartRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
  3939  	return _BridgeCounterPart.Contract.BridgeCounterPartCaller.contract.Call(opts, result, method, params...)
  3940  }
  3941  
  3942  // Transfer initiates a plain transaction to move funds to the contract, calling
  3943  // its default method if one is available.
  3944  func (_BridgeCounterPart *BridgeCounterPartRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
  3945  	return _BridgeCounterPart.Contract.BridgeCounterPartTransactor.contract.Transfer(opts)
  3946  }
  3947  
  3948  // Transact invokes the (paid) contract method with params as input values.
  3949  func (_BridgeCounterPart *BridgeCounterPartRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
  3950  	return _BridgeCounterPart.Contract.BridgeCounterPartTransactor.contract.Transact(opts, method, params...)
  3951  }
  3952  
  3953  // Call invokes the (constant) contract method with params as input values and
  3954  // sets the output to result. The result type might be a single field for simple
  3955  // returns, a slice of interfaces for anonymous returns and a struct for named
  3956  // returns.
  3957  func (_BridgeCounterPart *BridgeCounterPartCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
  3958  	return _BridgeCounterPart.Contract.contract.Call(opts, result, method, params...)
  3959  }
  3960  
  3961  // Transfer initiates a plain transaction to move funds to the contract, calling
  3962  // its default method if one is available.
  3963  func (_BridgeCounterPart *BridgeCounterPartTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
  3964  	return _BridgeCounterPart.Contract.contract.Transfer(opts)
  3965  }
  3966  
  3967  // Transact invokes the (paid) contract method with params as input values.
  3968  func (_BridgeCounterPart *BridgeCounterPartTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
  3969  	return _BridgeCounterPart.Contract.contract.Transact(opts, method, params...)
  3970  }
  3971  
  3972  // CounterpartBridge is a free data retrieval call binding the contract method 0x3a348533.
  3973  //
  3974  // Solidity: function counterpartBridge() view returns(address)
  3975  func (_BridgeCounterPart *BridgeCounterPartCaller) CounterpartBridge(opts *bind.CallOpts) (common.Address, error) {
  3976  	var out []interface{}
  3977  	err := _BridgeCounterPart.contract.Call(opts, &out, "counterpartBridge")
  3978  
  3979  	if err != nil {
  3980  		return *new(common.Address), err
  3981  	}
  3982  
  3983  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
  3984  
  3985  	return out0, err
  3986  
  3987  }
  3988  
  3989  // CounterpartBridge is a free data retrieval call binding the contract method 0x3a348533.
  3990  //
  3991  // Solidity: function counterpartBridge() view returns(address)
  3992  func (_BridgeCounterPart *BridgeCounterPartSession) CounterpartBridge() (common.Address, error) {
  3993  	return _BridgeCounterPart.Contract.CounterpartBridge(&_BridgeCounterPart.CallOpts)
  3994  }
  3995  
  3996  // CounterpartBridge is a free data retrieval call binding the contract method 0x3a348533.
  3997  //
  3998  // Solidity: function counterpartBridge() view returns(address)
  3999  func (_BridgeCounterPart *BridgeCounterPartCallerSession) CounterpartBridge() (common.Address, error) {
  4000  	return _BridgeCounterPart.Contract.CounterpartBridge(&_BridgeCounterPart.CallOpts)
  4001  }
  4002  
  4003  // IsOwner is a free data retrieval call binding the contract method 0x8f32d59b.
  4004  //
  4005  // Solidity: function isOwner() view returns(bool)
  4006  func (_BridgeCounterPart *BridgeCounterPartCaller) IsOwner(opts *bind.CallOpts) (bool, error) {
  4007  	var out []interface{}
  4008  	err := _BridgeCounterPart.contract.Call(opts, &out, "isOwner")
  4009  
  4010  	if err != nil {
  4011  		return *new(bool), err
  4012  	}
  4013  
  4014  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
  4015  
  4016  	return out0, err
  4017  
  4018  }
  4019  
  4020  // IsOwner is a free data retrieval call binding the contract method 0x8f32d59b.
  4021  //
  4022  // Solidity: function isOwner() view returns(bool)
  4023  func (_BridgeCounterPart *BridgeCounterPartSession) IsOwner() (bool, error) {
  4024  	return _BridgeCounterPart.Contract.IsOwner(&_BridgeCounterPart.CallOpts)
  4025  }
  4026  
  4027  // IsOwner is a free data retrieval call binding the contract method 0x8f32d59b.
  4028  //
  4029  // Solidity: function isOwner() view returns(bool)
  4030  func (_BridgeCounterPart *BridgeCounterPartCallerSession) IsOwner() (bool, error) {
  4031  	return _BridgeCounterPart.Contract.IsOwner(&_BridgeCounterPart.CallOpts)
  4032  }
  4033  
  4034  // Owner is a free data retrieval call binding the contract method 0x8da5cb5b.
  4035  //
  4036  // Solidity: function owner() view returns(address)
  4037  func (_BridgeCounterPart *BridgeCounterPartCaller) Owner(opts *bind.CallOpts) (common.Address, error) {
  4038  	var out []interface{}
  4039  	err := _BridgeCounterPart.contract.Call(opts, &out, "owner")
  4040  
  4041  	if err != nil {
  4042  		return *new(common.Address), err
  4043  	}
  4044  
  4045  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
  4046  
  4047  	return out0, err
  4048  
  4049  }
  4050  
  4051  // Owner is a free data retrieval call binding the contract method 0x8da5cb5b.
  4052  //
  4053  // Solidity: function owner() view returns(address)
  4054  func (_BridgeCounterPart *BridgeCounterPartSession) Owner() (common.Address, error) {
  4055  	return _BridgeCounterPart.Contract.Owner(&_BridgeCounterPart.CallOpts)
  4056  }
  4057  
  4058  // Owner is a free data retrieval call binding the contract method 0x8da5cb5b.
  4059  //
  4060  // Solidity: function owner() view returns(address)
  4061  func (_BridgeCounterPart *BridgeCounterPartCallerSession) Owner() (common.Address, error) {
  4062  	return _BridgeCounterPart.Contract.Owner(&_BridgeCounterPart.CallOpts)
  4063  }
  4064  
  4065  // RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6.
  4066  //
  4067  // Solidity: function renounceOwnership() returns()
  4068  func (_BridgeCounterPart *BridgeCounterPartTransactor) RenounceOwnership(opts *bind.TransactOpts) (*types.Transaction, error) {
  4069  	return _BridgeCounterPart.contract.Transact(opts, "renounceOwnership")
  4070  }
  4071  
  4072  // RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6.
  4073  //
  4074  // Solidity: function renounceOwnership() returns()
  4075  func (_BridgeCounterPart *BridgeCounterPartSession) RenounceOwnership() (*types.Transaction, error) {
  4076  	return _BridgeCounterPart.Contract.RenounceOwnership(&_BridgeCounterPart.TransactOpts)
  4077  }
  4078  
  4079  // RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6.
  4080  //
  4081  // Solidity: function renounceOwnership() returns()
  4082  func (_BridgeCounterPart *BridgeCounterPartTransactorSession) RenounceOwnership() (*types.Transaction, error) {
  4083  	return _BridgeCounterPart.Contract.RenounceOwnership(&_BridgeCounterPart.TransactOpts)
  4084  }
  4085  
  4086  // SetCounterPartBridge is a paid mutator transaction binding the contract method 0x87b04c55.
  4087  //
  4088  // Solidity: function setCounterPartBridge(address _bridge) returns()
  4089  func (_BridgeCounterPart *BridgeCounterPartTransactor) SetCounterPartBridge(opts *bind.TransactOpts, _bridge common.Address) (*types.Transaction, error) {
  4090  	return _BridgeCounterPart.contract.Transact(opts, "setCounterPartBridge", _bridge)
  4091  }
  4092  
  4093  // SetCounterPartBridge is a paid mutator transaction binding the contract method 0x87b04c55.
  4094  //
  4095  // Solidity: function setCounterPartBridge(address _bridge) returns()
  4096  func (_BridgeCounterPart *BridgeCounterPartSession) SetCounterPartBridge(_bridge common.Address) (*types.Transaction, error) {
  4097  	return _BridgeCounterPart.Contract.SetCounterPartBridge(&_BridgeCounterPart.TransactOpts, _bridge)
  4098  }
  4099  
  4100  // SetCounterPartBridge is a paid mutator transaction binding the contract method 0x87b04c55.
  4101  //
  4102  // Solidity: function setCounterPartBridge(address _bridge) returns()
  4103  func (_BridgeCounterPart *BridgeCounterPartTransactorSession) SetCounterPartBridge(_bridge common.Address) (*types.Transaction, error) {
  4104  	return _BridgeCounterPart.Contract.SetCounterPartBridge(&_BridgeCounterPart.TransactOpts, _bridge)
  4105  }
  4106  
  4107  // TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b.
  4108  //
  4109  // Solidity: function transferOwnership(address newOwner) returns()
  4110  func (_BridgeCounterPart *BridgeCounterPartTransactor) TransferOwnership(opts *bind.TransactOpts, newOwner common.Address) (*types.Transaction, error) {
  4111  	return _BridgeCounterPart.contract.Transact(opts, "transferOwnership", newOwner)
  4112  }
  4113  
  4114  // TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b.
  4115  //
  4116  // Solidity: function transferOwnership(address newOwner) returns()
  4117  func (_BridgeCounterPart *BridgeCounterPartSession) TransferOwnership(newOwner common.Address) (*types.Transaction, error) {
  4118  	return _BridgeCounterPart.Contract.TransferOwnership(&_BridgeCounterPart.TransactOpts, newOwner)
  4119  }
  4120  
  4121  // TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b.
  4122  //
  4123  // Solidity: function transferOwnership(address newOwner) returns()
  4124  func (_BridgeCounterPart *BridgeCounterPartTransactorSession) TransferOwnership(newOwner common.Address) (*types.Transaction, error) {
  4125  	return _BridgeCounterPart.Contract.TransferOwnership(&_BridgeCounterPart.TransactOpts, newOwner)
  4126  }
  4127  
  4128  // BridgeCounterPartOwnershipTransferredIterator is returned from FilterOwnershipTransferred and is used to iterate over the raw logs and unpacked data for OwnershipTransferred events raised by the BridgeCounterPart contract.
  4129  type BridgeCounterPartOwnershipTransferredIterator struct {
  4130  	Event *BridgeCounterPartOwnershipTransferred // Event containing the contract specifics and raw log
  4131  
  4132  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  4133  	event    string              // Event name to use for unpacking event data
  4134  
  4135  	logs chan types.Log      // Log channel receiving the found contract events
  4136  	sub  klaytn.Subscription // Subscription for errors, completion and termination
  4137  	done bool                // Whether the subscription completed delivering logs
  4138  	fail error               // Occurred error to stop iteration
  4139  }
  4140  
  4141  // Next advances the iterator to the subsequent event, returning whether there
  4142  // are any more events found. In case of a retrieval or parsing error, false is
  4143  // returned and Error() can be queried for the exact failure.
  4144  func (it *BridgeCounterPartOwnershipTransferredIterator) Next() bool {
  4145  	// If the iterator failed, stop iterating
  4146  	if it.fail != nil {
  4147  		return false
  4148  	}
  4149  	// If the iterator completed, deliver directly whatever's available
  4150  	if it.done {
  4151  		select {
  4152  		case log := <-it.logs:
  4153  			it.Event = new(BridgeCounterPartOwnershipTransferred)
  4154  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  4155  				it.fail = err
  4156  				return false
  4157  			}
  4158  			it.Event.Raw = log
  4159  			return true
  4160  
  4161  		default:
  4162  			return false
  4163  		}
  4164  	}
  4165  	// Iterator still in progress, wait for either a data or an error event
  4166  	select {
  4167  	case log := <-it.logs:
  4168  		it.Event = new(BridgeCounterPartOwnershipTransferred)
  4169  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  4170  			it.fail = err
  4171  			return false
  4172  		}
  4173  		it.Event.Raw = log
  4174  		return true
  4175  
  4176  	case err := <-it.sub.Err():
  4177  		it.done = true
  4178  		it.fail = err
  4179  		return it.Next()
  4180  	}
  4181  }
  4182  
  4183  // Error returns any retrieval or parsing error occurred during filtering.
  4184  func (it *BridgeCounterPartOwnershipTransferredIterator) Error() error {
  4185  	return it.fail
  4186  }
  4187  
  4188  // Close terminates the iteration process, releasing any pending underlying
  4189  // resources.
  4190  func (it *BridgeCounterPartOwnershipTransferredIterator) Close() error {
  4191  	it.sub.Unsubscribe()
  4192  	return nil
  4193  }
  4194  
  4195  // BridgeCounterPartOwnershipTransferred represents a OwnershipTransferred event raised by the BridgeCounterPart contract.
  4196  type BridgeCounterPartOwnershipTransferred struct {
  4197  	PreviousOwner common.Address
  4198  	NewOwner      common.Address
  4199  	Raw           types.Log // Blockchain specific contextual infos
  4200  }
  4201  
  4202  // FilterOwnershipTransferred is a free log retrieval operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0.
  4203  //
  4204  // Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
  4205  func (_BridgeCounterPart *BridgeCounterPartFilterer) FilterOwnershipTransferred(opts *bind.FilterOpts, previousOwner []common.Address, newOwner []common.Address) (*BridgeCounterPartOwnershipTransferredIterator, error) {
  4206  
  4207  	var previousOwnerRule []interface{}
  4208  	for _, previousOwnerItem := range previousOwner {
  4209  		previousOwnerRule = append(previousOwnerRule, previousOwnerItem)
  4210  	}
  4211  	var newOwnerRule []interface{}
  4212  	for _, newOwnerItem := range newOwner {
  4213  		newOwnerRule = append(newOwnerRule, newOwnerItem)
  4214  	}
  4215  
  4216  	logs, sub, err := _BridgeCounterPart.contract.FilterLogs(opts, "OwnershipTransferred", previousOwnerRule, newOwnerRule)
  4217  	if err != nil {
  4218  		return nil, err
  4219  	}
  4220  	return &BridgeCounterPartOwnershipTransferredIterator{contract: _BridgeCounterPart.contract, event: "OwnershipTransferred", logs: logs, sub: sub}, nil
  4221  }
  4222  
  4223  // WatchOwnershipTransferred is a free log subscription operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0.
  4224  //
  4225  // Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
  4226  func (_BridgeCounterPart *BridgeCounterPartFilterer) WatchOwnershipTransferred(opts *bind.WatchOpts, sink chan<- *BridgeCounterPartOwnershipTransferred, previousOwner []common.Address, newOwner []common.Address) (event.Subscription, error) {
  4227  
  4228  	var previousOwnerRule []interface{}
  4229  	for _, previousOwnerItem := range previousOwner {
  4230  		previousOwnerRule = append(previousOwnerRule, previousOwnerItem)
  4231  	}
  4232  	var newOwnerRule []interface{}
  4233  	for _, newOwnerItem := range newOwner {
  4234  		newOwnerRule = append(newOwnerRule, newOwnerItem)
  4235  	}
  4236  
  4237  	logs, sub, err := _BridgeCounterPart.contract.WatchLogs(opts, "OwnershipTransferred", previousOwnerRule, newOwnerRule)
  4238  	if err != nil {
  4239  		return nil, err
  4240  	}
  4241  	return event.NewSubscription(func(quit <-chan struct{}) error {
  4242  		defer sub.Unsubscribe()
  4243  		for {
  4244  			select {
  4245  			case log := <-logs:
  4246  				// New log arrived, parse the event and forward to the user
  4247  				event := new(BridgeCounterPartOwnershipTransferred)
  4248  				if err := _BridgeCounterPart.contract.UnpackLog(event, "OwnershipTransferred", log); err != nil {
  4249  					return err
  4250  				}
  4251  				event.Raw = log
  4252  
  4253  				select {
  4254  				case sink <- event:
  4255  				case err := <-sub.Err():
  4256  					return err
  4257  				case <-quit:
  4258  					return nil
  4259  				}
  4260  			case err := <-sub.Err():
  4261  				return err
  4262  			case <-quit:
  4263  				return nil
  4264  			}
  4265  		}
  4266  	}), nil
  4267  }
  4268  
  4269  // ParseOwnershipTransferred is a log parse operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0.
  4270  //
  4271  // Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
  4272  func (_BridgeCounterPart *BridgeCounterPartFilterer) ParseOwnershipTransferred(log types.Log) (*BridgeCounterPartOwnershipTransferred, error) {
  4273  	event := new(BridgeCounterPartOwnershipTransferred)
  4274  	if err := _BridgeCounterPart.contract.UnpackLog(event, "OwnershipTransferred", log); err != nil {
  4275  		return nil, err
  4276  	}
  4277  	return event, nil
  4278  }
  4279  
  4280  // BridgeFeeMetaData contains all meta data concerning the BridgeFee contract.
  4281  var BridgeFeeMetaData = &bind.MetaData{
  4282  	ABI: "[{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"address\"}],\"name\":\"feeOfERC20\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"feeReceiver\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"feeOfKLAY\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"name\":\"_feeReceiver\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"fee\",\"type\":\"uint256\"}],\"name\":\"KLAYFeeChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"token\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"fee\",\"type\":\"uint256\"}],\"name\":\"ERC20FeeChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"feeReceiver\",\"type\":\"address\"}],\"name\":\"FeeReceiverChanged\",\"type\":\"event\"}]",
  4283  	Sigs: map[string]string{
  4284  		"488af871": "feeOfERC20(address)",
  4285  		"c263b5d6": "feeOfKLAY()",
  4286  		"b3f00674": "feeReceiver()",
  4287  	},
  4288  }
  4289  
  4290  // BridgeFeeABI is the input ABI used to generate the binding from.
  4291  // Deprecated: Use BridgeFeeMetaData.ABI instead.
  4292  var BridgeFeeABI = BridgeFeeMetaData.ABI
  4293  
  4294  // BridgeFeeBinRuntime is the compiled bytecode used for adding genesis block without deploying code.
  4295  const BridgeFeeBinRuntime = ``
  4296  
  4297  // BridgeFeeFuncSigs maps the 4-byte function signature to its string representation.
  4298  // Deprecated: Use BridgeFeeMetaData.Sigs instead.
  4299  var BridgeFeeFuncSigs = BridgeFeeMetaData.Sigs
  4300  
  4301  // BridgeFee is an auto generated Go binding around a Klaytn contract.
  4302  type BridgeFee struct {
  4303  	BridgeFeeCaller     // Read-only binding to the contract
  4304  	BridgeFeeTransactor // Write-only binding to the contract
  4305  	BridgeFeeFilterer   // Log filterer for contract events
  4306  }
  4307  
  4308  // BridgeFeeCaller is an auto generated read-only Go binding around a Klaytn contract.
  4309  type BridgeFeeCaller struct {
  4310  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  4311  }
  4312  
  4313  // BridgeFeeTransactor is an auto generated write-only Go binding around a Klaytn contract.
  4314  type BridgeFeeTransactor struct {
  4315  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  4316  }
  4317  
  4318  // BridgeFeeFilterer is an auto generated log filtering Go binding around a Klaytn contract events.
  4319  type BridgeFeeFilterer struct {
  4320  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  4321  }
  4322  
  4323  // BridgeFeeSession is an auto generated Go binding around a Klaytn contract,
  4324  // with pre-set call and transact options.
  4325  type BridgeFeeSession struct {
  4326  	Contract     *BridgeFee        // Generic contract binding to set the session for
  4327  	CallOpts     bind.CallOpts     // Call options to use throughout this session
  4328  	TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
  4329  }
  4330  
  4331  // BridgeFeeCallerSession is an auto generated read-only Go binding around a Klaytn contract,
  4332  // with pre-set call options.
  4333  type BridgeFeeCallerSession struct {
  4334  	Contract *BridgeFeeCaller // Generic contract caller binding to set the session for
  4335  	CallOpts bind.CallOpts    // Call options to use throughout this session
  4336  }
  4337  
  4338  // BridgeFeeTransactorSession is an auto generated write-only Go binding around a Klaytn contract,
  4339  // with pre-set transact options.
  4340  type BridgeFeeTransactorSession struct {
  4341  	Contract     *BridgeFeeTransactor // Generic contract transactor binding to set the session for
  4342  	TransactOpts bind.TransactOpts    // Transaction auth options to use throughout this session
  4343  }
  4344  
  4345  // BridgeFeeRaw is an auto generated low-level Go binding around a Klaytn contract.
  4346  type BridgeFeeRaw struct {
  4347  	Contract *BridgeFee // Generic contract binding to access the raw methods on
  4348  }
  4349  
  4350  // BridgeFeeCallerRaw is an auto generated low-level read-only Go binding around a Klaytn contract.
  4351  type BridgeFeeCallerRaw struct {
  4352  	Contract *BridgeFeeCaller // Generic read-only contract binding to access the raw methods on
  4353  }
  4354  
  4355  // BridgeFeeTransactorRaw is an auto generated low-level write-only Go binding around a Klaytn contract.
  4356  type BridgeFeeTransactorRaw struct {
  4357  	Contract *BridgeFeeTransactor // Generic write-only contract binding to access the raw methods on
  4358  }
  4359  
  4360  // NewBridgeFee creates a new instance of BridgeFee, bound to a specific deployed contract.
  4361  func NewBridgeFee(address common.Address, backend bind.ContractBackend) (*BridgeFee, error) {
  4362  	contract, err := bindBridgeFee(address, backend, backend, backend)
  4363  	if err != nil {
  4364  		return nil, err
  4365  	}
  4366  	return &BridgeFee{BridgeFeeCaller: BridgeFeeCaller{contract: contract}, BridgeFeeTransactor: BridgeFeeTransactor{contract: contract}, BridgeFeeFilterer: BridgeFeeFilterer{contract: contract}}, nil
  4367  }
  4368  
  4369  // NewBridgeFeeCaller creates a new read-only instance of BridgeFee, bound to a specific deployed contract.
  4370  func NewBridgeFeeCaller(address common.Address, caller bind.ContractCaller) (*BridgeFeeCaller, error) {
  4371  	contract, err := bindBridgeFee(address, caller, nil, nil)
  4372  	if err != nil {
  4373  		return nil, err
  4374  	}
  4375  	return &BridgeFeeCaller{contract: contract}, nil
  4376  }
  4377  
  4378  // NewBridgeFeeTransactor creates a new write-only instance of BridgeFee, bound to a specific deployed contract.
  4379  func NewBridgeFeeTransactor(address common.Address, transactor bind.ContractTransactor) (*BridgeFeeTransactor, error) {
  4380  	contract, err := bindBridgeFee(address, nil, transactor, nil)
  4381  	if err != nil {
  4382  		return nil, err
  4383  	}
  4384  	return &BridgeFeeTransactor{contract: contract}, nil
  4385  }
  4386  
  4387  // NewBridgeFeeFilterer creates a new log filterer instance of BridgeFee, bound to a specific deployed contract.
  4388  func NewBridgeFeeFilterer(address common.Address, filterer bind.ContractFilterer) (*BridgeFeeFilterer, error) {
  4389  	contract, err := bindBridgeFee(address, nil, nil, filterer)
  4390  	if err != nil {
  4391  		return nil, err
  4392  	}
  4393  	return &BridgeFeeFilterer{contract: contract}, nil
  4394  }
  4395  
  4396  // bindBridgeFee binds a generic wrapper to an already deployed contract.
  4397  func bindBridgeFee(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
  4398  	parsed, err := BridgeFeeMetaData.GetAbi()
  4399  	if err != nil {
  4400  		return nil, err
  4401  	}
  4402  	return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil
  4403  }
  4404  
  4405  // Call invokes the (constant) contract method with params as input values and
  4406  // sets the output to result. The result type might be a single field for simple
  4407  // returns, a slice of interfaces for anonymous returns and a struct for named
  4408  // returns.
  4409  func (_BridgeFee *BridgeFeeRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
  4410  	return _BridgeFee.Contract.BridgeFeeCaller.contract.Call(opts, result, method, params...)
  4411  }
  4412  
  4413  // Transfer initiates a plain transaction to move funds to the contract, calling
  4414  // its default method if one is available.
  4415  func (_BridgeFee *BridgeFeeRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
  4416  	return _BridgeFee.Contract.BridgeFeeTransactor.contract.Transfer(opts)
  4417  }
  4418  
  4419  // Transact invokes the (paid) contract method with params as input values.
  4420  func (_BridgeFee *BridgeFeeRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
  4421  	return _BridgeFee.Contract.BridgeFeeTransactor.contract.Transact(opts, method, params...)
  4422  }
  4423  
  4424  // Call invokes the (constant) contract method with params as input values and
  4425  // sets the output to result. The result type might be a single field for simple
  4426  // returns, a slice of interfaces for anonymous returns and a struct for named
  4427  // returns.
  4428  func (_BridgeFee *BridgeFeeCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
  4429  	return _BridgeFee.Contract.contract.Call(opts, result, method, params...)
  4430  }
  4431  
  4432  // Transfer initiates a plain transaction to move funds to the contract, calling
  4433  // its default method if one is available.
  4434  func (_BridgeFee *BridgeFeeTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
  4435  	return _BridgeFee.Contract.contract.Transfer(opts)
  4436  }
  4437  
  4438  // Transact invokes the (paid) contract method with params as input values.
  4439  func (_BridgeFee *BridgeFeeTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
  4440  	return _BridgeFee.Contract.contract.Transact(opts, method, params...)
  4441  }
  4442  
  4443  // FeeOfERC20 is a free data retrieval call binding the contract method 0x488af871.
  4444  //
  4445  // Solidity: function feeOfERC20(address ) view returns(uint256)
  4446  func (_BridgeFee *BridgeFeeCaller) FeeOfERC20(opts *bind.CallOpts, arg0 common.Address) (*big.Int, error) {
  4447  	var out []interface{}
  4448  	err := _BridgeFee.contract.Call(opts, &out, "feeOfERC20", arg0)
  4449  
  4450  	if err != nil {
  4451  		return *new(*big.Int), err
  4452  	}
  4453  
  4454  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
  4455  
  4456  	return out0, err
  4457  
  4458  }
  4459  
  4460  // FeeOfERC20 is a free data retrieval call binding the contract method 0x488af871.
  4461  //
  4462  // Solidity: function feeOfERC20(address ) view returns(uint256)
  4463  func (_BridgeFee *BridgeFeeSession) FeeOfERC20(arg0 common.Address) (*big.Int, error) {
  4464  	return _BridgeFee.Contract.FeeOfERC20(&_BridgeFee.CallOpts, arg0)
  4465  }
  4466  
  4467  // FeeOfERC20 is a free data retrieval call binding the contract method 0x488af871.
  4468  //
  4469  // Solidity: function feeOfERC20(address ) view returns(uint256)
  4470  func (_BridgeFee *BridgeFeeCallerSession) FeeOfERC20(arg0 common.Address) (*big.Int, error) {
  4471  	return _BridgeFee.Contract.FeeOfERC20(&_BridgeFee.CallOpts, arg0)
  4472  }
  4473  
  4474  // FeeOfKLAY is a free data retrieval call binding the contract method 0xc263b5d6.
  4475  //
  4476  // Solidity: function feeOfKLAY() view returns(uint256)
  4477  func (_BridgeFee *BridgeFeeCaller) FeeOfKLAY(opts *bind.CallOpts) (*big.Int, error) {
  4478  	var out []interface{}
  4479  	err := _BridgeFee.contract.Call(opts, &out, "feeOfKLAY")
  4480  
  4481  	if err != nil {
  4482  		return *new(*big.Int), err
  4483  	}
  4484  
  4485  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
  4486  
  4487  	return out0, err
  4488  
  4489  }
  4490  
  4491  // FeeOfKLAY is a free data retrieval call binding the contract method 0xc263b5d6.
  4492  //
  4493  // Solidity: function feeOfKLAY() view returns(uint256)
  4494  func (_BridgeFee *BridgeFeeSession) FeeOfKLAY() (*big.Int, error) {
  4495  	return _BridgeFee.Contract.FeeOfKLAY(&_BridgeFee.CallOpts)
  4496  }
  4497  
  4498  // FeeOfKLAY is a free data retrieval call binding the contract method 0xc263b5d6.
  4499  //
  4500  // Solidity: function feeOfKLAY() view returns(uint256)
  4501  func (_BridgeFee *BridgeFeeCallerSession) FeeOfKLAY() (*big.Int, error) {
  4502  	return _BridgeFee.Contract.FeeOfKLAY(&_BridgeFee.CallOpts)
  4503  }
  4504  
  4505  // FeeReceiver is a free data retrieval call binding the contract method 0xb3f00674.
  4506  //
  4507  // Solidity: function feeReceiver() view returns(address)
  4508  func (_BridgeFee *BridgeFeeCaller) FeeReceiver(opts *bind.CallOpts) (common.Address, error) {
  4509  	var out []interface{}
  4510  	err := _BridgeFee.contract.Call(opts, &out, "feeReceiver")
  4511  
  4512  	if err != nil {
  4513  		return *new(common.Address), err
  4514  	}
  4515  
  4516  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
  4517  
  4518  	return out0, err
  4519  
  4520  }
  4521  
  4522  // FeeReceiver is a free data retrieval call binding the contract method 0xb3f00674.
  4523  //
  4524  // Solidity: function feeReceiver() view returns(address)
  4525  func (_BridgeFee *BridgeFeeSession) FeeReceiver() (common.Address, error) {
  4526  	return _BridgeFee.Contract.FeeReceiver(&_BridgeFee.CallOpts)
  4527  }
  4528  
  4529  // FeeReceiver is a free data retrieval call binding the contract method 0xb3f00674.
  4530  //
  4531  // Solidity: function feeReceiver() view returns(address)
  4532  func (_BridgeFee *BridgeFeeCallerSession) FeeReceiver() (common.Address, error) {
  4533  	return _BridgeFee.Contract.FeeReceiver(&_BridgeFee.CallOpts)
  4534  }
  4535  
  4536  // BridgeFeeERC20FeeChangedIterator is returned from FilterERC20FeeChanged and is used to iterate over the raw logs and unpacked data for ERC20FeeChanged events raised by the BridgeFee contract.
  4537  type BridgeFeeERC20FeeChangedIterator struct {
  4538  	Event *BridgeFeeERC20FeeChanged // Event containing the contract specifics and raw log
  4539  
  4540  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  4541  	event    string              // Event name to use for unpacking event data
  4542  
  4543  	logs chan types.Log      // Log channel receiving the found contract events
  4544  	sub  klaytn.Subscription // Subscription for errors, completion and termination
  4545  	done bool                // Whether the subscription completed delivering logs
  4546  	fail error               // Occurred error to stop iteration
  4547  }
  4548  
  4549  // Next advances the iterator to the subsequent event, returning whether there
  4550  // are any more events found. In case of a retrieval or parsing error, false is
  4551  // returned and Error() can be queried for the exact failure.
  4552  func (it *BridgeFeeERC20FeeChangedIterator) Next() bool {
  4553  	// If the iterator failed, stop iterating
  4554  	if it.fail != nil {
  4555  		return false
  4556  	}
  4557  	// If the iterator completed, deliver directly whatever's available
  4558  	if it.done {
  4559  		select {
  4560  		case log := <-it.logs:
  4561  			it.Event = new(BridgeFeeERC20FeeChanged)
  4562  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  4563  				it.fail = err
  4564  				return false
  4565  			}
  4566  			it.Event.Raw = log
  4567  			return true
  4568  
  4569  		default:
  4570  			return false
  4571  		}
  4572  	}
  4573  	// Iterator still in progress, wait for either a data or an error event
  4574  	select {
  4575  	case log := <-it.logs:
  4576  		it.Event = new(BridgeFeeERC20FeeChanged)
  4577  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  4578  			it.fail = err
  4579  			return false
  4580  		}
  4581  		it.Event.Raw = log
  4582  		return true
  4583  
  4584  	case err := <-it.sub.Err():
  4585  		it.done = true
  4586  		it.fail = err
  4587  		return it.Next()
  4588  	}
  4589  }
  4590  
  4591  // Error returns any retrieval or parsing error occurred during filtering.
  4592  func (it *BridgeFeeERC20FeeChangedIterator) Error() error {
  4593  	return it.fail
  4594  }
  4595  
  4596  // Close terminates the iteration process, releasing any pending underlying
  4597  // resources.
  4598  func (it *BridgeFeeERC20FeeChangedIterator) Close() error {
  4599  	it.sub.Unsubscribe()
  4600  	return nil
  4601  }
  4602  
  4603  // BridgeFeeERC20FeeChanged represents a ERC20FeeChanged event raised by the BridgeFee contract.
  4604  type BridgeFeeERC20FeeChanged struct {
  4605  	Token common.Address
  4606  	Fee   *big.Int
  4607  	Raw   types.Log // Blockchain specific contextual infos
  4608  }
  4609  
  4610  // FilterERC20FeeChanged is a free log retrieval operation binding the contract event 0xdb5ad2e76ae20cfa4e7adbc7305d7538442164d85ead9937c98620a1aa4c255b.
  4611  //
  4612  // Solidity: event ERC20FeeChanged(address indexed token, uint256 indexed fee)
  4613  func (_BridgeFee *BridgeFeeFilterer) FilterERC20FeeChanged(opts *bind.FilterOpts, token []common.Address, fee []*big.Int) (*BridgeFeeERC20FeeChangedIterator, error) {
  4614  
  4615  	var tokenRule []interface{}
  4616  	for _, tokenItem := range token {
  4617  		tokenRule = append(tokenRule, tokenItem)
  4618  	}
  4619  	var feeRule []interface{}
  4620  	for _, feeItem := range fee {
  4621  		feeRule = append(feeRule, feeItem)
  4622  	}
  4623  
  4624  	logs, sub, err := _BridgeFee.contract.FilterLogs(opts, "ERC20FeeChanged", tokenRule, feeRule)
  4625  	if err != nil {
  4626  		return nil, err
  4627  	}
  4628  	return &BridgeFeeERC20FeeChangedIterator{contract: _BridgeFee.contract, event: "ERC20FeeChanged", logs: logs, sub: sub}, nil
  4629  }
  4630  
  4631  // WatchERC20FeeChanged is a free log subscription operation binding the contract event 0xdb5ad2e76ae20cfa4e7adbc7305d7538442164d85ead9937c98620a1aa4c255b.
  4632  //
  4633  // Solidity: event ERC20FeeChanged(address indexed token, uint256 indexed fee)
  4634  func (_BridgeFee *BridgeFeeFilterer) WatchERC20FeeChanged(opts *bind.WatchOpts, sink chan<- *BridgeFeeERC20FeeChanged, token []common.Address, fee []*big.Int) (event.Subscription, error) {
  4635  
  4636  	var tokenRule []interface{}
  4637  	for _, tokenItem := range token {
  4638  		tokenRule = append(tokenRule, tokenItem)
  4639  	}
  4640  	var feeRule []interface{}
  4641  	for _, feeItem := range fee {
  4642  		feeRule = append(feeRule, feeItem)
  4643  	}
  4644  
  4645  	logs, sub, err := _BridgeFee.contract.WatchLogs(opts, "ERC20FeeChanged", tokenRule, feeRule)
  4646  	if err != nil {
  4647  		return nil, err
  4648  	}
  4649  	return event.NewSubscription(func(quit <-chan struct{}) error {
  4650  		defer sub.Unsubscribe()
  4651  		for {
  4652  			select {
  4653  			case log := <-logs:
  4654  				// New log arrived, parse the event and forward to the user
  4655  				event := new(BridgeFeeERC20FeeChanged)
  4656  				if err := _BridgeFee.contract.UnpackLog(event, "ERC20FeeChanged", log); err != nil {
  4657  					return err
  4658  				}
  4659  				event.Raw = log
  4660  
  4661  				select {
  4662  				case sink <- event:
  4663  				case err := <-sub.Err():
  4664  					return err
  4665  				case <-quit:
  4666  					return nil
  4667  				}
  4668  			case err := <-sub.Err():
  4669  				return err
  4670  			case <-quit:
  4671  				return nil
  4672  			}
  4673  		}
  4674  	}), nil
  4675  }
  4676  
  4677  // ParseERC20FeeChanged is a log parse operation binding the contract event 0xdb5ad2e76ae20cfa4e7adbc7305d7538442164d85ead9937c98620a1aa4c255b.
  4678  //
  4679  // Solidity: event ERC20FeeChanged(address indexed token, uint256 indexed fee)
  4680  func (_BridgeFee *BridgeFeeFilterer) ParseERC20FeeChanged(log types.Log) (*BridgeFeeERC20FeeChanged, error) {
  4681  	event := new(BridgeFeeERC20FeeChanged)
  4682  	if err := _BridgeFee.contract.UnpackLog(event, "ERC20FeeChanged", log); err != nil {
  4683  		return nil, err
  4684  	}
  4685  	return event, nil
  4686  }
  4687  
  4688  // BridgeFeeFeeReceiverChangedIterator is returned from FilterFeeReceiverChanged and is used to iterate over the raw logs and unpacked data for FeeReceiverChanged events raised by the BridgeFee contract.
  4689  type BridgeFeeFeeReceiverChangedIterator struct {
  4690  	Event *BridgeFeeFeeReceiverChanged // Event containing the contract specifics and raw log
  4691  
  4692  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  4693  	event    string              // Event name to use for unpacking event data
  4694  
  4695  	logs chan types.Log      // Log channel receiving the found contract events
  4696  	sub  klaytn.Subscription // Subscription for errors, completion and termination
  4697  	done bool                // Whether the subscription completed delivering logs
  4698  	fail error               // Occurred error to stop iteration
  4699  }
  4700  
  4701  // Next advances the iterator to the subsequent event, returning whether there
  4702  // are any more events found. In case of a retrieval or parsing error, false is
  4703  // returned and Error() can be queried for the exact failure.
  4704  func (it *BridgeFeeFeeReceiverChangedIterator) Next() bool {
  4705  	// If the iterator failed, stop iterating
  4706  	if it.fail != nil {
  4707  		return false
  4708  	}
  4709  	// If the iterator completed, deliver directly whatever's available
  4710  	if it.done {
  4711  		select {
  4712  		case log := <-it.logs:
  4713  			it.Event = new(BridgeFeeFeeReceiverChanged)
  4714  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  4715  				it.fail = err
  4716  				return false
  4717  			}
  4718  			it.Event.Raw = log
  4719  			return true
  4720  
  4721  		default:
  4722  			return false
  4723  		}
  4724  	}
  4725  	// Iterator still in progress, wait for either a data or an error event
  4726  	select {
  4727  	case log := <-it.logs:
  4728  		it.Event = new(BridgeFeeFeeReceiverChanged)
  4729  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  4730  			it.fail = err
  4731  			return false
  4732  		}
  4733  		it.Event.Raw = log
  4734  		return true
  4735  
  4736  	case err := <-it.sub.Err():
  4737  		it.done = true
  4738  		it.fail = err
  4739  		return it.Next()
  4740  	}
  4741  }
  4742  
  4743  // Error returns any retrieval or parsing error occurred during filtering.
  4744  func (it *BridgeFeeFeeReceiverChangedIterator) Error() error {
  4745  	return it.fail
  4746  }
  4747  
  4748  // Close terminates the iteration process, releasing any pending underlying
  4749  // resources.
  4750  func (it *BridgeFeeFeeReceiverChangedIterator) Close() error {
  4751  	it.sub.Unsubscribe()
  4752  	return nil
  4753  }
  4754  
  4755  // BridgeFeeFeeReceiverChanged represents a FeeReceiverChanged event raised by the BridgeFee contract.
  4756  type BridgeFeeFeeReceiverChanged struct {
  4757  	FeeReceiver common.Address
  4758  	Raw         types.Log // Blockchain specific contextual infos
  4759  }
  4760  
  4761  // FilterFeeReceiverChanged is a free log retrieval operation binding the contract event 0x647672599d3468abcfa241a13c9e3d34383caadb5cc80fb67c3cdfcd5f786059.
  4762  //
  4763  // Solidity: event FeeReceiverChanged(address indexed feeReceiver)
  4764  func (_BridgeFee *BridgeFeeFilterer) FilterFeeReceiverChanged(opts *bind.FilterOpts, feeReceiver []common.Address) (*BridgeFeeFeeReceiverChangedIterator, error) {
  4765  
  4766  	var feeReceiverRule []interface{}
  4767  	for _, feeReceiverItem := range feeReceiver {
  4768  		feeReceiverRule = append(feeReceiverRule, feeReceiverItem)
  4769  	}
  4770  
  4771  	logs, sub, err := _BridgeFee.contract.FilterLogs(opts, "FeeReceiverChanged", feeReceiverRule)
  4772  	if err != nil {
  4773  		return nil, err
  4774  	}
  4775  	return &BridgeFeeFeeReceiverChangedIterator{contract: _BridgeFee.contract, event: "FeeReceiverChanged", logs: logs, sub: sub}, nil
  4776  }
  4777  
  4778  // WatchFeeReceiverChanged is a free log subscription operation binding the contract event 0x647672599d3468abcfa241a13c9e3d34383caadb5cc80fb67c3cdfcd5f786059.
  4779  //
  4780  // Solidity: event FeeReceiverChanged(address indexed feeReceiver)
  4781  func (_BridgeFee *BridgeFeeFilterer) WatchFeeReceiverChanged(opts *bind.WatchOpts, sink chan<- *BridgeFeeFeeReceiverChanged, feeReceiver []common.Address) (event.Subscription, error) {
  4782  
  4783  	var feeReceiverRule []interface{}
  4784  	for _, feeReceiverItem := range feeReceiver {
  4785  		feeReceiverRule = append(feeReceiverRule, feeReceiverItem)
  4786  	}
  4787  
  4788  	logs, sub, err := _BridgeFee.contract.WatchLogs(opts, "FeeReceiverChanged", feeReceiverRule)
  4789  	if err != nil {
  4790  		return nil, err
  4791  	}
  4792  	return event.NewSubscription(func(quit <-chan struct{}) error {
  4793  		defer sub.Unsubscribe()
  4794  		for {
  4795  			select {
  4796  			case log := <-logs:
  4797  				// New log arrived, parse the event and forward to the user
  4798  				event := new(BridgeFeeFeeReceiverChanged)
  4799  				if err := _BridgeFee.contract.UnpackLog(event, "FeeReceiverChanged", log); err != nil {
  4800  					return err
  4801  				}
  4802  				event.Raw = log
  4803  
  4804  				select {
  4805  				case sink <- event:
  4806  				case err := <-sub.Err():
  4807  					return err
  4808  				case <-quit:
  4809  					return nil
  4810  				}
  4811  			case err := <-sub.Err():
  4812  				return err
  4813  			case <-quit:
  4814  				return nil
  4815  			}
  4816  		}
  4817  	}), nil
  4818  }
  4819  
  4820  // ParseFeeReceiverChanged is a log parse operation binding the contract event 0x647672599d3468abcfa241a13c9e3d34383caadb5cc80fb67c3cdfcd5f786059.
  4821  //
  4822  // Solidity: event FeeReceiverChanged(address indexed feeReceiver)
  4823  func (_BridgeFee *BridgeFeeFilterer) ParseFeeReceiverChanged(log types.Log) (*BridgeFeeFeeReceiverChanged, error) {
  4824  	event := new(BridgeFeeFeeReceiverChanged)
  4825  	if err := _BridgeFee.contract.UnpackLog(event, "FeeReceiverChanged", log); err != nil {
  4826  		return nil, err
  4827  	}
  4828  	return event, nil
  4829  }
  4830  
  4831  // BridgeFeeKLAYFeeChangedIterator is returned from FilterKLAYFeeChanged and is used to iterate over the raw logs and unpacked data for KLAYFeeChanged events raised by the BridgeFee contract.
  4832  type BridgeFeeKLAYFeeChangedIterator struct {
  4833  	Event *BridgeFeeKLAYFeeChanged // Event containing the contract specifics and raw log
  4834  
  4835  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  4836  	event    string              // Event name to use for unpacking event data
  4837  
  4838  	logs chan types.Log      // Log channel receiving the found contract events
  4839  	sub  klaytn.Subscription // Subscription for errors, completion and termination
  4840  	done bool                // Whether the subscription completed delivering logs
  4841  	fail error               // Occurred error to stop iteration
  4842  }
  4843  
  4844  // Next advances the iterator to the subsequent event, returning whether there
  4845  // are any more events found. In case of a retrieval or parsing error, false is
  4846  // returned and Error() can be queried for the exact failure.
  4847  func (it *BridgeFeeKLAYFeeChangedIterator) Next() bool {
  4848  	// If the iterator failed, stop iterating
  4849  	if it.fail != nil {
  4850  		return false
  4851  	}
  4852  	// If the iterator completed, deliver directly whatever's available
  4853  	if it.done {
  4854  		select {
  4855  		case log := <-it.logs:
  4856  			it.Event = new(BridgeFeeKLAYFeeChanged)
  4857  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  4858  				it.fail = err
  4859  				return false
  4860  			}
  4861  			it.Event.Raw = log
  4862  			return true
  4863  
  4864  		default:
  4865  			return false
  4866  		}
  4867  	}
  4868  	// Iterator still in progress, wait for either a data or an error event
  4869  	select {
  4870  	case log := <-it.logs:
  4871  		it.Event = new(BridgeFeeKLAYFeeChanged)
  4872  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  4873  			it.fail = err
  4874  			return false
  4875  		}
  4876  		it.Event.Raw = log
  4877  		return true
  4878  
  4879  	case err := <-it.sub.Err():
  4880  		it.done = true
  4881  		it.fail = err
  4882  		return it.Next()
  4883  	}
  4884  }
  4885  
  4886  // Error returns any retrieval or parsing error occurred during filtering.
  4887  func (it *BridgeFeeKLAYFeeChangedIterator) Error() error {
  4888  	return it.fail
  4889  }
  4890  
  4891  // Close terminates the iteration process, releasing any pending underlying
  4892  // resources.
  4893  func (it *BridgeFeeKLAYFeeChangedIterator) Close() error {
  4894  	it.sub.Unsubscribe()
  4895  	return nil
  4896  }
  4897  
  4898  // BridgeFeeKLAYFeeChanged represents a KLAYFeeChanged event raised by the BridgeFee contract.
  4899  type BridgeFeeKLAYFeeChanged struct {
  4900  	Fee *big.Int
  4901  	Raw types.Log // Blockchain specific contextual infos
  4902  }
  4903  
  4904  // FilterKLAYFeeChanged is a free log retrieval operation binding the contract event 0xa7a33d0996347e1aa55ca2206015b61b9534bdd881d59d59aa680e25eefac365.
  4905  //
  4906  // Solidity: event KLAYFeeChanged(uint256 indexed fee)
  4907  func (_BridgeFee *BridgeFeeFilterer) FilterKLAYFeeChanged(opts *bind.FilterOpts, fee []*big.Int) (*BridgeFeeKLAYFeeChangedIterator, error) {
  4908  
  4909  	var feeRule []interface{}
  4910  	for _, feeItem := range fee {
  4911  		feeRule = append(feeRule, feeItem)
  4912  	}
  4913  
  4914  	logs, sub, err := _BridgeFee.contract.FilterLogs(opts, "KLAYFeeChanged", feeRule)
  4915  	if err != nil {
  4916  		return nil, err
  4917  	}
  4918  	return &BridgeFeeKLAYFeeChangedIterator{contract: _BridgeFee.contract, event: "KLAYFeeChanged", logs: logs, sub: sub}, nil
  4919  }
  4920  
  4921  // WatchKLAYFeeChanged is a free log subscription operation binding the contract event 0xa7a33d0996347e1aa55ca2206015b61b9534bdd881d59d59aa680e25eefac365.
  4922  //
  4923  // Solidity: event KLAYFeeChanged(uint256 indexed fee)
  4924  func (_BridgeFee *BridgeFeeFilterer) WatchKLAYFeeChanged(opts *bind.WatchOpts, sink chan<- *BridgeFeeKLAYFeeChanged, fee []*big.Int) (event.Subscription, error) {
  4925  
  4926  	var feeRule []interface{}
  4927  	for _, feeItem := range fee {
  4928  		feeRule = append(feeRule, feeItem)
  4929  	}
  4930  
  4931  	logs, sub, err := _BridgeFee.contract.WatchLogs(opts, "KLAYFeeChanged", feeRule)
  4932  	if err != nil {
  4933  		return nil, err
  4934  	}
  4935  	return event.NewSubscription(func(quit <-chan struct{}) error {
  4936  		defer sub.Unsubscribe()
  4937  		for {
  4938  			select {
  4939  			case log := <-logs:
  4940  				// New log arrived, parse the event and forward to the user
  4941  				event := new(BridgeFeeKLAYFeeChanged)
  4942  				if err := _BridgeFee.contract.UnpackLog(event, "KLAYFeeChanged", log); err != nil {
  4943  					return err
  4944  				}
  4945  				event.Raw = log
  4946  
  4947  				select {
  4948  				case sink <- event:
  4949  				case err := <-sub.Err():
  4950  					return err
  4951  				case <-quit:
  4952  					return nil
  4953  				}
  4954  			case err := <-sub.Err():
  4955  				return err
  4956  			case <-quit:
  4957  				return nil
  4958  			}
  4959  		}
  4960  	}), nil
  4961  }
  4962  
  4963  // ParseKLAYFeeChanged is a log parse operation binding the contract event 0xa7a33d0996347e1aa55ca2206015b61b9534bdd881d59d59aa680e25eefac365.
  4964  //
  4965  // Solidity: event KLAYFeeChanged(uint256 indexed fee)
  4966  func (_BridgeFee *BridgeFeeFilterer) ParseKLAYFeeChanged(log types.Log) (*BridgeFeeKLAYFeeChanged, error) {
  4967  	event := new(BridgeFeeKLAYFeeChanged)
  4968  	if err := _BridgeFee.contract.UnpackLog(event, "KLAYFeeChanged", log); err != nil {
  4969  		return nil, err
  4970  	}
  4971  	return event, nil
  4972  }
  4973  
  4974  // BridgeHandledRequestsMetaData contains all meta data concerning the BridgeHandledRequests contract.
  4975  var BridgeHandledRequestsMetaData = &bind.MetaData{
  4976  	ABI: "[{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"handledRequestTx\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"}]",
  4977  	Sigs: map[string]string{
  4978  		"8a75eee2": "handledRequestTx(bytes32)",
  4979  	},
  4980  	Bin: "0x6080604052348015600f57600080fd5b50609c8061001e6000396000f3fe6080604052348015600f57600080fd5b506004361060285760003560e01c80638a75eee214602d575b600080fd5b604760048036036020811015604157600080fd5b5035605b565b604080519115158252519081900360200190f35b60006020819052908152604090205460ff168156fea165627a7a723058203e22c718bbe5d55248c5fec027875ec0af893fe14a07c4756091366474f562c80029",
  4981  }
  4982  
  4983  // BridgeHandledRequestsABI is the input ABI used to generate the binding from.
  4984  // Deprecated: Use BridgeHandledRequestsMetaData.ABI instead.
  4985  var BridgeHandledRequestsABI = BridgeHandledRequestsMetaData.ABI
  4986  
  4987  // BridgeHandledRequestsBinRuntime is the compiled bytecode used for adding genesis block without deploying code.
  4988  const BridgeHandledRequestsBinRuntime = `6080604052348015600f57600080fd5b506004361060285760003560e01c80638a75eee214602d575b600080fd5b604760048036036020811015604157600080fd5b5035605b565b604080519115158252519081900360200190f35b60006020819052908152604090205460ff168156fea165627a7a723058203e22c718bbe5d55248c5fec027875ec0af893fe14a07c4756091366474f562c80029`
  4989  
  4990  // BridgeHandledRequestsFuncSigs maps the 4-byte function signature to its string representation.
  4991  // Deprecated: Use BridgeHandledRequestsMetaData.Sigs instead.
  4992  var BridgeHandledRequestsFuncSigs = BridgeHandledRequestsMetaData.Sigs
  4993  
  4994  // BridgeHandledRequestsBin is the compiled bytecode used for deploying new contracts.
  4995  // Deprecated: Use BridgeHandledRequestsMetaData.Bin instead.
  4996  var BridgeHandledRequestsBin = BridgeHandledRequestsMetaData.Bin
  4997  
  4998  // DeployBridgeHandledRequests deploys a new Klaytn contract, binding an instance of BridgeHandledRequests to it.
  4999  func DeployBridgeHandledRequests(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *types.Transaction, *BridgeHandledRequests, error) {
  5000  	parsed, err := BridgeHandledRequestsMetaData.GetAbi()
  5001  	if err != nil {
  5002  		return common.Address{}, nil, nil, err
  5003  	}
  5004  	if parsed == nil {
  5005  		return common.Address{}, nil, nil, errors.New("GetABI returned nil")
  5006  	}
  5007  
  5008  	address, tx, contract, err := bind.DeployContract(auth, *parsed, common.FromHex(BridgeHandledRequestsBin), backend)
  5009  	if err != nil {
  5010  		return common.Address{}, nil, nil, err
  5011  	}
  5012  	return address, tx, &BridgeHandledRequests{BridgeHandledRequestsCaller: BridgeHandledRequestsCaller{contract: contract}, BridgeHandledRequestsTransactor: BridgeHandledRequestsTransactor{contract: contract}, BridgeHandledRequestsFilterer: BridgeHandledRequestsFilterer{contract: contract}}, nil
  5013  }
  5014  
  5015  // BridgeHandledRequests is an auto generated Go binding around a Klaytn contract.
  5016  type BridgeHandledRequests struct {
  5017  	BridgeHandledRequestsCaller     // Read-only binding to the contract
  5018  	BridgeHandledRequestsTransactor // Write-only binding to the contract
  5019  	BridgeHandledRequestsFilterer   // Log filterer for contract events
  5020  }
  5021  
  5022  // BridgeHandledRequestsCaller is an auto generated read-only Go binding around a Klaytn contract.
  5023  type BridgeHandledRequestsCaller struct {
  5024  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  5025  }
  5026  
  5027  // BridgeHandledRequestsTransactor is an auto generated write-only Go binding around a Klaytn contract.
  5028  type BridgeHandledRequestsTransactor struct {
  5029  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  5030  }
  5031  
  5032  // BridgeHandledRequestsFilterer is an auto generated log filtering Go binding around a Klaytn contract events.
  5033  type BridgeHandledRequestsFilterer struct {
  5034  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  5035  }
  5036  
  5037  // BridgeHandledRequestsSession is an auto generated Go binding around a Klaytn contract,
  5038  // with pre-set call and transact options.
  5039  type BridgeHandledRequestsSession struct {
  5040  	Contract     *BridgeHandledRequests // Generic contract binding to set the session for
  5041  	CallOpts     bind.CallOpts          // Call options to use throughout this session
  5042  	TransactOpts bind.TransactOpts      // Transaction auth options to use throughout this session
  5043  }
  5044  
  5045  // BridgeHandledRequestsCallerSession is an auto generated read-only Go binding around a Klaytn contract,
  5046  // with pre-set call options.
  5047  type BridgeHandledRequestsCallerSession struct {
  5048  	Contract *BridgeHandledRequestsCaller // Generic contract caller binding to set the session for
  5049  	CallOpts bind.CallOpts                // Call options to use throughout this session
  5050  }
  5051  
  5052  // BridgeHandledRequestsTransactorSession is an auto generated write-only Go binding around a Klaytn contract,
  5053  // with pre-set transact options.
  5054  type BridgeHandledRequestsTransactorSession struct {
  5055  	Contract     *BridgeHandledRequestsTransactor // Generic contract transactor binding to set the session for
  5056  	TransactOpts bind.TransactOpts                // Transaction auth options to use throughout this session
  5057  }
  5058  
  5059  // BridgeHandledRequestsRaw is an auto generated low-level Go binding around a Klaytn contract.
  5060  type BridgeHandledRequestsRaw struct {
  5061  	Contract *BridgeHandledRequests // Generic contract binding to access the raw methods on
  5062  }
  5063  
  5064  // BridgeHandledRequestsCallerRaw is an auto generated low-level read-only Go binding around a Klaytn contract.
  5065  type BridgeHandledRequestsCallerRaw struct {
  5066  	Contract *BridgeHandledRequestsCaller // Generic read-only contract binding to access the raw methods on
  5067  }
  5068  
  5069  // BridgeHandledRequestsTransactorRaw is an auto generated low-level write-only Go binding around a Klaytn contract.
  5070  type BridgeHandledRequestsTransactorRaw struct {
  5071  	Contract *BridgeHandledRequestsTransactor // Generic write-only contract binding to access the raw methods on
  5072  }
  5073  
  5074  // NewBridgeHandledRequests creates a new instance of BridgeHandledRequests, bound to a specific deployed contract.
  5075  func NewBridgeHandledRequests(address common.Address, backend bind.ContractBackend) (*BridgeHandledRequests, error) {
  5076  	contract, err := bindBridgeHandledRequests(address, backend, backend, backend)
  5077  	if err != nil {
  5078  		return nil, err
  5079  	}
  5080  	return &BridgeHandledRequests{BridgeHandledRequestsCaller: BridgeHandledRequestsCaller{contract: contract}, BridgeHandledRequestsTransactor: BridgeHandledRequestsTransactor{contract: contract}, BridgeHandledRequestsFilterer: BridgeHandledRequestsFilterer{contract: contract}}, nil
  5081  }
  5082  
  5083  // NewBridgeHandledRequestsCaller creates a new read-only instance of BridgeHandledRequests, bound to a specific deployed contract.
  5084  func NewBridgeHandledRequestsCaller(address common.Address, caller bind.ContractCaller) (*BridgeHandledRequestsCaller, error) {
  5085  	contract, err := bindBridgeHandledRequests(address, caller, nil, nil)
  5086  	if err != nil {
  5087  		return nil, err
  5088  	}
  5089  	return &BridgeHandledRequestsCaller{contract: contract}, nil
  5090  }
  5091  
  5092  // NewBridgeHandledRequestsTransactor creates a new write-only instance of BridgeHandledRequests, bound to a specific deployed contract.
  5093  func NewBridgeHandledRequestsTransactor(address common.Address, transactor bind.ContractTransactor) (*BridgeHandledRequestsTransactor, error) {
  5094  	contract, err := bindBridgeHandledRequests(address, nil, transactor, nil)
  5095  	if err != nil {
  5096  		return nil, err
  5097  	}
  5098  	return &BridgeHandledRequestsTransactor{contract: contract}, nil
  5099  }
  5100  
  5101  // NewBridgeHandledRequestsFilterer creates a new log filterer instance of BridgeHandledRequests, bound to a specific deployed contract.
  5102  func NewBridgeHandledRequestsFilterer(address common.Address, filterer bind.ContractFilterer) (*BridgeHandledRequestsFilterer, error) {
  5103  	contract, err := bindBridgeHandledRequests(address, nil, nil, filterer)
  5104  	if err != nil {
  5105  		return nil, err
  5106  	}
  5107  	return &BridgeHandledRequestsFilterer{contract: contract}, nil
  5108  }
  5109  
  5110  // bindBridgeHandledRequests binds a generic wrapper to an already deployed contract.
  5111  func bindBridgeHandledRequests(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
  5112  	parsed, err := BridgeHandledRequestsMetaData.GetAbi()
  5113  	if err != nil {
  5114  		return nil, err
  5115  	}
  5116  	return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil
  5117  }
  5118  
  5119  // Call invokes the (constant) contract method with params as input values and
  5120  // sets the output to result. The result type might be a single field for simple
  5121  // returns, a slice of interfaces for anonymous returns and a struct for named
  5122  // returns.
  5123  func (_BridgeHandledRequests *BridgeHandledRequestsRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
  5124  	return _BridgeHandledRequests.Contract.BridgeHandledRequestsCaller.contract.Call(opts, result, method, params...)
  5125  }
  5126  
  5127  // Transfer initiates a plain transaction to move funds to the contract, calling
  5128  // its default method if one is available.
  5129  func (_BridgeHandledRequests *BridgeHandledRequestsRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
  5130  	return _BridgeHandledRequests.Contract.BridgeHandledRequestsTransactor.contract.Transfer(opts)
  5131  }
  5132  
  5133  // Transact invokes the (paid) contract method with params as input values.
  5134  func (_BridgeHandledRequests *BridgeHandledRequestsRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
  5135  	return _BridgeHandledRequests.Contract.BridgeHandledRequestsTransactor.contract.Transact(opts, method, params...)
  5136  }
  5137  
  5138  // Call invokes the (constant) contract method with params as input values and
  5139  // sets the output to result. The result type might be a single field for simple
  5140  // returns, a slice of interfaces for anonymous returns and a struct for named
  5141  // returns.
  5142  func (_BridgeHandledRequests *BridgeHandledRequestsCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
  5143  	return _BridgeHandledRequests.Contract.contract.Call(opts, result, method, params...)
  5144  }
  5145  
  5146  // Transfer initiates a plain transaction to move funds to the contract, calling
  5147  // its default method if one is available.
  5148  func (_BridgeHandledRequests *BridgeHandledRequestsTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
  5149  	return _BridgeHandledRequests.Contract.contract.Transfer(opts)
  5150  }
  5151  
  5152  // Transact invokes the (paid) contract method with params as input values.
  5153  func (_BridgeHandledRequests *BridgeHandledRequestsTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
  5154  	return _BridgeHandledRequests.Contract.contract.Transact(opts, method, params...)
  5155  }
  5156  
  5157  // HandledRequestTx is a free data retrieval call binding the contract method 0x8a75eee2.
  5158  //
  5159  // Solidity: function handledRequestTx(bytes32 ) view returns(bool)
  5160  func (_BridgeHandledRequests *BridgeHandledRequestsCaller) HandledRequestTx(opts *bind.CallOpts, arg0 [32]byte) (bool, error) {
  5161  	var out []interface{}
  5162  	err := _BridgeHandledRequests.contract.Call(opts, &out, "handledRequestTx", arg0)
  5163  
  5164  	if err != nil {
  5165  		return *new(bool), err
  5166  	}
  5167  
  5168  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
  5169  
  5170  	return out0, err
  5171  
  5172  }
  5173  
  5174  // HandledRequestTx is a free data retrieval call binding the contract method 0x8a75eee2.
  5175  //
  5176  // Solidity: function handledRequestTx(bytes32 ) view returns(bool)
  5177  func (_BridgeHandledRequests *BridgeHandledRequestsSession) HandledRequestTx(arg0 [32]byte) (bool, error) {
  5178  	return _BridgeHandledRequests.Contract.HandledRequestTx(&_BridgeHandledRequests.CallOpts, arg0)
  5179  }
  5180  
  5181  // HandledRequestTx is a free data retrieval call binding the contract method 0x8a75eee2.
  5182  //
  5183  // Solidity: function handledRequestTx(bytes32 ) view returns(bool)
  5184  func (_BridgeHandledRequests *BridgeHandledRequestsCallerSession) HandledRequestTx(arg0 [32]byte) (bool, error) {
  5185  	return _BridgeHandledRequests.Contract.HandledRequestTx(&_BridgeHandledRequests.CallOpts, arg0)
  5186  }
  5187  
  5188  // BridgeOperatorMetaData contains all meta data concerning the BridgeOperator contract.
  5189  var BridgeOperatorMetaData = &bind.MetaData{
  5190  	ABI: "[{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"address\"}],\"name\":\"operators\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_operator\",\"type\":\"address\"}],\"name\":\"registerOperator\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"MAX_OPERATOR\",\"outputs\":[{\"name\":\"\",\"type\":\"uint64\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"uint8\"}],\"name\":\"operatorThresholds\",\"outputs\":[{\"name\":\"\",\"type\":\"uint8\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"isOwner\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"uint64\"}],\"name\":\"closedValueTransferVotes\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"configurationNonce\",\"outputs\":[{\"name\":\"\",\"type\":\"uint64\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getOperatorList\",\"outputs\":[{\"name\":\"\",\"type\":\"address[]\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"operatorList\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_operator\",\"type\":\"address\"}],\"name\":\"deregisterOperator\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_voteType\",\"type\":\"uint8\"},{\"name\":\"_threshold\",\"type\":\"uint8\"}],\"name\":\"setOperatorThreshold\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"}]",
  5191  	Sigs: map[string]string{
  5192  		"3a3099d1": "MAX_OPERATOR()",
  5193  		"9832c1d7": "closedValueTransferVotes(uint64)",
  5194  		"ac6fff0b": "configurationNonce()",
  5195  		"d8cf98ca": "deregisterOperator(address)",
  5196  		"b2c01030": "getOperatorList()",
  5197  		"8f32d59b": "isOwner()",
  5198  		"cb38f407": "operatorList(uint256)",
  5199  		"5526f76b": "operatorThresholds(uint8)",
  5200  		"13e7c9d8": "operators(address)",
  5201  		"8da5cb5b": "owner()",
  5202  		"3682a450": "registerOperator(address)",
  5203  		"715018a6": "renounceOwnership()",
  5204  		"ee2aec65": "setOperatorThreshold(uint8,uint8)",
  5205  		"f2fde38b": "transferOwnership(address)",
  5206  	},
  5207  }
  5208  
  5209  // BridgeOperatorABI is the input ABI used to generate the binding from.
  5210  // Deprecated: Use BridgeOperatorMetaData.ABI instead.
  5211  var BridgeOperatorABI = BridgeOperatorMetaData.ABI
  5212  
  5213  // BridgeOperatorBinRuntime is the compiled bytecode used for adding genesis block without deploying code.
  5214  const BridgeOperatorBinRuntime = ``
  5215  
  5216  // BridgeOperatorFuncSigs maps the 4-byte function signature to its string representation.
  5217  // Deprecated: Use BridgeOperatorMetaData.Sigs instead.
  5218  var BridgeOperatorFuncSigs = BridgeOperatorMetaData.Sigs
  5219  
  5220  // BridgeOperator is an auto generated Go binding around a Klaytn contract.
  5221  type BridgeOperator struct {
  5222  	BridgeOperatorCaller     // Read-only binding to the contract
  5223  	BridgeOperatorTransactor // Write-only binding to the contract
  5224  	BridgeOperatorFilterer   // Log filterer for contract events
  5225  }
  5226  
  5227  // BridgeOperatorCaller is an auto generated read-only Go binding around a Klaytn contract.
  5228  type BridgeOperatorCaller struct {
  5229  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  5230  }
  5231  
  5232  // BridgeOperatorTransactor is an auto generated write-only Go binding around a Klaytn contract.
  5233  type BridgeOperatorTransactor struct {
  5234  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  5235  }
  5236  
  5237  // BridgeOperatorFilterer is an auto generated log filtering Go binding around a Klaytn contract events.
  5238  type BridgeOperatorFilterer struct {
  5239  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  5240  }
  5241  
  5242  // BridgeOperatorSession is an auto generated Go binding around a Klaytn contract,
  5243  // with pre-set call and transact options.
  5244  type BridgeOperatorSession struct {
  5245  	Contract     *BridgeOperator   // Generic contract binding to set the session for
  5246  	CallOpts     bind.CallOpts     // Call options to use throughout this session
  5247  	TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
  5248  }
  5249  
  5250  // BridgeOperatorCallerSession is an auto generated read-only Go binding around a Klaytn contract,
  5251  // with pre-set call options.
  5252  type BridgeOperatorCallerSession struct {
  5253  	Contract *BridgeOperatorCaller // Generic contract caller binding to set the session for
  5254  	CallOpts bind.CallOpts         // Call options to use throughout this session
  5255  }
  5256  
  5257  // BridgeOperatorTransactorSession is an auto generated write-only Go binding around a Klaytn contract,
  5258  // with pre-set transact options.
  5259  type BridgeOperatorTransactorSession struct {
  5260  	Contract     *BridgeOperatorTransactor // Generic contract transactor binding to set the session for
  5261  	TransactOpts bind.TransactOpts         // Transaction auth options to use throughout this session
  5262  }
  5263  
  5264  // BridgeOperatorRaw is an auto generated low-level Go binding around a Klaytn contract.
  5265  type BridgeOperatorRaw struct {
  5266  	Contract *BridgeOperator // Generic contract binding to access the raw methods on
  5267  }
  5268  
  5269  // BridgeOperatorCallerRaw is an auto generated low-level read-only Go binding around a Klaytn contract.
  5270  type BridgeOperatorCallerRaw struct {
  5271  	Contract *BridgeOperatorCaller // Generic read-only contract binding to access the raw methods on
  5272  }
  5273  
  5274  // BridgeOperatorTransactorRaw is an auto generated low-level write-only Go binding around a Klaytn contract.
  5275  type BridgeOperatorTransactorRaw struct {
  5276  	Contract *BridgeOperatorTransactor // Generic write-only contract binding to access the raw methods on
  5277  }
  5278  
  5279  // NewBridgeOperator creates a new instance of BridgeOperator, bound to a specific deployed contract.
  5280  func NewBridgeOperator(address common.Address, backend bind.ContractBackend) (*BridgeOperator, error) {
  5281  	contract, err := bindBridgeOperator(address, backend, backend, backend)
  5282  	if err != nil {
  5283  		return nil, err
  5284  	}
  5285  	return &BridgeOperator{BridgeOperatorCaller: BridgeOperatorCaller{contract: contract}, BridgeOperatorTransactor: BridgeOperatorTransactor{contract: contract}, BridgeOperatorFilterer: BridgeOperatorFilterer{contract: contract}}, nil
  5286  }
  5287  
  5288  // NewBridgeOperatorCaller creates a new read-only instance of BridgeOperator, bound to a specific deployed contract.
  5289  func NewBridgeOperatorCaller(address common.Address, caller bind.ContractCaller) (*BridgeOperatorCaller, error) {
  5290  	contract, err := bindBridgeOperator(address, caller, nil, nil)
  5291  	if err != nil {
  5292  		return nil, err
  5293  	}
  5294  	return &BridgeOperatorCaller{contract: contract}, nil
  5295  }
  5296  
  5297  // NewBridgeOperatorTransactor creates a new write-only instance of BridgeOperator, bound to a specific deployed contract.
  5298  func NewBridgeOperatorTransactor(address common.Address, transactor bind.ContractTransactor) (*BridgeOperatorTransactor, error) {
  5299  	contract, err := bindBridgeOperator(address, nil, transactor, nil)
  5300  	if err != nil {
  5301  		return nil, err
  5302  	}
  5303  	return &BridgeOperatorTransactor{contract: contract}, nil
  5304  }
  5305  
  5306  // NewBridgeOperatorFilterer creates a new log filterer instance of BridgeOperator, bound to a specific deployed contract.
  5307  func NewBridgeOperatorFilterer(address common.Address, filterer bind.ContractFilterer) (*BridgeOperatorFilterer, error) {
  5308  	contract, err := bindBridgeOperator(address, nil, nil, filterer)
  5309  	if err != nil {
  5310  		return nil, err
  5311  	}
  5312  	return &BridgeOperatorFilterer{contract: contract}, nil
  5313  }
  5314  
  5315  // bindBridgeOperator binds a generic wrapper to an already deployed contract.
  5316  func bindBridgeOperator(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
  5317  	parsed, err := BridgeOperatorMetaData.GetAbi()
  5318  	if err != nil {
  5319  		return nil, err
  5320  	}
  5321  	return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil
  5322  }
  5323  
  5324  // Call invokes the (constant) contract method with params as input values and
  5325  // sets the output to result. The result type might be a single field for simple
  5326  // returns, a slice of interfaces for anonymous returns and a struct for named
  5327  // returns.
  5328  func (_BridgeOperator *BridgeOperatorRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
  5329  	return _BridgeOperator.Contract.BridgeOperatorCaller.contract.Call(opts, result, method, params...)
  5330  }
  5331  
  5332  // Transfer initiates a plain transaction to move funds to the contract, calling
  5333  // its default method if one is available.
  5334  func (_BridgeOperator *BridgeOperatorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
  5335  	return _BridgeOperator.Contract.BridgeOperatorTransactor.contract.Transfer(opts)
  5336  }
  5337  
  5338  // Transact invokes the (paid) contract method with params as input values.
  5339  func (_BridgeOperator *BridgeOperatorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
  5340  	return _BridgeOperator.Contract.BridgeOperatorTransactor.contract.Transact(opts, method, params...)
  5341  }
  5342  
  5343  // Call invokes the (constant) contract method with params as input values and
  5344  // sets the output to result. The result type might be a single field for simple
  5345  // returns, a slice of interfaces for anonymous returns and a struct for named
  5346  // returns.
  5347  func (_BridgeOperator *BridgeOperatorCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
  5348  	return _BridgeOperator.Contract.contract.Call(opts, result, method, params...)
  5349  }
  5350  
  5351  // Transfer initiates a plain transaction to move funds to the contract, calling
  5352  // its default method if one is available.
  5353  func (_BridgeOperator *BridgeOperatorTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
  5354  	return _BridgeOperator.Contract.contract.Transfer(opts)
  5355  }
  5356  
  5357  // Transact invokes the (paid) contract method with params as input values.
  5358  func (_BridgeOperator *BridgeOperatorTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
  5359  	return _BridgeOperator.Contract.contract.Transact(opts, method, params...)
  5360  }
  5361  
  5362  // MAXOPERATOR is a free data retrieval call binding the contract method 0x3a3099d1.
  5363  //
  5364  // Solidity: function MAX_OPERATOR() view returns(uint64)
  5365  func (_BridgeOperator *BridgeOperatorCaller) MAXOPERATOR(opts *bind.CallOpts) (uint64, error) {
  5366  	var out []interface{}
  5367  	err := _BridgeOperator.contract.Call(opts, &out, "MAX_OPERATOR")
  5368  
  5369  	if err != nil {
  5370  		return *new(uint64), err
  5371  	}
  5372  
  5373  	out0 := *abi.ConvertType(out[0], new(uint64)).(*uint64)
  5374  
  5375  	return out0, err
  5376  
  5377  }
  5378  
  5379  // MAXOPERATOR is a free data retrieval call binding the contract method 0x3a3099d1.
  5380  //
  5381  // Solidity: function MAX_OPERATOR() view returns(uint64)
  5382  func (_BridgeOperator *BridgeOperatorSession) MAXOPERATOR() (uint64, error) {
  5383  	return _BridgeOperator.Contract.MAXOPERATOR(&_BridgeOperator.CallOpts)
  5384  }
  5385  
  5386  // MAXOPERATOR is a free data retrieval call binding the contract method 0x3a3099d1.
  5387  //
  5388  // Solidity: function MAX_OPERATOR() view returns(uint64)
  5389  func (_BridgeOperator *BridgeOperatorCallerSession) MAXOPERATOR() (uint64, error) {
  5390  	return _BridgeOperator.Contract.MAXOPERATOR(&_BridgeOperator.CallOpts)
  5391  }
  5392  
  5393  // ClosedValueTransferVotes is a free data retrieval call binding the contract method 0x9832c1d7.
  5394  //
  5395  // Solidity: function closedValueTransferVotes(uint64 ) view returns(bool)
  5396  func (_BridgeOperator *BridgeOperatorCaller) ClosedValueTransferVotes(opts *bind.CallOpts, arg0 uint64) (bool, error) {
  5397  	var out []interface{}
  5398  	err := _BridgeOperator.contract.Call(opts, &out, "closedValueTransferVotes", arg0)
  5399  
  5400  	if err != nil {
  5401  		return *new(bool), err
  5402  	}
  5403  
  5404  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
  5405  
  5406  	return out0, err
  5407  
  5408  }
  5409  
  5410  // ClosedValueTransferVotes is a free data retrieval call binding the contract method 0x9832c1d7.
  5411  //
  5412  // Solidity: function closedValueTransferVotes(uint64 ) view returns(bool)
  5413  func (_BridgeOperator *BridgeOperatorSession) ClosedValueTransferVotes(arg0 uint64) (bool, error) {
  5414  	return _BridgeOperator.Contract.ClosedValueTransferVotes(&_BridgeOperator.CallOpts, arg0)
  5415  }
  5416  
  5417  // ClosedValueTransferVotes is a free data retrieval call binding the contract method 0x9832c1d7.
  5418  //
  5419  // Solidity: function closedValueTransferVotes(uint64 ) view returns(bool)
  5420  func (_BridgeOperator *BridgeOperatorCallerSession) ClosedValueTransferVotes(arg0 uint64) (bool, error) {
  5421  	return _BridgeOperator.Contract.ClosedValueTransferVotes(&_BridgeOperator.CallOpts, arg0)
  5422  }
  5423  
  5424  // ConfigurationNonce is a free data retrieval call binding the contract method 0xac6fff0b.
  5425  //
  5426  // Solidity: function configurationNonce() view returns(uint64)
  5427  func (_BridgeOperator *BridgeOperatorCaller) ConfigurationNonce(opts *bind.CallOpts) (uint64, error) {
  5428  	var out []interface{}
  5429  	err := _BridgeOperator.contract.Call(opts, &out, "configurationNonce")
  5430  
  5431  	if err != nil {
  5432  		return *new(uint64), err
  5433  	}
  5434  
  5435  	out0 := *abi.ConvertType(out[0], new(uint64)).(*uint64)
  5436  
  5437  	return out0, err
  5438  
  5439  }
  5440  
  5441  // ConfigurationNonce is a free data retrieval call binding the contract method 0xac6fff0b.
  5442  //
  5443  // Solidity: function configurationNonce() view returns(uint64)
  5444  func (_BridgeOperator *BridgeOperatorSession) ConfigurationNonce() (uint64, error) {
  5445  	return _BridgeOperator.Contract.ConfigurationNonce(&_BridgeOperator.CallOpts)
  5446  }
  5447  
  5448  // ConfigurationNonce is a free data retrieval call binding the contract method 0xac6fff0b.
  5449  //
  5450  // Solidity: function configurationNonce() view returns(uint64)
  5451  func (_BridgeOperator *BridgeOperatorCallerSession) ConfigurationNonce() (uint64, error) {
  5452  	return _BridgeOperator.Contract.ConfigurationNonce(&_BridgeOperator.CallOpts)
  5453  }
  5454  
  5455  // GetOperatorList is a free data retrieval call binding the contract method 0xb2c01030.
  5456  //
  5457  // Solidity: function getOperatorList() view returns(address[])
  5458  func (_BridgeOperator *BridgeOperatorCaller) GetOperatorList(opts *bind.CallOpts) ([]common.Address, error) {
  5459  	var out []interface{}
  5460  	err := _BridgeOperator.contract.Call(opts, &out, "getOperatorList")
  5461  
  5462  	if err != nil {
  5463  		return *new([]common.Address), err
  5464  	}
  5465  
  5466  	out0 := *abi.ConvertType(out[0], new([]common.Address)).(*[]common.Address)
  5467  
  5468  	return out0, err
  5469  
  5470  }
  5471  
  5472  // GetOperatorList is a free data retrieval call binding the contract method 0xb2c01030.
  5473  //
  5474  // Solidity: function getOperatorList() view returns(address[])
  5475  func (_BridgeOperator *BridgeOperatorSession) GetOperatorList() ([]common.Address, error) {
  5476  	return _BridgeOperator.Contract.GetOperatorList(&_BridgeOperator.CallOpts)
  5477  }
  5478  
  5479  // GetOperatorList is a free data retrieval call binding the contract method 0xb2c01030.
  5480  //
  5481  // Solidity: function getOperatorList() view returns(address[])
  5482  func (_BridgeOperator *BridgeOperatorCallerSession) GetOperatorList() ([]common.Address, error) {
  5483  	return _BridgeOperator.Contract.GetOperatorList(&_BridgeOperator.CallOpts)
  5484  }
  5485  
  5486  // IsOwner is a free data retrieval call binding the contract method 0x8f32d59b.
  5487  //
  5488  // Solidity: function isOwner() view returns(bool)
  5489  func (_BridgeOperator *BridgeOperatorCaller) IsOwner(opts *bind.CallOpts) (bool, error) {
  5490  	var out []interface{}
  5491  	err := _BridgeOperator.contract.Call(opts, &out, "isOwner")
  5492  
  5493  	if err != nil {
  5494  		return *new(bool), err
  5495  	}
  5496  
  5497  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
  5498  
  5499  	return out0, err
  5500  
  5501  }
  5502  
  5503  // IsOwner is a free data retrieval call binding the contract method 0x8f32d59b.
  5504  //
  5505  // Solidity: function isOwner() view returns(bool)
  5506  func (_BridgeOperator *BridgeOperatorSession) IsOwner() (bool, error) {
  5507  	return _BridgeOperator.Contract.IsOwner(&_BridgeOperator.CallOpts)
  5508  }
  5509  
  5510  // IsOwner is a free data retrieval call binding the contract method 0x8f32d59b.
  5511  //
  5512  // Solidity: function isOwner() view returns(bool)
  5513  func (_BridgeOperator *BridgeOperatorCallerSession) IsOwner() (bool, error) {
  5514  	return _BridgeOperator.Contract.IsOwner(&_BridgeOperator.CallOpts)
  5515  }
  5516  
  5517  // OperatorList is a free data retrieval call binding the contract method 0xcb38f407.
  5518  //
  5519  // Solidity: function operatorList(uint256 ) view returns(address)
  5520  func (_BridgeOperator *BridgeOperatorCaller) OperatorList(opts *bind.CallOpts, arg0 *big.Int) (common.Address, error) {
  5521  	var out []interface{}
  5522  	err := _BridgeOperator.contract.Call(opts, &out, "operatorList", arg0)
  5523  
  5524  	if err != nil {
  5525  		return *new(common.Address), err
  5526  	}
  5527  
  5528  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
  5529  
  5530  	return out0, err
  5531  
  5532  }
  5533  
  5534  // OperatorList is a free data retrieval call binding the contract method 0xcb38f407.
  5535  //
  5536  // Solidity: function operatorList(uint256 ) view returns(address)
  5537  func (_BridgeOperator *BridgeOperatorSession) OperatorList(arg0 *big.Int) (common.Address, error) {
  5538  	return _BridgeOperator.Contract.OperatorList(&_BridgeOperator.CallOpts, arg0)
  5539  }
  5540  
  5541  // OperatorList is a free data retrieval call binding the contract method 0xcb38f407.
  5542  //
  5543  // Solidity: function operatorList(uint256 ) view returns(address)
  5544  func (_BridgeOperator *BridgeOperatorCallerSession) OperatorList(arg0 *big.Int) (common.Address, error) {
  5545  	return _BridgeOperator.Contract.OperatorList(&_BridgeOperator.CallOpts, arg0)
  5546  }
  5547  
  5548  // OperatorThresholds is a free data retrieval call binding the contract method 0x5526f76b.
  5549  //
  5550  // Solidity: function operatorThresholds(uint8 ) view returns(uint8)
  5551  func (_BridgeOperator *BridgeOperatorCaller) OperatorThresholds(opts *bind.CallOpts, arg0 uint8) (uint8, error) {
  5552  	var out []interface{}
  5553  	err := _BridgeOperator.contract.Call(opts, &out, "operatorThresholds", arg0)
  5554  
  5555  	if err != nil {
  5556  		return *new(uint8), err
  5557  	}
  5558  
  5559  	out0 := *abi.ConvertType(out[0], new(uint8)).(*uint8)
  5560  
  5561  	return out0, err
  5562  
  5563  }
  5564  
  5565  // OperatorThresholds is a free data retrieval call binding the contract method 0x5526f76b.
  5566  //
  5567  // Solidity: function operatorThresholds(uint8 ) view returns(uint8)
  5568  func (_BridgeOperator *BridgeOperatorSession) OperatorThresholds(arg0 uint8) (uint8, error) {
  5569  	return _BridgeOperator.Contract.OperatorThresholds(&_BridgeOperator.CallOpts, arg0)
  5570  }
  5571  
  5572  // OperatorThresholds is a free data retrieval call binding the contract method 0x5526f76b.
  5573  //
  5574  // Solidity: function operatorThresholds(uint8 ) view returns(uint8)
  5575  func (_BridgeOperator *BridgeOperatorCallerSession) OperatorThresholds(arg0 uint8) (uint8, error) {
  5576  	return _BridgeOperator.Contract.OperatorThresholds(&_BridgeOperator.CallOpts, arg0)
  5577  }
  5578  
  5579  // Operators is a free data retrieval call binding the contract method 0x13e7c9d8.
  5580  //
  5581  // Solidity: function operators(address ) view returns(bool)
  5582  func (_BridgeOperator *BridgeOperatorCaller) Operators(opts *bind.CallOpts, arg0 common.Address) (bool, error) {
  5583  	var out []interface{}
  5584  	err := _BridgeOperator.contract.Call(opts, &out, "operators", arg0)
  5585  
  5586  	if err != nil {
  5587  		return *new(bool), err
  5588  	}
  5589  
  5590  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
  5591  
  5592  	return out0, err
  5593  
  5594  }
  5595  
  5596  // Operators is a free data retrieval call binding the contract method 0x13e7c9d8.
  5597  //
  5598  // Solidity: function operators(address ) view returns(bool)
  5599  func (_BridgeOperator *BridgeOperatorSession) Operators(arg0 common.Address) (bool, error) {
  5600  	return _BridgeOperator.Contract.Operators(&_BridgeOperator.CallOpts, arg0)
  5601  }
  5602  
  5603  // Operators is a free data retrieval call binding the contract method 0x13e7c9d8.
  5604  //
  5605  // Solidity: function operators(address ) view returns(bool)
  5606  func (_BridgeOperator *BridgeOperatorCallerSession) Operators(arg0 common.Address) (bool, error) {
  5607  	return _BridgeOperator.Contract.Operators(&_BridgeOperator.CallOpts, arg0)
  5608  }
  5609  
  5610  // Owner is a free data retrieval call binding the contract method 0x8da5cb5b.
  5611  //
  5612  // Solidity: function owner() view returns(address)
  5613  func (_BridgeOperator *BridgeOperatorCaller) Owner(opts *bind.CallOpts) (common.Address, error) {
  5614  	var out []interface{}
  5615  	err := _BridgeOperator.contract.Call(opts, &out, "owner")
  5616  
  5617  	if err != nil {
  5618  		return *new(common.Address), err
  5619  	}
  5620  
  5621  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
  5622  
  5623  	return out0, err
  5624  
  5625  }
  5626  
  5627  // Owner is a free data retrieval call binding the contract method 0x8da5cb5b.
  5628  //
  5629  // Solidity: function owner() view returns(address)
  5630  func (_BridgeOperator *BridgeOperatorSession) Owner() (common.Address, error) {
  5631  	return _BridgeOperator.Contract.Owner(&_BridgeOperator.CallOpts)
  5632  }
  5633  
  5634  // Owner is a free data retrieval call binding the contract method 0x8da5cb5b.
  5635  //
  5636  // Solidity: function owner() view returns(address)
  5637  func (_BridgeOperator *BridgeOperatorCallerSession) Owner() (common.Address, error) {
  5638  	return _BridgeOperator.Contract.Owner(&_BridgeOperator.CallOpts)
  5639  }
  5640  
  5641  // DeregisterOperator is a paid mutator transaction binding the contract method 0xd8cf98ca.
  5642  //
  5643  // Solidity: function deregisterOperator(address _operator) returns()
  5644  func (_BridgeOperator *BridgeOperatorTransactor) DeregisterOperator(opts *bind.TransactOpts, _operator common.Address) (*types.Transaction, error) {
  5645  	return _BridgeOperator.contract.Transact(opts, "deregisterOperator", _operator)
  5646  }
  5647  
  5648  // DeregisterOperator is a paid mutator transaction binding the contract method 0xd8cf98ca.
  5649  //
  5650  // Solidity: function deregisterOperator(address _operator) returns()
  5651  func (_BridgeOperator *BridgeOperatorSession) DeregisterOperator(_operator common.Address) (*types.Transaction, error) {
  5652  	return _BridgeOperator.Contract.DeregisterOperator(&_BridgeOperator.TransactOpts, _operator)
  5653  }
  5654  
  5655  // DeregisterOperator is a paid mutator transaction binding the contract method 0xd8cf98ca.
  5656  //
  5657  // Solidity: function deregisterOperator(address _operator) returns()
  5658  func (_BridgeOperator *BridgeOperatorTransactorSession) DeregisterOperator(_operator common.Address) (*types.Transaction, error) {
  5659  	return _BridgeOperator.Contract.DeregisterOperator(&_BridgeOperator.TransactOpts, _operator)
  5660  }
  5661  
  5662  // RegisterOperator is a paid mutator transaction binding the contract method 0x3682a450.
  5663  //
  5664  // Solidity: function registerOperator(address _operator) returns()
  5665  func (_BridgeOperator *BridgeOperatorTransactor) RegisterOperator(opts *bind.TransactOpts, _operator common.Address) (*types.Transaction, error) {
  5666  	return _BridgeOperator.contract.Transact(opts, "registerOperator", _operator)
  5667  }
  5668  
  5669  // RegisterOperator is a paid mutator transaction binding the contract method 0x3682a450.
  5670  //
  5671  // Solidity: function registerOperator(address _operator) returns()
  5672  func (_BridgeOperator *BridgeOperatorSession) RegisterOperator(_operator common.Address) (*types.Transaction, error) {
  5673  	return _BridgeOperator.Contract.RegisterOperator(&_BridgeOperator.TransactOpts, _operator)
  5674  }
  5675  
  5676  // RegisterOperator is a paid mutator transaction binding the contract method 0x3682a450.
  5677  //
  5678  // Solidity: function registerOperator(address _operator) returns()
  5679  func (_BridgeOperator *BridgeOperatorTransactorSession) RegisterOperator(_operator common.Address) (*types.Transaction, error) {
  5680  	return _BridgeOperator.Contract.RegisterOperator(&_BridgeOperator.TransactOpts, _operator)
  5681  }
  5682  
  5683  // RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6.
  5684  //
  5685  // Solidity: function renounceOwnership() returns()
  5686  func (_BridgeOperator *BridgeOperatorTransactor) RenounceOwnership(opts *bind.TransactOpts) (*types.Transaction, error) {
  5687  	return _BridgeOperator.contract.Transact(opts, "renounceOwnership")
  5688  }
  5689  
  5690  // RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6.
  5691  //
  5692  // Solidity: function renounceOwnership() returns()
  5693  func (_BridgeOperator *BridgeOperatorSession) RenounceOwnership() (*types.Transaction, error) {
  5694  	return _BridgeOperator.Contract.RenounceOwnership(&_BridgeOperator.TransactOpts)
  5695  }
  5696  
  5697  // RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6.
  5698  //
  5699  // Solidity: function renounceOwnership() returns()
  5700  func (_BridgeOperator *BridgeOperatorTransactorSession) RenounceOwnership() (*types.Transaction, error) {
  5701  	return _BridgeOperator.Contract.RenounceOwnership(&_BridgeOperator.TransactOpts)
  5702  }
  5703  
  5704  // SetOperatorThreshold is a paid mutator transaction binding the contract method 0xee2aec65.
  5705  //
  5706  // Solidity: function setOperatorThreshold(uint8 _voteType, uint8 _threshold) returns()
  5707  func (_BridgeOperator *BridgeOperatorTransactor) SetOperatorThreshold(opts *bind.TransactOpts, _voteType uint8, _threshold uint8) (*types.Transaction, error) {
  5708  	return _BridgeOperator.contract.Transact(opts, "setOperatorThreshold", _voteType, _threshold)
  5709  }
  5710  
  5711  // SetOperatorThreshold is a paid mutator transaction binding the contract method 0xee2aec65.
  5712  //
  5713  // Solidity: function setOperatorThreshold(uint8 _voteType, uint8 _threshold) returns()
  5714  func (_BridgeOperator *BridgeOperatorSession) SetOperatorThreshold(_voteType uint8, _threshold uint8) (*types.Transaction, error) {
  5715  	return _BridgeOperator.Contract.SetOperatorThreshold(&_BridgeOperator.TransactOpts, _voteType, _threshold)
  5716  }
  5717  
  5718  // SetOperatorThreshold is a paid mutator transaction binding the contract method 0xee2aec65.
  5719  //
  5720  // Solidity: function setOperatorThreshold(uint8 _voteType, uint8 _threshold) returns()
  5721  func (_BridgeOperator *BridgeOperatorTransactorSession) SetOperatorThreshold(_voteType uint8, _threshold uint8) (*types.Transaction, error) {
  5722  	return _BridgeOperator.Contract.SetOperatorThreshold(&_BridgeOperator.TransactOpts, _voteType, _threshold)
  5723  }
  5724  
  5725  // TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b.
  5726  //
  5727  // Solidity: function transferOwnership(address newOwner) returns()
  5728  func (_BridgeOperator *BridgeOperatorTransactor) TransferOwnership(opts *bind.TransactOpts, newOwner common.Address) (*types.Transaction, error) {
  5729  	return _BridgeOperator.contract.Transact(opts, "transferOwnership", newOwner)
  5730  }
  5731  
  5732  // TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b.
  5733  //
  5734  // Solidity: function transferOwnership(address newOwner) returns()
  5735  func (_BridgeOperator *BridgeOperatorSession) TransferOwnership(newOwner common.Address) (*types.Transaction, error) {
  5736  	return _BridgeOperator.Contract.TransferOwnership(&_BridgeOperator.TransactOpts, newOwner)
  5737  }
  5738  
  5739  // TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b.
  5740  //
  5741  // Solidity: function transferOwnership(address newOwner) returns()
  5742  func (_BridgeOperator *BridgeOperatorTransactorSession) TransferOwnership(newOwner common.Address) (*types.Transaction, error) {
  5743  	return _BridgeOperator.Contract.TransferOwnership(&_BridgeOperator.TransactOpts, newOwner)
  5744  }
  5745  
  5746  // BridgeOperatorOwnershipTransferredIterator is returned from FilterOwnershipTransferred and is used to iterate over the raw logs and unpacked data for OwnershipTransferred events raised by the BridgeOperator contract.
  5747  type BridgeOperatorOwnershipTransferredIterator struct {
  5748  	Event *BridgeOperatorOwnershipTransferred // Event containing the contract specifics and raw log
  5749  
  5750  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  5751  	event    string              // Event name to use for unpacking event data
  5752  
  5753  	logs chan types.Log      // Log channel receiving the found contract events
  5754  	sub  klaytn.Subscription // Subscription for errors, completion and termination
  5755  	done bool                // Whether the subscription completed delivering logs
  5756  	fail error               // Occurred error to stop iteration
  5757  }
  5758  
  5759  // Next advances the iterator to the subsequent event, returning whether there
  5760  // are any more events found. In case of a retrieval or parsing error, false is
  5761  // returned and Error() can be queried for the exact failure.
  5762  func (it *BridgeOperatorOwnershipTransferredIterator) Next() bool {
  5763  	// If the iterator failed, stop iterating
  5764  	if it.fail != nil {
  5765  		return false
  5766  	}
  5767  	// If the iterator completed, deliver directly whatever's available
  5768  	if it.done {
  5769  		select {
  5770  		case log := <-it.logs:
  5771  			it.Event = new(BridgeOperatorOwnershipTransferred)
  5772  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  5773  				it.fail = err
  5774  				return false
  5775  			}
  5776  			it.Event.Raw = log
  5777  			return true
  5778  
  5779  		default:
  5780  			return false
  5781  		}
  5782  	}
  5783  	// Iterator still in progress, wait for either a data or an error event
  5784  	select {
  5785  	case log := <-it.logs:
  5786  		it.Event = new(BridgeOperatorOwnershipTransferred)
  5787  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  5788  			it.fail = err
  5789  			return false
  5790  		}
  5791  		it.Event.Raw = log
  5792  		return true
  5793  
  5794  	case err := <-it.sub.Err():
  5795  		it.done = true
  5796  		it.fail = err
  5797  		return it.Next()
  5798  	}
  5799  }
  5800  
  5801  // Error returns any retrieval or parsing error occurred during filtering.
  5802  func (it *BridgeOperatorOwnershipTransferredIterator) Error() error {
  5803  	return it.fail
  5804  }
  5805  
  5806  // Close terminates the iteration process, releasing any pending underlying
  5807  // resources.
  5808  func (it *BridgeOperatorOwnershipTransferredIterator) Close() error {
  5809  	it.sub.Unsubscribe()
  5810  	return nil
  5811  }
  5812  
  5813  // BridgeOperatorOwnershipTransferred represents a OwnershipTransferred event raised by the BridgeOperator contract.
  5814  type BridgeOperatorOwnershipTransferred struct {
  5815  	PreviousOwner common.Address
  5816  	NewOwner      common.Address
  5817  	Raw           types.Log // Blockchain specific contextual infos
  5818  }
  5819  
  5820  // FilterOwnershipTransferred is a free log retrieval operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0.
  5821  //
  5822  // Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
  5823  func (_BridgeOperator *BridgeOperatorFilterer) FilterOwnershipTransferred(opts *bind.FilterOpts, previousOwner []common.Address, newOwner []common.Address) (*BridgeOperatorOwnershipTransferredIterator, error) {
  5824  
  5825  	var previousOwnerRule []interface{}
  5826  	for _, previousOwnerItem := range previousOwner {
  5827  		previousOwnerRule = append(previousOwnerRule, previousOwnerItem)
  5828  	}
  5829  	var newOwnerRule []interface{}
  5830  	for _, newOwnerItem := range newOwner {
  5831  		newOwnerRule = append(newOwnerRule, newOwnerItem)
  5832  	}
  5833  
  5834  	logs, sub, err := _BridgeOperator.contract.FilterLogs(opts, "OwnershipTransferred", previousOwnerRule, newOwnerRule)
  5835  	if err != nil {
  5836  		return nil, err
  5837  	}
  5838  	return &BridgeOperatorOwnershipTransferredIterator{contract: _BridgeOperator.contract, event: "OwnershipTransferred", logs: logs, sub: sub}, nil
  5839  }
  5840  
  5841  // WatchOwnershipTransferred is a free log subscription operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0.
  5842  //
  5843  // Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
  5844  func (_BridgeOperator *BridgeOperatorFilterer) WatchOwnershipTransferred(opts *bind.WatchOpts, sink chan<- *BridgeOperatorOwnershipTransferred, previousOwner []common.Address, newOwner []common.Address) (event.Subscription, error) {
  5845  
  5846  	var previousOwnerRule []interface{}
  5847  	for _, previousOwnerItem := range previousOwner {
  5848  		previousOwnerRule = append(previousOwnerRule, previousOwnerItem)
  5849  	}
  5850  	var newOwnerRule []interface{}
  5851  	for _, newOwnerItem := range newOwner {
  5852  		newOwnerRule = append(newOwnerRule, newOwnerItem)
  5853  	}
  5854  
  5855  	logs, sub, err := _BridgeOperator.contract.WatchLogs(opts, "OwnershipTransferred", previousOwnerRule, newOwnerRule)
  5856  	if err != nil {
  5857  		return nil, err
  5858  	}
  5859  	return event.NewSubscription(func(quit <-chan struct{}) error {
  5860  		defer sub.Unsubscribe()
  5861  		for {
  5862  			select {
  5863  			case log := <-logs:
  5864  				// New log arrived, parse the event and forward to the user
  5865  				event := new(BridgeOperatorOwnershipTransferred)
  5866  				if err := _BridgeOperator.contract.UnpackLog(event, "OwnershipTransferred", log); err != nil {
  5867  					return err
  5868  				}
  5869  				event.Raw = log
  5870  
  5871  				select {
  5872  				case sink <- event:
  5873  				case err := <-sub.Err():
  5874  					return err
  5875  				case <-quit:
  5876  					return nil
  5877  				}
  5878  			case err := <-sub.Err():
  5879  				return err
  5880  			case <-quit:
  5881  				return nil
  5882  			}
  5883  		}
  5884  	}), nil
  5885  }
  5886  
  5887  // ParseOwnershipTransferred is a log parse operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0.
  5888  //
  5889  // Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
  5890  func (_BridgeOperator *BridgeOperatorFilterer) ParseOwnershipTransferred(log types.Log) (*BridgeOperatorOwnershipTransferred, error) {
  5891  	event := new(BridgeOperatorOwnershipTransferred)
  5892  	if err := _BridgeOperator.contract.UnpackLog(event, "OwnershipTransferred", log); err != nil {
  5893  		return nil, err
  5894  	}
  5895  	return event, nil
  5896  }
  5897  
  5898  // BridgeTokensMetaData contains all meta data concerning the BridgeTokens contract.
  5899  var BridgeTokensMetaData = &bind.MetaData{
  5900  	ABI: "[{\"constant\":false,\"inputs\":[{\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"lockToken\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"registeredTokenList\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_token\",\"type\":\"address\"},{\"name\":\"_cToken\",\"type\":\"address\"}],\"name\":\"registerToken\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"address\"}],\"name\":\"indexOfTokens\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"address\"}],\"name\":\"lockedTokens\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"address\"}],\"name\":\"registeredTokens\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"isOwner\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"unlockToken\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"deregisterToken\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getRegisteredTokenList\",\"outputs\":[{\"name\":\"\",\"type\":\"address[]\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"token\",\"type\":\"address\"}],\"name\":\"TokenRegistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"token\",\"type\":\"address\"}],\"name\":\"TokenDeregistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"token\",\"type\":\"address\"}],\"name\":\"TokenLocked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"token\",\"type\":\"address\"}],\"name\":\"TokenUnlocked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"}]",
  5901  	Sigs: map[string]string{
  5902  		"bab2af1d": "deregisterToken(address)",
  5903  		"ea21eade": "getRegisteredTokenList()",
  5904  		"48a18a6a": "indexOfTokens(address)",
  5905  		"8f32d59b": "isOwner()",
  5906  		"10693fcd": "lockToken(address)",
  5907  		"5eb7413a": "lockedTokens(address)",
  5908  		"8da5cb5b": "owner()",
  5909  		"4739f7e5": "registerToken(address,address)",
  5910  		"3e4fe949": "registeredTokenList(uint256)",
  5911  		"8c0bd916": "registeredTokens(address)",
  5912  		"715018a6": "renounceOwnership()",
  5913  		"f2fde38b": "transferOwnership(address)",
  5914  		"9ef2017b": "unlockToken(address)",
  5915  	},
  5916  	Bin: "0x60806040819052600080546001600160a01b03191633178082556001600160a01b0316917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3610c40806100576000396000f3fe608060405234801561001057600080fd5b50600436106100cf5760003560e01c80638c0bd9161161008c5780639ef2017b116100665780639ef2017b14610213578063bab2af1d14610239578063ea21eade1461025f578063f2fde38b146102b7576100cf565b80638c0bd916146101dd5780638da5cb5b146102035780638f32d59b1461020b576100cf565b806310693fcd146100d45780633e4fe949146100fc5780634739f7e51461013557806348a18a6a146101635780635eb7413a1461019b578063715018a6146101d5575b600080fd5b6100fa600480360360208110156100ea57600080fd5b50356001600160a01b03166102dd565b005b6101196004803603602081101561011257600080fd5b5035610450565b604080516001600160a01b039092168252519081900360200190f35b6100fa6004803603604081101561014b57600080fd5b506001600160a01b0381358116916020013516610477565b6101896004803603602081101561017957600080fd5b50356001600160a01b03166105d2565b60408051918252519081900360200190f35b6101c1600480360360208110156101b157600080fd5b50356001600160a01b03166105e4565b604080519115158252519081900360200190f35b6100fa6105f9565b610119600480360360208110156101f357600080fd5b50356001600160a01b031661068d565b6101196106a8565b6101c16106b8565b6100fa6004803603602081101561022957600080fd5b50356001600160a01b03166106c9565b6100fa6004803603602081101561024f57600080fd5b50356001600160a01b031661083d565b610267610a2c565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156102a357818101518382015260200161028b565b505050509050019250505060405180910390f35b6100fa600480360360208110156102cd57600080fd5b50356001600160a01b0316610a8e565b6102e56106b8565b6103275760408051600160e51b62461bcd0281526020600482018190526024820152600080516020610bf5833981519152604482015290519081900360640190fd5b6001600160a01b0380821660009081526001602052604090205482911661038f5760408051600160e51b62461bcd0281526020600482015260116024820152600160791b703737ba1030b63637bbb2b2103a37b5b2b702604482015290519081900360640190fd5b6001600160a01b038216600090815260046020526040902054829060ff16156104025760408051600160e51b62461bcd02815260206004820152600c60248201527f6c6f636b656420746f6b656e0000000000000000000000000000000000000000604482015290519081900360640190fd5b6001600160a01b038316600081815260046020526040808220805460ff19166001179055517fca1b0a14e18ada4c44846768dd186e35630cdc5cfeaca83c404ae4acaafbecd79190a2505050565b6003818154811061045d57fe5b6000918252602090912001546001600160a01b0316905081565b61047f6106b8565b6104c15760408051600160e51b62461bcd0281526020600482018190526024820152600080516020610bf5833981519152604482015290519081900360640190fd5b6001600160a01b03808316600090815260016020526040902054839116156105335760408051600160e51b62461bcd02815260206004820152600d60248201527f616c6c6f77656420746f6b656e00000000000000000000000000000000000000604482015290519081900360640190fd5b6001600160a01b03808416600081815260016020818152604080842080549689166001600160a01b031997881617905560038054600290935281852083905592820183559183527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b0180549094168317909355915190917f158412daecdc1456d01568828bcdb18464cc7f1ce0215ddbc3f3cfede9d1e63d91a2505050565b60026020526000908152604090205481565b60046020526000908152604090205460ff1681565b6106016106b8565b6106435760408051600160e51b62461bcd0281526020600482018190526024820152600080516020610bf5833981519152604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6001602052600090815260409020546001600160a01b031681565b6000546001600160a01b03165b90565b6000546001600160a01b0316331490565b6106d16106b8565b6107135760408051600160e51b62461bcd0281526020600482018190526024820152600080516020610bf5833981519152604482015290519081900360640190fd5b6001600160a01b0380821660009081526001602052604090205482911661077b5760408051600160e51b62461bcd0281526020600482015260116024820152600160791b703737ba1030b63637bbb2b2103a37b5b2b702604482015290519081900360640190fd5b6001600160a01b038216600090815260046020526040902054829060ff1615156001146107f25760408051600160e51b62461bcd02815260206004820152600e60248201527f756e6c6f636b656420746f6b656e000000000000000000000000000000000000604482015290519081900360640190fd5b6001600160a01b038316600081815260046020526040808220805460ff19169055517f81ec08d3372506e176c49e626d8beb7e091712ef92908a130f4ccc6524fe2eec9190a2505050565b6108456106b8565b6108875760408051600160e51b62461bcd0281526020600482018190526024820152600080516020610bf5833981519152604482015290519081900360640190fd5b6001600160a01b038082166000908152600160205260409020548291166108ef5760408051600160e51b62461bcd0281526020600482015260116024820152600160791b703737ba1030b63637bbb2b2103a37b5b2b702604482015290519081900360640190fd5b6001600160a01b038216600090815260016020908152604080832080546001600160a01b031916905560048252808320805460ff19169055600290915281208054919055600354600019018110156109df5760038054600019810190811061095357fe5b600091825260209091200154600380546001600160a01b03909216918390811061097957fe5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b031602179055508060026000600384815481106109b957fe5b60009182526020808320909101546001600160a01b031683528201929092526040019020555b60038054906109f2906000198301610b87565b506040516001600160a01b038416907f1d735ca20b63676dde668b718be78606b061d6bd7534ff815a90a121a6c084b690600090a2505050565b60606003805480602002602001604051908101604052809291908181526020018280548015610a8457602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610a66575b5050505050905090565b610a966106b8565b610ad85760408051600160e51b62461bcd0281526020600482018190526024820152600080516020610bf5833981519152604482015290519081900360640190fd5b610ae181610ae4565b50565b6001600160a01b038116610b2c57604051600160e51b62461bcd028152600401808060200182810382526026815260200180610bcf6026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b815481835581811115610bab57600083815260209020610bab918101908301610bb0565b505050565b6106b591905b80821115610bca5760008155600101610bb6565b509056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f20616464726573734f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572a165627a7a72305820243673cf74b8c0a271295a362dbfc8b387e00b277b0762b4f5eee61d706035e60029",
  5917  }
  5918  
  5919  // BridgeTokensABI is the input ABI used to generate the binding from.
  5920  // Deprecated: Use BridgeTokensMetaData.ABI instead.
  5921  var BridgeTokensABI = BridgeTokensMetaData.ABI
  5922  
  5923  // BridgeTokensBinRuntime is the compiled bytecode used for adding genesis block without deploying code.
  5924  const BridgeTokensBinRuntime = `608060405234801561001057600080fd5b50600436106100cf5760003560e01c80638c0bd9161161008c5780639ef2017b116100665780639ef2017b14610213578063bab2af1d14610239578063ea21eade1461025f578063f2fde38b146102b7576100cf565b80638c0bd916146101dd5780638da5cb5b146102035780638f32d59b1461020b576100cf565b806310693fcd146100d45780633e4fe949146100fc5780634739f7e51461013557806348a18a6a146101635780635eb7413a1461019b578063715018a6146101d5575b600080fd5b6100fa600480360360208110156100ea57600080fd5b50356001600160a01b03166102dd565b005b6101196004803603602081101561011257600080fd5b5035610450565b604080516001600160a01b039092168252519081900360200190f35b6100fa6004803603604081101561014b57600080fd5b506001600160a01b0381358116916020013516610477565b6101896004803603602081101561017957600080fd5b50356001600160a01b03166105d2565b60408051918252519081900360200190f35b6101c1600480360360208110156101b157600080fd5b50356001600160a01b03166105e4565b604080519115158252519081900360200190f35b6100fa6105f9565b610119600480360360208110156101f357600080fd5b50356001600160a01b031661068d565b6101196106a8565b6101c16106b8565b6100fa6004803603602081101561022957600080fd5b50356001600160a01b03166106c9565b6100fa6004803603602081101561024f57600080fd5b50356001600160a01b031661083d565b610267610a2c565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156102a357818101518382015260200161028b565b505050509050019250505060405180910390f35b6100fa600480360360208110156102cd57600080fd5b50356001600160a01b0316610a8e565b6102e56106b8565b6103275760408051600160e51b62461bcd0281526020600482018190526024820152600080516020610bf5833981519152604482015290519081900360640190fd5b6001600160a01b0380821660009081526001602052604090205482911661038f5760408051600160e51b62461bcd0281526020600482015260116024820152600160791b703737ba1030b63637bbb2b2103a37b5b2b702604482015290519081900360640190fd5b6001600160a01b038216600090815260046020526040902054829060ff16156104025760408051600160e51b62461bcd02815260206004820152600c60248201527f6c6f636b656420746f6b656e0000000000000000000000000000000000000000604482015290519081900360640190fd5b6001600160a01b038316600081815260046020526040808220805460ff19166001179055517fca1b0a14e18ada4c44846768dd186e35630cdc5cfeaca83c404ae4acaafbecd79190a2505050565b6003818154811061045d57fe5b6000918252602090912001546001600160a01b0316905081565b61047f6106b8565b6104c15760408051600160e51b62461bcd0281526020600482018190526024820152600080516020610bf5833981519152604482015290519081900360640190fd5b6001600160a01b03808316600090815260016020526040902054839116156105335760408051600160e51b62461bcd02815260206004820152600d60248201527f616c6c6f77656420746f6b656e00000000000000000000000000000000000000604482015290519081900360640190fd5b6001600160a01b03808416600081815260016020818152604080842080549689166001600160a01b031997881617905560038054600290935281852083905592820183559183527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b0180549094168317909355915190917f158412daecdc1456d01568828bcdb18464cc7f1ce0215ddbc3f3cfede9d1e63d91a2505050565b60026020526000908152604090205481565b60046020526000908152604090205460ff1681565b6106016106b8565b6106435760408051600160e51b62461bcd0281526020600482018190526024820152600080516020610bf5833981519152604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6001602052600090815260409020546001600160a01b031681565b6000546001600160a01b03165b90565b6000546001600160a01b0316331490565b6106d16106b8565b6107135760408051600160e51b62461bcd0281526020600482018190526024820152600080516020610bf5833981519152604482015290519081900360640190fd5b6001600160a01b0380821660009081526001602052604090205482911661077b5760408051600160e51b62461bcd0281526020600482015260116024820152600160791b703737ba1030b63637bbb2b2103a37b5b2b702604482015290519081900360640190fd5b6001600160a01b038216600090815260046020526040902054829060ff1615156001146107f25760408051600160e51b62461bcd02815260206004820152600e60248201527f756e6c6f636b656420746f6b656e000000000000000000000000000000000000604482015290519081900360640190fd5b6001600160a01b038316600081815260046020526040808220805460ff19169055517f81ec08d3372506e176c49e626d8beb7e091712ef92908a130f4ccc6524fe2eec9190a2505050565b6108456106b8565b6108875760408051600160e51b62461bcd0281526020600482018190526024820152600080516020610bf5833981519152604482015290519081900360640190fd5b6001600160a01b038082166000908152600160205260409020548291166108ef5760408051600160e51b62461bcd0281526020600482015260116024820152600160791b703737ba1030b63637bbb2b2103a37b5b2b702604482015290519081900360640190fd5b6001600160a01b038216600090815260016020908152604080832080546001600160a01b031916905560048252808320805460ff19169055600290915281208054919055600354600019018110156109df5760038054600019810190811061095357fe5b600091825260209091200154600380546001600160a01b03909216918390811061097957fe5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b031602179055508060026000600384815481106109b957fe5b60009182526020808320909101546001600160a01b031683528201929092526040019020555b60038054906109f2906000198301610b87565b506040516001600160a01b038416907f1d735ca20b63676dde668b718be78606b061d6bd7534ff815a90a121a6c084b690600090a2505050565b60606003805480602002602001604051908101604052809291908181526020018280548015610a8457602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610a66575b5050505050905090565b610a966106b8565b610ad85760408051600160e51b62461bcd0281526020600482018190526024820152600080516020610bf5833981519152604482015290519081900360640190fd5b610ae181610ae4565b50565b6001600160a01b038116610b2c57604051600160e51b62461bcd028152600401808060200182810382526026815260200180610bcf6026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b815481835581811115610bab57600083815260209020610bab918101908301610bb0565b505050565b6106b591905b80821115610bca5760008155600101610bb6565b509056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f20616464726573734f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572a165627a7a72305820243673cf74b8c0a271295a362dbfc8b387e00b277b0762b4f5eee61d706035e60029`
  5925  
  5926  // BridgeTokensFuncSigs maps the 4-byte function signature to its string representation.
  5927  // Deprecated: Use BridgeTokensMetaData.Sigs instead.
  5928  var BridgeTokensFuncSigs = BridgeTokensMetaData.Sigs
  5929  
  5930  // BridgeTokensBin is the compiled bytecode used for deploying new contracts.
  5931  // Deprecated: Use BridgeTokensMetaData.Bin instead.
  5932  var BridgeTokensBin = BridgeTokensMetaData.Bin
  5933  
  5934  // DeployBridgeTokens deploys a new Klaytn contract, binding an instance of BridgeTokens to it.
  5935  func DeployBridgeTokens(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *types.Transaction, *BridgeTokens, error) {
  5936  	parsed, err := BridgeTokensMetaData.GetAbi()
  5937  	if err != nil {
  5938  		return common.Address{}, nil, nil, err
  5939  	}
  5940  	if parsed == nil {
  5941  		return common.Address{}, nil, nil, errors.New("GetABI returned nil")
  5942  	}
  5943  
  5944  	address, tx, contract, err := bind.DeployContract(auth, *parsed, common.FromHex(BridgeTokensBin), backend)
  5945  	if err != nil {
  5946  		return common.Address{}, nil, nil, err
  5947  	}
  5948  	return address, tx, &BridgeTokens{BridgeTokensCaller: BridgeTokensCaller{contract: contract}, BridgeTokensTransactor: BridgeTokensTransactor{contract: contract}, BridgeTokensFilterer: BridgeTokensFilterer{contract: contract}}, nil
  5949  }
  5950  
  5951  // BridgeTokens is an auto generated Go binding around a Klaytn contract.
  5952  type BridgeTokens struct {
  5953  	BridgeTokensCaller     // Read-only binding to the contract
  5954  	BridgeTokensTransactor // Write-only binding to the contract
  5955  	BridgeTokensFilterer   // Log filterer for contract events
  5956  }
  5957  
  5958  // BridgeTokensCaller is an auto generated read-only Go binding around a Klaytn contract.
  5959  type BridgeTokensCaller struct {
  5960  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  5961  }
  5962  
  5963  // BridgeTokensTransactor is an auto generated write-only Go binding around a Klaytn contract.
  5964  type BridgeTokensTransactor struct {
  5965  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  5966  }
  5967  
  5968  // BridgeTokensFilterer is an auto generated log filtering Go binding around a Klaytn contract events.
  5969  type BridgeTokensFilterer struct {
  5970  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  5971  }
  5972  
  5973  // BridgeTokensSession is an auto generated Go binding around a Klaytn contract,
  5974  // with pre-set call and transact options.
  5975  type BridgeTokensSession struct {
  5976  	Contract     *BridgeTokens     // Generic contract binding to set the session for
  5977  	CallOpts     bind.CallOpts     // Call options to use throughout this session
  5978  	TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
  5979  }
  5980  
  5981  // BridgeTokensCallerSession is an auto generated read-only Go binding around a Klaytn contract,
  5982  // with pre-set call options.
  5983  type BridgeTokensCallerSession struct {
  5984  	Contract *BridgeTokensCaller // Generic contract caller binding to set the session for
  5985  	CallOpts bind.CallOpts       // Call options to use throughout this session
  5986  }
  5987  
  5988  // BridgeTokensTransactorSession is an auto generated write-only Go binding around a Klaytn contract,
  5989  // with pre-set transact options.
  5990  type BridgeTokensTransactorSession struct {
  5991  	Contract     *BridgeTokensTransactor // Generic contract transactor binding to set the session for
  5992  	TransactOpts bind.TransactOpts       // Transaction auth options to use throughout this session
  5993  }
  5994  
  5995  // BridgeTokensRaw is an auto generated low-level Go binding around a Klaytn contract.
  5996  type BridgeTokensRaw struct {
  5997  	Contract *BridgeTokens // Generic contract binding to access the raw methods on
  5998  }
  5999  
  6000  // BridgeTokensCallerRaw is an auto generated low-level read-only Go binding around a Klaytn contract.
  6001  type BridgeTokensCallerRaw struct {
  6002  	Contract *BridgeTokensCaller // Generic read-only contract binding to access the raw methods on
  6003  }
  6004  
  6005  // BridgeTokensTransactorRaw is an auto generated low-level write-only Go binding around a Klaytn contract.
  6006  type BridgeTokensTransactorRaw struct {
  6007  	Contract *BridgeTokensTransactor // Generic write-only contract binding to access the raw methods on
  6008  }
  6009  
  6010  // NewBridgeTokens creates a new instance of BridgeTokens, bound to a specific deployed contract.
  6011  func NewBridgeTokens(address common.Address, backend bind.ContractBackend) (*BridgeTokens, error) {
  6012  	contract, err := bindBridgeTokens(address, backend, backend, backend)
  6013  	if err != nil {
  6014  		return nil, err
  6015  	}
  6016  	return &BridgeTokens{BridgeTokensCaller: BridgeTokensCaller{contract: contract}, BridgeTokensTransactor: BridgeTokensTransactor{contract: contract}, BridgeTokensFilterer: BridgeTokensFilterer{contract: contract}}, nil
  6017  }
  6018  
  6019  // NewBridgeTokensCaller creates a new read-only instance of BridgeTokens, bound to a specific deployed contract.
  6020  func NewBridgeTokensCaller(address common.Address, caller bind.ContractCaller) (*BridgeTokensCaller, error) {
  6021  	contract, err := bindBridgeTokens(address, caller, nil, nil)
  6022  	if err != nil {
  6023  		return nil, err
  6024  	}
  6025  	return &BridgeTokensCaller{contract: contract}, nil
  6026  }
  6027  
  6028  // NewBridgeTokensTransactor creates a new write-only instance of BridgeTokens, bound to a specific deployed contract.
  6029  func NewBridgeTokensTransactor(address common.Address, transactor bind.ContractTransactor) (*BridgeTokensTransactor, error) {
  6030  	contract, err := bindBridgeTokens(address, nil, transactor, nil)
  6031  	if err != nil {
  6032  		return nil, err
  6033  	}
  6034  	return &BridgeTokensTransactor{contract: contract}, nil
  6035  }
  6036  
  6037  // NewBridgeTokensFilterer creates a new log filterer instance of BridgeTokens, bound to a specific deployed contract.
  6038  func NewBridgeTokensFilterer(address common.Address, filterer bind.ContractFilterer) (*BridgeTokensFilterer, error) {
  6039  	contract, err := bindBridgeTokens(address, nil, nil, filterer)
  6040  	if err != nil {
  6041  		return nil, err
  6042  	}
  6043  	return &BridgeTokensFilterer{contract: contract}, nil
  6044  }
  6045  
  6046  // bindBridgeTokens binds a generic wrapper to an already deployed contract.
  6047  func bindBridgeTokens(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
  6048  	parsed, err := BridgeTokensMetaData.GetAbi()
  6049  	if err != nil {
  6050  		return nil, err
  6051  	}
  6052  	return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil
  6053  }
  6054  
  6055  // Call invokes the (constant) contract method with params as input values and
  6056  // sets the output to result. The result type might be a single field for simple
  6057  // returns, a slice of interfaces for anonymous returns and a struct for named
  6058  // returns.
  6059  func (_BridgeTokens *BridgeTokensRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
  6060  	return _BridgeTokens.Contract.BridgeTokensCaller.contract.Call(opts, result, method, params...)
  6061  }
  6062  
  6063  // Transfer initiates a plain transaction to move funds to the contract, calling
  6064  // its default method if one is available.
  6065  func (_BridgeTokens *BridgeTokensRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
  6066  	return _BridgeTokens.Contract.BridgeTokensTransactor.contract.Transfer(opts)
  6067  }
  6068  
  6069  // Transact invokes the (paid) contract method with params as input values.
  6070  func (_BridgeTokens *BridgeTokensRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
  6071  	return _BridgeTokens.Contract.BridgeTokensTransactor.contract.Transact(opts, method, params...)
  6072  }
  6073  
  6074  // Call invokes the (constant) contract method with params as input values and
  6075  // sets the output to result. The result type might be a single field for simple
  6076  // returns, a slice of interfaces for anonymous returns and a struct for named
  6077  // returns.
  6078  func (_BridgeTokens *BridgeTokensCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
  6079  	return _BridgeTokens.Contract.contract.Call(opts, result, method, params...)
  6080  }
  6081  
  6082  // Transfer initiates a plain transaction to move funds to the contract, calling
  6083  // its default method if one is available.
  6084  func (_BridgeTokens *BridgeTokensTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
  6085  	return _BridgeTokens.Contract.contract.Transfer(opts)
  6086  }
  6087  
  6088  // Transact invokes the (paid) contract method with params as input values.
  6089  func (_BridgeTokens *BridgeTokensTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
  6090  	return _BridgeTokens.Contract.contract.Transact(opts, method, params...)
  6091  }
  6092  
  6093  // GetRegisteredTokenList is a free data retrieval call binding the contract method 0xea21eade.
  6094  //
  6095  // Solidity: function getRegisteredTokenList() view returns(address[])
  6096  func (_BridgeTokens *BridgeTokensCaller) GetRegisteredTokenList(opts *bind.CallOpts) ([]common.Address, error) {
  6097  	var out []interface{}
  6098  	err := _BridgeTokens.contract.Call(opts, &out, "getRegisteredTokenList")
  6099  
  6100  	if err != nil {
  6101  		return *new([]common.Address), err
  6102  	}
  6103  
  6104  	out0 := *abi.ConvertType(out[0], new([]common.Address)).(*[]common.Address)
  6105  
  6106  	return out0, err
  6107  
  6108  }
  6109  
  6110  // GetRegisteredTokenList is a free data retrieval call binding the contract method 0xea21eade.
  6111  //
  6112  // Solidity: function getRegisteredTokenList() view returns(address[])
  6113  func (_BridgeTokens *BridgeTokensSession) GetRegisteredTokenList() ([]common.Address, error) {
  6114  	return _BridgeTokens.Contract.GetRegisteredTokenList(&_BridgeTokens.CallOpts)
  6115  }
  6116  
  6117  // GetRegisteredTokenList is a free data retrieval call binding the contract method 0xea21eade.
  6118  //
  6119  // Solidity: function getRegisteredTokenList() view returns(address[])
  6120  func (_BridgeTokens *BridgeTokensCallerSession) GetRegisteredTokenList() ([]common.Address, error) {
  6121  	return _BridgeTokens.Contract.GetRegisteredTokenList(&_BridgeTokens.CallOpts)
  6122  }
  6123  
  6124  // IndexOfTokens is a free data retrieval call binding the contract method 0x48a18a6a.
  6125  //
  6126  // Solidity: function indexOfTokens(address ) view returns(uint256)
  6127  func (_BridgeTokens *BridgeTokensCaller) IndexOfTokens(opts *bind.CallOpts, arg0 common.Address) (*big.Int, error) {
  6128  	var out []interface{}
  6129  	err := _BridgeTokens.contract.Call(opts, &out, "indexOfTokens", arg0)
  6130  
  6131  	if err != nil {
  6132  		return *new(*big.Int), err
  6133  	}
  6134  
  6135  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
  6136  
  6137  	return out0, err
  6138  
  6139  }
  6140  
  6141  // IndexOfTokens is a free data retrieval call binding the contract method 0x48a18a6a.
  6142  //
  6143  // Solidity: function indexOfTokens(address ) view returns(uint256)
  6144  func (_BridgeTokens *BridgeTokensSession) IndexOfTokens(arg0 common.Address) (*big.Int, error) {
  6145  	return _BridgeTokens.Contract.IndexOfTokens(&_BridgeTokens.CallOpts, arg0)
  6146  }
  6147  
  6148  // IndexOfTokens is a free data retrieval call binding the contract method 0x48a18a6a.
  6149  //
  6150  // Solidity: function indexOfTokens(address ) view returns(uint256)
  6151  func (_BridgeTokens *BridgeTokensCallerSession) IndexOfTokens(arg0 common.Address) (*big.Int, error) {
  6152  	return _BridgeTokens.Contract.IndexOfTokens(&_BridgeTokens.CallOpts, arg0)
  6153  }
  6154  
  6155  // IsOwner is a free data retrieval call binding the contract method 0x8f32d59b.
  6156  //
  6157  // Solidity: function isOwner() view returns(bool)
  6158  func (_BridgeTokens *BridgeTokensCaller) IsOwner(opts *bind.CallOpts) (bool, error) {
  6159  	var out []interface{}
  6160  	err := _BridgeTokens.contract.Call(opts, &out, "isOwner")
  6161  
  6162  	if err != nil {
  6163  		return *new(bool), err
  6164  	}
  6165  
  6166  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
  6167  
  6168  	return out0, err
  6169  
  6170  }
  6171  
  6172  // IsOwner is a free data retrieval call binding the contract method 0x8f32d59b.
  6173  //
  6174  // Solidity: function isOwner() view returns(bool)
  6175  func (_BridgeTokens *BridgeTokensSession) IsOwner() (bool, error) {
  6176  	return _BridgeTokens.Contract.IsOwner(&_BridgeTokens.CallOpts)
  6177  }
  6178  
  6179  // IsOwner is a free data retrieval call binding the contract method 0x8f32d59b.
  6180  //
  6181  // Solidity: function isOwner() view returns(bool)
  6182  func (_BridgeTokens *BridgeTokensCallerSession) IsOwner() (bool, error) {
  6183  	return _BridgeTokens.Contract.IsOwner(&_BridgeTokens.CallOpts)
  6184  }
  6185  
  6186  // LockedTokens is a free data retrieval call binding the contract method 0x5eb7413a.
  6187  //
  6188  // Solidity: function lockedTokens(address ) view returns(bool)
  6189  func (_BridgeTokens *BridgeTokensCaller) LockedTokens(opts *bind.CallOpts, arg0 common.Address) (bool, error) {
  6190  	var out []interface{}
  6191  	err := _BridgeTokens.contract.Call(opts, &out, "lockedTokens", arg0)
  6192  
  6193  	if err != nil {
  6194  		return *new(bool), err
  6195  	}
  6196  
  6197  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
  6198  
  6199  	return out0, err
  6200  
  6201  }
  6202  
  6203  // LockedTokens is a free data retrieval call binding the contract method 0x5eb7413a.
  6204  //
  6205  // Solidity: function lockedTokens(address ) view returns(bool)
  6206  func (_BridgeTokens *BridgeTokensSession) LockedTokens(arg0 common.Address) (bool, error) {
  6207  	return _BridgeTokens.Contract.LockedTokens(&_BridgeTokens.CallOpts, arg0)
  6208  }
  6209  
  6210  // LockedTokens is a free data retrieval call binding the contract method 0x5eb7413a.
  6211  //
  6212  // Solidity: function lockedTokens(address ) view returns(bool)
  6213  func (_BridgeTokens *BridgeTokensCallerSession) LockedTokens(arg0 common.Address) (bool, error) {
  6214  	return _BridgeTokens.Contract.LockedTokens(&_BridgeTokens.CallOpts, arg0)
  6215  }
  6216  
  6217  // Owner is a free data retrieval call binding the contract method 0x8da5cb5b.
  6218  //
  6219  // Solidity: function owner() view returns(address)
  6220  func (_BridgeTokens *BridgeTokensCaller) Owner(opts *bind.CallOpts) (common.Address, error) {
  6221  	var out []interface{}
  6222  	err := _BridgeTokens.contract.Call(opts, &out, "owner")
  6223  
  6224  	if err != nil {
  6225  		return *new(common.Address), err
  6226  	}
  6227  
  6228  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
  6229  
  6230  	return out0, err
  6231  
  6232  }
  6233  
  6234  // Owner is a free data retrieval call binding the contract method 0x8da5cb5b.
  6235  //
  6236  // Solidity: function owner() view returns(address)
  6237  func (_BridgeTokens *BridgeTokensSession) Owner() (common.Address, error) {
  6238  	return _BridgeTokens.Contract.Owner(&_BridgeTokens.CallOpts)
  6239  }
  6240  
  6241  // Owner is a free data retrieval call binding the contract method 0x8da5cb5b.
  6242  //
  6243  // Solidity: function owner() view returns(address)
  6244  func (_BridgeTokens *BridgeTokensCallerSession) Owner() (common.Address, error) {
  6245  	return _BridgeTokens.Contract.Owner(&_BridgeTokens.CallOpts)
  6246  }
  6247  
  6248  // RegisteredTokenList is a free data retrieval call binding the contract method 0x3e4fe949.
  6249  //
  6250  // Solidity: function registeredTokenList(uint256 ) view returns(address)
  6251  func (_BridgeTokens *BridgeTokensCaller) RegisteredTokenList(opts *bind.CallOpts, arg0 *big.Int) (common.Address, error) {
  6252  	var out []interface{}
  6253  	err := _BridgeTokens.contract.Call(opts, &out, "registeredTokenList", arg0)
  6254  
  6255  	if err != nil {
  6256  		return *new(common.Address), err
  6257  	}
  6258  
  6259  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
  6260  
  6261  	return out0, err
  6262  
  6263  }
  6264  
  6265  // RegisteredTokenList is a free data retrieval call binding the contract method 0x3e4fe949.
  6266  //
  6267  // Solidity: function registeredTokenList(uint256 ) view returns(address)
  6268  func (_BridgeTokens *BridgeTokensSession) RegisteredTokenList(arg0 *big.Int) (common.Address, error) {
  6269  	return _BridgeTokens.Contract.RegisteredTokenList(&_BridgeTokens.CallOpts, arg0)
  6270  }
  6271  
  6272  // RegisteredTokenList is a free data retrieval call binding the contract method 0x3e4fe949.
  6273  //
  6274  // Solidity: function registeredTokenList(uint256 ) view returns(address)
  6275  func (_BridgeTokens *BridgeTokensCallerSession) RegisteredTokenList(arg0 *big.Int) (common.Address, error) {
  6276  	return _BridgeTokens.Contract.RegisteredTokenList(&_BridgeTokens.CallOpts, arg0)
  6277  }
  6278  
  6279  // RegisteredTokens is a free data retrieval call binding the contract method 0x8c0bd916.
  6280  //
  6281  // Solidity: function registeredTokens(address ) view returns(address)
  6282  func (_BridgeTokens *BridgeTokensCaller) RegisteredTokens(opts *bind.CallOpts, arg0 common.Address) (common.Address, error) {
  6283  	var out []interface{}
  6284  	err := _BridgeTokens.contract.Call(opts, &out, "registeredTokens", arg0)
  6285  
  6286  	if err != nil {
  6287  		return *new(common.Address), err
  6288  	}
  6289  
  6290  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
  6291  
  6292  	return out0, err
  6293  
  6294  }
  6295  
  6296  // RegisteredTokens is a free data retrieval call binding the contract method 0x8c0bd916.
  6297  //
  6298  // Solidity: function registeredTokens(address ) view returns(address)
  6299  func (_BridgeTokens *BridgeTokensSession) RegisteredTokens(arg0 common.Address) (common.Address, error) {
  6300  	return _BridgeTokens.Contract.RegisteredTokens(&_BridgeTokens.CallOpts, arg0)
  6301  }
  6302  
  6303  // RegisteredTokens is a free data retrieval call binding the contract method 0x8c0bd916.
  6304  //
  6305  // Solidity: function registeredTokens(address ) view returns(address)
  6306  func (_BridgeTokens *BridgeTokensCallerSession) RegisteredTokens(arg0 common.Address) (common.Address, error) {
  6307  	return _BridgeTokens.Contract.RegisteredTokens(&_BridgeTokens.CallOpts, arg0)
  6308  }
  6309  
  6310  // DeregisterToken is a paid mutator transaction binding the contract method 0xbab2af1d.
  6311  //
  6312  // Solidity: function deregisterToken(address _token) returns()
  6313  func (_BridgeTokens *BridgeTokensTransactor) DeregisterToken(opts *bind.TransactOpts, _token common.Address) (*types.Transaction, error) {
  6314  	return _BridgeTokens.contract.Transact(opts, "deregisterToken", _token)
  6315  }
  6316  
  6317  // DeregisterToken is a paid mutator transaction binding the contract method 0xbab2af1d.
  6318  //
  6319  // Solidity: function deregisterToken(address _token) returns()
  6320  func (_BridgeTokens *BridgeTokensSession) DeregisterToken(_token common.Address) (*types.Transaction, error) {
  6321  	return _BridgeTokens.Contract.DeregisterToken(&_BridgeTokens.TransactOpts, _token)
  6322  }
  6323  
  6324  // DeregisterToken is a paid mutator transaction binding the contract method 0xbab2af1d.
  6325  //
  6326  // Solidity: function deregisterToken(address _token) returns()
  6327  func (_BridgeTokens *BridgeTokensTransactorSession) DeregisterToken(_token common.Address) (*types.Transaction, error) {
  6328  	return _BridgeTokens.Contract.DeregisterToken(&_BridgeTokens.TransactOpts, _token)
  6329  }
  6330  
  6331  // LockToken is a paid mutator transaction binding the contract method 0x10693fcd.
  6332  //
  6333  // Solidity: function lockToken(address _token) returns()
  6334  func (_BridgeTokens *BridgeTokensTransactor) LockToken(opts *bind.TransactOpts, _token common.Address) (*types.Transaction, error) {
  6335  	return _BridgeTokens.contract.Transact(opts, "lockToken", _token)
  6336  }
  6337  
  6338  // LockToken is a paid mutator transaction binding the contract method 0x10693fcd.
  6339  //
  6340  // Solidity: function lockToken(address _token) returns()
  6341  func (_BridgeTokens *BridgeTokensSession) LockToken(_token common.Address) (*types.Transaction, error) {
  6342  	return _BridgeTokens.Contract.LockToken(&_BridgeTokens.TransactOpts, _token)
  6343  }
  6344  
  6345  // LockToken is a paid mutator transaction binding the contract method 0x10693fcd.
  6346  //
  6347  // Solidity: function lockToken(address _token) returns()
  6348  func (_BridgeTokens *BridgeTokensTransactorSession) LockToken(_token common.Address) (*types.Transaction, error) {
  6349  	return _BridgeTokens.Contract.LockToken(&_BridgeTokens.TransactOpts, _token)
  6350  }
  6351  
  6352  // RegisterToken is a paid mutator transaction binding the contract method 0x4739f7e5.
  6353  //
  6354  // Solidity: function registerToken(address _token, address _cToken) returns()
  6355  func (_BridgeTokens *BridgeTokensTransactor) RegisterToken(opts *bind.TransactOpts, _token common.Address, _cToken common.Address) (*types.Transaction, error) {
  6356  	return _BridgeTokens.contract.Transact(opts, "registerToken", _token, _cToken)
  6357  }
  6358  
  6359  // RegisterToken is a paid mutator transaction binding the contract method 0x4739f7e5.
  6360  //
  6361  // Solidity: function registerToken(address _token, address _cToken) returns()
  6362  func (_BridgeTokens *BridgeTokensSession) RegisterToken(_token common.Address, _cToken common.Address) (*types.Transaction, error) {
  6363  	return _BridgeTokens.Contract.RegisterToken(&_BridgeTokens.TransactOpts, _token, _cToken)
  6364  }
  6365  
  6366  // RegisterToken is a paid mutator transaction binding the contract method 0x4739f7e5.
  6367  //
  6368  // Solidity: function registerToken(address _token, address _cToken) returns()
  6369  func (_BridgeTokens *BridgeTokensTransactorSession) RegisterToken(_token common.Address, _cToken common.Address) (*types.Transaction, error) {
  6370  	return _BridgeTokens.Contract.RegisterToken(&_BridgeTokens.TransactOpts, _token, _cToken)
  6371  }
  6372  
  6373  // RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6.
  6374  //
  6375  // Solidity: function renounceOwnership() returns()
  6376  func (_BridgeTokens *BridgeTokensTransactor) RenounceOwnership(opts *bind.TransactOpts) (*types.Transaction, error) {
  6377  	return _BridgeTokens.contract.Transact(opts, "renounceOwnership")
  6378  }
  6379  
  6380  // RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6.
  6381  //
  6382  // Solidity: function renounceOwnership() returns()
  6383  func (_BridgeTokens *BridgeTokensSession) RenounceOwnership() (*types.Transaction, error) {
  6384  	return _BridgeTokens.Contract.RenounceOwnership(&_BridgeTokens.TransactOpts)
  6385  }
  6386  
  6387  // RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6.
  6388  //
  6389  // Solidity: function renounceOwnership() returns()
  6390  func (_BridgeTokens *BridgeTokensTransactorSession) RenounceOwnership() (*types.Transaction, error) {
  6391  	return _BridgeTokens.Contract.RenounceOwnership(&_BridgeTokens.TransactOpts)
  6392  }
  6393  
  6394  // TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b.
  6395  //
  6396  // Solidity: function transferOwnership(address newOwner) returns()
  6397  func (_BridgeTokens *BridgeTokensTransactor) TransferOwnership(opts *bind.TransactOpts, newOwner common.Address) (*types.Transaction, error) {
  6398  	return _BridgeTokens.contract.Transact(opts, "transferOwnership", newOwner)
  6399  }
  6400  
  6401  // TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b.
  6402  //
  6403  // Solidity: function transferOwnership(address newOwner) returns()
  6404  func (_BridgeTokens *BridgeTokensSession) TransferOwnership(newOwner common.Address) (*types.Transaction, error) {
  6405  	return _BridgeTokens.Contract.TransferOwnership(&_BridgeTokens.TransactOpts, newOwner)
  6406  }
  6407  
  6408  // TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b.
  6409  //
  6410  // Solidity: function transferOwnership(address newOwner) returns()
  6411  func (_BridgeTokens *BridgeTokensTransactorSession) TransferOwnership(newOwner common.Address) (*types.Transaction, error) {
  6412  	return _BridgeTokens.Contract.TransferOwnership(&_BridgeTokens.TransactOpts, newOwner)
  6413  }
  6414  
  6415  // UnlockToken is a paid mutator transaction binding the contract method 0x9ef2017b.
  6416  //
  6417  // Solidity: function unlockToken(address _token) returns()
  6418  func (_BridgeTokens *BridgeTokensTransactor) UnlockToken(opts *bind.TransactOpts, _token common.Address) (*types.Transaction, error) {
  6419  	return _BridgeTokens.contract.Transact(opts, "unlockToken", _token)
  6420  }
  6421  
  6422  // UnlockToken is a paid mutator transaction binding the contract method 0x9ef2017b.
  6423  //
  6424  // Solidity: function unlockToken(address _token) returns()
  6425  func (_BridgeTokens *BridgeTokensSession) UnlockToken(_token common.Address) (*types.Transaction, error) {
  6426  	return _BridgeTokens.Contract.UnlockToken(&_BridgeTokens.TransactOpts, _token)
  6427  }
  6428  
  6429  // UnlockToken is a paid mutator transaction binding the contract method 0x9ef2017b.
  6430  //
  6431  // Solidity: function unlockToken(address _token) returns()
  6432  func (_BridgeTokens *BridgeTokensTransactorSession) UnlockToken(_token common.Address) (*types.Transaction, error) {
  6433  	return _BridgeTokens.Contract.UnlockToken(&_BridgeTokens.TransactOpts, _token)
  6434  }
  6435  
  6436  // BridgeTokensOwnershipTransferredIterator is returned from FilterOwnershipTransferred and is used to iterate over the raw logs and unpacked data for OwnershipTransferred events raised by the BridgeTokens contract.
  6437  type BridgeTokensOwnershipTransferredIterator struct {
  6438  	Event *BridgeTokensOwnershipTransferred // Event containing the contract specifics and raw log
  6439  
  6440  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  6441  	event    string              // Event name to use for unpacking event data
  6442  
  6443  	logs chan types.Log      // Log channel receiving the found contract events
  6444  	sub  klaytn.Subscription // Subscription for errors, completion and termination
  6445  	done bool                // Whether the subscription completed delivering logs
  6446  	fail error               // Occurred error to stop iteration
  6447  }
  6448  
  6449  // Next advances the iterator to the subsequent event, returning whether there
  6450  // are any more events found. In case of a retrieval or parsing error, false is
  6451  // returned and Error() can be queried for the exact failure.
  6452  func (it *BridgeTokensOwnershipTransferredIterator) Next() bool {
  6453  	// If the iterator failed, stop iterating
  6454  	if it.fail != nil {
  6455  		return false
  6456  	}
  6457  	// If the iterator completed, deliver directly whatever's available
  6458  	if it.done {
  6459  		select {
  6460  		case log := <-it.logs:
  6461  			it.Event = new(BridgeTokensOwnershipTransferred)
  6462  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  6463  				it.fail = err
  6464  				return false
  6465  			}
  6466  			it.Event.Raw = log
  6467  			return true
  6468  
  6469  		default:
  6470  			return false
  6471  		}
  6472  	}
  6473  	// Iterator still in progress, wait for either a data or an error event
  6474  	select {
  6475  	case log := <-it.logs:
  6476  		it.Event = new(BridgeTokensOwnershipTransferred)
  6477  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  6478  			it.fail = err
  6479  			return false
  6480  		}
  6481  		it.Event.Raw = log
  6482  		return true
  6483  
  6484  	case err := <-it.sub.Err():
  6485  		it.done = true
  6486  		it.fail = err
  6487  		return it.Next()
  6488  	}
  6489  }
  6490  
  6491  // Error returns any retrieval or parsing error occurred during filtering.
  6492  func (it *BridgeTokensOwnershipTransferredIterator) Error() error {
  6493  	return it.fail
  6494  }
  6495  
  6496  // Close terminates the iteration process, releasing any pending underlying
  6497  // resources.
  6498  func (it *BridgeTokensOwnershipTransferredIterator) Close() error {
  6499  	it.sub.Unsubscribe()
  6500  	return nil
  6501  }
  6502  
  6503  // BridgeTokensOwnershipTransferred represents a OwnershipTransferred event raised by the BridgeTokens contract.
  6504  type BridgeTokensOwnershipTransferred struct {
  6505  	PreviousOwner common.Address
  6506  	NewOwner      common.Address
  6507  	Raw           types.Log // Blockchain specific contextual infos
  6508  }
  6509  
  6510  // FilterOwnershipTransferred is a free log retrieval operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0.
  6511  //
  6512  // Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
  6513  func (_BridgeTokens *BridgeTokensFilterer) FilterOwnershipTransferred(opts *bind.FilterOpts, previousOwner []common.Address, newOwner []common.Address) (*BridgeTokensOwnershipTransferredIterator, error) {
  6514  
  6515  	var previousOwnerRule []interface{}
  6516  	for _, previousOwnerItem := range previousOwner {
  6517  		previousOwnerRule = append(previousOwnerRule, previousOwnerItem)
  6518  	}
  6519  	var newOwnerRule []interface{}
  6520  	for _, newOwnerItem := range newOwner {
  6521  		newOwnerRule = append(newOwnerRule, newOwnerItem)
  6522  	}
  6523  
  6524  	logs, sub, err := _BridgeTokens.contract.FilterLogs(opts, "OwnershipTransferred", previousOwnerRule, newOwnerRule)
  6525  	if err != nil {
  6526  		return nil, err
  6527  	}
  6528  	return &BridgeTokensOwnershipTransferredIterator{contract: _BridgeTokens.contract, event: "OwnershipTransferred", logs: logs, sub: sub}, nil
  6529  }
  6530  
  6531  // WatchOwnershipTransferred is a free log subscription operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0.
  6532  //
  6533  // Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
  6534  func (_BridgeTokens *BridgeTokensFilterer) WatchOwnershipTransferred(opts *bind.WatchOpts, sink chan<- *BridgeTokensOwnershipTransferred, previousOwner []common.Address, newOwner []common.Address) (event.Subscription, error) {
  6535  
  6536  	var previousOwnerRule []interface{}
  6537  	for _, previousOwnerItem := range previousOwner {
  6538  		previousOwnerRule = append(previousOwnerRule, previousOwnerItem)
  6539  	}
  6540  	var newOwnerRule []interface{}
  6541  	for _, newOwnerItem := range newOwner {
  6542  		newOwnerRule = append(newOwnerRule, newOwnerItem)
  6543  	}
  6544  
  6545  	logs, sub, err := _BridgeTokens.contract.WatchLogs(opts, "OwnershipTransferred", previousOwnerRule, newOwnerRule)
  6546  	if err != nil {
  6547  		return nil, err
  6548  	}
  6549  	return event.NewSubscription(func(quit <-chan struct{}) error {
  6550  		defer sub.Unsubscribe()
  6551  		for {
  6552  			select {
  6553  			case log := <-logs:
  6554  				// New log arrived, parse the event and forward to the user
  6555  				event := new(BridgeTokensOwnershipTransferred)
  6556  				if err := _BridgeTokens.contract.UnpackLog(event, "OwnershipTransferred", log); err != nil {
  6557  					return err
  6558  				}
  6559  				event.Raw = log
  6560  
  6561  				select {
  6562  				case sink <- event:
  6563  				case err := <-sub.Err():
  6564  					return err
  6565  				case <-quit:
  6566  					return nil
  6567  				}
  6568  			case err := <-sub.Err():
  6569  				return err
  6570  			case <-quit:
  6571  				return nil
  6572  			}
  6573  		}
  6574  	}), nil
  6575  }
  6576  
  6577  // ParseOwnershipTransferred is a log parse operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0.
  6578  //
  6579  // Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
  6580  func (_BridgeTokens *BridgeTokensFilterer) ParseOwnershipTransferred(log types.Log) (*BridgeTokensOwnershipTransferred, error) {
  6581  	event := new(BridgeTokensOwnershipTransferred)
  6582  	if err := _BridgeTokens.contract.UnpackLog(event, "OwnershipTransferred", log); err != nil {
  6583  		return nil, err
  6584  	}
  6585  	return event, nil
  6586  }
  6587  
  6588  // BridgeTokensTokenDeregisteredIterator is returned from FilterTokenDeregistered and is used to iterate over the raw logs and unpacked data for TokenDeregistered events raised by the BridgeTokens contract.
  6589  type BridgeTokensTokenDeregisteredIterator struct {
  6590  	Event *BridgeTokensTokenDeregistered // Event containing the contract specifics and raw log
  6591  
  6592  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  6593  	event    string              // Event name to use for unpacking event data
  6594  
  6595  	logs chan types.Log      // Log channel receiving the found contract events
  6596  	sub  klaytn.Subscription // Subscription for errors, completion and termination
  6597  	done bool                // Whether the subscription completed delivering logs
  6598  	fail error               // Occurred error to stop iteration
  6599  }
  6600  
  6601  // Next advances the iterator to the subsequent event, returning whether there
  6602  // are any more events found. In case of a retrieval or parsing error, false is
  6603  // returned and Error() can be queried for the exact failure.
  6604  func (it *BridgeTokensTokenDeregisteredIterator) Next() bool {
  6605  	// If the iterator failed, stop iterating
  6606  	if it.fail != nil {
  6607  		return false
  6608  	}
  6609  	// If the iterator completed, deliver directly whatever's available
  6610  	if it.done {
  6611  		select {
  6612  		case log := <-it.logs:
  6613  			it.Event = new(BridgeTokensTokenDeregistered)
  6614  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  6615  				it.fail = err
  6616  				return false
  6617  			}
  6618  			it.Event.Raw = log
  6619  			return true
  6620  
  6621  		default:
  6622  			return false
  6623  		}
  6624  	}
  6625  	// Iterator still in progress, wait for either a data or an error event
  6626  	select {
  6627  	case log := <-it.logs:
  6628  		it.Event = new(BridgeTokensTokenDeregistered)
  6629  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  6630  			it.fail = err
  6631  			return false
  6632  		}
  6633  		it.Event.Raw = log
  6634  		return true
  6635  
  6636  	case err := <-it.sub.Err():
  6637  		it.done = true
  6638  		it.fail = err
  6639  		return it.Next()
  6640  	}
  6641  }
  6642  
  6643  // Error returns any retrieval or parsing error occurred during filtering.
  6644  func (it *BridgeTokensTokenDeregisteredIterator) Error() error {
  6645  	return it.fail
  6646  }
  6647  
  6648  // Close terminates the iteration process, releasing any pending underlying
  6649  // resources.
  6650  func (it *BridgeTokensTokenDeregisteredIterator) Close() error {
  6651  	it.sub.Unsubscribe()
  6652  	return nil
  6653  }
  6654  
  6655  // BridgeTokensTokenDeregistered represents a TokenDeregistered event raised by the BridgeTokens contract.
  6656  type BridgeTokensTokenDeregistered struct {
  6657  	Token common.Address
  6658  	Raw   types.Log // Blockchain specific contextual infos
  6659  }
  6660  
  6661  // FilterTokenDeregistered is a free log retrieval operation binding the contract event 0x1d735ca20b63676dde668b718be78606b061d6bd7534ff815a90a121a6c084b6.
  6662  //
  6663  // Solidity: event TokenDeregistered(address indexed token)
  6664  func (_BridgeTokens *BridgeTokensFilterer) FilterTokenDeregistered(opts *bind.FilterOpts, token []common.Address) (*BridgeTokensTokenDeregisteredIterator, error) {
  6665  
  6666  	var tokenRule []interface{}
  6667  	for _, tokenItem := range token {
  6668  		tokenRule = append(tokenRule, tokenItem)
  6669  	}
  6670  
  6671  	logs, sub, err := _BridgeTokens.contract.FilterLogs(opts, "TokenDeregistered", tokenRule)
  6672  	if err != nil {
  6673  		return nil, err
  6674  	}
  6675  	return &BridgeTokensTokenDeregisteredIterator{contract: _BridgeTokens.contract, event: "TokenDeregistered", logs: logs, sub: sub}, nil
  6676  }
  6677  
  6678  // WatchTokenDeregistered is a free log subscription operation binding the contract event 0x1d735ca20b63676dde668b718be78606b061d6bd7534ff815a90a121a6c084b6.
  6679  //
  6680  // Solidity: event TokenDeregistered(address indexed token)
  6681  func (_BridgeTokens *BridgeTokensFilterer) WatchTokenDeregistered(opts *bind.WatchOpts, sink chan<- *BridgeTokensTokenDeregistered, token []common.Address) (event.Subscription, error) {
  6682  
  6683  	var tokenRule []interface{}
  6684  	for _, tokenItem := range token {
  6685  		tokenRule = append(tokenRule, tokenItem)
  6686  	}
  6687  
  6688  	logs, sub, err := _BridgeTokens.contract.WatchLogs(opts, "TokenDeregistered", tokenRule)
  6689  	if err != nil {
  6690  		return nil, err
  6691  	}
  6692  	return event.NewSubscription(func(quit <-chan struct{}) error {
  6693  		defer sub.Unsubscribe()
  6694  		for {
  6695  			select {
  6696  			case log := <-logs:
  6697  				// New log arrived, parse the event and forward to the user
  6698  				event := new(BridgeTokensTokenDeregistered)
  6699  				if err := _BridgeTokens.contract.UnpackLog(event, "TokenDeregistered", log); err != nil {
  6700  					return err
  6701  				}
  6702  				event.Raw = log
  6703  
  6704  				select {
  6705  				case sink <- event:
  6706  				case err := <-sub.Err():
  6707  					return err
  6708  				case <-quit:
  6709  					return nil
  6710  				}
  6711  			case err := <-sub.Err():
  6712  				return err
  6713  			case <-quit:
  6714  				return nil
  6715  			}
  6716  		}
  6717  	}), nil
  6718  }
  6719  
  6720  // ParseTokenDeregistered is a log parse operation binding the contract event 0x1d735ca20b63676dde668b718be78606b061d6bd7534ff815a90a121a6c084b6.
  6721  //
  6722  // Solidity: event TokenDeregistered(address indexed token)
  6723  func (_BridgeTokens *BridgeTokensFilterer) ParseTokenDeregistered(log types.Log) (*BridgeTokensTokenDeregistered, error) {
  6724  	event := new(BridgeTokensTokenDeregistered)
  6725  	if err := _BridgeTokens.contract.UnpackLog(event, "TokenDeregistered", log); err != nil {
  6726  		return nil, err
  6727  	}
  6728  	return event, nil
  6729  }
  6730  
  6731  // BridgeTokensTokenLockedIterator is returned from FilterTokenLocked and is used to iterate over the raw logs and unpacked data for TokenLocked events raised by the BridgeTokens contract.
  6732  type BridgeTokensTokenLockedIterator struct {
  6733  	Event *BridgeTokensTokenLocked // Event containing the contract specifics and raw log
  6734  
  6735  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  6736  	event    string              // Event name to use for unpacking event data
  6737  
  6738  	logs chan types.Log      // Log channel receiving the found contract events
  6739  	sub  klaytn.Subscription // Subscription for errors, completion and termination
  6740  	done bool                // Whether the subscription completed delivering logs
  6741  	fail error               // Occurred error to stop iteration
  6742  }
  6743  
  6744  // Next advances the iterator to the subsequent event, returning whether there
  6745  // are any more events found. In case of a retrieval or parsing error, false is
  6746  // returned and Error() can be queried for the exact failure.
  6747  func (it *BridgeTokensTokenLockedIterator) Next() bool {
  6748  	// If the iterator failed, stop iterating
  6749  	if it.fail != nil {
  6750  		return false
  6751  	}
  6752  	// If the iterator completed, deliver directly whatever's available
  6753  	if it.done {
  6754  		select {
  6755  		case log := <-it.logs:
  6756  			it.Event = new(BridgeTokensTokenLocked)
  6757  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  6758  				it.fail = err
  6759  				return false
  6760  			}
  6761  			it.Event.Raw = log
  6762  			return true
  6763  
  6764  		default:
  6765  			return false
  6766  		}
  6767  	}
  6768  	// Iterator still in progress, wait for either a data or an error event
  6769  	select {
  6770  	case log := <-it.logs:
  6771  		it.Event = new(BridgeTokensTokenLocked)
  6772  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  6773  			it.fail = err
  6774  			return false
  6775  		}
  6776  		it.Event.Raw = log
  6777  		return true
  6778  
  6779  	case err := <-it.sub.Err():
  6780  		it.done = true
  6781  		it.fail = err
  6782  		return it.Next()
  6783  	}
  6784  }
  6785  
  6786  // Error returns any retrieval or parsing error occurred during filtering.
  6787  func (it *BridgeTokensTokenLockedIterator) Error() error {
  6788  	return it.fail
  6789  }
  6790  
  6791  // Close terminates the iteration process, releasing any pending underlying
  6792  // resources.
  6793  func (it *BridgeTokensTokenLockedIterator) Close() error {
  6794  	it.sub.Unsubscribe()
  6795  	return nil
  6796  }
  6797  
  6798  // BridgeTokensTokenLocked represents a TokenLocked event raised by the BridgeTokens contract.
  6799  type BridgeTokensTokenLocked struct {
  6800  	Token common.Address
  6801  	Raw   types.Log // Blockchain specific contextual infos
  6802  }
  6803  
  6804  // FilterTokenLocked is a free log retrieval operation binding the contract event 0xca1b0a14e18ada4c44846768dd186e35630cdc5cfeaca83c404ae4acaafbecd7.
  6805  //
  6806  // Solidity: event TokenLocked(address indexed token)
  6807  func (_BridgeTokens *BridgeTokensFilterer) FilterTokenLocked(opts *bind.FilterOpts, token []common.Address) (*BridgeTokensTokenLockedIterator, error) {
  6808  
  6809  	var tokenRule []interface{}
  6810  	for _, tokenItem := range token {
  6811  		tokenRule = append(tokenRule, tokenItem)
  6812  	}
  6813  
  6814  	logs, sub, err := _BridgeTokens.contract.FilterLogs(opts, "TokenLocked", tokenRule)
  6815  	if err != nil {
  6816  		return nil, err
  6817  	}
  6818  	return &BridgeTokensTokenLockedIterator{contract: _BridgeTokens.contract, event: "TokenLocked", logs: logs, sub: sub}, nil
  6819  }
  6820  
  6821  // WatchTokenLocked is a free log subscription operation binding the contract event 0xca1b0a14e18ada4c44846768dd186e35630cdc5cfeaca83c404ae4acaafbecd7.
  6822  //
  6823  // Solidity: event TokenLocked(address indexed token)
  6824  func (_BridgeTokens *BridgeTokensFilterer) WatchTokenLocked(opts *bind.WatchOpts, sink chan<- *BridgeTokensTokenLocked, token []common.Address) (event.Subscription, error) {
  6825  
  6826  	var tokenRule []interface{}
  6827  	for _, tokenItem := range token {
  6828  		tokenRule = append(tokenRule, tokenItem)
  6829  	}
  6830  
  6831  	logs, sub, err := _BridgeTokens.contract.WatchLogs(opts, "TokenLocked", tokenRule)
  6832  	if err != nil {
  6833  		return nil, err
  6834  	}
  6835  	return event.NewSubscription(func(quit <-chan struct{}) error {
  6836  		defer sub.Unsubscribe()
  6837  		for {
  6838  			select {
  6839  			case log := <-logs:
  6840  				// New log arrived, parse the event and forward to the user
  6841  				event := new(BridgeTokensTokenLocked)
  6842  				if err := _BridgeTokens.contract.UnpackLog(event, "TokenLocked", log); err != nil {
  6843  					return err
  6844  				}
  6845  				event.Raw = log
  6846  
  6847  				select {
  6848  				case sink <- event:
  6849  				case err := <-sub.Err():
  6850  					return err
  6851  				case <-quit:
  6852  					return nil
  6853  				}
  6854  			case err := <-sub.Err():
  6855  				return err
  6856  			case <-quit:
  6857  				return nil
  6858  			}
  6859  		}
  6860  	}), nil
  6861  }
  6862  
  6863  // ParseTokenLocked is a log parse operation binding the contract event 0xca1b0a14e18ada4c44846768dd186e35630cdc5cfeaca83c404ae4acaafbecd7.
  6864  //
  6865  // Solidity: event TokenLocked(address indexed token)
  6866  func (_BridgeTokens *BridgeTokensFilterer) ParseTokenLocked(log types.Log) (*BridgeTokensTokenLocked, error) {
  6867  	event := new(BridgeTokensTokenLocked)
  6868  	if err := _BridgeTokens.contract.UnpackLog(event, "TokenLocked", log); err != nil {
  6869  		return nil, err
  6870  	}
  6871  	return event, nil
  6872  }
  6873  
  6874  // BridgeTokensTokenRegisteredIterator is returned from FilterTokenRegistered and is used to iterate over the raw logs and unpacked data for TokenRegistered events raised by the BridgeTokens contract.
  6875  type BridgeTokensTokenRegisteredIterator struct {
  6876  	Event *BridgeTokensTokenRegistered // Event containing the contract specifics and raw log
  6877  
  6878  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  6879  	event    string              // Event name to use for unpacking event data
  6880  
  6881  	logs chan types.Log      // Log channel receiving the found contract events
  6882  	sub  klaytn.Subscription // Subscription for errors, completion and termination
  6883  	done bool                // Whether the subscription completed delivering logs
  6884  	fail error               // Occurred error to stop iteration
  6885  }
  6886  
  6887  // Next advances the iterator to the subsequent event, returning whether there
  6888  // are any more events found. In case of a retrieval or parsing error, false is
  6889  // returned and Error() can be queried for the exact failure.
  6890  func (it *BridgeTokensTokenRegisteredIterator) Next() bool {
  6891  	// If the iterator failed, stop iterating
  6892  	if it.fail != nil {
  6893  		return false
  6894  	}
  6895  	// If the iterator completed, deliver directly whatever's available
  6896  	if it.done {
  6897  		select {
  6898  		case log := <-it.logs:
  6899  			it.Event = new(BridgeTokensTokenRegistered)
  6900  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  6901  				it.fail = err
  6902  				return false
  6903  			}
  6904  			it.Event.Raw = log
  6905  			return true
  6906  
  6907  		default:
  6908  			return false
  6909  		}
  6910  	}
  6911  	// Iterator still in progress, wait for either a data or an error event
  6912  	select {
  6913  	case log := <-it.logs:
  6914  		it.Event = new(BridgeTokensTokenRegistered)
  6915  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  6916  			it.fail = err
  6917  			return false
  6918  		}
  6919  		it.Event.Raw = log
  6920  		return true
  6921  
  6922  	case err := <-it.sub.Err():
  6923  		it.done = true
  6924  		it.fail = err
  6925  		return it.Next()
  6926  	}
  6927  }
  6928  
  6929  // Error returns any retrieval or parsing error occurred during filtering.
  6930  func (it *BridgeTokensTokenRegisteredIterator) Error() error {
  6931  	return it.fail
  6932  }
  6933  
  6934  // Close terminates the iteration process, releasing any pending underlying
  6935  // resources.
  6936  func (it *BridgeTokensTokenRegisteredIterator) Close() error {
  6937  	it.sub.Unsubscribe()
  6938  	return nil
  6939  }
  6940  
  6941  // BridgeTokensTokenRegistered represents a TokenRegistered event raised by the BridgeTokens contract.
  6942  type BridgeTokensTokenRegistered struct {
  6943  	Token common.Address
  6944  	Raw   types.Log // Blockchain specific contextual infos
  6945  }
  6946  
  6947  // FilterTokenRegistered is a free log retrieval operation binding the contract event 0x158412daecdc1456d01568828bcdb18464cc7f1ce0215ddbc3f3cfede9d1e63d.
  6948  //
  6949  // Solidity: event TokenRegistered(address indexed token)
  6950  func (_BridgeTokens *BridgeTokensFilterer) FilterTokenRegistered(opts *bind.FilterOpts, token []common.Address) (*BridgeTokensTokenRegisteredIterator, error) {
  6951  
  6952  	var tokenRule []interface{}
  6953  	for _, tokenItem := range token {
  6954  		tokenRule = append(tokenRule, tokenItem)
  6955  	}
  6956  
  6957  	logs, sub, err := _BridgeTokens.contract.FilterLogs(opts, "TokenRegistered", tokenRule)
  6958  	if err != nil {
  6959  		return nil, err
  6960  	}
  6961  	return &BridgeTokensTokenRegisteredIterator{contract: _BridgeTokens.contract, event: "TokenRegistered", logs: logs, sub: sub}, nil
  6962  }
  6963  
  6964  // WatchTokenRegistered is a free log subscription operation binding the contract event 0x158412daecdc1456d01568828bcdb18464cc7f1ce0215ddbc3f3cfede9d1e63d.
  6965  //
  6966  // Solidity: event TokenRegistered(address indexed token)
  6967  func (_BridgeTokens *BridgeTokensFilterer) WatchTokenRegistered(opts *bind.WatchOpts, sink chan<- *BridgeTokensTokenRegistered, token []common.Address) (event.Subscription, error) {
  6968  
  6969  	var tokenRule []interface{}
  6970  	for _, tokenItem := range token {
  6971  		tokenRule = append(tokenRule, tokenItem)
  6972  	}
  6973  
  6974  	logs, sub, err := _BridgeTokens.contract.WatchLogs(opts, "TokenRegistered", tokenRule)
  6975  	if err != nil {
  6976  		return nil, err
  6977  	}
  6978  	return event.NewSubscription(func(quit <-chan struct{}) error {
  6979  		defer sub.Unsubscribe()
  6980  		for {
  6981  			select {
  6982  			case log := <-logs:
  6983  				// New log arrived, parse the event and forward to the user
  6984  				event := new(BridgeTokensTokenRegistered)
  6985  				if err := _BridgeTokens.contract.UnpackLog(event, "TokenRegistered", log); err != nil {
  6986  					return err
  6987  				}
  6988  				event.Raw = log
  6989  
  6990  				select {
  6991  				case sink <- event:
  6992  				case err := <-sub.Err():
  6993  					return err
  6994  				case <-quit:
  6995  					return nil
  6996  				}
  6997  			case err := <-sub.Err():
  6998  				return err
  6999  			case <-quit:
  7000  				return nil
  7001  			}
  7002  		}
  7003  	}), nil
  7004  }
  7005  
  7006  // ParseTokenRegistered is a log parse operation binding the contract event 0x158412daecdc1456d01568828bcdb18464cc7f1ce0215ddbc3f3cfede9d1e63d.
  7007  //
  7008  // Solidity: event TokenRegistered(address indexed token)
  7009  func (_BridgeTokens *BridgeTokensFilterer) ParseTokenRegistered(log types.Log) (*BridgeTokensTokenRegistered, error) {
  7010  	event := new(BridgeTokensTokenRegistered)
  7011  	if err := _BridgeTokens.contract.UnpackLog(event, "TokenRegistered", log); err != nil {
  7012  		return nil, err
  7013  	}
  7014  	return event, nil
  7015  }
  7016  
  7017  // BridgeTokensTokenUnlockedIterator is returned from FilterTokenUnlocked and is used to iterate over the raw logs and unpacked data for TokenUnlocked events raised by the BridgeTokens contract.
  7018  type BridgeTokensTokenUnlockedIterator struct {
  7019  	Event *BridgeTokensTokenUnlocked // Event containing the contract specifics and raw log
  7020  
  7021  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  7022  	event    string              // Event name to use for unpacking event data
  7023  
  7024  	logs chan types.Log      // Log channel receiving the found contract events
  7025  	sub  klaytn.Subscription // Subscription for errors, completion and termination
  7026  	done bool                // Whether the subscription completed delivering logs
  7027  	fail error               // Occurred error to stop iteration
  7028  }
  7029  
  7030  // Next advances the iterator to the subsequent event, returning whether there
  7031  // are any more events found. In case of a retrieval or parsing error, false is
  7032  // returned and Error() can be queried for the exact failure.
  7033  func (it *BridgeTokensTokenUnlockedIterator) Next() bool {
  7034  	// If the iterator failed, stop iterating
  7035  	if it.fail != nil {
  7036  		return false
  7037  	}
  7038  	// If the iterator completed, deliver directly whatever's available
  7039  	if it.done {
  7040  		select {
  7041  		case log := <-it.logs:
  7042  			it.Event = new(BridgeTokensTokenUnlocked)
  7043  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  7044  				it.fail = err
  7045  				return false
  7046  			}
  7047  			it.Event.Raw = log
  7048  			return true
  7049  
  7050  		default:
  7051  			return false
  7052  		}
  7053  	}
  7054  	// Iterator still in progress, wait for either a data or an error event
  7055  	select {
  7056  	case log := <-it.logs:
  7057  		it.Event = new(BridgeTokensTokenUnlocked)
  7058  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  7059  			it.fail = err
  7060  			return false
  7061  		}
  7062  		it.Event.Raw = log
  7063  		return true
  7064  
  7065  	case err := <-it.sub.Err():
  7066  		it.done = true
  7067  		it.fail = err
  7068  		return it.Next()
  7069  	}
  7070  }
  7071  
  7072  // Error returns any retrieval or parsing error occurred during filtering.
  7073  func (it *BridgeTokensTokenUnlockedIterator) Error() error {
  7074  	return it.fail
  7075  }
  7076  
  7077  // Close terminates the iteration process, releasing any pending underlying
  7078  // resources.
  7079  func (it *BridgeTokensTokenUnlockedIterator) Close() error {
  7080  	it.sub.Unsubscribe()
  7081  	return nil
  7082  }
  7083  
  7084  // BridgeTokensTokenUnlocked represents a TokenUnlocked event raised by the BridgeTokens contract.
  7085  type BridgeTokensTokenUnlocked struct {
  7086  	Token common.Address
  7087  	Raw   types.Log // Blockchain specific contextual infos
  7088  }
  7089  
  7090  // FilterTokenUnlocked is a free log retrieval operation binding the contract event 0x81ec08d3372506e176c49e626d8beb7e091712ef92908a130f4ccc6524fe2eec.
  7091  //
  7092  // Solidity: event TokenUnlocked(address indexed token)
  7093  func (_BridgeTokens *BridgeTokensFilterer) FilterTokenUnlocked(opts *bind.FilterOpts, token []common.Address) (*BridgeTokensTokenUnlockedIterator, error) {
  7094  
  7095  	var tokenRule []interface{}
  7096  	for _, tokenItem := range token {
  7097  		tokenRule = append(tokenRule, tokenItem)
  7098  	}
  7099  
  7100  	logs, sub, err := _BridgeTokens.contract.FilterLogs(opts, "TokenUnlocked", tokenRule)
  7101  	if err != nil {
  7102  		return nil, err
  7103  	}
  7104  	return &BridgeTokensTokenUnlockedIterator{contract: _BridgeTokens.contract, event: "TokenUnlocked", logs: logs, sub: sub}, nil
  7105  }
  7106  
  7107  // WatchTokenUnlocked is a free log subscription operation binding the contract event 0x81ec08d3372506e176c49e626d8beb7e091712ef92908a130f4ccc6524fe2eec.
  7108  //
  7109  // Solidity: event TokenUnlocked(address indexed token)
  7110  func (_BridgeTokens *BridgeTokensFilterer) WatchTokenUnlocked(opts *bind.WatchOpts, sink chan<- *BridgeTokensTokenUnlocked, token []common.Address) (event.Subscription, error) {
  7111  
  7112  	var tokenRule []interface{}
  7113  	for _, tokenItem := range token {
  7114  		tokenRule = append(tokenRule, tokenItem)
  7115  	}
  7116  
  7117  	logs, sub, err := _BridgeTokens.contract.WatchLogs(opts, "TokenUnlocked", tokenRule)
  7118  	if err != nil {
  7119  		return nil, err
  7120  	}
  7121  	return event.NewSubscription(func(quit <-chan struct{}) error {
  7122  		defer sub.Unsubscribe()
  7123  		for {
  7124  			select {
  7125  			case log := <-logs:
  7126  				// New log arrived, parse the event and forward to the user
  7127  				event := new(BridgeTokensTokenUnlocked)
  7128  				if err := _BridgeTokens.contract.UnpackLog(event, "TokenUnlocked", log); err != nil {
  7129  					return err
  7130  				}
  7131  				event.Raw = log
  7132  
  7133  				select {
  7134  				case sink <- event:
  7135  				case err := <-sub.Err():
  7136  					return err
  7137  				case <-quit:
  7138  					return nil
  7139  				}
  7140  			case err := <-sub.Err():
  7141  				return err
  7142  			case <-quit:
  7143  				return nil
  7144  			}
  7145  		}
  7146  	}), nil
  7147  }
  7148  
  7149  // ParseTokenUnlocked is a log parse operation binding the contract event 0x81ec08d3372506e176c49e626d8beb7e091712ef92908a130f4ccc6524fe2eec.
  7150  //
  7151  // Solidity: event TokenUnlocked(address indexed token)
  7152  func (_BridgeTokens *BridgeTokensFilterer) ParseTokenUnlocked(log types.Log) (*BridgeTokensTokenUnlocked, error) {
  7153  	event := new(BridgeTokensTokenUnlocked)
  7154  	if err := _BridgeTokens.contract.UnpackLog(event, "TokenUnlocked", log); err != nil {
  7155  		return nil, err
  7156  	}
  7157  	return event, nil
  7158  }
  7159  
  7160  // BridgeTransferMetaData contains all meta data concerning the BridgeTransfer contract.
  7161  var BridgeTransferMetaData = &bind.MetaData{
  7162  	ABI: "[{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"uint64\"}],\"name\":\"handleNoncesToBlockNums\",\"outputs\":[{\"name\":\"\",\"type\":\"uint64\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"address\"}],\"name\":\"operators\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"isRunning\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_operator\",\"type\":\"address\"}],\"name\":\"registerOperator\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"MAX_OPERATOR\",\"outputs\":[{\"name\":\"\",\"type\":\"uint64\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"address\"}],\"name\":\"feeOfERC20\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"lowerHandleNonce\",\"outputs\":[{\"name\":\"\",\"type\":\"uint64\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"upperHandleNonce\",\"outputs\":[{\"name\":\"\",\"type\":\"uint64\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"uint8\"}],\"name\":\"operatorThresholds\",\"outputs\":[{\"name\":\"\",\"type\":\"uint8\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"modeMintBurn\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"requestNonce\",\"outputs\":[{\"name\":\"\",\"type\":\"uint64\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"handledRequestTx\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"isOwner\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"uint64\"}],\"name\":\"closedValueTransferVotes\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"recoveryBlockNumber\",\"outputs\":[{\"name\":\"\",\"type\":\"uint64\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"configurationNonce\",\"outputs\":[{\"name\":\"\",\"type\":\"uint64\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getOperatorList\",\"outputs\":[{\"name\":\"\",\"type\":\"address[]\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"feeReceiver\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"feeOfKLAY\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_status\",\"type\":\"bool\"}],\"name\":\"start\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"operatorList\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_operator\",\"type\":\"address\"}],\"name\":\"deregisterOperator\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_voteType\",\"type\":\"uint8\"},{\"name\":\"_threshold\",\"type\":\"uint8\"}],\"name\":\"setOperatorThreshold\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_feeReceiver\",\"type\":\"address\"}],\"name\":\"setFeeReceiver\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"name\":\"_modeMintBurn\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"tokenType\",\"type\":\"uint8\"},{\"indexed\":true,\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"tokenAddress\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"valueOrTokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"requestNonce\",\"type\":\"uint64\"},{\"indexed\":false,\"name\":\"fee\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"extraData\",\"type\":\"bytes\"}],\"name\":\"RequestValueTransfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"tokenType\",\"type\":\"uint8\"},{\"indexed\":true,\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"tokenAddress\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"valueOrTokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"requestNonce\",\"type\":\"uint64\"},{\"indexed\":false,\"name\":\"fee\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"extraData\",\"type\":\"bytes\"},{\"indexed\":false,\"name\":\"encodingVer\",\"type\":\"uint8\"},{\"indexed\":false,\"name\":\"encodedData\",\"type\":\"bytes\"}],\"name\":\"RequestValueTransferEncoded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"requestTxHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"name\":\"tokenType\",\"type\":\"uint8\"},{\"indexed\":true,\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"tokenAddress\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"valueOrTokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"handleNonce\",\"type\":\"uint64\"},{\"indexed\":false,\"name\":\"lowerHandleNonce\",\"type\":\"uint64\"},{\"indexed\":false,\"name\":\"extraData\",\"type\":\"bytes\"}],\"name\":\"HandleValueTransfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"fee\",\"type\":\"uint256\"}],\"name\":\"KLAYFeeChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"token\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"fee\",\"type\":\"uint256\"}],\"name\":\"ERC20FeeChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"feeReceiver\",\"type\":\"address\"}],\"name\":\"FeeReceiverChanged\",\"type\":\"event\"}]",
  7163  	Sigs: map[string]string{
  7164  		"3a3099d1": "MAX_OPERATOR()",
  7165  		"9832c1d7": "closedValueTransferVotes(uint64)",
  7166  		"ac6fff0b": "configurationNonce()",
  7167  		"d8cf98ca": "deregisterOperator(address)",
  7168  		"488af871": "feeOfERC20(address)",
  7169  		"c263b5d6": "feeOfKLAY()",
  7170  		"b3f00674": "feeReceiver()",
  7171  		"b2c01030": "getOperatorList()",
  7172  		"13a6738a": "handleNoncesToBlockNums(uint64)",
  7173  		"8a75eee2": "handledRequestTx(bytes32)",
  7174  		"8f32d59b": "isOwner()",
  7175  		"2014e5d1": "isRunning()",
  7176  		"4b40b826": "lowerHandleNonce()",
  7177  		"6e176ec2": "modeMintBurn()",
  7178  		"cb38f407": "operatorList(uint256)",
  7179  		"5526f76b": "operatorThresholds(uint8)",
  7180  		"13e7c9d8": "operators(address)",
  7181  		"8da5cb5b": "owner()",
  7182  		"989ba0d3": "recoveryBlockNumber()",
  7183  		"3682a450": "registerOperator(address)",
  7184  		"715018a6": "renounceOwnership()",
  7185  		"7c1a0302": "requestNonce()",
  7186  		"efdcd974": "setFeeReceiver(address)",
  7187  		"ee2aec65": "setOperatorThreshold(uint8,uint8)",
  7188  		"c877cf37": "start(bool)",
  7189  		"f2fde38b": "transferOwnership(address)",
  7190  		"54edad72": "upperHandleNonce()",
  7191  	},
  7192  }
  7193  
  7194  // BridgeTransferABI is the input ABI used to generate the binding from.
  7195  // Deprecated: Use BridgeTransferMetaData.ABI instead.
  7196  var BridgeTransferABI = BridgeTransferMetaData.ABI
  7197  
  7198  // BridgeTransferBinRuntime is the compiled bytecode used for adding genesis block without deploying code.
  7199  const BridgeTransferBinRuntime = ``
  7200  
  7201  // BridgeTransferFuncSigs maps the 4-byte function signature to its string representation.
  7202  // Deprecated: Use BridgeTransferMetaData.Sigs instead.
  7203  var BridgeTransferFuncSigs = BridgeTransferMetaData.Sigs
  7204  
  7205  // BridgeTransfer is an auto generated Go binding around a Klaytn contract.
  7206  type BridgeTransfer struct {
  7207  	BridgeTransferCaller     // Read-only binding to the contract
  7208  	BridgeTransferTransactor // Write-only binding to the contract
  7209  	BridgeTransferFilterer   // Log filterer for contract events
  7210  }
  7211  
  7212  // BridgeTransferCaller is an auto generated read-only Go binding around a Klaytn contract.
  7213  type BridgeTransferCaller struct {
  7214  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  7215  }
  7216  
  7217  // BridgeTransferTransactor is an auto generated write-only Go binding around a Klaytn contract.
  7218  type BridgeTransferTransactor struct {
  7219  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  7220  }
  7221  
  7222  // BridgeTransferFilterer is an auto generated log filtering Go binding around a Klaytn contract events.
  7223  type BridgeTransferFilterer struct {
  7224  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  7225  }
  7226  
  7227  // BridgeTransferSession is an auto generated Go binding around a Klaytn contract,
  7228  // with pre-set call and transact options.
  7229  type BridgeTransferSession struct {
  7230  	Contract     *BridgeTransfer   // Generic contract binding to set the session for
  7231  	CallOpts     bind.CallOpts     // Call options to use throughout this session
  7232  	TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
  7233  }
  7234  
  7235  // BridgeTransferCallerSession is an auto generated read-only Go binding around a Klaytn contract,
  7236  // with pre-set call options.
  7237  type BridgeTransferCallerSession struct {
  7238  	Contract *BridgeTransferCaller // Generic contract caller binding to set the session for
  7239  	CallOpts bind.CallOpts         // Call options to use throughout this session
  7240  }
  7241  
  7242  // BridgeTransferTransactorSession is an auto generated write-only Go binding around a Klaytn contract,
  7243  // with pre-set transact options.
  7244  type BridgeTransferTransactorSession struct {
  7245  	Contract     *BridgeTransferTransactor // Generic contract transactor binding to set the session for
  7246  	TransactOpts bind.TransactOpts         // Transaction auth options to use throughout this session
  7247  }
  7248  
  7249  // BridgeTransferRaw is an auto generated low-level Go binding around a Klaytn contract.
  7250  type BridgeTransferRaw struct {
  7251  	Contract *BridgeTransfer // Generic contract binding to access the raw methods on
  7252  }
  7253  
  7254  // BridgeTransferCallerRaw is an auto generated low-level read-only Go binding around a Klaytn contract.
  7255  type BridgeTransferCallerRaw struct {
  7256  	Contract *BridgeTransferCaller // Generic read-only contract binding to access the raw methods on
  7257  }
  7258  
  7259  // BridgeTransferTransactorRaw is an auto generated low-level write-only Go binding around a Klaytn contract.
  7260  type BridgeTransferTransactorRaw struct {
  7261  	Contract *BridgeTransferTransactor // Generic write-only contract binding to access the raw methods on
  7262  }
  7263  
  7264  // NewBridgeTransfer creates a new instance of BridgeTransfer, bound to a specific deployed contract.
  7265  func NewBridgeTransfer(address common.Address, backend bind.ContractBackend) (*BridgeTransfer, error) {
  7266  	contract, err := bindBridgeTransfer(address, backend, backend, backend)
  7267  	if err != nil {
  7268  		return nil, err
  7269  	}
  7270  	return &BridgeTransfer{BridgeTransferCaller: BridgeTransferCaller{contract: contract}, BridgeTransferTransactor: BridgeTransferTransactor{contract: contract}, BridgeTransferFilterer: BridgeTransferFilterer{contract: contract}}, nil
  7271  }
  7272  
  7273  // NewBridgeTransferCaller creates a new read-only instance of BridgeTransfer, bound to a specific deployed contract.
  7274  func NewBridgeTransferCaller(address common.Address, caller bind.ContractCaller) (*BridgeTransferCaller, error) {
  7275  	contract, err := bindBridgeTransfer(address, caller, nil, nil)
  7276  	if err != nil {
  7277  		return nil, err
  7278  	}
  7279  	return &BridgeTransferCaller{contract: contract}, nil
  7280  }
  7281  
  7282  // NewBridgeTransferTransactor creates a new write-only instance of BridgeTransfer, bound to a specific deployed contract.
  7283  func NewBridgeTransferTransactor(address common.Address, transactor bind.ContractTransactor) (*BridgeTransferTransactor, error) {
  7284  	contract, err := bindBridgeTransfer(address, nil, transactor, nil)
  7285  	if err != nil {
  7286  		return nil, err
  7287  	}
  7288  	return &BridgeTransferTransactor{contract: contract}, nil
  7289  }
  7290  
  7291  // NewBridgeTransferFilterer creates a new log filterer instance of BridgeTransfer, bound to a specific deployed contract.
  7292  func NewBridgeTransferFilterer(address common.Address, filterer bind.ContractFilterer) (*BridgeTransferFilterer, error) {
  7293  	contract, err := bindBridgeTransfer(address, nil, nil, filterer)
  7294  	if err != nil {
  7295  		return nil, err
  7296  	}
  7297  	return &BridgeTransferFilterer{contract: contract}, nil
  7298  }
  7299  
  7300  // bindBridgeTransfer binds a generic wrapper to an already deployed contract.
  7301  func bindBridgeTransfer(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
  7302  	parsed, err := BridgeTransferMetaData.GetAbi()
  7303  	if err != nil {
  7304  		return nil, err
  7305  	}
  7306  	return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil
  7307  }
  7308  
  7309  // Call invokes the (constant) contract method with params as input values and
  7310  // sets the output to result. The result type might be a single field for simple
  7311  // returns, a slice of interfaces for anonymous returns and a struct for named
  7312  // returns.
  7313  func (_BridgeTransfer *BridgeTransferRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
  7314  	return _BridgeTransfer.Contract.BridgeTransferCaller.contract.Call(opts, result, method, params...)
  7315  }
  7316  
  7317  // Transfer initiates a plain transaction to move funds to the contract, calling
  7318  // its default method if one is available.
  7319  func (_BridgeTransfer *BridgeTransferRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
  7320  	return _BridgeTransfer.Contract.BridgeTransferTransactor.contract.Transfer(opts)
  7321  }
  7322  
  7323  // Transact invokes the (paid) contract method with params as input values.
  7324  func (_BridgeTransfer *BridgeTransferRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
  7325  	return _BridgeTransfer.Contract.BridgeTransferTransactor.contract.Transact(opts, method, params...)
  7326  }
  7327  
  7328  // Call invokes the (constant) contract method with params as input values and
  7329  // sets the output to result. The result type might be a single field for simple
  7330  // returns, a slice of interfaces for anonymous returns and a struct for named
  7331  // returns.
  7332  func (_BridgeTransfer *BridgeTransferCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
  7333  	return _BridgeTransfer.Contract.contract.Call(opts, result, method, params...)
  7334  }
  7335  
  7336  // Transfer initiates a plain transaction to move funds to the contract, calling
  7337  // its default method if one is available.
  7338  func (_BridgeTransfer *BridgeTransferTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
  7339  	return _BridgeTransfer.Contract.contract.Transfer(opts)
  7340  }
  7341  
  7342  // Transact invokes the (paid) contract method with params as input values.
  7343  func (_BridgeTransfer *BridgeTransferTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
  7344  	return _BridgeTransfer.Contract.contract.Transact(opts, method, params...)
  7345  }
  7346  
  7347  // MAXOPERATOR is a free data retrieval call binding the contract method 0x3a3099d1.
  7348  //
  7349  // Solidity: function MAX_OPERATOR() view returns(uint64)
  7350  func (_BridgeTransfer *BridgeTransferCaller) MAXOPERATOR(opts *bind.CallOpts) (uint64, error) {
  7351  	var out []interface{}
  7352  	err := _BridgeTransfer.contract.Call(opts, &out, "MAX_OPERATOR")
  7353  
  7354  	if err != nil {
  7355  		return *new(uint64), err
  7356  	}
  7357  
  7358  	out0 := *abi.ConvertType(out[0], new(uint64)).(*uint64)
  7359  
  7360  	return out0, err
  7361  
  7362  }
  7363  
  7364  // MAXOPERATOR is a free data retrieval call binding the contract method 0x3a3099d1.
  7365  //
  7366  // Solidity: function MAX_OPERATOR() view returns(uint64)
  7367  func (_BridgeTransfer *BridgeTransferSession) MAXOPERATOR() (uint64, error) {
  7368  	return _BridgeTransfer.Contract.MAXOPERATOR(&_BridgeTransfer.CallOpts)
  7369  }
  7370  
  7371  // MAXOPERATOR is a free data retrieval call binding the contract method 0x3a3099d1.
  7372  //
  7373  // Solidity: function MAX_OPERATOR() view returns(uint64)
  7374  func (_BridgeTransfer *BridgeTransferCallerSession) MAXOPERATOR() (uint64, error) {
  7375  	return _BridgeTransfer.Contract.MAXOPERATOR(&_BridgeTransfer.CallOpts)
  7376  }
  7377  
  7378  // ClosedValueTransferVotes is a free data retrieval call binding the contract method 0x9832c1d7.
  7379  //
  7380  // Solidity: function closedValueTransferVotes(uint64 ) view returns(bool)
  7381  func (_BridgeTransfer *BridgeTransferCaller) ClosedValueTransferVotes(opts *bind.CallOpts, arg0 uint64) (bool, error) {
  7382  	var out []interface{}
  7383  	err := _BridgeTransfer.contract.Call(opts, &out, "closedValueTransferVotes", arg0)
  7384  
  7385  	if err != nil {
  7386  		return *new(bool), err
  7387  	}
  7388  
  7389  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
  7390  
  7391  	return out0, err
  7392  
  7393  }
  7394  
  7395  // ClosedValueTransferVotes is a free data retrieval call binding the contract method 0x9832c1d7.
  7396  //
  7397  // Solidity: function closedValueTransferVotes(uint64 ) view returns(bool)
  7398  func (_BridgeTransfer *BridgeTransferSession) ClosedValueTransferVotes(arg0 uint64) (bool, error) {
  7399  	return _BridgeTransfer.Contract.ClosedValueTransferVotes(&_BridgeTransfer.CallOpts, arg0)
  7400  }
  7401  
  7402  // ClosedValueTransferVotes is a free data retrieval call binding the contract method 0x9832c1d7.
  7403  //
  7404  // Solidity: function closedValueTransferVotes(uint64 ) view returns(bool)
  7405  func (_BridgeTransfer *BridgeTransferCallerSession) ClosedValueTransferVotes(arg0 uint64) (bool, error) {
  7406  	return _BridgeTransfer.Contract.ClosedValueTransferVotes(&_BridgeTransfer.CallOpts, arg0)
  7407  }
  7408  
  7409  // ConfigurationNonce is a free data retrieval call binding the contract method 0xac6fff0b.
  7410  //
  7411  // Solidity: function configurationNonce() view returns(uint64)
  7412  func (_BridgeTransfer *BridgeTransferCaller) ConfigurationNonce(opts *bind.CallOpts) (uint64, error) {
  7413  	var out []interface{}
  7414  	err := _BridgeTransfer.contract.Call(opts, &out, "configurationNonce")
  7415  
  7416  	if err != nil {
  7417  		return *new(uint64), err
  7418  	}
  7419  
  7420  	out0 := *abi.ConvertType(out[0], new(uint64)).(*uint64)
  7421  
  7422  	return out0, err
  7423  
  7424  }
  7425  
  7426  // ConfigurationNonce is a free data retrieval call binding the contract method 0xac6fff0b.
  7427  //
  7428  // Solidity: function configurationNonce() view returns(uint64)
  7429  func (_BridgeTransfer *BridgeTransferSession) ConfigurationNonce() (uint64, error) {
  7430  	return _BridgeTransfer.Contract.ConfigurationNonce(&_BridgeTransfer.CallOpts)
  7431  }
  7432  
  7433  // ConfigurationNonce is a free data retrieval call binding the contract method 0xac6fff0b.
  7434  //
  7435  // Solidity: function configurationNonce() view returns(uint64)
  7436  func (_BridgeTransfer *BridgeTransferCallerSession) ConfigurationNonce() (uint64, error) {
  7437  	return _BridgeTransfer.Contract.ConfigurationNonce(&_BridgeTransfer.CallOpts)
  7438  }
  7439  
  7440  // FeeOfERC20 is a free data retrieval call binding the contract method 0x488af871.
  7441  //
  7442  // Solidity: function feeOfERC20(address ) view returns(uint256)
  7443  func (_BridgeTransfer *BridgeTransferCaller) FeeOfERC20(opts *bind.CallOpts, arg0 common.Address) (*big.Int, error) {
  7444  	var out []interface{}
  7445  	err := _BridgeTransfer.contract.Call(opts, &out, "feeOfERC20", arg0)
  7446  
  7447  	if err != nil {
  7448  		return *new(*big.Int), err
  7449  	}
  7450  
  7451  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
  7452  
  7453  	return out0, err
  7454  
  7455  }
  7456  
  7457  // FeeOfERC20 is a free data retrieval call binding the contract method 0x488af871.
  7458  //
  7459  // Solidity: function feeOfERC20(address ) view returns(uint256)
  7460  func (_BridgeTransfer *BridgeTransferSession) FeeOfERC20(arg0 common.Address) (*big.Int, error) {
  7461  	return _BridgeTransfer.Contract.FeeOfERC20(&_BridgeTransfer.CallOpts, arg0)
  7462  }
  7463  
  7464  // FeeOfERC20 is a free data retrieval call binding the contract method 0x488af871.
  7465  //
  7466  // Solidity: function feeOfERC20(address ) view returns(uint256)
  7467  func (_BridgeTransfer *BridgeTransferCallerSession) FeeOfERC20(arg0 common.Address) (*big.Int, error) {
  7468  	return _BridgeTransfer.Contract.FeeOfERC20(&_BridgeTransfer.CallOpts, arg0)
  7469  }
  7470  
  7471  // FeeOfKLAY is a free data retrieval call binding the contract method 0xc263b5d6.
  7472  //
  7473  // Solidity: function feeOfKLAY() view returns(uint256)
  7474  func (_BridgeTransfer *BridgeTransferCaller) FeeOfKLAY(opts *bind.CallOpts) (*big.Int, error) {
  7475  	var out []interface{}
  7476  	err := _BridgeTransfer.contract.Call(opts, &out, "feeOfKLAY")
  7477  
  7478  	if err != nil {
  7479  		return *new(*big.Int), err
  7480  	}
  7481  
  7482  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
  7483  
  7484  	return out0, err
  7485  
  7486  }
  7487  
  7488  // FeeOfKLAY is a free data retrieval call binding the contract method 0xc263b5d6.
  7489  //
  7490  // Solidity: function feeOfKLAY() view returns(uint256)
  7491  func (_BridgeTransfer *BridgeTransferSession) FeeOfKLAY() (*big.Int, error) {
  7492  	return _BridgeTransfer.Contract.FeeOfKLAY(&_BridgeTransfer.CallOpts)
  7493  }
  7494  
  7495  // FeeOfKLAY is a free data retrieval call binding the contract method 0xc263b5d6.
  7496  //
  7497  // Solidity: function feeOfKLAY() view returns(uint256)
  7498  func (_BridgeTransfer *BridgeTransferCallerSession) FeeOfKLAY() (*big.Int, error) {
  7499  	return _BridgeTransfer.Contract.FeeOfKLAY(&_BridgeTransfer.CallOpts)
  7500  }
  7501  
  7502  // FeeReceiver is a free data retrieval call binding the contract method 0xb3f00674.
  7503  //
  7504  // Solidity: function feeReceiver() view returns(address)
  7505  func (_BridgeTransfer *BridgeTransferCaller) FeeReceiver(opts *bind.CallOpts) (common.Address, error) {
  7506  	var out []interface{}
  7507  	err := _BridgeTransfer.contract.Call(opts, &out, "feeReceiver")
  7508  
  7509  	if err != nil {
  7510  		return *new(common.Address), err
  7511  	}
  7512  
  7513  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
  7514  
  7515  	return out0, err
  7516  
  7517  }
  7518  
  7519  // FeeReceiver is a free data retrieval call binding the contract method 0xb3f00674.
  7520  //
  7521  // Solidity: function feeReceiver() view returns(address)
  7522  func (_BridgeTransfer *BridgeTransferSession) FeeReceiver() (common.Address, error) {
  7523  	return _BridgeTransfer.Contract.FeeReceiver(&_BridgeTransfer.CallOpts)
  7524  }
  7525  
  7526  // FeeReceiver is a free data retrieval call binding the contract method 0xb3f00674.
  7527  //
  7528  // Solidity: function feeReceiver() view returns(address)
  7529  func (_BridgeTransfer *BridgeTransferCallerSession) FeeReceiver() (common.Address, error) {
  7530  	return _BridgeTransfer.Contract.FeeReceiver(&_BridgeTransfer.CallOpts)
  7531  }
  7532  
  7533  // GetOperatorList is a free data retrieval call binding the contract method 0xb2c01030.
  7534  //
  7535  // Solidity: function getOperatorList() view returns(address[])
  7536  func (_BridgeTransfer *BridgeTransferCaller) GetOperatorList(opts *bind.CallOpts) ([]common.Address, error) {
  7537  	var out []interface{}
  7538  	err := _BridgeTransfer.contract.Call(opts, &out, "getOperatorList")
  7539  
  7540  	if err != nil {
  7541  		return *new([]common.Address), err
  7542  	}
  7543  
  7544  	out0 := *abi.ConvertType(out[0], new([]common.Address)).(*[]common.Address)
  7545  
  7546  	return out0, err
  7547  
  7548  }
  7549  
  7550  // GetOperatorList is a free data retrieval call binding the contract method 0xb2c01030.
  7551  //
  7552  // Solidity: function getOperatorList() view returns(address[])
  7553  func (_BridgeTransfer *BridgeTransferSession) GetOperatorList() ([]common.Address, error) {
  7554  	return _BridgeTransfer.Contract.GetOperatorList(&_BridgeTransfer.CallOpts)
  7555  }
  7556  
  7557  // GetOperatorList is a free data retrieval call binding the contract method 0xb2c01030.
  7558  //
  7559  // Solidity: function getOperatorList() view returns(address[])
  7560  func (_BridgeTransfer *BridgeTransferCallerSession) GetOperatorList() ([]common.Address, error) {
  7561  	return _BridgeTransfer.Contract.GetOperatorList(&_BridgeTransfer.CallOpts)
  7562  }
  7563  
  7564  // HandleNoncesToBlockNums is a free data retrieval call binding the contract method 0x13a6738a.
  7565  //
  7566  // Solidity: function handleNoncesToBlockNums(uint64 ) view returns(uint64)
  7567  func (_BridgeTransfer *BridgeTransferCaller) HandleNoncesToBlockNums(opts *bind.CallOpts, arg0 uint64) (uint64, error) {
  7568  	var out []interface{}
  7569  	err := _BridgeTransfer.contract.Call(opts, &out, "handleNoncesToBlockNums", arg0)
  7570  
  7571  	if err != nil {
  7572  		return *new(uint64), err
  7573  	}
  7574  
  7575  	out0 := *abi.ConvertType(out[0], new(uint64)).(*uint64)
  7576  
  7577  	return out0, err
  7578  
  7579  }
  7580  
  7581  // HandleNoncesToBlockNums is a free data retrieval call binding the contract method 0x13a6738a.
  7582  //
  7583  // Solidity: function handleNoncesToBlockNums(uint64 ) view returns(uint64)
  7584  func (_BridgeTransfer *BridgeTransferSession) HandleNoncesToBlockNums(arg0 uint64) (uint64, error) {
  7585  	return _BridgeTransfer.Contract.HandleNoncesToBlockNums(&_BridgeTransfer.CallOpts, arg0)
  7586  }
  7587  
  7588  // HandleNoncesToBlockNums is a free data retrieval call binding the contract method 0x13a6738a.
  7589  //
  7590  // Solidity: function handleNoncesToBlockNums(uint64 ) view returns(uint64)
  7591  func (_BridgeTransfer *BridgeTransferCallerSession) HandleNoncesToBlockNums(arg0 uint64) (uint64, error) {
  7592  	return _BridgeTransfer.Contract.HandleNoncesToBlockNums(&_BridgeTransfer.CallOpts, arg0)
  7593  }
  7594  
  7595  // HandledRequestTx is a free data retrieval call binding the contract method 0x8a75eee2.
  7596  //
  7597  // Solidity: function handledRequestTx(bytes32 ) view returns(bool)
  7598  func (_BridgeTransfer *BridgeTransferCaller) HandledRequestTx(opts *bind.CallOpts, arg0 [32]byte) (bool, error) {
  7599  	var out []interface{}
  7600  	err := _BridgeTransfer.contract.Call(opts, &out, "handledRequestTx", arg0)
  7601  
  7602  	if err != nil {
  7603  		return *new(bool), err
  7604  	}
  7605  
  7606  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
  7607  
  7608  	return out0, err
  7609  
  7610  }
  7611  
  7612  // HandledRequestTx is a free data retrieval call binding the contract method 0x8a75eee2.
  7613  //
  7614  // Solidity: function handledRequestTx(bytes32 ) view returns(bool)
  7615  func (_BridgeTransfer *BridgeTransferSession) HandledRequestTx(arg0 [32]byte) (bool, error) {
  7616  	return _BridgeTransfer.Contract.HandledRequestTx(&_BridgeTransfer.CallOpts, arg0)
  7617  }
  7618  
  7619  // HandledRequestTx is a free data retrieval call binding the contract method 0x8a75eee2.
  7620  //
  7621  // Solidity: function handledRequestTx(bytes32 ) view returns(bool)
  7622  func (_BridgeTransfer *BridgeTransferCallerSession) HandledRequestTx(arg0 [32]byte) (bool, error) {
  7623  	return _BridgeTransfer.Contract.HandledRequestTx(&_BridgeTransfer.CallOpts, arg0)
  7624  }
  7625  
  7626  // IsOwner is a free data retrieval call binding the contract method 0x8f32d59b.
  7627  //
  7628  // Solidity: function isOwner() view returns(bool)
  7629  func (_BridgeTransfer *BridgeTransferCaller) IsOwner(opts *bind.CallOpts) (bool, error) {
  7630  	var out []interface{}
  7631  	err := _BridgeTransfer.contract.Call(opts, &out, "isOwner")
  7632  
  7633  	if err != nil {
  7634  		return *new(bool), err
  7635  	}
  7636  
  7637  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
  7638  
  7639  	return out0, err
  7640  
  7641  }
  7642  
  7643  // IsOwner is a free data retrieval call binding the contract method 0x8f32d59b.
  7644  //
  7645  // Solidity: function isOwner() view returns(bool)
  7646  func (_BridgeTransfer *BridgeTransferSession) IsOwner() (bool, error) {
  7647  	return _BridgeTransfer.Contract.IsOwner(&_BridgeTransfer.CallOpts)
  7648  }
  7649  
  7650  // IsOwner is a free data retrieval call binding the contract method 0x8f32d59b.
  7651  //
  7652  // Solidity: function isOwner() view returns(bool)
  7653  func (_BridgeTransfer *BridgeTransferCallerSession) IsOwner() (bool, error) {
  7654  	return _BridgeTransfer.Contract.IsOwner(&_BridgeTransfer.CallOpts)
  7655  }
  7656  
  7657  // IsRunning is a free data retrieval call binding the contract method 0x2014e5d1.
  7658  //
  7659  // Solidity: function isRunning() view returns(bool)
  7660  func (_BridgeTransfer *BridgeTransferCaller) IsRunning(opts *bind.CallOpts) (bool, error) {
  7661  	var out []interface{}
  7662  	err := _BridgeTransfer.contract.Call(opts, &out, "isRunning")
  7663  
  7664  	if err != nil {
  7665  		return *new(bool), err
  7666  	}
  7667  
  7668  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
  7669  
  7670  	return out0, err
  7671  
  7672  }
  7673  
  7674  // IsRunning is a free data retrieval call binding the contract method 0x2014e5d1.
  7675  //
  7676  // Solidity: function isRunning() view returns(bool)
  7677  func (_BridgeTransfer *BridgeTransferSession) IsRunning() (bool, error) {
  7678  	return _BridgeTransfer.Contract.IsRunning(&_BridgeTransfer.CallOpts)
  7679  }
  7680  
  7681  // IsRunning is a free data retrieval call binding the contract method 0x2014e5d1.
  7682  //
  7683  // Solidity: function isRunning() view returns(bool)
  7684  func (_BridgeTransfer *BridgeTransferCallerSession) IsRunning() (bool, error) {
  7685  	return _BridgeTransfer.Contract.IsRunning(&_BridgeTransfer.CallOpts)
  7686  }
  7687  
  7688  // LowerHandleNonce is a free data retrieval call binding the contract method 0x4b40b826.
  7689  //
  7690  // Solidity: function lowerHandleNonce() view returns(uint64)
  7691  func (_BridgeTransfer *BridgeTransferCaller) LowerHandleNonce(opts *bind.CallOpts) (uint64, error) {
  7692  	var out []interface{}
  7693  	err := _BridgeTransfer.contract.Call(opts, &out, "lowerHandleNonce")
  7694  
  7695  	if err != nil {
  7696  		return *new(uint64), err
  7697  	}
  7698  
  7699  	out0 := *abi.ConvertType(out[0], new(uint64)).(*uint64)
  7700  
  7701  	return out0, err
  7702  
  7703  }
  7704  
  7705  // LowerHandleNonce is a free data retrieval call binding the contract method 0x4b40b826.
  7706  //
  7707  // Solidity: function lowerHandleNonce() view returns(uint64)
  7708  func (_BridgeTransfer *BridgeTransferSession) LowerHandleNonce() (uint64, error) {
  7709  	return _BridgeTransfer.Contract.LowerHandleNonce(&_BridgeTransfer.CallOpts)
  7710  }
  7711  
  7712  // LowerHandleNonce is a free data retrieval call binding the contract method 0x4b40b826.
  7713  //
  7714  // Solidity: function lowerHandleNonce() view returns(uint64)
  7715  func (_BridgeTransfer *BridgeTransferCallerSession) LowerHandleNonce() (uint64, error) {
  7716  	return _BridgeTransfer.Contract.LowerHandleNonce(&_BridgeTransfer.CallOpts)
  7717  }
  7718  
  7719  // ModeMintBurn is a free data retrieval call binding the contract method 0x6e176ec2.
  7720  //
  7721  // Solidity: function modeMintBurn() view returns(bool)
  7722  func (_BridgeTransfer *BridgeTransferCaller) ModeMintBurn(opts *bind.CallOpts) (bool, error) {
  7723  	var out []interface{}
  7724  	err := _BridgeTransfer.contract.Call(opts, &out, "modeMintBurn")
  7725  
  7726  	if err != nil {
  7727  		return *new(bool), err
  7728  	}
  7729  
  7730  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
  7731  
  7732  	return out0, err
  7733  
  7734  }
  7735  
  7736  // ModeMintBurn is a free data retrieval call binding the contract method 0x6e176ec2.
  7737  //
  7738  // Solidity: function modeMintBurn() view returns(bool)
  7739  func (_BridgeTransfer *BridgeTransferSession) ModeMintBurn() (bool, error) {
  7740  	return _BridgeTransfer.Contract.ModeMintBurn(&_BridgeTransfer.CallOpts)
  7741  }
  7742  
  7743  // ModeMintBurn is a free data retrieval call binding the contract method 0x6e176ec2.
  7744  //
  7745  // Solidity: function modeMintBurn() view returns(bool)
  7746  func (_BridgeTransfer *BridgeTransferCallerSession) ModeMintBurn() (bool, error) {
  7747  	return _BridgeTransfer.Contract.ModeMintBurn(&_BridgeTransfer.CallOpts)
  7748  }
  7749  
  7750  // OperatorList is a free data retrieval call binding the contract method 0xcb38f407.
  7751  //
  7752  // Solidity: function operatorList(uint256 ) view returns(address)
  7753  func (_BridgeTransfer *BridgeTransferCaller) OperatorList(opts *bind.CallOpts, arg0 *big.Int) (common.Address, error) {
  7754  	var out []interface{}
  7755  	err := _BridgeTransfer.contract.Call(opts, &out, "operatorList", arg0)
  7756  
  7757  	if err != nil {
  7758  		return *new(common.Address), err
  7759  	}
  7760  
  7761  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
  7762  
  7763  	return out0, err
  7764  
  7765  }
  7766  
  7767  // OperatorList is a free data retrieval call binding the contract method 0xcb38f407.
  7768  //
  7769  // Solidity: function operatorList(uint256 ) view returns(address)
  7770  func (_BridgeTransfer *BridgeTransferSession) OperatorList(arg0 *big.Int) (common.Address, error) {
  7771  	return _BridgeTransfer.Contract.OperatorList(&_BridgeTransfer.CallOpts, arg0)
  7772  }
  7773  
  7774  // OperatorList is a free data retrieval call binding the contract method 0xcb38f407.
  7775  //
  7776  // Solidity: function operatorList(uint256 ) view returns(address)
  7777  func (_BridgeTransfer *BridgeTransferCallerSession) OperatorList(arg0 *big.Int) (common.Address, error) {
  7778  	return _BridgeTransfer.Contract.OperatorList(&_BridgeTransfer.CallOpts, arg0)
  7779  }
  7780  
  7781  // OperatorThresholds is a free data retrieval call binding the contract method 0x5526f76b.
  7782  //
  7783  // Solidity: function operatorThresholds(uint8 ) view returns(uint8)
  7784  func (_BridgeTransfer *BridgeTransferCaller) OperatorThresholds(opts *bind.CallOpts, arg0 uint8) (uint8, error) {
  7785  	var out []interface{}
  7786  	err := _BridgeTransfer.contract.Call(opts, &out, "operatorThresholds", arg0)
  7787  
  7788  	if err != nil {
  7789  		return *new(uint8), err
  7790  	}
  7791  
  7792  	out0 := *abi.ConvertType(out[0], new(uint8)).(*uint8)
  7793  
  7794  	return out0, err
  7795  
  7796  }
  7797  
  7798  // OperatorThresholds is a free data retrieval call binding the contract method 0x5526f76b.
  7799  //
  7800  // Solidity: function operatorThresholds(uint8 ) view returns(uint8)
  7801  func (_BridgeTransfer *BridgeTransferSession) OperatorThresholds(arg0 uint8) (uint8, error) {
  7802  	return _BridgeTransfer.Contract.OperatorThresholds(&_BridgeTransfer.CallOpts, arg0)
  7803  }
  7804  
  7805  // OperatorThresholds is a free data retrieval call binding the contract method 0x5526f76b.
  7806  //
  7807  // Solidity: function operatorThresholds(uint8 ) view returns(uint8)
  7808  func (_BridgeTransfer *BridgeTransferCallerSession) OperatorThresholds(arg0 uint8) (uint8, error) {
  7809  	return _BridgeTransfer.Contract.OperatorThresholds(&_BridgeTransfer.CallOpts, arg0)
  7810  }
  7811  
  7812  // Operators is a free data retrieval call binding the contract method 0x13e7c9d8.
  7813  //
  7814  // Solidity: function operators(address ) view returns(bool)
  7815  func (_BridgeTransfer *BridgeTransferCaller) Operators(opts *bind.CallOpts, arg0 common.Address) (bool, error) {
  7816  	var out []interface{}
  7817  	err := _BridgeTransfer.contract.Call(opts, &out, "operators", arg0)
  7818  
  7819  	if err != nil {
  7820  		return *new(bool), err
  7821  	}
  7822  
  7823  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
  7824  
  7825  	return out0, err
  7826  
  7827  }
  7828  
  7829  // Operators is a free data retrieval call binding the contract method 0x13e7c9d8.
  7830  //
  7831  // Solidity: function operators(address ) view returns(bool)
  7832  func (_BridgeTransfer *BridgeTransferSession) Operators(arg0 common.Address) (bool, error) {
  7833  	return _BridgeTransfer.Contract.Operators(&_BridgeTransfer.CallOpts, arg0)
  7834  }
  7835  
  7836  // Operators is a free data retrieval call binding the contract method 0x13e7c9d8.
  7837  //
  7838  // Solidity: function operators(address ) view returns(bool)
  7839  func (_BridgeTransfer *BridgeTransferCallerSession) Operators(arg0 common.Address) (bool, error) {
  7840  	return _BridgeTransfer.Contract.Operators(&_BridgeTransfer.CallOpts, arg0)
  7841  }
  7842  
  7843  // Owner is a free data retrieval call binding the contract method 0x8da5cb5b.
  7844  //
  7845  // Solidity: function owner() view returns(address)
  7846  func (_BridgeTransfer *BridgeTransferCaller) Owner(opts *bind.CallOpts) (common.Address, error) {
  7847  	var out []interface{}
  7848  	err := _BridgeTransfer.contract.Call(opts, &out, "owner")
  7849  
  7850  	if err != nil {
  7851  		return *new(common.Address), err
  7852  	}
  7853  
  7854  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
  7855  
  7856  	return out0, err
  7857  
  7858  }
  7859  
  7860  // Owner is a free data retrieval call binding the contract method 0x8da5cb5b.
  7861  //
  7862  // Solidity: function owner() view returns(address)
  7863  func (_BridgeTransfer *BridgeTransferSession) Owner() (common.Address, error) {
  7864  	return _BridgeTransfer.Contract.Owner(&_BridgeTransfer.CallOpts)
  7865  }
  7866  
  7867  // Owner is a free data retrieval call binding the contract method 0x8da5cb5b.
  7868  //
  7869  // Solidity: function owner() view returns(address)
  7870  func (_BridgeTransfer *BridgeTransferCallerSession) Owner() (common.Address, error) {
  7871  	return _BridgeTransfer.Contract.Owner(&_BridgeTransfer.CallOpts)
  7872  }
  7873  
  7874  // RecoveryBlockNumber is a free data retrieval call binding the contract method 0x989ba0d3.
  7875  //
  7876  // Solidity: function recoveryBlockNumber() view returns(uint64)
  7877  func (_BridgeTransfer *BridgeTransferCaller) RecoveryBlockNumber(opts *bind.CallOpts) (uint64, error) {
  7878  	var out []interface{}
  7879  	err := _BridgeTransfer.contract.Call(opts, &out, "recoveryBlockNumber")
  7880  
  7881  	if err != nil {
  7882  		return *new(uint64), err
  7883  	}
  7884  
  7885  	out0 := *abi.ConvertType(out[0], new(uint64)).(*uint64)
  7886  
  7887  	return out0, err
  7888  
  7889  }
  7890  
  7891  // RecoveryBlockNumber is a free data retrieval call binding the contract method 0x989ba0d3.
  7892  //
  7893  // Solidity: function recoveryBlockNumber() view returns(uint64)
  7894  func (_BridgeTransfer *BridgeTransferSession) RecoveryBlockNumber() (uint64, error) {
  7895  	return _BridgeTransfer.Contract.RecoveryBlockNumber(&_BridgeTransfer.CallOpts)
  7896  }
  7897  
  7898  // RecoveryBlockNumber is a free data retrieval call binding the contract method 0x989ba0d3.
  7899  //
  7900  // Solidity: function recoveryBlockNumber() view returns(uint64)
  7901  func (_BridgeTransfer *BridgeTransferCallerSession) RecoveryBlockNumber() (uint64, error) {
  7902  	return _BridgeTransfer.Contract.RecoveryBlockNumber(&_BridgeTransfer.CallOpts)
  7903  }
  7904  
  7905  // RequestNonce is a free data retrieval call binding the contract method 0x7c1a0302.
  7906  //
  7907  // Solidity: function requestNonce() view returns(uint64)
  7908  func (_BridgeTransfer *BridgeTransferCaller) RequestNonce(opts *bind.CallOpts) (uint64, error) {
  7909  	var out []interface{}
  7910  	err := _BridgeTransfer.contract.Call(opts, &out, "requestNonce")
  7911  
  7912  	if err != nil {
  7913  		return *new(uint64), err
  7914  	}
  7915  
  7916  	out0 := *abi.ConvertType(out[0], new(uint64)).(*uint64)
  7917  
  7918  	return out0, err
  7919  
  7920  }
  7921  
  7922  // RequestNonce is a free data retrieval call binding the contract method 0x7c1a0302.
  7923  //
  7924  // Solidity: function requestNonce() view returns(uint64)
  7925  func (_BridgeTransfer *BridgeTransferSession) RequestNonce() (uint64, error) {
  7926  	return _BridgeTransfer.Contract.RequestNonce(&_BridgeTransfer.CallOpts)
  7927  }
  7928  
  7929  // RequestNonce is a free data retrieval call binding the contract method 0x7c1a0302.
  7930  //
  7931  // Solidity: function requestNonce() view returns(uint64)
  7932  func (_BridgeTransfer *BridgeTransferCallerSession) RequestNonce() (uint64, error) {
  7933  	return _BridgeTransfer.Contract.RequestNonce(&_BridgeTransfer.CallOpts)
  7934  }
  7935  
  7936  // UpperHandleNonce is a free data retrieval call binding the contract method 0x54edad72.
  7937  //
  7938  // Solidity: function upperHandleNonce() view returns(uint64)
  7939  func (_BridgeTransfer *BridgeTransferCaller) UpperHandleNonce(opts *bind.CallOpts) (uint64, error) {
  7940  	var out []interface{}
  7941  	err := _BridgeTransfer.contract.Call(opts, &out, "upperHandleNonce")
  7942  
  7943  	if err != nil {
  7944  		return *new(uint64), err
  7945  	}
  7946  
  7947  	out0 := *abi.ConvertType(out[0], new(uint64)).(*uint64)
  7948  
  7949  	return out0, err
  7950  
  7951  }
  7952  
  7953  // UpperHandleNonce is a free data retrieval call binding the contract method 0x54edad72.
  7954  //
  7955  // Solidity: function upperHandleNonce() view returns(uint64)
  7956  func (_BridgeTransfer *BridgeTransferSession) UpperHandleNonce() (uint64, error) {
  7957  	return _BridgeTransfer.Contract.UpperHandleNonce(&_BridgeTransfer.CallOpts)
  7958  }
  7959  
  7960  // UpperHandleNonce is a free data retrieval call binding the contract method 0x54edad72.
  7961  //
  7962  // Solidity: function upperHandleNonce() view returns(uint64)
  7963  func (_BridgeTransfer *BridgeTransferCallerSession) UpperHandleNonce() (uint64, error) {
  7964  	return _BridgeTransfer.Contract.UpperHandleNonce(&_BridgeTransfer.CallOpts)
  7965  }
  7966  
  7967  // DeregisterOperator is a paid mutator transaction binding the contract method 0xd8cf98ca.
  7968  //
  7969  // Solidity: function deregisterOperator(address _operator) returns()
  7970  func (_BridgeTransfer *BridgeTransferTransactor) DeregisterOperator(opts *bind.TransactOpts, _operator common.Address) (*types.Transaction, error) {
  7971  	return _BridgeTransfer.contract.Transact(opts, "deregisterOperator", _operator)
  7972  }
  7973  
  7974  // DeregisterOperator is a paid mutator transaction binding the contract method 0xd8cf98ca.
  7975  //
  7976  // Solidity: function deregisterOperator(address _operator) returns()
  7977  func (_BridgeTransfer *BridgeTransferSession) DeregisterOperator(_operator common.Address) (*types.Transaction, error) {
  7978  	return _BridgeTransfer.Contract.DeregisterOperator(&_BridgeTransfer.TransactOpts, _operator)
  7979  }
  7980  
  7981  // DeregisterOperator is a paid mutator transaction binding the contract method 0xd8cf98ca.
  7982  //
  7983  // Solidity: function deregisterOperator(address _operator) returns()
  7984  func (_BridgeTransfer *BridgeTransferTransactorSession) DeregisterOperator(_operator common.Address) (*types.Transaction, error) {
  7985  	return _BridgeTransfer.Contract.DeregisterOperator(&_BridgeTransfer.TransactOpts, _operator)
  7986  }
  7987  
  7988  // RegisterOperator is a paid mutator transaction binding the contract method 0x3682a450.
  7989  //
  7990  // Solidity: function registerOperator(address _operator) returns()
  7991  func (_BridgeTransfer *BridgeTransferTransactor) RegisterOperator(opts *bind.TransactOpts, _operator common.Address) (*types.Transaction, error) {
  7992  	return _BridgeTransfer.contract.Transact(opts, "registerOperator", _operator)
  7993  }
  7994  
  7995  // RegisterOperator is a paid mutator transaction binding the contract method 0x3682a450.
  7996  //
  7997  // Solidity: function registerOperator(address _operator) returns()
  7998  func (_BridgeTransfer *BridgeTransferSession) RegisterOperator(_operator common.Address) (*types.Transaction, error) {
  7999  	return _BridgeTransfer.Contract.RegisterOperator(&_BridgeTransfer.TransactOpts, _operator)
  8000  }
  8001  
  8002  // RegisterOperator is a paid mutator transaction binding the contract method 0x3682a450.
  8003  //
  8004  // Solidity: function registerOperator(address _operator) returns()
  8005  func (_BridgeTransfer *BridgeTransferTransactorSession) RegisterOperator(_operator common.Address) (*types.Transaction, error) {
  8006  	return _BridgeTransfer.Contract.RegisterOperator(&_BridgeTransfer.TransactOpts, _operator)
  8007  }
  8008  
  8009  // RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6.
  8010  //
  8011  // Solidity: function renounceOwnership() returns()
  8012  func (_BridgeTransfer *BridgeTransferTransactor) RenounceOwnership(opts *bind.TransactOpts) (*types.Transaction, error) {
  8013  	return _BridgeTransfer.contract.Transact(opts, "renounceOwnership")
  8014  }
  8015  
  8016  // RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6.
  8017  //
  8018  // Solidity: function renounceOwnership() returns()
  8019  func (_BridgeTransfer *BridgeTransferSession) RenounceOwnership() (*types.Transaction, error) {
  8020  	return _BridgeTransfer.Contract.RenounceOwnership(&_BridgeTransfer.TransactOpts)
  8021  }
  8022  
  8023  // RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6.
  8024  //
  8025  // Solidity: function renounceOwnership() returns()
  8026  func (_BridgeTransfer *BridgeTransferTransactorSession) RenounceOwnership() (*types.Transaction, error) {
  8027  	return _BridgeTransfer.Contract.RenounceOwnership(&_BridgeTransfer.TransactOpts)
  8028  }
  8029  
  8030  // SetFeeReceiver is a paid mutator transaction binding the contract method 0xefdcd974.
  8031  //
  8032  // Solidity: function setFeeReceiver(address _feeReceiver) returns()
  8033  func (_BridgeTransfer *BridgeTransferTransactor) SetFeeReceiver(opts *bind.TransactOpts, _feeReceiver common.Address) (*types.Transaction, error) {
  8034  	return _BridgeTransfer.contract.Transact(opts, "setFeeReceiver", _feeReceiver)
  8035  }
  8036  
  8037  // SetFeeReceiver is a paid mutator transaction binding the contract method 0xefdcd974.
  8038  //
  8039  // Solidity: function setFeeReceiver(address _feeReceiver) returns()
  8040  func (_BridgeTransfer *BridgeTransferSession) SetFeeReceiver(_feeReceiver common.Address) (*types.Transaction, error) {
  8041  	return _BridgeTransfer.Contract.SetFeeReceiver(&_BridgeTransfer.TransactOpts, _feeReceiver)
  8042  }
  8043  
  8044  // SetFeeReceiver is a paid mutator transaction binding the contract method 0xefdcd974.
  8045  //
  8046  // Solidity: function setFeeReceiver(address _feeReceiver) returns()
  8047  func (_BridgeTransfer *BridgeTransferTransactorSession) SetFeeReceiver(_feeReceiver common.Address) (*types.Transaction, error) {
  8048  	return _BridgeTransfer.Contract.SetFeeReceiver(&_BridgeTransfer.TransactOpts, _feeReceiver)
  8049  }
  8050  
  8051  // SetOperatorThreshold is a paid mutator transaction binding the contract method 0xee2aec65.
  8052  //
  8053  // Solidity: function setOperatorThreshold(uint8 _voteType, uint8 _threshold) returns()
  8054  func (_BridgeTransfer *BridgeTransferTransactor) SetOperatorThreshold(opts *bind.TransactOpts, _voteType uint8, _threshold uint8) (*types.Transaction, error) {
  8055  	return _BridgeTransfer.contract.Transact(opts, "setOperatorThreshold", _voteType, _threshold)
  8056  }
  8057  
  8058  // SetOperatorThreshold is a paid mutator transaction binding the contract method 0xee2aec65.
  8059  //
  8060  // Solidity: function setOperatorThreshold(uint8 _voteType, uint8 _threshold) returns()
  8061  func (_BridgeTransfer *BridgeTransferSession) SetOperatorThreshold(_voteType uint8, _threshold uint8) (*types.Transaction, error) {
  8062  	return _BridgeTransfer.Contract.SetOperatorThreshold(&_BridgeTransfer.TransactOpts, _voteType, _threshold)
  8063  }
  8064  
  8065  // SetOperatorThreshold is a paid mutator transaction binding the contract method 0xee2aec65.
  8066  //
  8067  // Solidity: function setOperatorThreshold(uint8 _voteType, uint8 _threshold) returns()
  8068  func (_BridgeTransfer *BridgeTransferTransactorSession) SetOperatorThreshold(_voteType uint8, _threshold uint8) (*types.Transaction, error) {
  8069  	return _BridgeTransfer.Contract.SetOperatorThreshold(&_BridgeTransfer.TransactOpts, _voteType, _threshold)
  8070  }
  8071  
  8072  // Start is a paid mutator transaction binding the contract method 0xc877cf37.
  8073  //
  8074  // Solidity: function start(bool _status) returns()
  8075  func (_BridgeTransfer *BridgeTransferTransactor) Start(opts *bind.TransactOpts, _status bool) (*types.Transaction, error) {
  8076  	return _BridgeTransfer.contract.Transact(opts, "start", _status)
  8077  }
  8078  
  8079  // Start is a paid mutator transaction binding the contract method 0xc877cf37.
  8080  //
  8081  // Solidity: function start(bool _status) returns()
  8082  func (_BridgeTransfer *BridgeTransferSession) Start(_status bool) (*types.Transaction, error) {
  8083  	return _BridgeTransfer.Contract.Start(&_BridgeTransfer.TransactOpts, _status)
  8084  }
  8085  
  8086  // Start is a paid mutator transaction binding the contract method 0xc877cf37.
  8087  //
  8088  // Solidity: function start(bool _status) returns()
  8089  func (_BridgeTransfer *BridgeTransferTransactorSession) Start(_status bool) (*types.Transaction, error) {
  8090  	return _BridgeTransfer.Contract.Start(&_BridgeTransfer.TransactOpts, _status)
  8091  }
  8092  
  8093  // TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b.
  8094  //
  8095  // Solidity: function transferOwnership(address newOwner) returns()
  8096  func (_BridgeTransfer *BridgeTransferTransactor) TransferOwnership(opts *bind.TransactOpts, newOwner common.Address) (*types.Transaction, error) {
  8097  	return _BridgeTransfer.contract.Transact(opts, "transferOwnership", newOwner)
  8098  }
  8099  
  8100  // TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b.
  8101  //
  8102  // Solidity: function transferOwnership(address newOwner) returns()
  8103  func (_BridgeTransfer *BridgeTransferSession) TransferOwnership(newOwner common.Address) (*types.Transaction, error) {
  8104  	return _BridgeTransfer.Contract.TransferOwnership(&_BridgeTransfer.TransactOpts, newOwner)
  8105  }
  8106  
  8107  // TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b.
  8108  //
  8109  // Solidity: function transferOwnership(address newOwner) returns()
  8110  func (_BridgeTransfer *BridgeTransferTransactorSession) TransferOwnership(newOwner common.Address) (*types.Transaction, error) {
  8111  	return _BridgeTransfer.Contract.TransferOwnership(&_BridgeTransfer.TransactOpts, newOwner)
  8112  }
  8113  
  8114  // BridgeTransferERC20FeeChangedIterator is returned from FilterERC20FeeChanged and is used to iterate over the raw logs and unpacked data for ERC20FeeChanged events raised by the BridgeTransfer contract.
  8115  type BridgeTransferERC20FeeChangedIterator struct {
  8116  	Event *BridgeTransferERC20FeeChanged // Event containing the contract specifics and raw log
  8117  
  8118  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  8119  	event    string              // Event name to use for unpacking event data
  8120  
  8121  	logs chan types.Log      // Log channel receiving the found contract events
  8122  	sub  klaytn.Subscription // Subscription for errors, completion and termination
  8123  	done bool                // Whether the subscription completed delivering logs
  8124  	fail error               // Occurred error to stop iteration
  8125  }
  8126  
  8127  // Next advances the iterator to the subsequent event, returning whether there
  8128  // are any more events found. In case of a retrieval or parsing error, false is
  8129  // returned and Error() can be queried for the exact failure.
  8130  func (it *BridgeTransferERC20FeeChangedIterator) Next() bool {
  8131  	// If the iterator failed, stop iterating
  8132  	if it.fail != nil {
  8133  		return false
  8134  	}
  8135  	// If the iterator completed, deliver directly whatever's available
  8136  	if it.done {
  8137  		select {
  8138  		case log := <-it.logs:
  8139  			it.Event = new(BridgeTransferERC20FeeChanged)
  8140  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  8141  				it.fail = err
  8142  				return false
  8143  			}
  8144  			it.Event.Raw = log
  8145  			return true
  8146  
  8147  		default:
  8148  			return false
  8149  		}
  8150  	}
  8151  	// Iterator still in progress, wait for either a data or an error event
  8152  	select {
  8153  	case log := <-it.logs:
  8154  		it.Event = new(BridgeTransferERC20FeeChanged)
  8155  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  8156  			it.fail = err
  8157  			return false
  8158  		}
  8159  		it.Event.Raw = log
  8160  		return true
  8161  
  8162  	case err := <-it.sub.Err():
  8163  		it.done = true
  8164  		it.fail = err
  8165  		return it.Next()
  8166  	}
  8167  }
  8168  
  8169  // Error returns any retrieval or parsing error occurred during filtering.
  8170  func (it *BridgeTransferERC20FeeChangedIterator) Error() error {
  8171  	return it.fail
  8172  }
  8173  
  8174  // Close terminates the iteration process, releasing any pending underlying
  8175  // resources.
  8176  func (it *BridgeTransferERC20FeeChangedIterator) Close() error {
  8177  	it.sub.Unsubscribe()
  8178  	return nil
  8179  }
  8180  
  8181  // BridgeTransferERC20FeeChanged represents a ERC20FeeChanged event raised by the BridgeTransfer contract.
  8182  type BridgeTransferERC20FeeChanged struct {
  8183  	Token common.Address
  8184  	Fee   *big.Int
  8185  	Raw   types.Log // Blockchain specific contextual infos
  8186  }
  8187  
  8188  // FilterERC20FeeChanged is a free log retrieval operation binding the contract event 0xdb5ad2e76ae20cfa4e7adbc7305d7538442164d85ead9937c98620a1aa4c255b.
  8189  //
  8190  // Solidity: event ERC20FeeChanged(address indexed token, uint256 indexed fee)
  8191  func (_BridgeTransfer *BridgeTransferFilterer) FilterERC20FeeChanged(opts *bind.FilterOpts, token []common.Address, fee []*big.Int) (*BridgeTransferERC20FeeChangedIterator, error) {
  8192  
  8193  	var tokenRule []interface{}
  8194  	for _, tokenItem := range token {
  8195  		tokenRule = append(tokenRule, tokenItem)
  8196  	}
  8197  	var feeRule []interface{}
  8198  	for _, feeItem := range fee {
  8199  		feeRule = append(feeRule, feeItem)
  8200  	}
  8201  
  8202  	logs, sub, err := _BridgeTransfer.contract.FilterLogs(opts, "ERC20FeeChanged", tokenRule, feeRule)
  8203  	if err != nil {
  8204  		return nil, err
  8205  	}
  8206  	return &BridgeTransferERC20FeeChangedIterator{contract: _BridgeTransfer.contract, event: "ERC20FeeChanged", logs: logs, sub: sub}, nil
  8207  }
  8208  
  8209  // WatchERC20FeeChanged is a free log subscription operation binding the contract event 0xdb5ad2e76ae20cfa4e7adbc7305d7538442164d85ead9937c98620a1aa4c255b.
  8210  //
  8211  // Solidity: event ERC20FeeChanged(address indexed token, uint256 indexed fee)
  8212  func (_BridgeTransfer *BridgeTransferFilterer) WatchERC20FeeChanged(opts *bind.WatchOpts, sink chan<- *BridgeTransferERC20FeeChanged, token []common.Address, fee []*big.Int) (event.Subscription, error) {
  8213  
  8214  	var tokenRule []interface{}
  8215  	for _, tokenItem := range token {
  8216  		tokenRule = append(tokenRule, tokenItem)
  8217  	}
  8218  	var feeRule []interface{}
  8219  	for _, feeItem := range fee {
  8220  		feeRule = append(feeRule, feeItem)
  8221  	}
  8222  
  8223  	logs, sub, err := _BridgeTransfer.contract.WatchLogs(opts, "ERC20FeeChanged", tokenRule, feeRule)
  8224  	if err != nil {
  8225  		return nil, err
  8226  	}
  8227  	return event.NewSubscription(func(quit <-chan struct{}) error {
  8228  		defer sub.Unsubscribe()
  8229  		for {
  8230  			select {
  8231  			case log := <-logs:
  8232  				// New log arrived, parse the event and forward to the user
  8233  				event := new(BridgeTransferERC20FeeChanged)
  8234  				if err := _BridgeTransfer.contract.UnpackLog(event, "ERC20FeeChanged", log); err != nil {
  8235  					return err
  8236  				}
  8237  				event.Raw = log
  8238  
  8239  				select {
  8240  				case sink <- event:
  8241  				case err := <-sub.Err():
  8242  					return err
  8243  				case <-quit:
  8244  					return nil
  8245  				}
  8246  			case err := <-sub.Err():
  8247  				return err
  8248  			case <-quit:
  8249  				return nil
  8250  			}
  8251  		}
  8252  	}), nil
  8253  }
  8254  
  8255  // ParseERC20FeeChanged is a log parse operation binding the contract event 0xdb5ad2e76ae20cfa4e7adbc7305d7538442164d85ead9937c98620a1aa4c255b.
  8256  //
  8257  // Solidity: event ERC20FeeChanged(address indexed token, uint256 indexed fee)
  8258  func (_BridgeTransfer *BridgeTransferFilterer) ParseERC20FeeChanged(log types.Log) (*BridgeTransferERC20FeeChanged, error) {
  8259  	event := new(BridgeTransferERC20FeeChanged)
  8260  	if err := _BridgeTransfer.contract.UnpackLog(event, "ERC20FeeChanged", log); err != nil {
  8261  		return nil, err
  8262  	}
  8263  	return event, nil
  8264  }
  8265  
  8266  // BridgeTransferFeeReceiverChangedIterator is returned from FilterFeeReceiverChanged and is used to iterate over the raw logs and unpacked data for FeeReceiverChanged events raised by the BridgeTransfer contract.
  8267  type BridgeTransferFeeReceiverChangedIterator struct {
  8268  	Event *BridgeTransferFeeReceiverChanged // Event containing the contract specifics and raw log
  8269  
  8270  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  8271  	event    string              // Event name to use for unpacking event data
  8272  
  8273  	logs chan types.Log      // Log channel receiving the found contract events
  8274  	sub  klaytn.Subscription // Subscription for errors, completion and termination
  8275  	done bool                // Whether the subscription completed delivering logs
  8276  	fail error               // Occurred error to stop iteration
  8277  }
  8278  
  8279  // Next advances the iterator to the subsequent event, returning whether there
  8280  // are any more events found. In case of a retrieval or parsing error, false is
  8281  // returned and Error() can be queried for the exact failure.
  8282  func (it *BridgeTransferFeeReceiverChangedIterator) Next() bool {
  8283  	// If the iterator failed, stop iterating
  8284  	if it.fail != nil {
  8285  		return false
  8286  	}
  8287  	// If the iterator completed, deliver directly whatever's available
  8288  	if it.done {
  8289  		select {
  8290  		case log := <-it.logs:
  8291  			it.Event = new(BridgeTransferFeeReceiverChanged)
  8292  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  8293  				it.fail = err
  8294  				return false
  8295  			}
  8296  			it.Event.Raw = log
  8297  			return true
  8298  
  8299  		default:
  8300  			return false
  8301  		}
  8302  	}
  8303  	// Iterator still in progress, wait for either a data or an error event
  8304  	select {
  8305  	case log := <-it.logs:
  8306  		it.Event = new(BridgeTransferFeeReceiverChanged)
  8307  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  8308  			it.fail = err
  8309  			return false
  8310  		}
  8311  		it.Event.Raw = log
  8312  		return true
  8313  
  8314  	case err := <-it.sub.Err():
  8315  		it.done = true
  8316  		it.fail = err
  8317  		return it.Next()
  8318  	}
  8319  }
  8320  
  8321  // Error returns any retrieval or parsing error occurred during filtering.
  8322  func (it *BridgeTransferFeeReceiverChangedIterator) Error() error {
  8323  	return it.fail
  8324  }
  8325  
  8326  // Close terminates the iteration process, releasing any pending underlying
  8327  // resources.
  8328  func (it *BridgeTransferFeeReceiverChangedIterator) Close() error {
  8329  	it.sub.Unsubscribe()
  8330  	return nil
  8331  }
  8332  
  8333  // BridgeTransferFeeReceiverChanged represents a FeeReceiverChanged event raised by the BridgeTransfer contract.
  8334  type BridgeTransferFeeReceiverChanged struct {
  8335  	FeeReceiver common.Address
  8336  	Raw         types.Log // Blockchain specific contextual infos
  8337  }
  8338  
  8339  // FilterFeeReceiverChanged is a free log retrieval operation binding the contract event 0x647672599d3468abcfa241a13c9e3d34383caadb5cc80fb67c3cdfcd5f786059.
  8340  //
  8341  // Solidity: event FeeReceiverChanged(address indexed feeReceiver)
  8342  func (_BridgeTransfer *BridgeTransferFilterer) FilterFeeReceiverChanged(opts *bind.FilterOpts, feeReceiver []common.Address) (*BridgeTransferFeeReceiverChangedIterator, error) {
  8343  
  8344  	var feeReceiverRule []interface{}
  8345  	for _, feeReceiverItem := range feeReceiver {
  8346  		feeReceiverRule = append(feeReceiverRule, feeReceiverItem)
  8347  	}
  8348  
  8349  	logs, sub, err := _BridgeTransfer.contract.FilterLogs(opts, "FeeReceiverChanged", feeReceiverRule)
  8350  	if err != nil {
  8351  		return nil, err
  8352  	}
  8353  	return &BridgeTransferFeeReceiverChangedIterator{contract: _BridgeTransfer.contract, event: "FeeReceiverChanged", logs: logs, sub: sub}, nil
  8354  }
  8355  
  8356  // WatchFeeReceiverChanged is a free log subscription operation binding the contract event 0x647672599d3468abcfa241a13c9e3d34383caadb5cc80fb67c3cdfcd5f786059.
  8357  //
  8358  // Solidity: event FeeReceiverChanged(address indexed feeReceiver)
  8359  func (_BridgeTransfer *BridgeTransferFilterer) WatchFeeReceiverChanged(opts *bind.WatchOpts, sink chan<- *BridgeTransferFeeReceiverChanged, feeReceiver []common.Address) (event.Subscription, error) {
  8360  
  8361  	var feeReceiverRule []interface{}
  8362  	for _, feeReceiverItem := range feeReceiver {
  8363  		feeReceiverRule = append(feeReceiverRule, feeReceiverItem)
  8364  	}
  8365  
  8366  	logs, sub, err := _BridgeTransfer.contract.WatchLogs(opts, "FeeReceiverChanged", feeReceiverRule)
  8367  	if err != nil {
  8368  		return nil, err
  8369  	}
  8370  	return event.NewSubscription(func(quit <-chan struct{}) error {
  8371  		defer sub.Unsubscribe()
  8372  		for {
  8373  			select {
  8374  			case log := <-logs:
  8375  				// New log arrived, parse the event and forward to the user
  8376  				event := new(BridgeTransferFeeReceiverChanged)
  8377  				if err := _BridgeTransfer.contract.UnpackLog(event, "FeeReceiverChanged", log); err != nil {
  8378  					return err
  8379  				}
  8380  				event.Raw = log
  8381  
  8382  				select {
  8383  				case sink <- event:
  8384  				case err := <-sub.Err():
  8385  					return err
  8386  				case <-quit:
  8387  					return nil
  8388  				}
  8389  			case err := <-sub.Err():
  8390  				return err
  8391  			case <-quit:
  8392  				return nil
  8393  			}
  8394  		}
  8395  	}), nil
  8396  }
  8397  
  8398  // ParseFeeReceiverChanged is a log parse operation binding the contract event 0x647672599d3468abcfa241a13c9e3d34383caadb5cc80fb67c3cdfcd5f786059.
  8399  //
  8400  // Solidity: event FeeReceiverChanged(address indexed feeReceiver)
  8401  func (_BridgeTransfer *BridgeTransferFilterer) ParseFeeReceiverChanged(log types.Log) (*BridgeTransferFeeReceiverChanged, error) {
  8402  	event := new(BridgeTransferFeeReceiverChanged)
  8403  	if err := _BridgeTransfer.contract.UnpackLog(event, "FeeReceiverChanged", log); err != nil {
  8404  		return nil, err
  8405  	}
  8406  	return event, nil
  8407  }
  8408  
  8409  // BridgeTransferHandleValueTransferIterator is returned from FilterHandleValueTransfer and is used to iterate over the raw logs and unpacked data for HandleValueTransfer events raised by the BridgeTransfer contract.
  8410  type BridgeTransferHandleValueTransferIterator struct {
  8411  	Event *BridgeTransferHandleValueTransfer // Event containing the contract specifics and raw log
  8412  
  8413  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  8414  	event    string              // Event name to use for unpacking event data
  8415  
  8416  	logs chan types.Log      // Log channel receiving the found contract events
  8417  	sub  klaytn.Subscription // Subscription for errors, completion and termination
  8418  	done bool                // Whether the subscription completed delivering logs
  8419  	fail error               // Occurred error to stop iteration
  8420  }
  8421  
  8422  // Next advances the iterator to the subsequent event, returning whether there
  8423  // are any more events found. In case of a retrieval or parsing error, false is
  8424  // returned and Error() can be queried for the exact failure.
  8425  func (it *BridgeTransferHandleValueTransferIterator) Next() bool {
  8426  	// If the iterator failed, stop iterating
  8427  	if it.fail != nil {
  8428  		return false
  8429  	}
  8430  	// If the iterator completed, deliver directly whatever's available
  8431  	if it.done {
  8432  		select {
  8433  		case log := <-it.logs:
  8434  			it.Event = new(BridgeTransferHandleValueTransfer)
  8435  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  8436  				it.fail = err
  8437  				return false
  8438  			}
  8439  			it.Event.Raw = log
  8440  			return true
  8441  
  8442  		default:
  8443  			return false
  8444  		}
  8445  	}
  8446  	// Iterator still in progress, wait for either a data or an error event
  8447  	select {
  8448  	case log := <-it.logs:
  8449  		it.Event = new(BridgeTransferHandleValueTransfer)
  8450  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  8451  			it.fail = err
  8452  			return false
  8453  		}
  8454  		it.Event.Raw = log
  8455  		return true
  8456  
  8457  	case err := <-it.sub.Err():
  8458  		it.done = true
  8459  		it.fail = err
  8460  		return it.Next()
  8461  	}
  8462  }
  8463  
  8464  // Error returns any retrieval or parsing error occurred during filtering.
  8465  func (it *BridgeTransferHandleValueTransferIterator) Error() error {
  8466  	return it.fail
  8467  }
  8468  
  8469  // Close terminates the iteration process, releasing any pending underlying
  8470  // resources.
  8471  func (it *BridgeTransferHandleValueTransferIterator) Close() error {
  8472  	it.sub.Unsubscribe()
  8473  	return nil
  8474  }
  8475  
  8476  // BridgeTransferHandleValueTransfer represents a HandleValueTransfer event raised by the BridgeTransfer contract.
  8477  type BridgeTransferHandleValueTransfer struct {
  8478  	RequestTxHash    [32]byte
  8479  	TokenType        uint8
  8480  	From             common.Address
  8481  	To               common.Address
  8482  	TokenAddress     common.Address
  8483  	ValueOrTokenId   *big.Int
  8484  	HandleNonce      uint64
  8485  	LowerHandleNonce uint64
  8486  	ExtraData        []byte
  8487  	Raw              types.Log // Blockchain specific contextual infos
  8488  }
  8489  
  8490  // FilterHandleValueTransfer is a free log retrieval operation binding the contract event 0x12b02f226d965a2881e0e8ffed6c421803a22d57ad91f9ef996fe0748ea10175.
  8491  //
  8492  // Solidity: event HandleValueTransfer(bytes32 requestTxHash, uint8 tokenType, address indexed from, address indexed to, address indexed tokenAddress, uint256 valueOrTokenId, uint64 handleNonce, uint64 lowerHandleNonce, bytes extraData)
  8493  func (_BridgeTransfer *BridgeTransferFilterer) FilterHandleValueTransfer(opts *bind.FilterOpts, from []common.Address, to []common.Address, tokenAddress []common.Address) (*BridgeTransferHandleValueTransferIterator, error) {
  8494  
  8495  	var fromRule []interface{}
  8496  	for _, fromItem := range from {
  8497  		fromRule = append(fromRule, fromItem)
  8498  	}
  8499  	var toRule []interface{}
  8500  	for _, toItem := range to {
  8501  		toRule = append(toRule, toItem)
  8502  	}
  8503  	var tokenAddressRule []interface{}
  8504  	for _, tokenAddressItem := range tokenAddress {
  8505  		tokenAddressRule = append(tokenAddressRule, tokenAddressItem)
  8506  	}
  8507  
  8508  	logs, sub, err := _BridgeTransfer.contract.FilterLogs(opts, "HandleValueTransfer", fromRule, toRule, tokenAddressRule)
  8509  	if err != nil {
  8510  		return nil, err
  8511  	}
  8512  	return &BridgeTransferHandleValueTransferIterator{contract: _BridgeTransfer.contract, event: "HandleValueTransfer", logs: logs, sub: sub}, nil
  8513  }
  8514  
  8515  // WatchHandleValueTransfer is a free log subscription operation binding the contract event 0x12b02f226d965a2881e0e8ffed6c421803a22d57ad91f9ef996fe0748ea10175.
  8516  //
  8517  // Solidity: event HandleValueTransfer(bytes32 requestTxHash, uint8 tokenType, address indexed from, address indexed to, address indexed tokenAddress, uint256 valueOrTokenId, uint64 handleNonce, uint64 lowerHandleNonce, bytes extraData)
  8518  func (_BridgeTransfer *BridgeTransferFilterer) WatchHandleValueTransfer(opts *bind.WatchOpts, sink chan<- *BridgeTransferHandleValueTransfer, from []common.Address, to []common.Address, tokenAddress []common.Address) (event.Subscription, error) {
  8519  
  8520  	var fromRule []interface{}
  8521  	for _, fromItem := range from {
  8522  		fromRule = append(fromRule, fromItem)
  8523  	}
  8524  	var toRule []interface{}
  8525  	for _, toItem := range to {
  8526  		toRule = append(toRule, toItem)
  8527  	}
  8528  	var tokenAddressRule []interface{}
  8529  	for _, tokenAddressItem := range tokenAddress {
  8530  		tokenAddressRule = append(tokenAddressRule, tokenAddressItem)
  8531  	}
  8532  
  8533  	logs, sub, err := _BridgeTransfer.contract.WatchLogs(opts, "HandleValueTransfer", fromRule, toRule, tokenAddressRule)
  8534  	if err != nil {
  8535  		return nil, err
  8536  	}
  8537  	return event.NewSubscription(func(quit <-chan struct{}) error {
  8538  		defer sub.Unsubscribe()
  8539  		for {
  8540  			select {
  8541  			case log := <-logs:
  8542  				// New log arrived, parse the event and forward to the user
  8543  				event := new(BridgeTransferHandleValueTransfer)
  8544  				if err := _BridgeTransfer.contract.UnpackLog(event, "HandleValueTransfer", log); err != nil {
  8545  					return err
  8546  				}
  8547  				event.Raw = log
  8548  
  8549  				select {
  8550  				case sink <- event:
  8551  				case err := <-sub.Err():
  8552  					return err
  8553  				case <-quit:
  8554  					return nil
  8555  				}
  8556  			case err := <-sub.Err():
  8557  				return err
  8558  			case <-quit:
  8559  				return nil
  8560  			}
  8561  		}
  8562  	}), nil
  8563  }
  8564  
  8565  // ParseHandleValueTransfer is a log parse operation binding the contract event 0x12b02f226d965a2881e0e8ffed6c421803a22d57ad91f9ef996fe0748ea10175.
  8566  //
  8567  // Solidity: event HandleValueTransfer(bytes32 requestTxHash, uint8 tokenType, address indexed from, address indexed to, address indexed tokenAddress, uint256 valueOrTokenId, uint64 handleNonce, uint64 lowerHandleNonce, bytes extraData)
  8568  func (_BridgeTransfer *BridgeTransferFilterer) ParseHandleValueTransfer(log types.Log) (*BridgeTransferHandleValueTransfer, error) {
  8569  	event := new(BridgeTransferHandleValueTransfer)
  8570  	if err := _BridgeTransfer.contract.UnpackLog(event, "HandleValueTransfer", log); err != nil {
  8571  		return nil, err
  8572  	}
  8573  	return event, nil
  8574  }
  8575  
  8576  // BridgeTransferKLAYFeeChangedIterator is returned from FilterKLAYFeeChanged and is used to iterate over the raw logs and unpacked data for KLAYFeeChanged events raised by the BridgeTransfer contract.
  8577  type BridgeTransferKLAYFeeChangedIterator struct {
  8578  	Event *BridgeTransferKLAYFeeChanged // Event containing the contract specifics and raw log
  8579  
  8580  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  8581  	event    string              // Event name to use for unpacking event data
  8582  
  8583  	logs chan types.Log      // Log channel receiving the found contract events
  8584  	sub  klaytn.Subscription // Subscription for errors, completion and termination
  8585  	done bool                // Whether the subscription completed delivering logs
  8586  	fail error               // Occurred error to stop iteration
  8587  }
  8588  
  8589  // Next advances the iterator to the subsequent event, returning whether there
  8590  // are any more events found. In case of a retrieval or parsing error, false is
  8591  // returned and Error() can be queried for the exact failure.
  8592  func (it *BridgeTransferKLAYFeeChangedIterator) Next() bool {
  8593  	// If the iterator failed, stop iterating
  8594  	if it.fail != nil {
  8595  		return false
  8596  	}
  8597  	// If the iterator completed, deliver directly whatever's available
  8598  	if it.done {
  8599  		select {
  8600  		case log := <-it.logs:
  8601  			it.Event = new(BridgeTransferKLAYFeeChanged)
  8602  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  8603  				it.fail = err
  8604  				return false
  8605  			}
  8606  			it.Event.Raw = log
  8607  			return true
  8608  
  8609  		default:
  8610  			return false
  8611  		}
  8612  	}
  8613  	// Iterator still in progress, wait for either a data or an error event
  8614  	select {
  8615  	case log := <-it.logs:
  8616  		it.Event = new(BridgeTransferKLAYFeeChanged)
  8617  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  8618  			it.fail = err
  8619  			return false
  8620  		}
  8621  		it.Event.Raw = log
  8622  		return true
  8623  
  8624  	case err := <-it.sub.Err():
  8625  		it.done = true
  8626  		it.fail = err
  8627  		return it.Next()
  8628  	}
  8629  }
  8630  
  8631  // Error returns any retrieval or parsing error occurred during filtering.
  8632  func (it *BridgeTransferKLAYFeeChangedIterator) Error() error {
  8633  	return it.fail
  8634  }
  8635  
  8636  // Close terminates the iteration process, releasing any pending underlying
  8637  // resources.
  8638  func (it *BridgeTransferKLAYFeeChangedIterator) Close() error {
  8639  	it.sub.Unsubscribe()
  8640  	return nil
  8641  }
  8642  
  8643  // BridgeTransferKLAYFeeChanged represents a KLAYFeeChanged event raised by the BridgeTransfer contract.
  8644  type BridgeTransferKLAYFeeChanged struct {
  8645  	Fee *big.Int
  8646  	Raw types.Log // Blockchain specific contextual infos
  8647  }
  8648  
  8649  // FilterKLAYFeeChanged is a free log retrieval operation binding the contract event 0xa7a33d0996347e1aa55ca2206015b61b9534bdd881d59d59aa680e25eefac365.
  8650  //
  8651  // Solidity: event KLAYFeeChanged(uint256 indexed fee)
  8652  func (_BridgeTransfer *BridgeTransferFilterer) FilterKLAYFeeChanged(opts *bind.FilterOpts, fee []*big.Int) (*BridgeTransferKLAYFeeChangedIterator, error) {
  8653  
  8654  	var feeRule []interface{}
  8655  	for _, feeItem := range fee {
  8656  		feeRule = append(feeRule, feeItem)
  8657  	}
  8658  
  8659  	logs, sub, err := _BridgeTransfer.contract.FilterLogs(opts, "KLAYFeeChanged", feeRule)
  8660  	if err != nil {
  8661  		return nil, err
  8662  	}
  8663  	return &BridgeTransferKLAYFeeChangedIterator{contract: _BridgeTransfer.contract, event: "KLAYFeeChanged", logs: logs, sub: sub}, nil
  8664  }
  8665  
  8666  // WatchKLAYFeeChanged is a free log subscription operation binding the contract event 0xa7a33d0996347e1aa55ca2206015b61b9534bdd881d59d59aa680e25eefac365.
  8667  //
  8668  // Solidity: event KLAYFeeChanged(uint256 indexed fee)
  8669  func (_BridgeTransfer *BridgeTransferFilterer) WatchKLAYFeeChanged(opts *bind.WatchOpts, sink chan<- *BridgeTransferKLAYFeeChanged, fee []*big.Int) (event.Subscription, error) {
  8670  
  8671  	var feeRule []interface{}
  8672  	for _, feeItem := range fee {
  8673  		feeRule = append(feeRule, feeItem)
  8674  	}
  8675  
  8676  	logs, sub, err := _BridgeTransfer.contract.WatchLogs(opts, "KLAYFeeChanged", feeRule)
  8677  	if err != nil {
  8678  		return nil, err
  8679  	}
  8680  	return event.NewSubscription(func(quit <-chan struct{}) error {
  8681  		defer sub.Unsubscribe()
  8682  		for {
  8683  			select {
  8684  			case log := <-logs:
  8685  				// New log arrived, parse the event and forward to the user
  8686  				event := new(BridgeTransferKLAYFeeChanged)
  8687  				if err := _BridgeTransfer.contract.UnpackLog(event, "KLAYFeeChanged", log); err != nil {
  8688  					return err
  8689  				}
  8690  				event.Raw = log
  8691  
  8692  				select {
  8693  				case sink <- event:
  8694  				case err := <-sub.Err():
  8695  					return err
  8696  				case <-quit:
  8697  					return nil
  8698  				}
  8699  			case err := <-sub.Err():
  8700  				return err
  8701  			case <-quit:
  8702  				return nil
  8703  			}
  8704  		}
  8705  	}), nil
  8706  }
  8707  
  8708  // ParseKLAYFeeChanged is a log parse operation binding the contract event 0xa7a33d0996347e1aa55ca2206015b61b9534bdd881d59d59aa680e25eefac365.
  8709  //
  8710  // Solidity: event KLAYFeeChanged(uint256 indexed fee)
  8711  func (_BridgeTransfer *BridgeTransferFilterer) ParseKLAYFeeChanged(log types.Log) (*BridgeTransferKLAYFeeChanged, error) {
  8712  	event := new(BridgeTransferKLAYFeeChanged)
  8713  	if err := _BridgeTransfer.contract.UnpackLog(event, "KLAYFeeChanged", log); err != nil {
  8714  		return nil, err
  8715  	}
  8716  	return event, nil
  8717  }
  8718  
  8719  // BridgeTransferOwnershipTransferredIterator is returned from FilterOwnershipTransferred and is used to iterate over the raw logs and unpacked data for OwnershipTransferred events raised by the BridgeTransfer contract.
  8720  type BridgeTransferOwnershipTransferredIterator struct {
  8721  	Event *BridgeTransferOwnershipTransferred // Event containing the contract specifics and raw log
  8722  
  8723  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  8724  	event    string              // Event name to use for unpacking event data
  8725  
  8726  	logs chan types.Log      // Log channel receiving the found contract events
  8727  	sub  klaytn.Subscription // Subscription for errors, completion and termination
  8728  	done bool                // Whether the subscription completed delivering logs
  8729  	fail error               // Occurred error to stop iteration
  8730  }
  8731  
  8732  // Next advances the iterator to the subsequent event, returning whether there
  8733  // are any more events found. In case of a retrieval or parsing error, false is
  8734  // returned and Error() can be queried for the exact failure.
  8735  func (it *BridgeTransferOwnershipTransferredIterator) Next() bool {
  8736  	// If the iterator failed, stop iterating
  8737  	if it.fail != nil {
  8738  		return false
  8739  	}
  8740  	// If the iterator completed, deliver directly whatever's available
  8741  	if it.done {
  8742  		select {
  8743  		case log := <-it.logs:
  8744  			it.Event = new(BridgeTransferOwnershipTransferred)
  8745  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  8746  				it.fail = err
  8747  				return false
  8748  			}
  8749  			it.Event.Raw = log
  8750  			return true
  8751  
  8752  		default:
  8753  			return false
  8754  		}
  8755  	}
  8756  	// Iterator still in progress, wait for either a data or an error event
  8757  	select {
  8758  	case log := <-it.logs:
  8759  		it.Event = new(BridgeTransferOwnershipTransferred)
  8760  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  8761  			it.fail = err
  8762  			return false
  8763  		}
  8764  		it.Event.Raw = log
  8765  		return true
  8766  
  8767  	case err := <-it.sub.Err():
  8768  		it.done = true
  8769  		it.fail = err
  8770  		return it.Next()
  8771  	}
  8772  }
  8773  
  8774  // Error returns any retrieval or parsing error occurred during filtering.
  8775  func (it *BridgeTransferOwnershipTransferredIterator) Error() error {
  8776  	return it.fail
  8777  }
  8778  
  8779  // Close terminates the iteration process, releasing any pending underlying
  8780  // resources.
  8781  func (it *BridgeTransferOwnershipTransferredIterator) Close() error {
  8782  	it.sub.Unsubscribe()
  8783  	return nil
  8784  }
  8785  
  8786  // BridgeTransferOwnershipTransferred represents a OwnershipTransferred event raised by the BridgeTransfer contract.
  8787  type BridgeTransferOwnershipTransferred struct {
  8788  	PreviousOwner common.Address
  8789  	NewOwner      common.Address
  8790  	Raw           types.Log // Blockchain specific contextual infos
  8791  }
  8792  
  8793  // FilterOwnershipTransferred is a free log retrieval operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0.
  8794  //
  8795  // Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
  8796  func (_BridgeTransfer *BridgeTransferFilterer) FilterOwnershipTransferred(opts *bind.FilterOpts, previousOwner []common.Address, newOwner []common.Address) (*BridgeTransferOwnershipTransferredIterator, error) {
  8797  
  8798  	var previousOwnerRule []interface{}
  8799  	for _, previousOwnerItem := range previousOwner {
  8800  		previousOwnerRule = append(previousOwnerRule, previousOwnerItem)
  8801  	}
  8802  	var newOwnerRule []interface{}
  8803  	for _, newOwnerItem := range newOwner {
  8804  		newOwnerRule = append(newOwnerRule, newOwnerItem)
  8805  	}
  8806  
  8807  	logs, sub, err := _BridgeTransfer.contract.FilterLogs(opts, "OwnershipTransferred", previousOwnerRule, newOwnerRule)
  8808  	if err != nil {
  8809  		return nil, err
  8810  	}
  8811  	return &BridgeTransferOwnershipTransferredIterator{contract: _BridgeTransfer.contract, event: "OwnershipTransferred", logs: logs, sub: sub}, nil
  8812  }
  8813  
  8814  // WatchOwnershipTransferred is a free log subscription operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0.
  8815  //
  8816  // Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
  8817  func (_BridgeTransfer *BridgeTransferFilterer) WatchOwnershipTransferred(opts *bind.WatchOpts, sink chan<- *BridgeTransferOwnershipTransferred, previousOwner []common.Address, newOwner []common.Address) (event.Subscription, error) {
  8818  
  8819  	var previousOwnerRule []interface{}
  8820  	for _, previousOwnerItem := range previousOwner {
  8821  		previousOwnerRule = append(previousOwnerRule, previousOwnerItem)
  8822  	}
  8823  	var newOwnerRule []interface{}
  8824  	for _, newOwnerItem := range newOwner {
  8825  		newOwnerRule = append(newOwnerRule, newOwnerItem)
  8826  	}
  8827  
  8828  	logs, sub, err := _BridgeTransfer.contract.WatchLogs(opts, "OwnershipTransferred", previousOwnerRule, newOwnerRule)
  8829  	if err != nil {
  8830  		return nil, err
  8831  	}
  8832  	return event.NewSubscription(func(quit <-chan struct{}) error {
  8833  		defer sub.Unsubscribe()
  8834  		for {
  8835  			select {
  8836  			case log := <-logs:
  8837  				// New log arrived, parse the event and forward to the user
  8838  				event := new(BridgeTransferOwnershipTransferred)
  8839  				if err := _BridgeTransfer.contract.UnpackLog(event, "OwnershipTransferred", log); err != nil {
  8840  					return err
  8841  				}
  8842  				event.Raw = log
  8843  
  8844  				select {
  8845  				case sink <- event:
  8846  				case err := <-sub.Err():
  8847  					return err
  8848  				case <-quit:
  8849  					return nil
  8850  				}
  8851  			case err := <-sub.Err():
  8852  				return err
  8853  			case <-quit:
  8854  				return nil
  8855  			}
  8856  		}
  8857  	}), nil
  8858  }
  8859  
  8860  // ParseOwnershipTransferred is a log parse operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0.
  8861  //
  8862  // Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
  8863  func (_BridgeTransfer *BridgeTransferFilterer) ParseOwnershipTransferred(log types.Log) (*BridgeTransferOwnershipTransferred, error) {
  8864  	event := new(BridgeTransferOwnershipTransferred)
  8865  	if err := _BridgeTransfer.contract.UnpackLog(event, "OwnershipTransferred", log); err != nil {
  8866  		return nil, err
  8867  	}
  8868  	return event, nil
  8869  }
  8870  
  8871  // BridgeTransferRequestValueTransferIterator is returned from FilterRequestValueTransfer and is used to iterate over the raw logs and unpacked data for RequestValueTransfer events raised by the BridgeTransfer contract.
  8872  type BridgeTransferRequestValueTransferIterator struct {
  8873  	Event *BridgeTransferRequestValueTransfer // Event containing the contract specifics and raw log
  8874  
  8875  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  8876  	event    string              // Event name to use for unpacking event data
  8877  
  8878  	logs chan types.Log      // Log channel receiving the found contract events
  8879  	sub  klaytn.Subscription // Subscription for errors, completion and termination
  8880  	done bool                // Whether the subscription completed delivering logs
  8881  	fail error               // Occurred error to stop iteration
  8882  }
  8883  
  8884  // Next advances the iterator to the subsequent event, returning whether there
  8885  // are any more events found. In case of a retrieval or parsing error, false is
  8886  // returned and Error() can be queried for the exact failure.
  8887  func (it *BridgeTransferRequestValueTransferIterator) Next() bool {
  8888  	// If the iterator failed, stop iterating
  8889  	if it.fail != nil {
  8890  		return false
  8891  	}
  8892  	// If the iterator completed, deliver directly whatever's available
  8893  	if it.done {
  8894  		select {
  8895  		case log := <-it.logs:
  8896  			it.Event = new(BridgeTransferRequestValueTransfer)
  8897  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  8898  				it.fail = err
  8899  				return false
  8900  			}
  8901  			it.Event.Raw = log
  8902  			return true
  8903  
  8904  		default:
  8905  			return false
  8906  		}
  8907  	}
  8908  	// Iterator still in progress, wait for either a data or an error event
  8909  	select {
  8910  	case log := <-it.logs:
  8911  		it.Event = new(BridgeTransferRequestValueTransfer)
  8912  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  8913  			it.fail = err
  8914  			return false
  8915  		}
  8916  		it.Event.Raw = log
  8917  		return true
  8918  
  8919  	case err := <-it.sub.Err():
  8920  		it.done = true
  8921  		it.fail = err
  8922  		return it.Next()
  8923  	}
  8924  }
  8925  
  8926  // Error returns any retrieval or parsing error occurred during filtering.
  8927  func (it *BridgeTransferRequestValueTransferIterator) Error() error {
  8928  	return it.fail
  8929  }
  8930  
  8931  // Close terminates the iteration process, releasing any pending underlying
  8932  // resources.
  8933  func (it *BridgeTransferRequestValueTransferIterator) Close() error {
  8934  	it.sub.Unsubscribe()
  8935  	return nil
  8936  }
  8937  
  8938  // BridgeTransferRequestValueTransfer represents a RequestValueTransfer event raised by the BridgeTransfer contract.
  8939  type BridgeTransferRequestValueTransfer struct {
  8940  	TokenType      uint8
  8941  	From           common.Address
  8942  	To             common.Address
  8943  	TokenAddress   common.Address
  8944  	ValueOrTokenId *big.Int
  8945  	RequestNonce   uint64
  8946  	Fee            *big.Int
  8947  	ExtraData      []byte
  8948  	Raw            types.Log // Blockchain specific contextual infos
  8949  }
  8950  
  8951  // FilterRequestValueTransfer is a free log retrieval operation binding the contract event 0xeff76c36e53fa5ff52f27acc8a34d5047a8246abb07b77b12f1309f71e337f09.
  8952  //
  8953  // Solidity: event RequestValueTransfer(uint8 tokenType, address indexed from, address indexed to, address indexed tokenAddress, uint256 valueOrTokenId, uint64 requestNonce, uint256 fee, bytes extraData)
  8954  func (_BridgeTransfer *BridgeTransferFilterer) FilterRequestValueTransfer(opts *bind.FilterOpts, from []common.Address, to []common.Address, tokenAddress []common.Address) (*BridgeTransferRequestValueTransferIterator, error) {
  8955  
  8956  	var fromRule []interface{}
  8957  	for _, fromItem := range from {
  8958  		fromRule = append(fromRule, fromItem)
  8959  	}
  8960  	var toRule []interface{}
  8961  	for _, toItem := range to {
  8962  		toRule = append(toRule, toItem)
  8963  	}
  8964  	var tokenAddressRule []interface{}
  8965  	for _, tokenAddressItem := range tokenAddress {
  8966  		tokenAddressRule = append(tokenAddressRule, tokenAddressItem)
  8967  	}
  8968  
  8969  	logs, sub, err := _BridgeTransfer.contract.FilterLogs(opts, "RequestValueTransfer", fromRule, toRule, tokenAddressRule)
  8970  	if err != nil {
  8971  		return nil, err
  8972  	}
  8973  	return &BridgeTransferRequestValueTransferIterator{contract: _BridgeTransfer.contract, event: "RequestValueTransfer", logs: logs, sub: sub}, nil
  8974  }
  8975  
  8976  // WatchRequestValueTransfer is a free log subscription operation binding the contract event 0xeff76c36e53fa5ff52f27acc8a34d5047a8246abb07b77b12f1309f71e337f09.
  8977  //
  8978  // Solidity: event RequestValueTransfer(uint8 tokenType, address indexed from, address indexed to, address indexed tokenAddress, uint256 valueOrTokenId, uint64 requestNonce, uint256 fee, bytes extraData)
  8979  func (_BridgeTransfer *BridgeTransferFilterer) WatchRequestValueTransfer(opts *bind.WatchOpts, sink chan<- *BridgeTransferRequestValueTransfer, from []common.Address, to []common.Address, tokenAddress []common.Address) (event.Subscription, error) {
  8980  
  8981  	var fromRule []interface{}
  8982  	for _, fromItem := range from {
  8983  		fromRule = append(fromRule, fromItem)
  8984  	}
  8985  	var toRule []interface{}
  8986  	for _, toItem := range to {
  8987  		toRule = append(toRule, toItem)
  8988  	}
  8989  	var tokenAddressRule []interface{}
  8990  	for _, tokenAddressItem := range tokenAddress {
  8991  		tokenAddressRule = append(tokenAddressRule, tokenAddressItem)
  8992  	}
  8993  
  8994  	logs, sub, err := _BridgeTransfer.contract.WatchLogs(opts, "RequestValueTransfer", fromRule, toRule, tokenAddressRule)
  8995  	if err != nil {
  8996  		return nil, err
  8997  	}
  8998  	return event.NewSubscription(func(quit <-chan struct{}) error {
  8999  		defer sub.Unsubscribe()
  9000  		for {
  9001  			select {
  9002  			case log := <-logs:
  9003  				// New log arrived, parse the event and forward to the user
  9004  				event := new(BridgeTransferRequestValueTransfer)
  9005  				if err := _BridgeTransfer.contract.UnpackLog(event, "RequestValueTransfer", log); err != nil {
  9006  					return err
  9007  				}
  9008  				event.Raw = log
  9009  
  9010  				select {
  9011  				case sink <- event:
  9012  				case err := <-sub.Err():
  9013  					return err
  9014  				case <-quit:
  9015  					return nil
  9016  				}
  9017  			case err := <-sub.Err():
  9018  				return err
  9019  			case <-quit:
  9020  				return nil
  9021  			}
  9022  		}
  9023  	}), nil
  9024  }
  9025  
  9026  // ParseRequestValueTransfer is a log parse operation binding the contract event 0xeff76c36e53fa5ff52f27acc8a34d5047a8246abb07b77b12f1309f71e337f09.
  9027  //
  9028  // Solidity: event RequestValueTransfer(uint8 tokenType, address indexed from, address indexed to, address indexed tokenAddress, uint256 valueOrTokenId, uint64 requestNonce, uint256 fee, bytes extraData)
  9029  func (_BridgeTransfer *BridgeTransferFilterer) ParseRequestValueTransfer(log types.Log) (*BridgeTransferRequestValueTransfer, error) {
  9030  	event := new(BridgeTransferRequestValueTransfer)
  9031  	if err := _BridgeTransfer.contract.UnpackLog(event, "RequestValueTransfer", log); err != nil {
  9032  		return nil, err
  9033  	}
  9034  	return event, nil
  9035  }
  9036  
  9037  // BridgeTransferRequestValueTransferEncodedIterator is returned from FilterRequestValueTransferEncoded and is used to iterate over the raw logs and unpacked data for RequestValueTransferEncoded events raised by the BridgeTransfer contract.
  9038  type BridgeTransferRequestValueTransferEncodedIterator struct {
  9039  	Event *BridgeTransferRequestValueTransferEncoded // Event containing the contract specifics and raw log
  9040  
  9041  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  9042  	event    string              // Event name to use for unpacking event data
  9043  
  9044  	logs chan types.Log      // Log channel receiving the found contract events
  9045  	sub  klaytn.Subscription // Subscription for errors, completion and termination
  9046  	done bool                // Whether the subscription completed delivering logs
  9047  	fail error               // Occurred error to stop iteration
  9048  }
  9049  
  9050  // Next advances the iterator to the subsequent event, returning whether there
  9051  // are any more events found. In case of a retrieval or parsing error, false is
  9052  // returned and Error() can be queried for the exact failure.
  9053  func (it *BridgeTransferRequestValueTransferEncodedIterator) Next() bool {
  9054  	// If the iterator failed, stop iterating
  9055  	if it.fail != nil {
  9056  		return false
  9057  	}
  9058  	// If the iterator completed, deliver directly whatever's available
  9059  	if it.done {
  9060  		select {
  9061  		case log := <-it.logs:
  9062  			it.Event = new(BridgeTransferRequestValueTransferEncoded)
  9063  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  9064  				it.fail = err
  9065  				return false
  9066  			}
  9067  			it.Event.Raw = log
  9068  			return true
  9069  
  9070  		default:
  9071  			return false
  9072  		}
  9073  	}
  9074  	// Iterator still in progress, wait for either a data or an error event
  9075  	select {
  9076  	case log := <-it.logs:
  9077  		it.Event = new(BridgeTransferRequestValueTransferEncoded)
  9078  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  9079  			it.fail = err
  9080  			return false
  9081  		}
  9082  		it.Event.Raw = log
  9083  		return true
  9084  
  9085  	case err := <-it.sub.Err():
  9086  		it.done = true
  9087  		it.fail = err
  9088  		return it.Next()
  9089  	}
  9090  }
  9091  
  9092  // Error returns any retrieval or parsing error occurred during filtering.
  9093  func (it *BridgeTransferRequestValueTransferEncodedIterator) Error() error {
  9094  	return it.fail
  9095  }
  9096  
  9097  // Close terminates the iteration process, releasing any pending underlying
  9098  // resources.
  9099  func (it *BridgeTransferRequestValueTransferEncodedIterator) Close() error {
  9100  	it.sub.Unsubscribe()
  9101  	return nil
  9102  }
  9103  
  9104  // BridgeTransferRequestValueTransferEncoded represents a RequestValueTransferEncoded event raised by the BridgeTransfer contract.
  9105  type BridgeTransferRequestValueTransferEncoded struct {
  9106  	TokenType      uint8
  9107  	From           common.Address
  9108  	To             common.Address
  9109  	TokenAddress   common.Address
  9110  	ValueOrTokenId *big.Int
  9111  	RequestNonce   uint64
  9112  	Fee            *big.Int
  9113  	ExtraData      []byte
  9114  	EncodingVer    uint8
  9115  	EncodedData    []byte
  9116  	Raw            types.Log // Blockchain specific contextual infos
  9117  }
  9118  
  9119  // FilterRequestValueTransferEncoded is a free log retrieval operation binding the contract event 0x17d76053ca34a4dd8c402fe6498deb797fac89bf7ed02f3f5161aa9368cc8c1f.
  9120  //
  9121  // Solidity: event RequestValueTransferEncoded(uint8 tokenType, address indexed from, address indexed to, address indexed tokenAddress, uint256 valueOrTokenId, uint64 requestNonce, uint256 fee, bytes extraData, uint8 encodingVer, bytes encodedData)
  9122  func (_BridgeTransfer *BridgeTransferFilterer) FilterRequestValueTransferEncoded(opts *bind.FilterOpts, from []common.Address, to []common.Address, tokenAddress []common.Address) (*BridgeTransferRequestValueTransferEncodedIterator, error) {
  9123  
  9124  	var fromRule []interface{}
  9125  	for _, fromItem := range from {
  9126  		fromRule = append(fromRule, fromItem)
  9127  	}
  9128  	var toRule []interface{}
  9129  	for _, toItem := range to {
  9130  		toRule = append(toRule, toItem)
  9131  	}
  9132  	var tokenAddressRule []interface{}
  9133  	for _, tokenAddressItem := range tokenAddress {
  9134  		tokenAddressRule = append(tokenAddressRule, tokenAddressItem)
  9135  	}
  9136  
  9137  	logs, sub, err := _BridgeTransfer.contract.FilterLogs(opts, "RequestValueTransferEncoded", fromRule, toRule, tokenAddressRule)
  9138  	if err != nil {
  9139  		return nil, err
  9140  	}
  9141  	return &BridgeTransferRequestValueTransferEncodedIterator{contract: _BridgeTransfer.contract, event: "RequestValueTransferEncoded", logs: logs, sub: sub}, nil
  9142  }
  9143  
  9144  // WatchRequestValueTransferEncoded is a free log subscription operation binding the contract event 0x17d76053ca34a4dd8c402fe6498deb797fac89bf7ed02f3f5161aa9368cc8c1f.
  9145  //
  9146  // Solidity: event RequestValueTransferEncoded(uint8 tokenType, address indexed from, address indexed to, address indexed tokenAddress, uint256 valueOrTokenId, uint64 requestNonce, uint256 fee, bytes extraData, uint8 encodingVer, bytes encodedData)
  9147  func (_BridgeTransfer *BridgeTransferFilterer) WatchRequestValueTransferEncoded(opts *bind.WatchOpts, sink chan<- *BridgeTransferRequestValueTransferEncoded, from []common.Address, to []common.Address, tokenAddress []common.Address) (event.Subscription, error) {
  9148  
  9149  	var fromRule []interface{}
  9150  	for _, fromItem := range from {
  9151  		fromRule = append(fromRule, fromItem)
  9152  	}
  9153  	var toRule []interface{}
  9154  	for _, toItem := range to {
  9155  		toRule = append(toRule, toItem)
  9156  	}
  9157  	var tokenAddressRule []interface{}
  9158  	for _, tokenAddressItem := range tokenAddress {
  9159  		tokenAddressRule = append(tokenAddressRule, tokenAddressItem)
  9160  	}
  9161  
  9162  	logs, sub, err := _BridgeTransfer.contract.WatchLogs(opts, "RequestValueTransferEncoded", fromRule, toRule, tokenAddressRule)
  9163  	if err != nil {
  9164  		return nil, err
  9165  	}
  9166  	return event.NewSubscription(func(quit <-chan struct{}) error {
  9167  		defer sub.Unsubscribe()
  9168  		for {
  9169  			select {
  9170  			case log := <-logs:
  9171  				// New log arrived, parse the event and forward to the user
  9172  				event := new(BridgeTransferRequestValueTransferEncoded)
  9173  				if err := _BridgeTransfer.contract.UnpackLog(event, "RequestValueTransferEncoded", log); err != nil {
  9174  					return err
  9175  				}
  9176  				event.Raw = log
  9177  
  9178  				select {
  9179  				case sink <- event:
  9180  				case err := <-sub.Err():
  9181  					return err
  9182  				case <-quit:
  9183  					return nil
  9184  				}
  9185  			case err := <-sub.Err():
  9186  				return err
  9187  			case <-quit:
  9188  				return nil
  9189  			}
  9190  		}
  9191  	}), nil
  9192  }
  9193  
  9194  // ParseRequestValueTransferEncoded is a log parse operation binding the contract event 0x17d76053ca34a4dd8c402fe6498deb797fac89bf7ed02f3f5161aa9368cc8c1f.
  9195  //
  9196  // Solidity: event RequestValueTransferEncoded(uint8 tokenType, address indexed from, address indexed to, address indexed tokenAddress, uint256 valueOrTokenId, uint64 requestNonce, uint256 fee, bytes extraData, uint8 encodingVer, bytes encodedData)
  9197  func (_BridgeTransfer *BridgeTransferFilterer) ParseRequestValueTransferEncoded(log types.Log) (*BridgeTransferRequestValueTransferEncoded, error) {
  9198  	event := new(BridgeTransferRequestValueTransferEncoded)
  9199  	if err := _BridgeTransfer.contract.UnpackLog(event, "RequestValueTransferEncoded", log); err != nil {
  9200  		return nil, err
  9201  	}
  9202  	return event, nil
  9203  }
  9204  
  9205  // BridgeTransferERC20MetaData contains all meta data concerning the BridgeTransferERC20 contract.
  9206  var BridgeTransferERC20MetaData = &bind.MetaData{
  9207  	ABI: "[{\"constant\":false,\"inputs\":[{\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"lockToken\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"uint64\"}],\"name\":\"handleNoncesToBlockNums\",\"outputs\":[{\"name\":\"\",\"type\":\"uint64\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"address\"}],\"name\":\"operators\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"isRunning\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_tokenAddress\",\"type\":\"address\"},{\"name\":\"_to\",\"type\":\"address\"},{\"name\":\"_value\",\"type\":\"uint256\"},{\"name\":\"_feeLimit\",\"type\":\"uint256\"},{\"name\":\"_extraData\",\"type\":\"bytes\"}],\"name\":\"requestERC20Transfer\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_token\",\"type\":\"address\"},{\"name\":\"_fee\",\"type\":\"uint256\"},{\"name\":\"_requestNonce\",\"type\":\"uint64\"}],\"name\":\"setERC20Fee\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_operator\",\"type\":\"address\"}],\"name\":\"registerOperator\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"MAX_OPERATOR\",\"outputs\":[{\"name\":\"\",\"type\":\"uint64\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"registeredTokenList\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_requestTxHash\",\"type\":\"bytes32\"},{\"name\":\"_from\",\"type\":\"address\"},{\"name\":\"_to\",\"type\":\"address\"},{\"name\":\"_tokenAddress\",\"type\":\"address\"},{\"name\":\"_value\",\"type\":\"uint256\"},{\"name\":\"_requestedNonce\",\"type\":\"uint64\"},{\"name\":\"_requestedBlockNumber\",\"type\":\"uint64\"},{\"name\":\"_extraData\",\"type\":\"bytes\"}],\"name\":\"handleERC20Transfer\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_token\",\"type\":\"address\"},{\"name\":\"_cToken\",\"type\":\"address\"}],\"name\":\"registerToken\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"address\"}],\"name\":\"feeOfERC20\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"address\"}],\"name\":\"indexOfTokens\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"lowerHandleNonce\",\"outputs\":[{\"name\":\"\",\"type\":\"uint64\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"upperHandleNonce\",\"outputs\":[{\"name\":\"\",\"type\":\"uint64\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"uint8\"}],\"name\":\"operatorThresholds\",\"outputs\":[{\"name\":\"\",\"type\":\"uint8\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"address\"}],\"name\":\"lockedTokens\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"modeMintBurn\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"requestNonce\",\"outputs\":[{\"name\":\"\",\"type\":\"uint64\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"handledRequestTx\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"address\"}],\"name\":\"registeredTokens\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"isOwner\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"uint64\"}],\"name\":\"closedValueTransferVotes\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"recoveryBlockNumber\",\"outputs\":[{\"name\":\"\",\"type\":\"uint64\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"unlockToken\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"configurationNonce\",\"outputs\":[{\"name\":\"\",\"type\":\"uint64\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getOperatorList\",\"outputs\":[{\"name\":\"\",\"type\":\"address[]\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"feeReceiver\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"deregisterToken\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"feeOfKLAY\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_status\",\"type\":\"bool\"}],\"name\":\"start\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"operatorList\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_operator\",\"type\":\"address\"}],\"name\":\"deregisterOperator\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getRegisteredTokenList\",\"outputs\":[{\"name\":\"\",\"type\":\"address[]\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_voteType\",\"type\":\"uint8\"},{\"name\":\"_threshold\",\"type\":\"uint8\"}],\"name\":\"setOperatorThreshold\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_feeReceiver\",\"type\":\"address\"}],\"name\":\"setFeeReceiver\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_from\",\"type\":\"address\"},{\"name\":\"_to\",\"type\":\"address\"},{\"name\":\"_value\",\"type\":\"uint256\"},{\"name\":\"_feeLimit\",\"type\":\"uint256\"},{\"name\":\"_extraData\",\"type\":\"bytes\"}],\"name\":\"onERC20Received\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"tokenType\",\"type\":\"uint8\"},{\"indexed\":true,\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"tokenAddress\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"valueOrTokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"requestNonce\",\"type\":\"uint64\"},{\"indexed\":false,\"name\":\"fee\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"extraData\",\"type\":\"bytes\"}],\"name\":\"RequestValueTransfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"tokenType\",\"type\":\"uint8\"},{\"indexed\":true,\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"tokenAddress\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"valueOrTokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"requestNonce\",\"type\":\"uint64\"},{\"indexed\":false,\"name\":\"fee\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"extraData\",\"type\":\"bytes\"},{\"indexed\":false,\"name\":\"encodingVer\",\"type\":\"uint8\"},{\"indexed\":false,\"name\":\"encodedData\",\"type\":\"bytes\"}],\"name\":\"RequestValueTransferEncoded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"requestTxHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"name\":\"tokenType\",\"type\":\"uint8\"},{\"indexed\":true,\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"tokenAddress\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"valueOrTokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"handleNonce\",\"type\":\"uint64\"},{\"indexed\":false,\"name\":\"lowerHandleNonce\",\"type\":\"uint64\"},{\"indexed\":false,\"name\":\"extraData\",\"type\":\"bytes\"}],\"name\":\"HandleValueTransfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"token\",\"type\":\"address\"}],\"name\":\"TokenRegistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"token\",\"type\":\"address\"}],\"name\":\"TokenDeregistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"token\",\"type\":\"address\"}],\"name\":\"TokenLocked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"token\",\"type\":\"address\"}],\"name\":\"TokenUnlocked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"fee\",\"type\":\"uint256\"}],\"name\":\"KLAYFeeChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"token\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"fee\",\"type\":\"uint256\"}],\"name\":\"ERC20FeeChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"feeReceiver\",\"type\":\"address\"}],\"name\":\"FeeReceiverChanged\",\"type\":\"event\"}]",
  9208  	Sigs: map[string]string{
  9209  		"3a3099d1": "MAX_OPERATOR()",
  9210  		"9832c1d7": "closedValueTransferVotes(uint64)",
  9211  		"ac6fff0b": "configurationNonce()",
  9212  		"d8cf98ca": "deregisterOperator(address)",
  9213  		"bab2af1d": "deregisterToken(address)",
  9214  		"488af871": "feeOfERC20(address)",
  9215  		"c263b5d6": "feeOfKLAY()",
  9216  		"b3f00674": "feeReceiver()",
  9217  		"b2c01030": "getOperatorList()",
  9218  		"ea21eade": "getRegisteredTokenList()",
  9219  		"407e6bae": "handleERC20Transfer(bytes32,address,address,address,uint256,uint64,uint64,bytes)",
  9220  		"13a6738a": "handleNoncesToBlockNums(uint64)",
  9221  		"8a75eee2": "handledRequestTx(bytes32)",
  9222  		"48a18a6a": "indexOfTokens(address)",
  9223  		"8f32d59b": "isOwner()",
  9224  		"2014e5d1": "isRunning()",
  9225  		"10693fcd": "lockToken(address)",
  9226  		"5eb7413a": "lockedTokens(address)",
  9227  		"4b40b826": "lowerHandleNonce()",
  9228  		"6e176ec2": "modeMintBurn()",
  9229  		"f1656e53": "onERC20Received(address,address,uint256,uint256,bytes)",
  9230  		"cb38f407": "operatorList(uint256)",
  9231  		"5526f76b": "operatorThresholds(uint8)",
  9232  		"13e7c9d8": "operators(address)",
  9233  		"8da5cb5b": "owner()",
  9234  		"989ba0d3": "recoveryBlockNumber()",
  9235  		"3682a450": "registerOperator(address)",
  9236  		"4739f7e5": "registerToken(address,address)",
  9237  		"3e4fe949": "registeredTokenList(uint256)",
  9238  		"8c0bd916": "registeredTokens(address)",
  9239  		"715018a6": "renounceOwnership()",
  9240  		"26c23b54": "requestERC20Transfer(address,address,uint256,uint256,bytes)",
  9241  		"7c1a0302": "requestNonce()",
  9242  		"2f88396c": "setERC20Fee(address,uint256,uint64)",
  9243  		"efdcd974": "setFeeReceiver(address)",
  9244  		"ee2aec65": "setOperatorThreshold(uint8,uint8)",
  9245  		"c877cf37": "start(bool)",
  9246  		"f2fde38b": "transferOwnership(address)",
  9247  		"9ef2017b": "unlockToken(address)",
  9248  		"54edad72": "upperHandleNonce()",
  9249  	},
  9250  }
  9251  
  9252  // BridgeTransferERC20ABI is the input ABI used to generate the binding from.
  9253  // Deprecated: Use BridgeTransferERC20MetaData.ABI instead.
  9254  var BridgeTransferERC20ABI = BridgeTransferERC20MetaData.ABI
  9255  
  9256  // BridgeTransferERC20BinRuntime is the compiled bytecode used for adding genesis block without deploying code.
  9257  const BridgeTransferERC20BinRuntime = ``
  9258  
  9259  // BridgeTransferERC20FuncSigs maps the 4-byte function signature to its string representation.
  9260  // Deprecated: Use BridgeTransferERC20MetaData.Sigs instead.
  9261  var BridgeTransferERC20FuncSigs = BridgeTransferERC20MetaData.Sigs
  9262  
  9263  // BridgeTransferERC20 is an auto generated Go binding around a Klaytn contract.
  9264  type BridgeTransferERC20 struct {
  9265  	BridgeTransferERC20Caller     // Read-only binding to the contract
  9266  	BridgeTransferERC20Transactor // Write-only binding to the contract
  9267  	BridgeTransferERC20Filterer   // Log filterer for contract events
  9268  }
  9269  
  9270  // BridgeTransferERC20Caller is an auto generated read-only Go binding around a Klaytn contract.
  9271  type BridgeTransferERC20Caller struct {
  9272  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  9273  }
  9274  
  9275  // BridgeTransferERC20Transactor is an auto generated write-only Go binding around a Klaytn contract.
  9276  type BridgeTransferERC20Transactor struct {
  9277  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  9278  }
  9279  
  9280  // BridgeTransferERC20Filterer is an auto generated log filtering Go binding around a Klaytn contract events.
  9281  type BridgeTransferERC20Filterer struct {
  9282  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  9283  }
  9284  
  9285  // BridgeTransferERC20Session is an auto generated Go binding around a Klaytn contract,
  9286  // with pre-set call and transact options.
  9287  type BridgeTransferERC20Session struct {
  9288  	Contract     *BridgeTransferERC20 // Generic contract binding to set the session for
  9289  	CallOpts     bind.CallOpts        // Call options to use throughout this session
  9290  	TransactOpts bind.TransactOpts    // Transaction auth options to use throughout this session
  9291  }
  9292  
  9293  // BridgeTransferERC20CallerSession is an auto generated read-only Go binding around a Klaytn contract,
  9294  // with pre-set call options.
  9295  type BridgeTransferERC20CallerSession struct {
  9296  	Contract *BridgeTransferERC20Caller // Generic contract caller binding to set the session for
  9297  	CallOpts bind.CallOpts              // Call options to use throughout this session
  9298  }
  9299  
  9300  // BridgeTransferERC20TransactorSession is an auto generated write-only Go binding around a Klaytn contract,
  9301  // with pre-set transact options.
  9302  type BridgeTransferERC20TransactorSession struct {
  9303  	Contract     *BridgeTransferERC20Transactor // Generic contract transactor binding to set the session for
  9304  	TransactOpts bind.TransactOpts              // Transaction auth options to use throughout this session
  9305  }
  9306  
  9307  // BridgeTransferERC20Raw is an auto generated low-level Go binding around a Klaytn contract.
  9308  type BridgeTransferERC20Raw struct {
  9309  	Contract *BridgeTransferERC20 // Generic contract binding to access the raw methods on
  9310  }
  9311  
  9312  // BridgeTransferERC20CallerRaw is an auto generated low-level read-only Go binding around a Klaytn contract.
  9313  type BridgeTransferERC20CallerRaw struct {
  9314  	Contract *BridgeTransferERC20Caller // Generic read-only contract binding to access the raw methods on
  9315  }
  9316  
  9317  // BridgeTransferERC20TransactorRaw is an auto generated low-level write-only Go binding around a Klaytn contract.
  9318  type BridgeTransferERC20TransactorRaw struct {
  9319  	Contract *BridgeTransferERC20Transactor // Generic write-only contract binding to access the raw methods on
  9320  }
  9321  
  9322  // NewBridgeTransferERC20 creates a new instance of BridgeTransferERC20, bound to a specific deployed contract.
  9323  func NewBridgeTransferERC20(address common.Address, backend bind.ContractBackend) (*BridgeTransferERC20, error) {
  9324  	contract, err := bindBridgeTransferERC20(address, backend, backend, backend)
  9325  	if err != nil {
  9326  		return nil, err
  9327  	}
  9328  	return &BridgeTransferERC20{BridgeTransferERC20Caller: BridgeTransferERC20Caller{contract: contract}, BridgeTransferERC20Transactor: BridgeTransferERC20Transactor{contract: contract}, BridgeTransferERC20Filterer: BridgeTransferERC20Filterer{contract: contract}}, nil
  9329  }
  9330  
  9331  // NewBridgeTransferERC20Caller creates a new read-only instance of BridgeTransferERC20, bound to a specific deployed contract.
  9332  func NewBridgeTransferERC20Caller(address common.Address, caller bind.ContractCaller) (*BridgeTransferERC20Caller, error) {
  9333  	contract, err := bindBridgeTransferERC20(address, caller, nil, nil)
  9334  	if err != nil {
  9335  		return nil, err
  9336  	}
  9337  	return &BridgeTransferERC20Caller{contract: contract}, nil
  9338  }
  9339  
  9340  // NewBridgeTransferERC20Transactor creates a new write-only instance of BridgeTransferERC20, bound to a specific deployed contract.
  9341  func NewBridgeTransferERC20Transactor(address common.Address, transactor bind.ContractTransactor) (*BridgeTransferERC20Transactor, error) {
  9342  	contract, err := bindBridgeTransferERC20(address, nil, transactor, nil)
  9343  	if err != nil {
  9344  		return nil, err
  9345  	}
  9346  	return &BridgeTransferERC20Transactor{contract: contract}, nil
  9347  }
  9348  
  9349  // NewBridgeTransferERC20Filterer creates a new log filterer instance of BridgeTransferERC20, bound to a specific deployed contract.
  9350  func NewBridgeTransferERC20Filterer(address common.Address, filterer bind.ContractFilterer) (*BridgeTransferERC20Filterer, error) {
  9351  	contract, err := bindBridgeTransferERC20(address, nil, nil, filterer)
  9352  	if err != nil {
  9353  		return nil, err
  9354  	}
  9355  	return &BridgeTransferERC20Filterer{contract: contract}, nil
  9356  }
  9357  
  9358  // bindBridgeTransferERC20 binds a generic wrapper to an already deployed contract.
  9359  func bindBridgeTransferERC20(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
  9360  	parsed, err := BridgeTransferERC20MetaData.GetAbi()
  9361  	if err != nil {
  9362  		return nil, err
  9363  	}
  9364  	return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil
  9365  }
  9366  
  9367  // Call invokes the (constant) contract method with params as input values and
  9368  // sets the output to result. The result type might be a single field for simple
  9369  // returns, a slice of interfaces for anonymous returns and a struct for named
  9370  // returns.
  9371  func (_BridgeTransferERC20 *BridgeTransferERC20Raw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
  9372  	return _BridgeTransferERC20.Contract.BridgeTransferERC20Caller.contract.Call(opts, result, method, params...)
  9373  }
  9374  
  9375  // Transfer initiates a plain transaction to move funds to the contract, calling
  9376  // its default method if one is available.
  9377  func (_BridgeTransferERC20 *BridgeTransferERC20Raw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
  9378  	return _BridgeTransferERC20.Contract.BridgeTransferERC20Transactor.contract.Transfer(opts)
  9379  }
  9380  
  9381  // Transact invokes the (paid) contract method with params as input values.
  9382  func (_BridgeTransferERC20 *BridgeTransferERC20Raw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
  9383  	return _BridgeTransferERC20.Contract.BridgeTransferERC20Transactor.contract.Transact(opts, method, params...)
  9384  }
  9385  
  9386  // Call invokes the (constant) contract method with params as input values and
  9387  // sets the output to result. The result type might be a single field for simple
  9388  // returns, a slice of interfaces for anonymous returns and a struct for named
  9389  // returns.
  9390  func (_BridgeTransferERC20 *BridgeTransferERC20CallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
  9391  	return _BridgeTransferERC20.Contract.contract.Call(opts, result, method, params...)
  9392  }
  9393  
  9394  // Transfer initiates a plain transaction to move funds to the contract, calling
  9395  // its default method if one is available.
  9396  func (_BridgeTransferERC20 *BridgeTransferERC20TransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
  9397  	return _BridgeTransferERC20.Contract.contract.Transfer(opts)
  9398  }
  9399  
  9400  // Transact invokes the (paid) contract method with params as input values.
  9401  func (_BridgeTransferERC20 *BridgeTransferERC20TransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
  9402  	return _BridgeTransferERC20.Contract.contract.Transact(opts, method, params...)
  9403  }
  9404  
  9405  // MAXOPERATOR is a free data retrieval call binding the contract method 0x3a3099d1.
  9406  //
  9407  // Solidity: function MAX_OPERATOR() view returns(uint64)
  9408  func (_BridgeTransferERC20 *BridgeTransferERC20Caller) MAXOPERATOR(opts *bind.CallOpts) (uint64, error) {
  9409  	var out []interface{}
  9410  	err := _BridgeTransferERC20.contract.Call(opts, &out, "MAX_OPERATOR")
  9411  
  9412  	if err != nil {
  9413  		return *new(uint64), err
  9414  	}
  9415  
  9416  	out0 := *abi.ConvertType(out[0], new(uint64)).(*uint64)
  9417  
  9418  	return out0, err
  9419  
  9420  }
  9421  
  9422  // MAXOPERATOR is a free data retrieval call binding the contract method 0x3a3099d1.
  9423  //
  9424  // Solidity: function MAX_OPERATOR() view returns(uint64)
  9425  func (_BridgeTransferERC20 *BridgeTransferERC20Session) MAXOPERATOR() (uint64, error) {
  9426  	return _BridgeTransferERC20.Contract.MAXOPERATOR(&_BridgeTransferERC20.CallOpts)
  9427  }
  9428  
  9429  // MAXOPERATOR is a free data retrieval call binding the contract method 0x3a3099d1.
  9430  //
  9431  // Solidity: function MAX_OPERATOR() view returns(uint64)
  9432  func (_BridgeTransferERC20 *BridgeTransferERC20CallerSession) MAXOPERATOR() (uint64, error) {
  9433  	return _BridgeTransferERC20.Contract.MAXOPERATOR(&_BridgeTransferERC20.CallOpts)
  9434  }
  9435  
  9436  // ClosedValueTransferVotes is a free data retrieval call binding the contract method 0x9832c1d7.
  9437  //
  9438  // Solidity: function closedValueTransferVotes(uint64 ) view returns(bool)
  9439  func (_BridgeTransferERC20 *BridgeTransferERC20Caller) ClosedValueTransferVotes(opts *bind.CallOpts, arg0 uint64) (bool, error) {
  9440  	var out []interface{}
  9441  	err := _BridgeTransferERC20.contract.Call(opts, &out, "closedValueTransferVotes", arg0)
  9442  
  9443  	if err != nil {
  9444  		return *new(bool), err
  9445  	}
  9446  
  9447  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
  9448  
  9449  	return out0, err
  9450  
  9451  }
  9452  
  9453  // ClosedValueTransferVotes is a free data retrieval call binding the contract method 0x9832c1d7.
  9454  //
  9455  // Solidity: function closedValueTransferVotes(uint64 ) view returns(bool)
  9456  func (_BridgeTransferERC20 *BridgeTransferERC20Session) ClosedValueTransferVotes(arg0 uint64) (bool, error) {
  9457  	return _BridgeTransferERC20.Contract.ClosedValueTransferVotes(&_BridgeTransferERC20.CallOpts, arg0)
  9458  }
  9459  
  9460  // ClosedValueTransferVotes is a free data retrieval call binding the contract method 0x9832c1d7.
  9461  //
  9462  // Solidity: function closedValueTransferVotes(uint64 ) view returns(bool)
  9463  func (_BridgeTransferERC20 *BridgeTransferERC20CallerSession) ClosedValueTransferVotes(arg0 uint64) (bool, error) {
  9464  	return _BridgeTransferERC20.Contract.ClosedValueTransferVotes(&_BridgeTransferERC20.CallOpts, arg0)
  9465  }
  9466  
  9467  // ConfigurationNonce is a free data retrieval call binding the contract method 0xac6fff0b.
  9468  //
  9469  // Solidity: function configurationNonce() view returns(uint64)
  9470  func (_BridgeTransferERC20 *BridgeTransferERC20Caller) ConfigurationNonce(opts *bind.CallOpts) (uint64, error) {
  9471  	var out []interface{}
  9472  	err := _BridgeTransferERC20.contract.Call(opts, &out, "configurationNonce")
  9473  
  9474  	if err != nil {
  9475  		return *new(uint64), err
  9476  	}
  9477  
  9478  	out0 := *abi.ConvertType(out[0], new(uint64)).(*uint64)
  9479  
  9480  	return out0, err
  9481  
  9482  }
  9483  
  9484  // ConfigurationNonce is a free data retrieval call binding the contract method 0xac6fff0b.
  9485  //
  9486  // Solidity: function configurationNonce() view returns(uint64)
  9487  func (_BridgeTransferERC20 *BridgeTransferERC20Session) ConfigurationNonce() (uint64, error) {
  9488  	return _BridgeTransferERC20.Contract.ConfigurationNonce(&_BridgeTransferERC20.CallOpts)
  9489  }
  9490  
  9491  // ConfigurationNonce is a free data retrieval call binding the contract method 0xac6fff0b.
  9492  //
  9493  // Solidity: function configurationNonce() view returns(uint64)
  9494  func (_BridgeTransferERC20 *BridgeTransferERC20CallerSession) ConfigurationNonce() (uint64, error) {
  9495  	return _BridgeTransferERC20.Contract.ConfigurationNonce(&_BridgeTransferERC20.CallOpts)
  9496  }
  9497  
  9498  // FeeOfERC20 is a free data retrieval call binding the contract method 0x488af871.
  9499  //
  9500  // Solidity: function feeOfERC20(address ) view returns(uint256)
  9501  func (_BridgeTransferERC20 *BridgeTransferERC20Caller) FeeOfERC20(opts *bind.CallOpts, arg0 common.Address) (*big.Int, error) {
  9502  	var out []interface{}
  9503  	err := _BridgeTransferERC20.contract.Call(opts, &out, "feeOfERC20", arg0)
  9504  
  9505  	if err != nil {
  9506  		return *new(*big.Int), err
  9507  	}
  9508  
  9509  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
  9510  
  9511  	return out0, err
  9512  
  9513  }
  9514  
  9515  // FeeOfERC20 is a free data retrieval call binding the contract method 0x488af871.
  9516  //
  9517  // Solidity: function feeOfERC20(address ) view returns(uint256)
  9518  func (_BridgeTransferERC20 *BridgeTransferERC20Session) FeeOfERC20(arg0 common.Address) (*big.Int, error) {
  9519  	return _BridgeTransferERC20.Contract.FeeOfERC20(&_BridgeTransferERC20.CallOpts, arg0)
  9520  }
  9521  
  9522  // FeeOfERC20 is a free data retrieval call binding the contract method 0x488af871.
  9523  //
  9524  // Solidity: function feeOfERC20(address ) view returns(uint256)
  9525  func (_BridgeTransferERC20 *BridgeTransferERC20CallerSession) FeeOfERC20(arg0 common.Address) (*big.Int, error) {
  9526  	return _BridgeTransferERC20.Contract.FeeOfERC20(&_BridgeTransferERC20.CallOpts, arg0)
  9527  }
  9528  
  9529  // FeeOfKLAY is a free data retrieval call binding the contract method 0xc263b5d6.
  9530  //
  9531  // Solidity: function feeOfKLAY() view returns(uint256)
  9532  func (_BridgeTransferERC20 *BridgeTransferERC20Caller) FeeOfKLAY(opts *bind.CallOpts) (*big.Int, error) {
  9533  	var out []interface{}
  9534  	err := _BridgeTransferERC20.contract.Call(opts, &out, "feeOfKLAY")
  9535  
  9536  	if err != nil {
  9537  		return *new(*big.Int), err
  9538  	}
  9539  
  9540  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
  9541  
  9542  	return out0, err
  9543  
  9544  }
  9545  
  9546  // FeeOfKLAY is a free data retrieval call binding the contract method 0xc263b5d6.
  9547  //
  9548  // Solidity: function feeOfKLAY() view returns(uint256)
  9549  func (_BridgeTransferERC20 *BridgeTransferERC20Session) FeeOfKLAY() (*big.Int, error) {
  9550  	return _BridgeTransferERC20.Contract.FeeOfKLAY(&_BridgeTransferERC20.CallOpts)
  9551  }
  9552  
  9553  // FeeOfKLAY is a free data retrieval call binding the contract method 0xc263b5d6.
  9554  //
  9555  // Solidity: function feeOfKLAY() view returns(uint256)
  9556  func (_BridgeTransferERC20 *BridgeTransferERC20CallerSession) FeeOfKLAY() (*big.Int, error) {
  9557  	return _BridgeTransferERC20.Contract.FeeOfKLAY(&_BridgeTransferERC20.CallOpts)
  9558  }
  9559  
  9560  // FeeReceiver is a free data retrieval call binding the contract method 0xb3f00674.
  9561  //
  9562  // Solidity: function feeReceiver() view returns(address)
  9563  func (_BridgeTransferERC20 *BridgeTransferERC20Caller) FeeReceiver(opts *bind.CallOpts) (common.Address, error) {
  9564  	var out []interface{}
  9565  	err := _BridgeTransferERC20.contract.Call(opts, &out, "feeReceiver")
  9566  
  9567  	if err != nil {
  9568  		return *new(common.Address), err
  9569  	}
  9570  
  9571  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
  9572  
  9573  	return out0, err
  9574  
  9575  }
  9576  
  9577  // FeeReceiver is a free data retrieval call binding the contract method 0xb3f00674.
  9578  //
  9579  // Solidity: function feeReceiver() view returns(address)
  9580  func (_BridgeTransferERC20 *BridgeTransferERC20Session) FeeReceiver() (common.Address, error) {
  9581  	return _BridgeTransferERC20.Contract.FeeReceiver(&_BridgeTransferERC20.CallOpts)
  9582  }
  9583  
  9584  // FeeReceiver is a free data retrieval call binding the contract method 0xb3f00674.
  9585  //
  9586  // Solidity: function feeReceiver() view returns(address)
  9587  func (_BridgeTransferERC20 *BridgeTransferERC20CallerSession) FeeReceiver() (common.Address, error) {
  9588  	return _BridgeTransferERC20.Contract.FeeReceiver(&_BridgeTransferERC20.CallOpts)
  9589  }
  9590  
  9591  // GetOperatorList is a free data retrieval call binding the contract method 0xb2c01030.
  9592  //
  9593  // Solidity: function getOperatorList() view returns(address[])
  9594  func (_BridgeTransferERC20 *BridgeTransferERC20Caller) GetOperatorList(opts *bind.CallOpts) ([]common.Address, error) {
  9595  	var out []interface{}
  9596  	err := _BridgeTransferERC20.contract.Call(opts, &out, "getOperatorList")
  9597  
  9598  	if err != nil {
  9599  		return *new([]common.Address), err
  9600  	}
  9601  
  9602  	out0 := *abi.ConvertType(out[0], new([]common.Address)).(*[]common.Address)
  9603  
  9604  	return out0, err
  9605  
  9606  }
  9607  
  9608  // GetOperatorList is a free data retrieval call binding the contract method 0xb2c01030.
  9609  //
  9610  // Solidity: function getOperatorList() view returns(address[])
  9611  func (_BridgeTransferERC20 *BridgeTransferERC20Session) GetOperatorList() ([]common.Address, error) {
  9612  	return _BridgeTransferERC20.Contract.GetOperatorList(&_BridgeTransferERC20.CallOpts)
  9613  }
  9614  
  9615  // GetOperatorList is a free data retrieval call binding the contract method 0xb2c01030.
  9616  //
  9617  // Solidity: function getOperatorList() view returns(address[])
  9618  func (_BridgeTransferERC20 *BridgeTransferERC20CallerSession) GetOperatorList() ([]common.Address, error) {
  9619  	return _BridgeTransferERC20.Contract.GetOperatorList(&_BridgeTransferERC20.CallOpts)
  9620  }
  9621  
  9622  // GetRegisteredTokenList is a free data retrieval call binding the contract method 0xea21eade.
  9623  //
  9624  // Solidity: function getRegisteredTokenList() view returns(address[])
  9625  func (_BridgeTransferERC20 *BridgeTransferERC20Caller) GetRegisteredTokenList(opts *bind.CallOpts) ([]common.Address, error) {
  9626  	var out []interface{}
  9627  	err := _BridgeTransferERC20.contract.Call(opts, &out, "getRegisteredTokenList")
  9628  
  9629  	if err != nil {
  9630  		return *new([]common.Address), err
  9631  	}
  9632  
  9633  	out0 := *abi.ConvertType(out[0], new([]common.Address)).(*[]common.Address)
  9634  
  9635  	return out0, err
  9636  
  9637  }
  9638  
  9639  // GetRegisteredTokenList is a free data retrieval call binding the contract method 0xea21eade.
  9640  //
  9641  // Solidity: function getRegisteredTokenList() view returns(address[])
  9642  func (_BridgeTransferERC20 *BridgeTransferERC20Session) GetRegisteredTokenList() ([]common.Address, error) {
  9643  	return _BridgeTransferERC20.Contract.GetRegisteredTokenList(&_BridgeTransferERC20.CallOpts)
  9644  }
  9645  
  9646  // GetRegisteredTokenList is a free data retrieval call binding the contract method 0xea21eade.
  9647  //
  9648  // Solidity: function getRegisteredTokenList() view returns(address[])
  9649  func (_BridgeTransferERC20 *BridgeTransferERC20CallerSession) GetRegisteredTokenList() ([]common.Address, error) {
  9650  	return _BridgeTransferERC20.Contract.GetRegisteredTokenList(&_BridgeTransferERC20.CallOpts)
  9651  }
  9652  
  9653  // HandleNoncesToBlockNums is a free data retrieval call binding the contract method 0x13a6738a.
  9654  //
  9655  // Solidity: function handleNoncesToBlockNums(uint64 ) view returns(uint64)
  9656  func (_BridgeTransferERC20 *BridgeTransferERC20Caller) HandleNoncesToBlockNums(opts *bind.CallOpts, arg0 uint64) (uint64, error) {
  9657  	var out []interface{}
  9658  	err := _BridgeTransferERC20.contract.Call(opts, &out, "handleNoncesToBlockNums", arg0)
  9659  
  9660  	if err != nil {
  9661  		return *new(uint64), err
  9662  	}
  9663  
  9664  	out0 := *abi.ConvertType(out[0], new(uint64)).(*uint64)
  9665  
  9666  	return out0, err
  9667  
  9668  }
  9669  
  9670  // HandleNoncesToBlockNums is a free data retrieval call binding the contract method 0x13a6738a.
  9671  //
  9672  // Solidity: function handleNoncesToBlockNums(uint64 ) view returns(uint64)
  9673  func (_BridgeTransferERC20 *BridgeTransferERC20Session) HandleNoncesToBlockNums(arg0 uint64) (uint64, error) {
  9674  	return _BridgeTransferERC20.Contract.HandleNoncesToBlockNums(&_BridgeTransferERC20.CallOpts, arg0)
  9675  }
  9676  
  9677  // HandleNoncesToBlockNums is a free data retrieval call binding the contract method 0x13a6738a.
  9678  //
  9679  // Solidity: function handleNoncesToBlockNums(uint64 ) view returns(uint64)
  9680  func (_BridgeTransferERC20 *BridgeTransferERC20CallerSession) HandleNoncesToBlockNums(arg0 uint64) (uint64, error) {
  9681  	return _BridgeTransferERC20.Contract.HandleNoncesToBlockNums(&_BridgeTransferERC20.CallOpts, arg0)
  9682  }
  9683  
  9684  // HandledRequestTx is a free data retrieval call binding the contract method 0x8a75eee2.
  9685  //
  9686  // Solidity: function handledRequestTx(bytes32 ) view returns(bool)
  9687  func (_BridgeTransferERC20 *BridgeTransferERC20Caller) HandledRequestTx(opts *bind.CallOpts, arg0 [32]byte) (bool, error) {
  9688  	var out []interface{}
  9689  	err := _BridgeTransferERC20.contract.Call(opts, &out, "handledRequestTx", arg0)
  9690  
  9691  	if err != nil {
  9692  		return *new(bool), err
  9693  	}
  9694  
  9695  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
  9696  
  9697  	return out0, err
  9698  
  9699  }
  9700  
  9701  // HandledRequestTx is a free data retrieval call binding the contract method 0x8a75eee2.
  9702  //
  9703  // Solidity: function handledRequestTx(bytes32 ) view returns(bool)
  9704  func (_BridgeTransferERC20 *BridgeTransferERC20Session) HandledRequestTx(arg0 [32]byte) (bool, error) {
  9705  	return _BridgeTransferERC20.Contract.HandledRequestTx(&_BridgeTransferERC20.CallOpts, arg0)
  9706  }
  9707  
  9708  // HandledRequestTx is a free data retrieval call binding the contract method 0x8a75eee2.
  9709  //
  9710  // Solidity: function handledRequestTx(bytes32 ) view returns(bool)
  9711  func (_BridgeTransferERC20 *BridgeTransferERC20CallerSession) HandledRequestTx(arg0 [32]byte) (bool, error) {
  9712  	return _BridgeTransferERC20.Contract.HandledRequestTx(&_BridgeTransferERC20.CallOpts, arg0)
  9713  }
  9714  
  9715  // IndexOfTokens is a free data retrieval call binding the contract method 0x48a18a6a.
  9716  //
  9717  // Solidity: function indexOfTokens(address ) view returns(uint256)
  9718  func (_BridgeTransferERC20 *BridgeTransferERC20Caller) IndexOfTokens(opts *bind.CallOpts, arg0 common.Address) (*big.Int, error) {
  9719  	var out []interface{}
  9720  	err := _BridgeTransferERC20.contract.Call(opts, &out, "indexOfTokens", arg0)
  9721  
  9722  	if err != nil {
  9723  		return *new(*big.Int), err
  9724  	}
  9725  
  9726  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
  9727  
  9728  	return out0, err
  9729  
  9730  }
  9731  
  9732  // IndexOfTokens is a free data retrieval call binding the contract method 0x48a18a6a.
  9733  //
  9734  // Solidity: function indexOfTokens(address ) view returns(uint256)
  9735  func (_BridgeTransferERC20 *BridgeTransferERC20Session) IndexOfTokens(arg0 common.Address) (*big.Int, error) {
  9736  	return _BridgeTransferERC20.Contract.IndexOfTokens(&_BridgeTransferERC20.CallOpts, arg0)
  9737  }
  9738  
  9739  // IndexOfTokens is a free data retrieval call binding the contract method 0x48a18a6a.
  9740  //
  9741  // Solidity: function indexOfTokens(address ) view returns(uint256)
  9742  func (_BridgeTransferERC20 *BridgeTransferERC20CallerSession) IndexOfTokens(arg0 common.Address) (*big.Int, error) {
  9743  	return _BridgeTransferERC20.Contract.IndexOfTokens(&_BridgeTransferERC20.CallOpts, arg0)
  9744  }
  9745  
  9746  // IsOwner is a free data retrieval call binding the contract method 0x8f32d59b.
  9747  //
  9748  // Solidity: function isOwner() view returns(bool)
  9749  func (_BridgeTransferERC20 *BridgeTransferERC20Caller) IsOwner(opts *bind.CallOpts) (bool, error) {
  9750  	var out []interface{}
  9751  	err := _BridgeTransferERC20.contract.Call(opts, &out, "isOwner")
  9752  
  9753  	if err != nil {
  9754  		return *new(bool), err
  9755  	}
  9756  
  9757  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
  9758  
  9759  	return out0, err
  9760  
  9761  }
  9762  
  9763  // IsOwner is a free data retrieval call binding the contract method 0x8f32d59b.
  9764  //
  9765  // Solidity: function isOwner() view returns(bool)
  9766  func (_BridgeTransferERC20 *BridgeTransferERC20Session) IsOwner() (bool, error) {
  9767  	return _BridgeTransferERC20.Contract.IsOwner(&_BridgeTransferERC20.CallOpts)
  9768  }
  9769  
  9770  // IsOwner is a free data retrieval call binding the contract method 0x8f32d59b.
  9771  //
  9772  // Solidity: function isOwner() view returns(bool)
  9773  func (_BridgeTransferERC20 *BridgeTransferERC20CallerSession) IsOwner() (bool, error) {
  9774  	return _BridgeTransferERC20.Contract.IsOwner(&_BridgeTransferERC20.CallOpts)
  9775  }
  9776  
  9777  // IsRunning is a free data retrieval call binding the contract method 0x2014e5d1.
  9778  //
  9779  // Solidity: function isRunning() view returns(bool)
  9780  func (_BridgeTransferERC20 *BridgeTransferERC20Caller) IsRunning(opts *bind.CallOpts) (bool, error) {
  9781  	var out []interface{}
  9782  	err := _BridgeTransferERC20.contract.Call(opts, &out, "isRunning")
  9783  
  9784  	if err != nil {
  9785  		return *new(bool), err
  9786  	}
  9787  
  9788  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
  9789  
  9790  	return out0, err
  9791  
  9792  }
  9793  
  9794  // IsRunning is a free data retrieval call binding the contract method 0x2014e5d1.
  9795  //
  9796  // Solidity: function isRunning() view returns(bool)
  9797  func (_BridgeTransferERC20 *BridgeTransferERC20Session) IsRunning() (bool, error) {
  9798  	return _BridgeTransferERC20.Contract.IsRunning(&_BridgeTransferERC20.CallOpts)
  9799  }
  9800  
  9801  // IsRunning is a free data retrieval call binding the contract method 0x2014e5d1.
  9802  //
  9803  // Solidity: function isRunning() view returns(bool)
  9804  func (_BridgeTransferERC20 *BridgeTransferERC20CallerSession) IsRunning() (bool, error) {
  9805  	return _BridgeTransferERC20.Contract.IsRunning(&_BridgeTransferERC20.CallOpts)
  9806  }
  9807  
  9808  // LockedTokens is a free data retrieval call binding the contract method 0x5eb7413a.
  9809  //
  9810  // Solidity: function lockedTokens(address ) view returns(bool)
  9811  func (_BridgeTransferERC20 *BridgeTransferERC20Caller) LockedTokens(opts *bind.CallOpts, arg0 common.Address) (bool, error) {
  9812  	var out []interface{}
  9813  	err := _BridgeTransferERC20.contract.Call(opts, &out, "lockedTokens", arg0)
  9814  
  9815  	if err != nil {
  9816  		return *new(bool), err
  9817  	}
  9818  
  9819  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
  9820  
  9821  	return out0, err
  9822  
  9823  }
  9824  
  9825  // LockedTokens is a free data retrieval call binding the contract method 0x5eb7413a.
  9826  //
  9827  // Solidity: function lockedTokens(address ) view returns(bool)
  9828  func (_BridgeTransferERC20 *BridgeTransferERC20Session) LockedTokens(arg0 common.Address) (bool, error) {
  9829  	return _BridgeTransferERC20.Contract.LockedTokens(&_BridgeTransferERC20.CallOpts, arg0)
  9830  }
  9831  
  9832  // LockedTokens is a free data retrieval call binding the contract method 0x5eb7413a.
  9833  //
  9834  // Solidity: function lockedTokens(address ) view returns(bool)
  9835  func (_BridgeTransferERC20 *BridgeTransferERC20CallerSession) LockedTokens(arg0 common.Address) (bool, error) {
  9836  	return _BridgeTransferERC20.Contract.LockedTokens(&_BridgeTransferERC20.CallOpts, arg0)
  9837  }
  9838  
  9839  // LowerHandleNonce is a free data retrieval call binding the contract method 0x4b40b826.
  9840  //
  9841  // Solidity: function lowerHandleNonce() view returns(uint64)
  9842  func (_BridgeTransferERC20 *BridgeTransferERC20Caller) LowerHandleNonce(opts *bind.CallOpts) (uint64, error) {
  9843  	var out []interface{}
  9844  	err := _BridgeTransferERC20.contract.Call(opts, &out, "lowerHandleNonce")
  9845  
  9846  	if err != nil {
  9847  		return *new(uint64), err
  9848  	}
  9849  
  9850  	out0 := *abi.ConvertType(out[0], new(uint64)).(*uint64)
  9851  
  9852  	return out0, err
  9853  
  9854  }
  9855  
  9856  // LowerHandleNonce is a free data retrieval call binding the contract method 0x4b40b826.
  9857  //
  9858  // Solidity: function lowerHandleNonce() view returns(uint64)
  9859  func (_BridgeTransferERC20 *BridgeTransferERC20Session) LowerHandleNonce() (uint64, error) {
  9860  	return _BridgeTransferERC20.Contract.LowerHandleNonce(&_BridgeTransferERC20.CallOpts)
  9861  }
  9862  
  9863  // LowerHandleNonce is a free data retrieval call binding the contract method 0x4b40b826.
  9864  //
  9865  // Solidity: function lowerHandleNonce() view returns(uint64)
  9866  func (_BridgeTransferERC20 *BridgeTransferERC20CallerSession) LowerHandleNonce() (uint64, error) {
  9867  	return _BridgeTransferERC20.Contract.LowerHandleNonce(&_BridgeTransferERC20.CallOpts)
  9868  }
  9869  
  9870  // ModeMintBurn is a free data retrieval call binding the contract method 0x6e176ec2.
  9871  //
  9872  // Solidity: function modeMintBurn() view returns(bool)
  9873  func (_BridgeTransferERC20 *BridgeTransferERC20Caller) ModeMintBurn(opts *bind.CallOpts) (bool, error) {
  9874  	var out []interface{}
  9875  	err := _BridgeTransferERC20.contract.Call(opts, &out, "modeMintBurn")
  9876  
  9877  	if err != nil {
  9878  		return *new(bool), err
  9879  	}
  9880  
  9881  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
  9882  
  9883  	return out0, err
  9884  
  9885  }
  9886  
  9887  // ModeMintBurn is a free data retrieval call binding the contract method 0x6e176ec2.
  9888  //
  9889  // Solidity: function modeMintBurn() view returns(bool)
  9890  func (_BridgeTransferERC20 *BridgeTransferERC20Session) ModeMintBurn() (bool, error) {
  9891  	return _BridgeTransferERC20.Contract.ModeMintBurn(&_BridgeTransferERC20.CallOpts)
  9892  }
  9893  
  9894  // ModeMintBurn is a free data retrieval call binding the contract method 0x6e176ec2.
  9895  //
  9896  // Solidity: function modeMintBurn() view returns(bool)
  9897  func (_BridgeTransferERC20 *BridgeTransferERC20CallerSession) ModeMintBurn() (bool, error) {
  9898  	return _BridgeTransferERC20.Contract.ModeMintBurn(&_BridgeTransferERC20.CallOpts)
  9899  }
  9900  
  9901  // OperatorList is a free data retrieval call binding the contract method 0xcb38f407.
  9902  //
  9903  // Solidity: function operatorList(uint256 ) view returns(address)
  9904  func (_BridgeTransferERC20 *BridgeTransferERC20Caller) OperatorList(opts *bind.CallOpts, arg0 *big.Int) (common.Address, error) {
  9905  	var out []interface{}
  9906  	err := _BridgeTransferERC20.contract.Call(opts, &out, "operatorList", arg0)
  9907  
  9908  	if err != nil {
  9909  		return *new(common.Address), err
  9910  	}
  9911  
  9912  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
  9913  
  9914  	return out0, err
  9915  
  9916  }
  9917  
  9918  // OperatorList is a free data retrieval call binding the contract method 0xcb38f407.
  9919  //
  9920  // Solidity: function operatorList(uint256 ) view returns(address)
  9921  func (_BridgeTransferERC20 *BridgeTransferERC20Session) OperatorList(arg0 *big.Int) (common.Address, error) {
  9922  	return _BridgeTransferERC20.Contract.OperatorList(&_BridgeTransferERC20.CallOpts, arg0)
  9923  }
  9924  
  9925  // OperatorList is a free data retrieval call binding the contract method 0xcb38f407.
  9926  //
  9927  // Solidity: function operatorList(uint256 ) view returns(address)
  9928  func (_BridgeTransferERC20 *BridgeTransferERC20CallerSession) OperatorList(arg0 *big.Int) (common.Address, error) {
  9929  	return _BridgeTransferERC20.Contract.OperatorList(&_BridgeTransferERC20.CallOpts, arg0)
  9930  }
  9931  
  9932  // OperatorThresholds is a free data retrieval call binding the contract method 0x5526f76b.
  9933  //
  9934  // Solidity: function operatorThresholds(uint8 ) view returns(uint8)
  9935  func (_BridgeTransferERC20 *BridgeTransferERC20Caller) OperatorThresholds(opts *bind.CallOpts, arg0 uint8) (uint8, error) {
  9936  	var out []interface{}
  9937  	err := _BridgeTransferERC20.contract.Call(opts, &out, "operatorThresholds", arg0)
  9938  
  9939  	if err != nil {
  9940  		return *new(uint8), err
  9941  	}
  9942  
  9943  	out0 := *abi.ConvertType(out[0], new(uint8)).(*uint8)
  9944  
  9945  	return out0, err
  9946  
  9947  }
  9948  
  9949  // OperatorThresholds is a free data retrieval call binding the contract method 0x5526f76b.
  9950  //
  9951  // Solidity: function operatorThresholds(uint8 ) view returns(uint8)
  9952  func (_BridgeTransferERC20 *BridgeTransferERC20Session) OperatorThresholds(arg0 uint8) (uint8, error) {
  9953  	return _BridgeTransferERC20.Contract.OperatorThresholds(&_BridgeTransferERC20.CallOpts, arg0)
  9954  }
  9955  
  9956  // OperatorThresholds is a free data retrieval call binding the contract method 0x5526f76b.
  9957  //
  9958  // Solidity: function operatorThresholds(uint8 ) view returns(uint8)
  9959  func (_BridgeTransferERC20 *BridgeTransferERC20CallerSession) OperatorThresholds(arg0 uint8) (uint8, error) {
  9960  	return _BridgeTransferERC20.Contract.OperatorThresholds(&_BridgeTransferERC20.CallOpts, arg0)
  9961  }
  9962  
  9963  // Operators is a free data retrieval call binding the contract method 0x13e7c9d8.
  9964  //
  9965  // Solidity: function operators(address ) view returns(bool)
  9966  func (_BridgeTransferERC20 *BridgeTransferERC20Caller) Operators(opts *bind.CallOpts, arg0 common.Address) (bool, error) {
  9967  	var out []interface{}
  9968  	err := _BridgeTransferERC20.contract.Call(opts, &out, "operators", arg0)
  9969  
  9970  	if err != nil {
  9971  		return *new(bool), err
  9972  	}
  9973  
  9974  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
  9975  
  9976  	return out0, err
  9977  
  9978  }
  9979  
  9980  // Operators is a free data retrieval call binding the contract method 0x13e7c9d8.
  9981  //
  9982  // Solidity: function operators(address ) view returns(bool)
  9983  func (_BridgeTransferERC20 *BridgeTransferERC20Session) Operators(arg0 common.Address) (bool, error) {
  9984  	return _BridgeTransferERC20.Contract.Operators(&_BridgeTransferERC20.CallOpts, arg0)
  9985  }
  9986  
  9987  // Operators is a free data retrieval call binding the contract method 0x13e7c9d8.
  9988  //
  9989  // Solidity: function operators(address ) view returns(bool)
  9990  func (_BridgeTransferERC20 *BridgeTransferERC20CallerSession) Operators(arg0 common.Address) (bool, error) {
  9991  	return _BridgeTransferERC20.Contract.Operators(&_BridgeTransferERC20.CallOpts, arg0)
  9992  }
  9993  
  9994  // Owner is a free data retrieval call binding the contract method 0x8da5cb5b.
  9995  //
  9996  // Solidity: function owner() view returns(address)
  9997  func (_BridgeTransferERC20 *BridgeTransferERC20Caller) Owner(opts *bind.CallOpts) (common.Address, error) {
  9998  	var out []interface{}
  9999  	err := _BridgeTransferERC20.contract.Call(opts, &out, "owner")
 10000  
 10001  	if err != nil {
 10002  		return *new(common.Address), err
 10003  	}
 10004  
 10005  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
 10006  
 10007  	return out0, err
 10008  
 10009  }
 10010  
 10011  // Owner is a free data retrieval call binding the contract method 0x8da5cb5b.
 10012  //
 10013  // Solidity: function owner() view returns(address)
 10014  func (_BridgeTransferERC20 *BridgeTransferERC20Session) Owner() (common.Address, error) {
 10015  	return _BridgeTransferERC20.Contract.Owner(&_BridgeTransferERC20.CallOpts)
 10016  }
 10017  
 10018  // Owner is a free data retrieval call binding the contract method 0x8da5cb5b.
 10019  //
 10020  // Solidity: function owner() view returns(address)
 10021  func (_BridgeTransferERC20 *BridgeTransferERC20CallerSession) Owner() (common.Address, error) {
 10022  	return _BridgeTransferERC20.Contract.Owner(&_BridgeTransferERC20.CallOpts)
 10023  }
 10024  
 10025  // RecoveryBlockNumber is a free data retrieval call binding the contract method 0x989ba0d3.
 10026  //
 10027  // Solidity: function recoveryBlockNumber() view returns(uint64)
 10028  func (_BridgeTransferERC20 *BridgeTransferERC20Caller) RecoveryBlockNumber(opts *bind.CallOpts) (uint64, error) {
 10029  	var out []interface{}
 10030  	err := _BridgeTransferERC20.contract.Call(opts, &out, "recoveryBlockNumber")
 10031  
 10032  	if err != nil {
 10033  		return *new(uint64), err
 10034  	}
 10035  
 10036  	out0 := *abi.ConvertType(out[0], new(uint64)).(*uint64)
 10037  
 10038  	return out0, err
 10039  
 10040  }
 10041  
 10042  // RecoveryBlockNumber is a free data retrieval call binding the contract method 0x989ba0d3.
 10043  //
 10044  // Solidity: function recoveryBlockNumber() view returns(uint64)
 10045  func (_BridgeTransferERC20 *BridgeTransferERC20Session) RecoveryBlockNumber() (uint64, error) {
 10046  	return _BridgeTransferERC20.Contract.RecoveryBlockNumber(&_BridgeTransferERC20.CallOpts)
 10047  }
 10048  
 10049  // RecoveryBlockNumber is a free data retrieval call binding the contract method 0x989ba0d3.
 10050  //
 10051  // Solidity: function recoveryBlockNumber() view returns(uint64)
 10052  func (_BridgeTransferERC20 *BridgeTransferERC20CallerSession) RecoveryBlockNumber() (uint64, error) {
 10053  	return _BridgeTransferERC20.Contract.RecoveryBlockNumber(&_BridgeTransferERC20.CallOpts)
 10054  }
 10055  
 10056  // RegisteredTokenList is a free data retrieval call binding the contract method 0x3e4fe949.
 10057  //
 10058  // Solidity: function registeredTokenList(uint256 ) view returns(address)
 10059  func (_BridgeTransferERC20 *BridgeTransferERC20Caller) RegisteredTokenList(opts *bind.CallOpts, arg0 *big.Int) (common.Address, error) {
 10060  	var out []interface{}
 10061  	err := _BridgeTransferERC20.contract.Call(opts, &out, "registeredTokenList", arg0)
 10062  
 10063  	if err != nil {
 10064  		return *new(common.Address), err
 10065  	}
 10066  
 10067  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
 10068  
 10069  	return out0, err
 10070  
 10071  }
 10072  
 10073  // RegisteredTokenList is a free data retrieval call binding the contract method 0x3e4fe949.
 10074  //
 10075  // Solidity: function registeredTokenList(uint256 ) view returns(address)
 10076  func (_BridgeTransferERC20 *BridgeTransferERC20Session) RegisteredTokenList(arg0 *big.Int) (common.Address, error) {
 10077  	return _BridgeTransferERC20.Contract.RegisteredTokenList(&_BridgeTransferERC20.CallOpts, arg0)
 10078  }
 10079  
 10080  // RegisteredTokenList is a free data retrieval call binding the contract method 0x3e4fe949.
 10081  //
 10082  // Solidity: function registeredTokenList(uint256 ) view returns(address)
 10083  func (_BridgeTransferERC20 *BridgeTransferERC20CallerSession) RegisteredTokenList(arg0 *big.Int) (common.Address, error) {
 10084  	return _BridgeTransferERC20.Contract.RegisteredTokenList(&_BridgeTransferERC20.CallOpts, arg0)
 10085  }
 10086  
 10087  // RegisteredTokens is a free data retrieval call binding the contract method 0x8c0bd916.
 10088  //
 10089  // Solidity: function registeredTokens(address ) view returns(address)
 10090  func (_BridgeTransferERC20 *BridgeTransferERC20Caller) RegisteredTokens(opts *bind.CallOpts, arg0 common.Address) (common.Address, error) {
 10091  	var out []interface{}
 10092  	err := _BridgeTransferERC20.contract.Call(opts, &out, "registeredTokens", arg0)
 10093  
 10094  	if err != nil {
 10095  		return *new(common.Address), err
 10096  	}
 10097  
 10098  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
 10099  
 10100  	return out0, err
 10101  
 10102  }
 10103  
 10104  // RegisteredTokens is a free data retrieval call binding the contract method 0x8c0bd916.
 10105  //
 10106  // Solidity: function registeredTokens(address ) view returns(address)
 10107  func (_BridgeTransferERC20 *BridgeTransferERC20Session) RegisteredTokens(arg0 common.Address) (common.Address, error) {
 10108  	return _BridgeTransferERC20.Contract.RegisteredTokens(&_BridgeTransferERC20.CallOpts, arg0)
 10109  }
 10110  
 10111  // RegisteredTokens is a free data retrieval call binding the contract method 0x8c0bd916.
 10112  //
 10113  // Solidity: function registeredTokens(address ) view returns(address)
 10114  func (_BridgeTransferERC20 *BridgeTransferERC20CallerSession) RegisteredTokens(arg0 common.Address) (common.Address, error) {
 10115  	return _BridgeTransferERC20.Contract.RegisteredTokens(&_BridgeTransferERC20.CallOpts, arg0)
 10116  }
 10117  
 10118  // RequestNonce is a free data retrieval call binding the contract method 0x7c1a0302.
 10119  //
 10120  // Solidity: function requestNonce() view returns(uint64)
 10121  func (_BridgeTransferERC20 *BridgeTransferERC20Caller) RequestNonce(opts *bind.CallOpts) (uint64, error) {
 10122  	var out []interface{}
 10123  	err := _BridgeTransferERC20.contract.Call(opts, &out, "requestNonce")
 10124  
 10125  	if err != nil {
 10126  		return *new(uint64), err
 10127  	}
 10128  
 10129  	out0 := *abi.ConvertType(out[0], new(uint64)).(*uint64)
 10130  
 10131  	return out0, err
 10132  
 10133  }
 10134  
 10135  // RequestNonce is a free data retrieval call binding the contract method 0x7c1a0302.
 10136  //
 10137  // Solidity: function requestNonce() view returns(uint64)
 10138  func (_BridgeTransferERC20 *BridgeTransferERC20Session) RequestNonce() (uint64, error) {
 10139  	return _BridgeTransferERC20.Contract.RequestNonce(&_BridgeTransferERC20.CallOpts)
 10140  }
 10141  
 10142  // RequestNonce is a free data retrieval call binding the contract method 0x7c1a0302.
 10143  //
 10144  // Solidity: function requestNonce() view returns(uint64)
 10145  func (_BridgeTransferERC20 *BridgeTransferERC20CallerSession) RequestNonce() (uint64, error) {
 10146  	return _BridgeTransferERC20.Contract.RequestNonce(&_BridgeTransferERC20.CallOpts)
 10147  }
 10148  
 10149  // UpperHandleNonce is a free data retrieval call binding the contract method 0x54edad72.
 10150  //
 10151  // Solidity: function upperHandleNonce() view returns(uint64)
 10152  func (_BridgeTransferERC20 *BridgeTransferERC20Caller) UpperHandleNonce(opts *bind.CallOpts) (uint64, error) {
 10153  	var out []interface{}
 10154  	err := _BridgeTransferERC20.contract.Call(opts, &out, "upperHandleNonce")
 10155  
 10156  	if err != nil {
 10157  		return *new(uint64), err
 10158  	}
 10159  
 10160  	out0 := *abi.ConvertType(out[0], new(uint64)).(*uint64)
 10161  
 10162  	return out0, err
 10163  
 10164  }
 10165  
 10166  // UpperHandleNonce is a free data retrieval call binding the contract method 0x54edad72.
 10167  //
 10168  // Solidity: function upperHandleNonce() view returns(uint64)
 10169  func (_BridgeTransferERC20 *BridgeTransferERC20Session) UpperHandleNonce() (uint64, error) {
 10170  	return _BridgeTransferERC20.Contract.UpperHandleNonce(&_BridgeTransferERC20.CallOpts)
 10171  }
 10172  
 10173  // UpperHandleNonce is a free data retrieval call binding the contract method 0x54edad72.
 10174  //
 10175  // Solidity: function upperHandleNonce() view returns(uint64)
 10176  func (_BridgeTransferERC20 *BridgeTransferERC20CallerSession) UpperHandleNonce() (uint64, error) {
 10177  	return _BridgeTransferERC20.Contract.UpperHandleNonce(&_BridgeTransferERC20.CallOpts)
 10178  }
 10179  
 10180  // DeregisterOperator is a paid mutator transaction binding the contract method 0xd8cf98ca.
 10181  //
 10182  // Solidity: function deregisterOperator(address _operator) returns()
 10183  func (_BridgeTransferERC20 *BridgeTransferERC20Transactor) DeregisterOperator(opts *bind.TransactOpts, _operator common.Address) (*types.Transaction, error) {
 10184  	return _BridgeTransferERC20.contract.Transact(opts, "deregisterOperator", _operator)
 10185  }
 10186  
 10187  // DeregisterOperator is a paid mutator transaction binding the contract method 0xd8cf98ca.
 10188  //
 10189  // Solidity: function deregisterOperator(address _operator) returns()
 10190  func (_BridgeTransferERC20 *BridgeTransferERC20Session) DeregisterOperator(_operator common.Address) (*types.Transaction, error) {
 10191  	return _BridgeTransferERC20.Contract.DeregisterOperator(&_BridgeTransferERC20.TransactOpts, _operator)
 10192  }
 10193  
 10194  // DeregisterOperator is a paid mutator transaction binding the contract method 0xd8cf98ca.
 10195  //
 10196  // Solidity: function deregisterOperator(address _operator) returns()
 10197  func (_BridgeTransferERC20 *BridgeTransferERC20TransactorSession) DeregisterOperator(_operator common.Address) (*types.Transaction, error) {
 10198  	return _BridgeTransferERC20.Contract.DeregisterOperator(&_BridgeTransferERC20.TransactOpts, _operator)
 10199  }
 10200  
 10201  // DeregisterToken is a paid mutator transaction binding the contract method 0xbab2af1d.
 10202  //
 10203  // Solidity: function deregisterToken(address _token) returns()
 10204  func (_BridgeTransferERC20 *BridgeTransferERC20Transactor) DeregisterToken(opts *bind.TransactOpts, _token common.Address) (*types.Transaction, error) {
 10205  	return _BridgeTransferERC20.contract.Transact(opts, "deregisterToken", _token)
 10206  }
 10207  
 10208  // DeregisterToken is a paid mutator transaction binding the contract method 0xbab2af1d.
 10209  //
 10210  // Solidity: function deregisterToken(address _token) returns()
 10211  func (_BridgeTransferERC20 *BridgeTransferERC20Session) DeregisterToken(_token common.Address) (*types.Transaction, error) {
 10212  	return _BridgeTransferERC20.Contract.DeregisterToken(&_BridgeTransferERC20.TransactOpts, _token)
 10213  }
 10214  
 10215  // DeregisterToken is a paid mutator transaction binding the contract method 0xbab2af1d.
 10216  //
 10217  // Solidity: function deregisterToken(address _token) returns()
 10218  func (_BridgeTransferERC20 *BridgeTransferERC20TransactorSession) DeregisterToken(_token common.Address) (*types.Transaction, error) {
 10219  	return _BridgeTransferERC20.Contract.DeregisterToken(&_BridgeTransferERC20.TransactOpts, _token)
 10220  }
 10221  
 10222  // HandleERC20Transfer is a paid mutator transaction binding the contract method 0x407e6bae.
 10223  //
 10224  // Solidity: function handleERC20Transfer(bytes32 _requestTxHash, address _from, address _to, address _tokenAddress, uint256 _value, uint64 _requestedNonce, uint64 _requestedBlockNumber, bytes _extraData) returns()
 10225  func (_BridgeTransferERC20 *BridgeTransferERC20Transactor) HandleERC20Transfer(opts *bind.TransactOpts, _requestTxHash [32]byte, _from common.Address, _to common.Address, _tokenAddress common.Address, _value *big.Int, _requestedNonce uint64, _requestedBlockNumber uint64, _extraData []byte) (*types.Transaction, error) {
 10226  	return _BridgeTransferERC20.contract.Transact(opts, "handleERC20Transfer", _requestTxHash, _from, _to, _tokenAddress, _value, _requestedNonce, _requestedBlockNumber, _extraData)
 10227  }
 10228  
 10229  // HandleERC20Transfer is a paid mutator transaction binding the contract method 0x407e6bae.
 10230  //
 10231  // Solidity: function handleERC20Transfer(bytes32 _requestTxHash, address _from, address _to, address _tokenAddress, uint256 _value, uint64 _requestedNonce, uint64 _requestedBlockNumber, bytes _extraData) returns()
 10232  func (_BridgeTransferERC20 *BridgeTransferERC20Session) HandleERC20Transfer(_requestTxHash [32]byte, _from common.Address, _to common.Address, _tokenAddress common.Address, _value *big.Int, _requestedNonce uint64, _requestedBlockNumber uint64, _extraData []byte) (*types.Transaction, error) {
 10233  	return _BridgeTransferERC20.Contract.HandleERC20Transfer(&_BridgeTransferERC20.TransactOpts, _requestTxHash, _from, _to, _tokenAddress, _value, _requestedNonce, _requestedBlockNumber, _extraData)
 10234  }
 10235  
 10236  // HandleERC20Transfer is a paid mutator transaction binding the contract method 0x407e6bae.
 10237  //
 10238  // Solidity: function handleERC20Transfer(bytes32 _requestTxHash, address _from, address _to, address _tokenAddress, uint256 _value, uint64 _requestedNonce, uint64 _requestedBlockNumber, bytes _extraData) returns()
 10239  func (_BridgeTransferERC20 *BridgeTransferERC20TransactorSession) HandleERC20Transfer(_requestTxHash [32]byte, _from common.Address, _to common.Address, _tokenAddress common.Address, _value *big.Int, _requestedNonce uint64, _requestedBlockNumber uint64, _extraData []byte) (*types.Transaction, error) {
 10240  	return _BridgeTransferERC20.Contract.HandleERC20Transfer(&_BridgeTransferERC20.TransactOpts, _requestTxHash, _from, _to, _tokenAddress, _value, _requestedNonce, _requestedBlockNumber, _extraData)
 10241  }
 10242  
 10243  // LockToken is a paid mutator transaction binding the contract method 0x10693fcd.
 10244  //
 10245  // Solidity: function lockToken(address _token) returns()
 10246  func (_BridgeTransferERC20 *BridgeTransferERC20Transactor) LockToken(opts *bind.TransactOpts, _token common.Address) (*types.Transaction, error) {
 10247  	return _BridgeTransferERC20.contract.Transact(opts, "lockToken", _token)
 10248  }
 10249  
 10250  // LockToken is a paid mutator transaction binding the contract method 0x10693fcd.
 10251  //
 10252  // Solidity: function lockToken(address _token) returns()
 10253  func (_BridgeTransferERC20 *BridgeTransferERC20Session) LockToken(_token common.Address) (*types.Transaction, error) {
 10254  	return _BridgeTransferERC20.Contract.LockToken(&_BridgeTransferERC20.TransactOpts, _token)
 10255  }
 10256  
 10257  // LockToken is a paid mutator transaction binding the contract method 0x10693fcd.
 10258  //
 10259  // Solidity: function lockToken(address _token) returns()
 10260  func (_BridgeTransferERC20 *BridgeTransferERC20TransactorSession) LockToken(_token common.Address) (*types.Transaction, error) {
 10261  	return _BridgeTransferERC20.Contract.LockToken(&_BridgeTransferERC20.TransactOpts, _token)
 10262  }
 10263  
 10264  // OnERC20Received is a paid mutator transaction binding the contract method 0xf1656e53.
 10265  //
 10266  // Solidity: function onERC20Received(address _from, address _to, uint256 _value, uint256 _feeLimit, bytes _extraData) returns()
 10267  func (_BridgeTransferERC20 *BridgeTransferERC20Transactor) OnERC20Received(opts *bind.TransactOpts, _from common.Address, _to common.Address, _value *big.Int, _feeLimit *big.Int, _extraData []byte) (*types.Transaction, error) {
 10268  	return _BridgeTransferERC20.contract.Transact(opts, "onERC20Received", _from, _to, _value, _feeLimit, _extraData)
 10269  }
 10270  
 10271  // OnERC20Received is a paid mutator transaction binding the contract method 0xf1656e53.
 10272  //
 10273  // Solidity: function onERC20Received(address _from, address _to, uint256 _value, uint256 _feeLimit, bytes _extraData) returns()
 10274  func (_BridgeTransferERC20 *BridgeTransferERC20Session) OnERC20Received(_from common.Address, _to common.Address, _value *big.Int, _feeLimit *big.Int, _extraData []byte) (*types.Transaction, error) {
 10275  	return _BridgeTransferERC20.Contract.OnERC20Received(&_BridgeTransferERC20.TransactOpts, _from, _to, _value, _feeLimit, _extraData)
 10276  }
 10277  
 10278  // OnERC20Received is a paid mutator transaction binding the contract method 0xf1656e53.
 10279  //
 10280  // Solidity: function onERC20Received(address _from, address _to, uint256 _value, uint256 _feeLimit, bytes _extraData) returns()
 10281  func (_BridgeTransferERC20 *BridgeTransferERC20TransactorSession) OnERC20Received(_from common.Address, _to common.Address, _value *big.Int, _feeLimit *big.Int, _extraData []byte) (*types.Transaction, error) {
 10282  	return _BridgeTransferERC20.Contract.OnERC20Received(&_BridgeTransferERC20.TransactOpts, _from, _to, _value, _feeLimit, _extraData)
 10283  }
 10284  
 10285  // RegisterOperator is a paid mutator transaction binding the contract method 0x3682a450.
 10286  //
 10287  // Solidity: function registerOperator(address _operator) returns()
 10288  func (_BridgeTransferERC20 *BridgeTransferERC20Transactor) RegisterOperator(opts *bind.TransactOpts, _operator common.Address) (*types.Transaction, error) {
 10289  	return _BridgeTransferERC20.contract.Transact(opts, "registerOperator", _operator)
 10290  }
 10291  
 10292  // RegisterOperator is a paid mutator transaction binding the contract method 0x3682a450.
 10293  //
 10294  // Solidity: function registerOperator(address _operator) returns()
 10295  func (_BridgeTransferERC20 *BridgeTransferERC20Session) RegisterOperator(_operator common.Address) (*types.Transaction, error) {
 10296  	return _BridgeTransferERC20.Contract.RegisterOperator(&_BridgeTransferERC20.TransactOpts, _operator)
 10297  }
 10298  
 10299  // RegisterOperator is a paid mutator transaction binding the contract method 0x3682a450.
 10300  //
 10301  // Solidity: function registerOperator(address _operator) returns()
 10302  func (_BridgeTransferERC20 *BridgeTransferERC20TransactorSession) RegisterOperator(_operator common.Address) (*types.Transaction, error) {
 10303  	return _BridgeTransferERC20.Contract.RegisterOperator(&_BridgeTransferERC20.TransactOpts, _operator)
 10304  }
 10305  
 10306  // RegisterToken is a paid mutator transaction binding the contract method 0x4739f7e5.
 10307  //
 10308  // Solidity: function registerToken(address _token, address _cToken) returns()
 10309  func (_BridgeTransferERC20 *BridgeTransferERC20Transactor) RegisterToken(opts *bind.TransactOpts, _token common.Address, _cToken common.Address) (*types.Transaction, error) {
 10310  	return _BridgeTransferERC20.contract.Transact(opts, "registerToken", _token, _cToken)
 10311  }
 10312  
 10313  // RegisterToken is a paid mutator transaction binding the contract method 0x4739f7e5.
 10314  //
 10315  // Solidity: function registerToken(address _token, address _cToken) returns()
 10316  func (_BridgeTransferERC20 *BridgeTransferERC20Session) RegisterToken(_token common.Address, _cToken common.Address) (*types.Transaction, error) {
 10317  	return _BridgeTransferERC20.Contract.RegisterToken(&_BridgeTransferERC20.TransactOpts, _token, _cToken)
 10318  }
 10319  
 10320  // RegisterToken is a paid mutator transaction binding the contract method 0x4739f7e5.
 10321  //
 10322  // Solidity: function registerToken(address _token, address _cToken) returns()
 10323  func (_BridgeTransferERC20 *BridgeTransferERC20TransactorSession) RegisterToken(_token common.Address, _cToken common.Address) (*types.Transaction, error) {
 10324  	return _BridgeTransferERC20.Contract.RegisterToken(&_BridgeTransferERC20.TransactOpts, _token, _cToken)
 10325  }
 10326  
 10327  // RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6.
 10328  //
 10329  // Solidity: function renounceOwnership() returns()
 10330  func (_BridgeTransferERC20 *BridgeTransferERC20Transactor) RenounceOwnership(opts *bind.TransactOpts) (*types.Transaction, error) {
 10331  	return _BridgeTransferERC20.contract.Transact(opts, "renounceOwnership")
 10332  }
 10333  
 10334  // RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6.
 10335  //
 10336  // Solidity: function renounceOwnership() returns()
 10337  func (_BridgeTransferERC20 *BridgeTransferERC20Session) RenounceOwnership() (*types.Transaction, error) {
 10338  	return _BridgeTransferERC20.Contract.RenounceOwnership(&_BridgeTransferERC20.TransactOpts)
 10339  }
 10340  
 10341  // RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6.
 10342  //
 10343  // Solidity: function renounceOwnership() returns()
 10344  func (_BridgeTransferERC20 *BridgeTransferERC20TransactorSession) RenounceOwnership() (*types.Transaction, error) {
 10345  	return _BridgeTransferERC20.Contract.RenounceOwnership(&_BridgeTransferERC20.TransactOpts)
 10346  }
 10347  
 10348  // RequestERC20Transfer is a paid mutator transaction binding the contract method 0x26c23b54.
 10349  //
 10350  // Solidity: function requestERC20Transfer(address _tokenAddress, address _to, uint256 _value, uint256 _feeLimit, bytes _extraData) returns()
 10351  func (_BridgeTransferERC20 *BridgeTransferERC20Transactor) RequestERC20Transfer(opts *bind.TransactOpts, _tokenAddress common.Address, _to common.Address, _value *big.Int, _feeLimit *big.Int, _extraData []byte) (*types.Transaction, error) {
 10352  	return _BridgeTransferERC20.contract.Transact(opts, "requestERC20Transfer", _tokenAddress, _to, _value, _feeLimit, _extraData)
 10353  }
 10354  
 10355  // RequestERC20Transfer is a paid mutator transaction binding the contract method 0x26c23b54.
 10356  //
 10357  // Solidity: function requestERC20Transfer(address _tokenAddress, address _to, uint256 _value, uint256 _feeLimit, bytes _extraData) returns()
 10358  func (_BridgeTransferERC20 *BridgeTransferERC20Session) RequestERC20Transfer(_tokenAddress common.Address, _to common.Address, _value *big.Int, _feeLimit *big.Int, _extraData []byte) (*types.Transaction, error) {
 10359  	return _BridgeTransferERC20.Contract.RequestERC20Transfer(&_BridgeTransferERC20.TransactOpts, _tokenAddress, _to, _value, _feeLimit, _extraData)
 10360  }
 10361  
 10362  // RequestERC20Transfer is a paid mutator transaction binding the contract method 0x26c23b54.
 10363  //
 10364  // Solidity: function requestERC20Transfer(address _tokenAddress, address _to, uint256 _value, uint256 _feeLimit, bytes _extraData) returns()
 10365  func (_BridgeTransferERC20 *BridgeTransferERC20TransactorSession) RequestERC20Transfer(_tokenAddress common.Address, _to common.Address, _value *big.Int, _feeLimit *big.Int, _extraData []byte) (*types.Transaction, error) {
 10366  	return _BridgeTransferERC20.Contract.RequestERC20Transfer(&_BridgeTransferERC20.TransactOpts, _tokenAddress, _to, _value, _feeLimit, _extraData)
 10367  }
 10368  
 10369  // SetERC20Fee is a paid mutator transaction binding the contract method 0x2f88396c.
 10370  //
 10371  // Solidity: function setERC20Fee(address _token, uint256 _fee, uint64 _requestNonce) returns()
 10372  func (_BridgeTransferERC20 *BridgeTransferERC20Transactor) SetERC20Fee(opts *bind.TransactOpts, _token common.Address, _fee *big.Int, _requestNonce uint64) (*types.Transaction, error) {
 10373  	return _BridgeTransferERC20.contract.Transact(opts, "setERC20Fee", _token, _fee, _requestNonce)
 10374  }
 10375  
 10376  // SetERC20Fee is a paid mutator transaction binding the contract method 0x2f88396c.
 10377  //
 10378  // Solidity: function setERC20Fee(address _token, uint256 _fee, uint64 _requestNonce) returns()
 10379  func (_BridgeTransferERC20 *BridgeTransferERC20Session) SetERC20Fee(_token common.Address, _fee *big.Int, _requestNonce uint64) (*types.Transaction, error) {
 10380  	return _BridgeTransferERC20.Contract.SetERC20Fee(&_BridgeTransferERC20.TransactOpts, _token, _fee, _requestNonce)
 10381  }
 10382  
 10383  // SetERC20Fee is a paid mutator transaction binding the contract method 0x2f88396c.
 10384  //
 10385  // Solidity: function setERC20Fee(address _token, uint256 _fee, uint64 _requestNonce) returns()
 10386  func (_BridgeTransferERC20 *BridgeTransferERC20TransactorSession) SetERC20Fee(_token common.Address, _fee *big.Int, _requestNonce uint64) (*types.Transaction, error) {
 10387  	return _BridgeTransferERC20.Contract.SetERC20Fee(&_BridgeTransferERC20.TransactOpts, _token, _fee, _requestNonce)
 10388  }
 10389  
 10390  // SetFeeReceiver is a paid mutator transaction binding the contract method 0xefdcd974.
 10391  //
 10392  // Solidity: function setFeeReceiver(address _feeReceiver) returns()
 10393  func (_BridgeTransferERC20 *BridgeTransferERC20Transactor) SetFeeReceiver(opts *bind.TransactOpts, _feeReceiver common.Address) (*types.Transaction, error) {
 10394  	return _BridgeTransferERC20.contract.Transact(opts, "setFeeReceiver", _feeReceiver)
 10395  }
 10396  
 10397  // SetFeeReceiver is a paid mutator transaction binding the contract method 0xefdcd974.
 10398  //
 10399  // Solidity: function setFeeReceiver(address _feeReceiver) returns()
 10400  func (_BridgeTransferERC20 *BridgeTransferERC20Session) SetFeeReceiver(_feeReceiver common.Address) (*types.Transaction, error) {
 10401  	return _BridgeTransferERC20.Contract.SetFeeReceiver(&_BridgeTransferERC20.TransactOpts, _feeReceiver)
 10402  }
 10403  
 10404  // SetFeeReceiver is a paid mutator transaction binding the contract method 0xefdcd974.
 10405  //
 10406  // Solidity: function setFeeReceiver(address _feeReceiver) returns()
 10407  func (_BridgeTransferERC20 *BridgeTransferERC20TransactorSession) SetFeeReceiver(_feeReceiver common.Address) (*types.Transaction, error) {
 10408  	return _BridgeTransferERC20.Contract.SetFeeReceiver(&_BridgeTransferERC20.TransactOpts, _feeReceiver)
 10409  }
 10410  
 10411  // SetOperatorThreshold is a paid mutator transaction binding the contract method 0xee2aec65.
 10412  //
 10413  // Solidity: function setOperatorThreshold(uint8 _voteType, uint8 _threshold) returns()
 10414  func (_BridgeTransferERC20 *BridgeTransferERC20Transactor) SetOperatorThreshold(opts *bind.TransactOpts, _voteType uint8, _threshold uint8) (*types.Transaction, error) {
 10415  	return _BridgeTransferERC20.contract.Transact(opts, "setOperatorThreshold", _voteType, _threshold)
 10416  }
 10417  
 10418  // SetOperatorThreshold is a paid mutator transaction binding the contract method 0xee2aec65.
 10419  //
 10420  // Solidity: function setOperatorThreshold(uint8 _voteType, uint8 _threshold) returns()
 10421  func (_BridgeTransferERC20 *BridgeTransferERC20Session) SetOperatorThreshold(_voteType uint8, _threshold uint8) (*types.Transaction, error) {
 10422  	return _BridgeTransferERC20.Contract.SetOperatorThreshold(&_BridgeTransferERC20.TransactOpts, _voteType, _threshold)
 10423  }
 10424  
 10425  // SetOperatorThreshold is a paid mutator transaction binding the contract method 0xee2aec65.
 10426  //
 10427  // Solidity: function setOperatorThreshold(uint8 _voteType, uint8 _threshold) returns()
 10428  func (_BridgeTransferERC20 *BridgeTransferERC20TransactorSession) SetOperatorThreshold(_voteType uint8, _threshold uint8) (*types.Transaction, error) {
 10429  	return _BridgeTransferERC20.Contract.SetOperatorThreshold(&_BridgeTransferERC20.TransactOpts, _voteType, _threshold)
 10430  }
 10431  
 10432  // Start is a paid mutator transaction binding the contract method 0xc877cf37.
 10433  //
 10434  // Solidity: function start(bool _status) returns()
 10435  func (_BridgeTransferERC20 *BridgeTransferERC20Transactor) Start(opts *bind.TransactOpts, _status bool) (*types.Transaction, error) {
 10436  	return _BridgeTransferERC20.contract.Transact(opts, "start", _status)
 10437  }
 10438  
 10439  // Start is a paid mutator transaction binding the contract method 0xc877cf37.
 10440  //
 10441  // Solidity: function start(bool _status) returns()
 10442  func (_BridgeTransferERC20 *BridgeTransferERC20Session) Start(_status bool) (*types.Transaction, error) {
 10443  	return _BridgeTransferERC20.Contract.Start(&_BridgeTransferERC20.TransactOpts, _status)
 10444  }
 10445  
 10446  // Start is a paid mutator transaction binding the contract method 0xc877cf37.
 10447  //
 10448  // Solidity: function start(bool _status) returns()
 10449  func (_BridgeTransferERC20 *BridgeTransferERC20TransactorSession) Start(_status bool) (*types.Transaction, error) {
 10450  	return _BridgeTransferERC20.Contract.Start(&_BridgeTransferERC20.TransactOpts, _status)
 10451  }
 10452  
 10453  // TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b.
 10454  //
 10455  // Solidity: function transferOwnership(address newOwner) returns()
 10456  func (_BridgeTransferERC20 *BridgeTransferERC20Transactor) TransferOwnership(opts *bind.TransactOpts, newOwner common.Address) (*types.Transaction, error) {
 10457  	return _BridgeTransferERC20.contract.Transact(opts, "transferOwnership", newOwner)
 10458  }
 10459  
 10460  // TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b.
 10461  //
 10462  // Solidity: function transferOwnership(address newOwner) returns()
 10463  func (_BridgeTransferERC20 *BridgeTransferERC20Session) TransferOwnership(newOwner common.Address) (*types.Transaction, error) {
 10464  	return _BridgeTransferERC20.Contract.TransferOwnership(&_BridgeTransferERC20.TransactOpts, newOwner)
 10465  }
 10466  
 10467  // TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b.
 10468  //
 10469  // Solidity: function transferOwnership(address newOwner) returns()
 10470  func (_BridgeTransferERC20 *BridgeTransferERC20TransactorSession) TransferOwnership(newOwner common.Address) (*types.Transaction, error) {
 10471  	return _BridgeTransferERC20.Contract.TransferOwnership(&_BridgeTransferERC20.TransactOpts, newOwner)
 10472  }
 10473  
 10474  // UnlockToken is a paid mutator transaction binding the contract method 0x9ef2017b.
 10475  //
 10476  // Solidity: function unlockToken(address _token) returns()
 10477  func (_BridgeTransferERC20 *BridgeTransferERC20Transactor) UnlockToken(opts *bind.TransactOpts, _token common.Address) (*types.Transaction, error) {
 10478  	return _BridgeTransferERC20.contract.Transact(opts, "unlockToken", _token)
 10479  }
 10480  
 10481  // UnlockToken is a paid mutator transaction binding the contract method 0x9ef2017b.
 10482  //
 10483  // Solidity: function unlockToken(address _token) returns()
 10484  func (_BridgeTransferERC20 *BridgeTransferERC20Session) UnlockToken(_token common.Address) (*types.Transaction, error) {
 10485  	return _BridgeTransferERC20.Contract.UnlockToken(&_BridgeTransferERC20.TransactOpts, _token)
 10486  }
 10487  
 10488  // UnlockToken is a paid mutator transaction binding the contract method 0x9ef2017b.
 10489  //
 10490  // Solidity: function unlockToken(address _token) returns()
 10491  func (_BridgeTransferERC20 *BridgeTransferERC20TransactorSession) UnlockToken(_token common.Address) (*types.Transaction, error) {
 10492  	return _BridgeTransferERC20.Contract.UnlockToken(&_BridgeTransferERC20.TransactOpts, _token)
 10493  }
 10494  
 10495  // BridgeTransferERC20ERC20FeeChangedIterator is returned from FilterERC20FeeChanged and is used to iterate over the raw logs and unpacked data for ERC20FeeChanged events raised by the BridgeTransferERC20 contract.
 10496  type BridgeTransferERC20ERC20FeeChangedIterator struct {
 10497  	Event *BridgeTransferERC20ERC20FeeChanged // Event containing the contract specifics and raw log
 10498  
 10499  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 10500  	event    string              // Event name to use for unpacking event data
 10501  
 10502  	logs chan types.Log      // Log channel receiving the found contract events
 10503  	sub  klaytn.Subscription // Subscription for errors, completion and termination
 10504  	done bool                // Whether the subscription completed delivering logs
 10505  	fail error               // Occurred error to stop iteration
 10506  }
 10507  
 10508  // Next advances the iterator to the subsequent event, returning whether there
 10509  // are any more events found. In case of a retrieval or parsing error, false is
 10510  // returned and Error() can be queried for the exact failure.
 10511  func (it *BridgeTransferERC20ERC20FeeChangedIterator) Next() bool {
 10512  	// If the iterator failed, stop iterating
 10513  	if it.fail != nil {
 10514  		return false
 10515  	}
 10516  	// If the iterator completed, deliver directly whatever's available
 10517  	if it.done {
 10518  		select {
 10519  		case log := <-it.logs:
 10520  			it.Event = new(BridgeTransferERC20ERC20FeeChanged)
 10521  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 10522  				it.fail = err
 10523  				return false
 10524  			}
 10525  			it.Event.Raw = log
 10526  			return true
 10527  
 10528  		default:
 10529  			return false
 10530  		}
 10531  	}
 10532  	// Iterator still in progress, wait for either a data or an error event
 10533  	select {
 10534  	case log := <-it.logs:
 10535  		it.Event = new(BridgeTransferERC20ERC20FeeChanged)
 10536  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 10537  			it.fail = err
 10538  			return false
 10539  		}
 10540  		it.Event.Raw = log
 10541  		return true
 10542  
 10543  	case err := <-it.sub.Err():
 10544  		it.done = true
 10545  		it.fail = err
 10546  		return it.Next()
 10547  	}
 10548  }
 10549  
 10550  // Error returns any retrieval or parsing error occurred during filtering.
 10551  func (it *BridgeTransferERC20ERC20FeeChangedIterator) Error() error {
 10552  	return it.fail
 10553  }
 10554  
 10555  // Close terminates the iteration process, releasing any pending underlying
 10556  // resources.
 10557  func (it *BridgeTransferERC20ERC20FeeChangedIterator) Close() error {
 10558  	it.sub.Unsubscribe()
 10559  	return nil
 10560  }
 10561  
 10562  // BridgeTransferERC20ERC20FeeChanged represents a ERC20FeeChanged event raised by the BridgeTransferERC20 contract.
 10563  type BridgeTransferERC20ERC20FeeChanged struct {
 10564  	Token common.Address
 10565  	Fee   *big.Int
 10566  	Raw   types.Log // Blockchain specific contextual infos
 10567  }
 10568  
 10569  // FilterERC20FeeChanged is a free log retrieval operation binding the contract event 0xdb5ad2e76ae20cfa4e7adbc7305d7538442164d85ead9937c98620a1aa4c255b.
 10570  //
 10571  // Solidity: event ERC20FeeChanged(address indexed token, uint256 indexed fee)
 10572  func (_BridgeTransferERC20 *BridgeTransferERC20Filterer) FilterERC20FeeChanged(opts *bind.FilterOpts, token []common.Address, fee []*big.Int) (*BridgeTransferERC20ERC20FeeChangedIterator, error) {
 10573  
 10574  	var tokenRule []interface{}
 10575  	for _, tokenItem := range token {
 10576  		tokenRule = append(tokenRule, tokenItem)
 10577  	}
 10578  	var feeRule []interface{}
 10579  	for _, feeItem := range fee {
 10580  		feeRule = append(feeRule, feeItem)
 10581  	}
 10582  
 10583  	logs, sub, err := _BridgeTransferERC20.contract.FilterLogs(opts, "ERC20FeeChanged", tokenRule, feeRule)
 10584  	if err != nil {
 10585  		return nil, err
 10586  	}
 10587  	return &BridgeTransferERC20ERC20FeeChangedIterator{contract: _BridgeTransferERC20.contract, event: "ERC20FeeChanged", logs: logs, sub: sub}, nil
 10588  }
 10589  
 10590  // WatchERC20FeeChanged is a free log subscription operation binding the contract event 0xdb5ad2e76ae20cfa4e7adbc7305d7538442164d85ead9937c98620a1aa4c255b.
 10591  //
 10592  // Solidity: event ERC20FeeChanged(address indexed token, uint256 indexed fee)
 10593  func (_BridgeTransferERC20 *BridgeTransferERC20Filterer) WatchERC20FeeChanged(opts *bind.WatchOpts, sink chan<- *BridgeTransferERC20ERC20FeeChanged, token []common.Address, fee []*big.Int) (event.Subscription, error) {
 10594  
 10595  	var tokenRule []interface{}
 10596  	for _, tokenItem := range token {
 10597  		tokenRule = append(tokenRule, tokenItem)
 10598  	}
 10599  	var feeRule []interface{}
 10600  	for _, feeItem := range fee {
 10601  		feeRule = append(feeRule, feeItem)
 10602  	}
 10603  
 10604  	logs, sub, err := _BridgeTransferERC20.contract.WatchLogs(opts, "ERC20FeeChanged", tokenRule, feeRule)
 10605  	if err != nil {
 10606  		return nil, err
 10607  	}
 10608  	return event.NewSubscription(func(quit <-chan struct{}) error {
 10609  		defer sub.Unsubscribe()
 10610  		for {
 10611  			select {
 10612  			case log := <-logs:
 10613  				// New log arrived, parse the event and forward to the user
 10614  				event := new(BridgeTransferERC20ERC20FeeChanged)
 10615  				if err := _BridgeTransferERC20.contract.UnpackLog(event, "ERC20FeeChanged", log); err != nil {
 10616  					return err
 10617  				}
 10618  				event.Raw = log
 10619  
 10620  				select {
 10621  				case sink <- event:
 10622  				case err := <-sub.Err():
 10623  					return err
 10624  				case <-quit:
 10625  					return nil
 10626  				}
 10627  			case err := <-sub.Err():
 10628  				return err
 10629  			case <-quit:
 10630  				return nil
 10631  			}
 10632  		}
 10633  	}), nil
 10634  }
 10635  
 10636  // ParseERC20FeeChanged is a log parse operation binding the contract event 0xdb5ad2e76ae20cfa4e7adbc7305d7538442164d85ead9937c98620a1aa4c255b.
 10637  //
 10638  // Solidity: event ERC20FeeChanged(address indexed token, uint256 indexed fee)
 10639  func (_BridgeTransferERC20 *BridgeTransferERC20Filterer) ParseERC20FeeChanged(log types.Log) (*BridgeTransferERC20ERC20FeeChanged, error) {
 10640  	event := new(BridgeTransferERC20ERC20FeeChanged)
 10641  	if err := _BridgeTransferERC20.contract.UnpackLog(event, "ERC20FeeChanged", log); err != nil {
 10642  		return nil, err
 10643  	}
 10644  	return event, nil
 10645  }
 10646  
 10647  // BridgeTransferERC20FeeReceiverChangedIterator is returned from FilterFeeReceiverChanged and is used to iterate over the raw logs and unpacked data for FeeReceiverChanged events raised by the BridgeTransferERC20 contract.
 10648  type BridgeTransferERC20FeeReceiverChangedIterator struct {
 10649  	Event *BridgeTransferERC20FeeReceiverChanged // Event containing the contract specifics and raw log
 10650  
 10651  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 10652  	event    string              // Event name to use for unpacking event data
 10653  
 10654  	logs chan types.Log      // Log channel receiving the found contract events
 10655  	sub  klaytn.Subscription // Subscription for errors, completion and termination
 10656  	done bool                // Whether the subscription completed delivering logs
 10657  	fail error               // Occurred error to stop iteration
 10658  }
 10659  
 10660  // Next advances the iterator to the subsequent event, returning whether there
 10661  // are any more events found. In case of a retrieval or parsing error, false is
 10662  // returned and Error() can be queried for the exact failure.
 10663  func (it *BridgeTransferERC20FeeReceiverChangedIterator) Next() bool {
 10664  	// If the iterator failed, stop iterating
 10665  	if it.fail != nil {
 10666  		return false
 10667  	}
 10668  	// If the iterator completed, deliver directly whatever's available
 10669  	if it.done {
 10670  		select {
 10671  		case log := <-it.logs:
 10672  			it.Event = new(BridgeTransferERC20FeeReceiverChanged)
 10673  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 10674  				it.fail = err
 10675  				return false
 10676  			}
 10677  			it.Event.Raw = log
 10678  			return true
 10679  
 10680  		default:
 10681  			return false
 10682  		}
 10683  	}
 10684  	// Iterator still in progress, wait for either a data or an error event
 10685  	select {
 10686  	case log := <-it.logs:
 10687  		it.Event = new(BridgeTransferERC20FeeReceiverChanged)
 10688  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 10689  			it.fail = err
 10690  			return false
 10691  		}
 10692  		it.Event.Raw = log
 10693  		return true
 10694  
 10695  	case err := <-it.sub.Err():
 10696  		it.done = true
 10697  		it.fail = err
 10698  		return it.Next()
 10699  	}
 10700  }
 10701  
 10702  // Error returns any retrieval or parsing error occurred during filtering.
 10703  func (it *BridgeTransferERC20FeeReceiverChangedIterator) Error() error {
 10704  	return it.fail
 10705  }
 10706  
 10707  // Close terminates the iteration process, releasing any pending underlying
 10708  // resources.
 10709  func (it *BridgeTransferERC20FeeReceiverChangedIterator) Close() error {
 10710  	it.sub.Unsubscribe()
 10711  	return nil
 10712  }
 10713  
 10714  // BridgeTransferERC20FeeReceiverChanged represents a FeeReceiverChanged event raised by the BridgeTransferERC20 contract.
 10715  type BridgeTransferERC20FeeReceiverChanged struct {
 10716  	FeeReceiver common.Address
 10717  	Raw         types.Log // Blockchain specific contextual infos
 10718  }
 10719  
 10720  // FilterFeeReceiverChanged is a free log retrieval operation binding the contract event 0x647672599d3468abcfa241a13c9e3d34383caadb5cc80fb67c3cdfcd5f786059.
 10721  //
 10722  // Solidity: event FeeReceiverChanged(address indexed feeReceiver)
 10723  func (_BridgeTransferERC20 *BridgeTransferERC20Filterer) FilterFeeReceiverChanged(opts *bind.FilterOpts, feeReceiver []common.Address) (*BridgeTransferERC20FeeReceiverChangedIterator, error) {
 10724  
 10725  	var feeReceiverRule []interface{}
 10726  	for _, feeReceiverItem := range feeReceiver {
 10727  		feeReceiverRule = append(feeReceiverRule, feeReceiverItem)
 10728  	}
 10729  
 10730  	logs, sub, err := _BridgeTransferERC20.contract.FilterLogs(opts, "FeeReceiverChanged", feeReceiverRule)
 10731  	if err != nil {
 10732  		return nil, err
 10733  	}
 10734  	return &BridgeTransferERC20FeeReceiverChangedIterator{contract: _BridgeTransferERC20.contract, event: "FeeReceiverChanged", logs: logs, sub: sub}, nil
 10735  }
 10736  
 10737  // WatchFeeReceiverChanged is a free log subscription operation binding the contract event 0x647672599d3468abcfa241a13c9e3d34383caadb5cc80fb67c3cdfcd5f786059.
 10738  //
 10739  // Solidity: event FeeReceiverChanged(address indexed feeReceiver)
 10740  func (_BridgeTransferERC20 *BridgeTransferERC20Filterer) WatchFeeReceiverChanged(opts *bind.WatchOpts, sink chan<- *BridgeTransferERC20FeeReceiverChanged, feeReceiver []common.Address) (event.Subscription, error) {
 10741  
 10742  	var feeReceiverRule []interface{}
 10743  	for _, feeReceiverItem := range feeReceiver {
 10744  		feeReceiverRule = append(feeReceiverRule, feeReceiverItem)
 10745  	}
 10746  
 10747  	logs, sub, err := _BridgeTransferERC20.contract.WatchLogs(opts, "FeeReceiverChanged", feeReceiverRule)
 10748  	if err != nil {
 10749  		return nil, err
 10750  	}
 10751  	return event.NewSubscription(func(quit <-chan struct{}) error {
 10752  		defer sub.Unsubscribe()
 10753  		for {
 10754  			select {
 10755  			case log := <-logs:
 10756  				// New log arrived, parse the event and forward to the user
 10757  				event := new(BridgeTransferERC20FeeReceiverChanged)
 10758  				if err := _BridgeTransferERC20.contract.UnpackLog(event, "FeeReceiverChanged", log); err != nil {
 10759  					return err
 10760  				}
 10761  				event.Raw = log
 10762  
 10763  				select {
 10764  				case sink <- event:
 10765  				case err := <-sub.Err():
 10766  					return err
 10767  				case <-quit:
 10768  					return nil
 10769  				}
 10770  			case err := <-sub.Err():
 10771  				return err
 10772  			case <-quit:
 10773  				return nil
 10774  			}
 10775  		}
 10776  	}), nil
 10777  }
 10778  
 10779  // ParseFeeReceiverChanged is a log parse operation binding the contract event 0x647672599d3468abcfa241a13c9e3d34383caadb5cc80fb67c3cdfcd5f786059.
 10780  //
 10781  // Solidity: event FeeReceiverChanged(address indexed feeReceiver)
 10782  func (_BridgeTransferERC20 *BridgeTransferERC20Filterer) ParseFeeReceiverChanged(log types.Log) (*BridgeTransferERC20FeeReceiverChanged, error) {
 10783  	event := new(BridgeTransferERC20FeeReceiverChanged)
 10784  	if err := _BridgeTransferERC20.contract.UnpackLog(event, "FeeReceiverChanged", log); err != nil {
 10785  		return nil, err
 10786  	}
 10787  	return event, nil
 10788  }
 10789  
 10790  // BridgeTransferERC20HandleValueTransferIterator is returned from FilterHandleValueTransfer and is used to iterate over the raw logs and unpacked data for HandleValueTransfer events raised by the BridgeTransferERC20 contract.
 10791  type BridgeTransferERC20HandleValueTransferIterator struct {
 10792  	Event *BridgeTransferERC20HandleValueTransfer // Event containing the contract specifics and raw log
 10793  
 10794  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 10795  	event    string              // Event name to use for unpacking event data
 10796  
 10797  	logs chan types.Log      // Log channel receiving the found contract events
 10798  	sub  klaytn.Subscription // Subscription for errors, completion and termination
 10799  	done bool                // Whether the subscription completed delivering logs
 10800  	fail error               // Occurred error to stop iteration
 10801  }
 10802  
 10803  // Next advances the iterator to the subsequent event, returning whether there
 10804  // are any more events found. In case of a retrieval or parsing error, false is
 10805  // returned and Error() can be queried for the exact failure.
 10806  func (it *BridgeTransferERC20HandleValueTransferIterator) Next() bool {
 10807  	// If the iterator failed, stop iterating
 10808  	if it.fail != nil {
 10809  		return false
 10810  	}
 10811  	// If the iterator completed, deliver directly whatever's available
 10812  	if it.done {
 10813  		select {
 10814  		case log := <-it.logs:
 10815  			it.Event = new(BridgeTransferERC20HandleValueTransfer)
 10816  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 10817  				it.fail = err
 10818  				return false
 10819  			}
 10820  			it.Event.Raw = log
 10821  			return true
 10822  
 10823  		default:
 10824  			return false
 10825  		}
 10826  	}
 10827  	// Iterator still in progress, wait for either a data or an error event
 10828  	select {
 10829  	case log := <-it.logs:
 10830  		it.Event = new(BridgeTransferERC20HandleValueTransfer)
 10831  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 10832  			it.fail = err
 10833  			return false
 10834  		}
 10835  		it.Event.Raw = log
 10836  		return true
 10837  
 10838  	case err := <-it.sub.Err():
 10839  		it.done = true
 10840  		it.fail = err
 10841  		return it.Next()
 10842  	}
 10843  }
 10844  
 10845  // Error returns any retrieval or parsing error occurred during filtering.
 10846  func (it *BridgeTransferERC20HandleValueTransferIterator) Error() error {
 10847  	return it.fail
 10848  }
 10849  
 10850  // Close terminates the iteration process, releasing any pending underlying
 10851  // resources.
 10852  func (it *BridgeTransferERC20HandleValueTransferIterator) Close() error {
 10853  	it.sub.Unsubscribe()
 10854  	return nil
 10855  }
 10856  
 10857  // BridgeTransferERC20HandleValueTransfer represents a HandleValueTransfer event raised by the BridgeTransferERC20 contract.
 10858  type BridgeTransferERC20HandleValueTransfer struct {
 10859  	RequestTxHash    [32]byte
 10860  	TokenType        uint8
 10861  	From             common.Address
 10862  	To               common.Address
 10863  	TokenAddress     common.Address
 10864  	ValueOrTokenId   *big.Int
 10865  	HandleNonce      uint64
 10866  	LowerHandleNonce uint64
 10867  	ExtraData        []byte
 10868  	Raw              types.Log // Blockchain specific contextual infos
 10869  }
 10870  
 10871  // FilterHandleValueTransfer is a free log retrieval operation binding the contract event 0x12b02f226d965a2881e0e8ffed6c421803a22d57ad91f9ef996fe0748ea10175.
 10872  //
 10873  // Solidity: event HandleValueTransfer(bytes32 requestTxHash, uint8 tokenType, address indexed from, address indexed to, address indexed tokenAddress, uint256 valueOrTokenId, uint64 handleNonce, uint64 lowerHandleNonce, bytes extraData)
 10874  func (_BridgeTransferERC20 *BridgeTransferERC20Filterer) FilterHandleValueTransfer(opts *bind.FilterOpts, from []common.Address, to []common.Address, tokenAddress []common.Address) (*BridgeTransferERC20HandleValueTransferIterator, error) {
 10875  
 10876  	var fromRule []interface{}
 10877  	for _, fromItem := range from {
 10878  		fromRule = append(fromRule, fromItem)
 10879  	}
 10880  	var toRule []interface{}
 10881  	for _, toItem := range to {
 10882  		toRule = append(toRule, toItem)
 10883  	}
 10884  	var tokenAddressRule []interface{}
 10885  	for _, tokenAddressItem := range tokenAddress {
 10886  		tokenAddressRule = append(tokenAddressRule, tokenAddressItem)
 10887  	}
 10888  
 10889  	logs, sub, err := _BridgeTransferERC20.contract.FilterLogs(opts, "HandleValueTransfer", fromRule, toRule, tokenAddressRule)
 10890  	if err != nil {
 10891  		return nil, err
 10892  	}
 10893  	return &BridgeTransferERC20HandleValueTransferIterator{contract: _BridgeTransferERC20.contract, event: "HandleValueTransfer", logs: logs, sub: sub}, nil
 10894  }
 10895  
 10896  // WatchHandleValueTransfer is a free log subscription operation binding the contract event 0x12b02f226d965a2881e0e8ffed6c421803a22d57ad91f9ef996fe0748ea10175.
 10897  //
 10898  // Solidity: event HandleValueTransfer(bytes32 requestTxHash, uint8 tokenType, address indexed from, address indexed to, address indexed tokenAddress, uint256 valueOrTokenId, uint64 handleNonce, uint64 lowerHandleNonce, bytes extraData)
 10899  func (_BridgeTransferERC20 *BridgeTransferERC20Filterer) WatchHandleValueTransfer(opts *bind.WatchOpts, sink chan<- *BridgeTransferERC20HandleValueTransfer, from []common.Address, to []common.Address, tokenAddress []common.Address) (event.Subscription, error) {
 10900  
 10901  	var fromRule []interface{}
 10902  	for _, fromItem := range from {
 10903  		fromRule = append(fromRule, fromItem)
 10904  	}
 10905  	var toRule []interface{}
 10906  	for _, toItem := range to {
 10907  		toRule = append(toRule, toItem)
 10908  	}
 10909  	var tokenAddressRule []interface{}
 10910  	for _, tokenAddressItem := range tokenAddress {
 10911  		tokenAddressRule = append(tokenAddressRule, tokenAddressItem)
 10912  	}
 10913  
 10914  	logs, sub, err := _BridgeTransferERC20.contract.WatchLogs(opts, "HandleValueTransfer", fromRule, toRule, tokenAddressRule)
 10915  	if err != nil {
 10916  		return nil, err
 10917  	}
 10918  	return event.NewSubscription(func(quit <-chan struct{}) error {
 10919  		defer sub.Unsubscribe()
 10920  		for {
 10921  			select {
 10922  			case log := <-logs:
 10923  				// New log arrived, parse the event and forward to the user
 10924  				event := new(BridgeTransferERC20HandleValueTransfer)
 10925  				if err := _BridgeTransferERC20.contract.UnpackLog(event, "HandleValueTransfer", log); err != nil {
 10926  					return err
 10927  				}
 10928  				event.Raw = log
 10929  
 10930  				select {
 10931  				case sink <- event:
 10932  				case err := <-sub.Err():
 10933  					return err
 10934  				case <-quit:
 10935  					return nil
 10936  				}
 10937  			case err := <-sub.Err():
 10938  				return err
 10939  			case <-quit:
 10940  				return nil
 10941  			}
 10942  		}
 10943  	}), nil
 10944  }
 10945  
 10946  // ParseHandleValueTransfer is a log parse operation binding the contract event 0x12b02f226d965a2881e0e8ffed6c421803a22d57ad91f9ef996fe0748ea10175.
 10947  //
 10948  // Solidity: event HandleValueTransfer(bytes32 requestTxHash, uint8 tokenType, address indexed from, address indexed to, address indexed tokenAddress, uint256 valueOrTokenId, uint64 handleNonce, uint64 lowerHandleNonce, bytes extraData)
 10949  func (_BridgeTransferERC20 *BridgeTransferERC20Filterer) ParseHandleValueTransfer(log types.Log) (*BridgeTransferERC20HandleValueTransfer, error) {
 10950  	event := new(BridgeTransferERC20HandleValueTransfer)
 10951  	if err := _BridgeTransferERC20.contract.UnpackLog(event, "HandleValueTransfer", log); err != nil {
 10952  		return nil, err
 10953  	}
 10954  	return event, nil
 10955  }
 10956  
 10957  // BridgeTransferERC20KLAYFeeChangedIterator is returned from FilterKLAYFeeChanged and is used to iterate over the raw logs and unpacked data for KLAYFeeChanged events raised by the BridgeTransferERC20 contract.
 10958  type BridgeTransferERC20KLAYFeeChangedIterator struct {
 10959  	Event *BridgeTransferERC20KLAYFeeChanged // Event containing the contract specifics and raw log
 10960  
 10961  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 10962  	event    string              // Event name to use for unpacking event data
 10963  
 10964  	logs chan types.Log      // Log channel receiving the found contract events
 10965  	sub  klaytn.Subscription // Subscription for errors, completion and termination
 10966  	done bool                // Whether the subscription completed delivering logs
 10967  	fail error               // Occurred error to stop iteration
 10968  }
 10969  
 10970  // Next advances the iterator to the subsequent event, returning whether there
 10971  // are any more events found. In case of a retrieval or parsing error, false is
 10972  // returned and Error() can be queried for the exact failure.
 10973  func (it *BridgeTransferERC20KLAYFeeChangedIterator) Next() bool {
 10974  	// If the iterator failed, stop iterating
 10975  	if it.fail != nil {
 10976  		return false
 10977  	}
 10978  	// If the iterator completed, deliver directly whatever's available
 10979  	if it.done {
 10980  		select {
 10981  		case log := <-it.logs:
 10982  			it.Event = new(BridgeTransferERC20KLAYFeeChanged)
 10983  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 10984  				it.fail = err
 10985  				return false
 10986  			}
 10987  			it.Event.Raw = log
 10988  			return true
 10989  
 10990  		default:
 10991  			return false
 10992  		}
 10993  	}
 10994  	// Iterator still in progress, wait for either a data or an error event
 10995  	select {
 10996  	case log := <-it.logs:
 10997  		it.Event = new(BridgeTransferERC20KLAYFeeChanged)
 10998  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 10999  			it.fail = err
 11000  			return false
 11001  		}
 11002  		it.Event.Raw = log
 11003  		return true
 11004  
 11005  	case err := <-it.sub.Err():
 11006  		it.done = true
 11007  		it.fail = err
 11008  		return it.Next()
 11009  	}
 11010  }
 11011  
 11012  // Error returns any retrieval or parsing error occurred during filtering.
 11013  func (it *BridgeTransferERC20KLAYFeeChangedIterator) Error() error {
 11014  	return it.fail
 11015  }
 11016  
 11017  // Close terminates the iteration process, releasing any pending underlying
 11018  // resources.
 11019  func (it *BridgeTransferERC20KLAYFeeChangedIterator) Close() error {
 11020  	it.sub.Unsubscribe()
 11021  	return nil
 11022  }
 11023  
 11024  // BridgeTransferERC20KLAYFeeChanged represents a KLAYFeeChanged event raised by the BridgeTransferERC20 contract.
 11025  type BridgeTransferERC20KLAYFeeChanged struct {
 11026  	Fee *big.Int
 11027  	Raw types.Log // Blockchain specific contextual infos
 11028  }
 11029  
 11030  // FilterKLAYFeeChanged is a free log retrieval operation binding the contract event 0xa7a33d0996347e1aa55ca2206015b61b9534bdd881d59d59aa680e25eefac365.
 11031  //
 11032  // Solidity: event KLAYFeeChanged(uint256 indexed fee)
 11033  func (_BridgeTransferERC20 *BridgeTransferERC20Filterer) FilterKLAYFeeChanged(opts *bind.FilterOpts, fee []*big.Int) (*BridgeTransferERC20KLAYFeeChangedIterator, error) {
 11034  
 11035  	var feeRule []interface{}
 11036  	for _, feeItem := range fee {
 11037  		feeRule = append(feeRule, feeItem)
 11038  	}
 11039  
 11040  	logs, sub, err := _BridgeTransferERC20.contract.FilterLogs(opts, "KLAYFeeChanged", feeRule)
 11041  	if err != nil {
 11042  		return nil, err
 11043  	}
 11044  	return &BridgeTransferERC20KLAYFeeChangedIterator{contract: _BridgeTransferERC20.contract, event: "KLAYFeeChanged", logs: logs, sub: sub}, nil
 11045  }
 11046  
 11047  // WatchKLAYFeeChanged is a free log subscription operation binding the contract event 0xa7a33d0996347e1aa55ca2206015b61b9534bdd881d59d59aa680e25eefac365.
 11048  //
 11049  // Solidity: event KLAYFeeChanged(uint256 indexed fee)
 11050  func (_BridgeTransferERC20 *BridgeTransferERC20Filterer) WatchKLAYFeeChanged(opts *bind.WatchOpts, sink chan<- *BridgeTransferERC20KLAYFeeChanged, fee []*big.Int) (event.Subscription, error) {
 11051  
 11052  	var feeRule []interface{}
 11053  	for _, feeItem := range fee {
 11054  		feeRule = append(feeRule, feeItem)
 11055  	}
 11056  
 11057  	logs, sub, err := _BridgeTransferERC20.contract.WatchLogs(opts, "KLAYFeeChanged", feeRule)
 11058  	if err != nil {
 11059  		return nil, err
 11060  	}
 11061  	return event.NewSubscription(func(quit <-chan struct{}) error {
 11062  		defer sub.Unsubscribe()
 11063  		for {
 11064  			select {
 11065  			case log := <-logs:
 11066  				// New log arrived, parse the event and forward to the user
 11067  				event := new(BridgeTransferERC20KLAYFeeChanged)
 11068  				if err := _BridgeTransferERC20.contract.UnpackLog(event, "KLAYFeeChanged", log); err != nil {
 11069  					return err
 11070  				}
 11071  				event.Raw = log
 11072  
 11073  				select {
 11074  				case sink <- event:
 11075  				case err := <-sub.Err():
 11076  					return err
 11077  				case <-quit:
 11078  					return nil
 11079  				}
 11080  			case err := <-sub.Err():
 11081  				return err
 11082  			case <-quit:
 11083  				return nil
 11084  			}
 11085  		}
 11086  	}), nil
 11087  }
 11088  
 11089  // ParseKLAYFeeChanged is a log parse operation binding the contract event 0xa7a33d0996347e1aa55ca2206015b61b9534bdd881d59d59aa680e25eefac365.
 11090  //
 11091  // Solidity: event KLAYFeeChanged(uint256 indexed fee)
 11092  func (_BridgeTransferERC20 *BridgeTransferERC20Filterer) ParseKLAYFeeChanged(log types.Log) (*BridgeTransferERC20KLAYFeeChanged, error) {
 11093  	event := new(BridgeTransferERC20KLAYFeeChanged)
 11094  	if err := _BridgeTransferERC20.contract.UnpackLog(event, "KLAYFeeChanged", log); err != nil {
 11095  		return nil, err
 11096  	}
 11097  	return event, nil
 11098  }
 11099  
 11100  // BridgeTransferERC20OwnershipTransferredIterator is returned from FilterOwnershipTransferred and is used to iterate over the raw logs and unpacked data for OwnershipTransferred events raised by the BridgeTransferERC20 contract.
 11101  type BridgeTransferERC20OwnershipTransferredIterator struct {
 11102  	Event *BridgeTransferERC20OwnershipTransferred // Event containing the contract specifics and raw log
 11103  
 11104  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 11105  	event    string              // Event name to use for unpacking event data
 11106  
 11107  	logs chan types.Log      // Log channel receiving the found contract events
 11108  	sub  klaytn.Subscription // Subscription for errors, completion and termination
 11109  	done bool                // Whether the subscription completed delivering logs
 11110  	fail error               // Occurred error to stop iteration
 11111  }
 11112  
 11113  // Next advances the iterator to the subsequent event, returning whether there
 11114  // are any more events found. In case of a retrieval or parsing error, false is
 11115  // returned and Error() can be queried for the exact failure.
 11116  func (it *BridgeTransferERC20OwnershipTransferredIterator) Next() bool {
 11117  	// If the iterator failed, stop iterating
 11118  	if it.fail != nil {
 11119  		return false
 11120  	}
 11121  	// If the iterator completed, deliver directly whatever's available
 11122  	if it.done {
 11123  		select {
 11124  		case log := <-it.logs:
 11125  			it.Event = new(BridgeTransferERC20OwnershipTransferred)
 11126  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 11127  				it.fail = err
 11128  				return false
 11129  			}
 11130  			it.Event.Raw = log
 11131  			return true
 11132  
 11133  		default:
 11134  			return false
 11135  		}
 11136  	}
 11137  	// Iterator still in progress, wait for either a data or an error event
 11138  	select {
 11139  	case log := <-it.logs:
 11140  		it.Event = new(BridgeTransferERC20OwnershipTransferred)
 11141  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 11142  			it.fail = err
 11143  			return false
 11144  		}
 11145  		it.Event.Raw = log
 11146  		return true
 11147  
 11148  	case err := <-it.sub.Err():
 11149  		it.done = true
 11150  		it.fail = err
 11151  		return it.Next()
 11152  	}
 11153  }
 11154  
 11155  // Error returns any retrieval or parsing error occurred during filtering.
 11156  func (it *BridgeTransferERC20OwnershipTransferredIterator) Error() error {
 11157  	return it.fail
 11158  }
 11159  
 11160  // Close terminates the iteration process, releasing any pending underlying
 11161  // resources.
 11162  func (it *BridgeTransferERC20OwnershipTransferredIterator) Close() error {
 11163  	it.sub.Unsubscribe()
 11164  	return nil
 11165  }
 11166  
 11167  // BridgeTransferERC20OwnershipTransferred represents a OwnershipTransferred event raised by the BridgeTransferERC20 contract.
 11168  type BridgeTransferERC20OwnershipTransferred struct {
 11169  	PreviousOwner common.Address
 11170  	NewOwner      common.Address
 11171  	Raw           types.Log // Blockchain specific contextual infos
 11172  }
 11173  
 11174  // FilterOwnershipTransferred is a free log retrieval operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0.
 11175  //
 11176  // Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
 11177  func (_BridgeTransferERC20 *BridgeTransferERC20Filterer) FilterOwnershipTransferred(opts *bind.FilterOpts, previousOwner []common.Address, newOwner []common.Address) (*BridgeTransferERC20OwnershipTransferredIterator, error) {
 11178  
 11179  	var previousOwnerRule []interface{}
 11180  	for _, previousOwnerItem := range previousOwner {
 11181  		previousOwnerRule = append(previousOwnerRule, previousOwnerItem)
 11182  	}
 11183  	var newOwnerRule []interface{}
 11184  	for _, newOwnerItem := range newOwner {
 11185  		newOwnerRule = append(newOwnerRule, newOwnerItem)
 11186  	}
 11187  
 11188  	logs, sub, err := _BridgeTransferERC20.contract.FilterLogs(opts, "OwnershipTransferred", previousOwnerRule, newOwnerRule)
 11189  	if err != nil {
 11190  		return nil, err
 11191  	}
 11192  	return &BridgeTransferERC20OwnershipTransferredIterator{contract: _BridgeTransferERC20.contract, event: "OwnershipTransferred", logs: logs, sub: sub}, nil
 11193  }
 11194  
 11195  // WatchOwnershipTransferred is a free log subscription operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0.
 11196  //
 11197  // Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
 11198  func (_BridgeTransferERC20 *BridgeTransferERC20Filterer) WatchOwnershipTransferred(opts *bind.WatchOpts, sink chan<- *BridgeTransferERC20OwnershipTransferred, previousOwner []common.Address, newOwner []common.Address) (event.Subscription, error) {
 11199  
 11200  	var previousOwnerRule []interface{}
 11201  	for _, previousOwnerItem := range previousOwner {
 11202  		previousOwnerRule = append(previousOwnerRule, previousOwnerItem)
 11203  	}
 11204  	var newOwnerRule []interface{}
 11205  	for _, newOwnerItem := range newOwner {
 11206  		newOwnerRule = append(newOwnerRule, newOwnerItem)
 11207  	}
 11208  
 11209  	logs, sub, err := _BridgeTransferERC20.contract.WatchLogs(opts, "OwnershipTransferred", previousOwnerRule, newOwnerRule)
 11210  	if err != nil {
 11211  		return nil, err
 11212  	}
 11213  	return event.NewSubscription(func(quit <-chan struct{}) error {
 11214  		defer sub.Unsubscribe()
 11215  		for {
 11216  			select {
 11217  			case log := <-logs:
 11218  				// New log arrived, parse the event and forward to the user
 11219  				event := new(BridgeTransferERC20OwnershipTransferred)
 11220  				if err := _BridgeTransferERC20.contract.UnpackLog(event, "OwnershipTransferred", log); err != nil {
 11221  					return err
 11222  				}
 11223  				event.Raw = log
 11224  
 11225  				select {
 11226  				case sink <- event:
 11227  				case err := <-sub.Err():
 11228  					return err
 11229  				case <-quit:
 11230  					return nil
 11231  				}
 11232  			case err := <-sub.Err():
 11233  				return err
 11234  			case <-quit:
 11235  				return nil
 11236  			}
 11237  		}
 11238  	}), nil
 11239  }
 11240  
 11241  // ParseOwnershipTransferred is a log parse operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0.
 11242  //
 11243  // Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
 11244  func (_BridgeTransferERC20 *BridgeTransferERC20Filterer) ParseOwnershipTransferred(log types.Log) (*BridgeTransferERC20OwnershipTransferred, error) {
 11245  	event := new(BridgeTransferERC20OwnershipTransferred)
 11246  	if err := _BridgeTransferERC20.contract.UnpackLog(event, "OwnershipTransferred", log); err != nil {
 11247  		return nil, err
 11248  	}
 11249  	return event, nil
 11250  }
 11251  
 11252  // BridgeTransferERC20RequestValueTransferIterator is returned from FilterRequestValueTransfer and is used to iterate over the raw logs and unpacked data for RequestValueTransfer events raised by the BridgeTransferERC20 contract.
 11253  type BridgeTransferERC20RequestValueTransferIterator struct {
 11254  	Event *BridgeTransferERC20RequestValueTransfer // Event containing the contract specifics and raw log
 11255  
 11256  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 11257  	event    string              // Event name to use for unpacking event data
 11258  
 11259  	logs chan types.Log      // Log channel receiving the found contract events
 11260  	sub  klaytn.Subscription // Subscription for errors, completion and termination
 11261  	done bool                // Whether the subscription completed delivering logs
 11262  	fail error               // Occurred error to stop iteration
 11263  }
 11264  
 11265  // Next advances the iterator to the subsequent event, returning whether there
 11266  // are any more events found. In case of a retrieval or parsing error, false is
 11267  // returned and Error() can be queried for the exact failure.
 11268  func (it *BridgeTransferERC20RequestValueTransferIterator) Next() bool {
 11269  	// If the iterator failed, stop iterating
 11270  	if it.fail != nil {
 11271  		return false
 11272  	}
 11273  	// If the iterator completed, deliver directly whatever's available
 11274  	if it.done {
 11275  		select {
 11276  		case log := <-it.logs:
 11277  			it.Event = new(BridgeTransferERC20RequestValueTransfer)
 11278  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 11279  				it.fail = err
 11280  				return false
 11281  			}
 11282  			it.Event.Raw = log
 11283  			return true
 11284  
 11285  		default:
 11286  			return false
 11287  		}
 11288  	}
 11289  	// Iterator still in progress, wait for either a data or an error event
 11290  	select {
 11291  	case log := <-it.logs:
 11292  		it.Event = new(BridgeTransferERC20RequestValueTransfer)
 11293  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 11294  			it.fail = err
 11295  			return false
 11296  		}
 11297  		it.Event.Raw = log
 11298  		return true
 11299  
 11300  	case err := <-it.sub.Err():
 11301  		it.done = true
 11302  		it.fail = err
 11303  		return it.Next()
 11304  	}
 11305  }
 11306  
 11307  // Error returns any retrieval or parsing error occurred during filtering.
 11308  func (it *BridgeTransferERC20RequestValueTransferIterator) Error() error {
 11309  	return it.fail
 11310  }
 11311  
 11312  // Close terminates the iteration process, releasing any pending underlying
 11313  // resources.
 11314  func (it *BridgeTransferERC20RequestValueTransferIterator) Close() error {
 11315  	it.sub.Unsubscribe()
 11316  	return nil
 11317  }
 11318  
 11319  // BridgeTransferERC20RequestValueTransfer represents a RequestValueTransfer event raised by the BridgeTransferERC20 contract.
 11320  type BridgeTransferERC20RequestValueTransfer struct {
 11321  	TokenType      uint8
 11322  	From           common.Address
 11323  	To             common.Address
 11324  	TokenAddress   common.Address
 11325  	ValueOrTokenId *big.Int
 11326  	RequestNonce   uint64
 11327  	Fee            *big.Int
 11328  	ExtraData      []byte
 11329  	Raw            types.Log // Blockchain specific contextual infos
 11330  }
 11331  
 11332  // FilterRequestValueTransfer is a free log retrieval operation binding the contract event 0xeff76c36e53fa5ff52f27acc8a34d5047a8246abb07b77b12f1309f71e337f09.
 11333  //
 11334  // Solidity: event RequestValueTransfer(uint8 tokenType, address indexed from, address indexed to, address indexed tokenAddress, uint256 valueOrTokenId, uint64 requestNonce, uint256 fee, bytes extraData)
 11335  func (_BridgeTransferERC20 *BridgeTransferERC20Filterer) FilterRequestValueTransfer(opts *bind.FilterOpts, from []common.Address, to []common.Address, tokenAddress []common.Address) (*BridgeTransferERC20RequestValueTransferIterator, error) {
 11336  
 11337  	var fromRule []interface{}
 11338  	for _, fromItem := range from {
 11339  		fromRule = append(fromRule, fromItem)
 11340  	}
 11341  	var toRule []interface{}
 11342  	for _, toItem := range to {
 11343  		toRule = append(toRule, toItem)
 11344  	}
 11345  	var tokenAddressRule []interface{}
 11346  	for _, tokenAddressItem := range tokenAddress {
 11347  		tokenAddressRule = append(tokenAddressRule, tokenAddressItem)
 11348  	}
 11349  
 11350  	logs, sub, err := _BridgeTransferERC20.contract.FilterLogs(opts, "RequestValueTransfer", fromRule, toRule, tokenAddressRule)
 11351  	if err != nil {
 11352  		return nil, err
 11353  	}
 11354  	return &BridgeTransferERC20RequestValueTransferIterator{contract: _BridgeTransferERC20.contract, event: "RequestValueTransfer", logs: logs, sub: sub}, nil
 11355  }
 11356  
 11357  // WatchRequestValueTransfer is a free log subscription operation binding the contract event 0xeff76c36e53fa5ff52f27acc8a34d5047a8246abb07b77b12f1309f71e337f09.
 11358  //
 11359  // Solidity: event RequestValueTransfer(uint8 tokenType, address indexed from, address indexed to, address indexed tokenAddress, uint256 valueOrTokenId, uint64 requestNonce, uint256 fee, bytes extraData)
 11360  func (_BridgeTransferERC20 *BridgeTransferERC20Filterer) WatchRequestValueTransfer(opts *bind.WatchOpts, sink chan<- *BridgeTransferERC20RequestValueTransfer, from []common.Address, to []common.Address, tokenAddress []common.Address) (event.Subscription, error) {
 11361  
 11362  	var fromRule []interface{}
 11363  	for _, fromItem := range from {
 11364  		fromRule = append(fromRule, fromItem)
 11365  	}
 11366  	var toRule []interface{}
 11367  	for _, toItem := range to {
 11368  		toRule = append(toRule, toItem)
 11369  	}
 11370  	var tokenAddressRule []interface{}
 11371  	for _, tokenAddressItem := range tokenAddress {
 11372  		tokenAddressRule = append(tokenAddressRule, tokenAddressItem)
 11373  	}
 11374  
 11375  	logs, sub, err := _BridgeTransferERC20.contract.WatchLogs(opts, "RequestValueTransfer", fromRule, toRule, tokenAddressRule)
 11376  	if err != nil {
 11377  		return nil, err
 11378  	}
 11379  	return event.NewSubscription(func(quit <-chan struct{}) error {
 11380  		defer sub.Unsubscribe()
 11381  		for {
 11382  			select {
 11383  			case log := <-logs:
 11384  				// New log arrived, parse the event and forward to the user
 11385  				event := new(BridgeTransferERC20RequestValueTransfer)
 11386  				if err := _BridgeTransferERC20.contract.UnpackLog(event, "RequestValueTransfer", log); err != nil {
 11387  					return err
 11388  				}
 11389  				event.Raw = log
 11390  
 11391  				select {
 11392  				case sink <- event:
 11393  				case err := <-sub.Err():
 11394  					return err
 11395  				case <-quit:
 11396  					return nil
 11397  				}
 11398  			case err := <-sub.Err():
 11399  				return err
 11400  			case <-quit:
 11401  				return nil
 11402  			}
 11403  		}
 11404  	}), nil
 11405  }
 11406  
 11407  // ParseRequestValueTransfer is a log parse operation binding the contract event 0xeff76c36e53fa5ff52f27acc8a34d5047a8246abb07b77b12f1309f71e337f09.
 11408  //
 11409  // Solidity: event RequestValueTransfer(uint8 tokenType, address indexed from, address indexed to, address indexed tokenAddress, uint256 valueOrTokenId, uint64 requestNonce, uint256 fee, bytes extraData)
 11410  func (_BridgeTransferERC20 *BridgeTransferERC20Filterer) ParseRequestValueTransfer(log types.Log) (*BridgeTransferERC20RequestValueTransfer, error) {
 11411  	event := new(BridgeTransferERC20RequestValueTransfer)
 11412  	if err := _BridgeTransferERC20.contract.UnpackLog(event, "RequestValueTransfer", log); err != nil {
 11413  		return nil, err
 11414  	}
 11415  	return event, nil
 11416  }
 11417  
 11418  // BridgeTransferERC20RequestValueTransferEncodedIterator is returned from FilterRequestValueTransferEncoded and is used to iterate over the raw logs and unpacked data for RequestValueTransferEncoded events raised by the BridgeTransferERC20 contract.
 11419  type BridgeTransferERC20RequestValueTransferEncodedIterator struct {
 11420  	Event *BridgeTransferERC20RequestValueTransferEncoded // Event containing the contract specifics and raw log
 11421  
 11422  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 11423  	event    string              // Event name to use for unpacking event data
 11424  
 11425  	logs chan types.Log      // Log channel receiving the found contract events
 11426  	sub  klaytn.Subscription // Subscription for errors, completion and termination
 11427  	done bool                // Whether the subscription completed delivering logs
 11428  	fail error               // Occurred error to stop iteration
 11429  }
 11430  
 11431  // Next advances the iterator to the subsequent event, returning whether there
 11432  // are any more events found. In case of a retrieval or parsing error, false is
 11433  // returned and Error() can be queried for the exact failure.
 11434  func (it *BridgeTransferERC20RequestValueTransferEncodedIterator) Next() bool {
 11435  	// If the iterator failed, stop iterating
 11436  	if it.fail != nil {
 11437  		return false
 11438  	}
 11439  	// If the iterator completed, deliver directly whatever's available
 11440  	if it.done {
 11441  		select {
 11442  		case log := <-it.logs:
 11443  			it.Event = new(BridgeTransferERC20RequestValueTransferEncoded)
 11444  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 11445  				it.fail = err
 11446  				return false
 11447  			}
 11448  			it.Event.Raw = log
 11449  			return true
 11450  
 11451  		default:
 11452  			return false
 11453  		}
 11454  	}
 11455  	// Iterator still in progress, wait for either a data or an error event
 11456  	select {
 11457  	case log := <-it.logs:
 11458  		it.Event = new(BridgeTransferERC20RequestValueTransferEncoded)
 11459  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 11460  			it.fail = err
 11461  			return false
 11462  		}
 11463  		it.Event.Raw = log
 11464  		return true
 11465  
 11466  	case err := <-it.sub.Err():
 11467  		it.done = true
 11468  		it.fail = err
 11469  		return it.Next()
 11470  	}
 11471  }
 11472  
 11473  // Error returns any retrieval or parsing error occurred during filtering.
 11474  func (it *BridgeTransferERC20RequestValueTransferEncodedIterator) Error() error {
 11475  	return it.fail
 11476  }
 11477  
 11478  // Close terminates the iteration process, releasing any pending underlying
 11479  // resources.
 11480  func (it *BridgeTransferERC20RequestValueTransferEncodedIterator) Close() error {
 11481  	it.sub.Unsubscribe()
 11482  	return nil
 11483  }
 11484  
 11485  // BridgeTransferERC20RequestValueTransferEncoded represents a RequestValueTransferEncoded event raised by the BridgeTransferERC20 contract.
 11486  type BridgeTransferERC20RequestValueTransferEncoded struct {
 11487  	TokenType      uint8
 11488  	From           common.Address
 11489  	To             common.Address
 11490  	TokenAddress   common.Address
 11491  	ValueOrTokenId *big.Int
 11492  	RequestNonce   uint64
 11493  	Fee            *big.Int
 11494  	ExtraData      []byte
 11495  	EncodingVer    uint8
 11496  	EncodedData    []byte
 11497  	Raw            types.Log // Blockchain specific contextual infos
 11498  }
 11499  
 11500  // FilterRequestValueTransferEncoded is a free log retrieval operation binding the contract event 0x17d76053ca34a4dd8c402fe6498deb797fac89bf7ed02f3f5161aa9368cc8c1f.
 11501  //
 11502  // Solidity: event RequestValueTransferEncoded(uint8 tokenType, address indexed from, address indexed to, address indexed tokenAddress, uint256 valueOrTokenId, uint64 requestNonce, uint256 fee, bytes extraData, uint8 encodingVer, bytes encodedData)
 11503  func (_BridgeTransferERC20 *BridgeTransferERC20Filterer) FilterRequestValueTransferEncoded(opts *bind.FilterOpts, from []common.Address, to []common.Address, tokenAddress []common.Address) (*BridgeTransferERC20RequestValueTransferEncodedIterator, error) {
 11504  
 11505  	var fromRule []interface{}
 11506  	for _, fromItem := range from {
 11507  		fromRule = append(fromRule, fromItem)
 11508  	}
 11509  	var toRule []interface{}
 11510  	for _, toItem := range to {
 11511  		toRule = append(toRule, toItem)
 11512  	}
 11513  	var tokenAddressRule []interface{}
 11514  	for _, tokenAddressItem := range tokenAddress {
 11515  		tokenAddressRule = append(tokenAddressRule, tokenAddressItem)
 11516  	}
 11517  
 11518  	logs, sub, err := _BridgeTransferERC20.contract.FilterLogs(opts, "RequestValueTransferEncoded", fromRule, toRule, tokenAddressRule)
 11519  	if err != nil {
 11520  		return nil, err
 11521  	}
 11522  	return &BridgeTransferERC20RequestValueTransferEncodedIterator{contract: _BridgeTransferERC20.contract, event: "RequestValueTransferEncoded", logs: logs, sub: sub}, nil
 11523  }
 11524  
 11525  // WatchRequestValueTransferEncoded is a free log subscription operation binding the contract event 0x17d76053ca34a4dd8c402fe6498deb797fac89bf7ed02f3f5161aa9368cc8c1f.
 11526  //
 11527  // Solidity: event RequestValueTransferEncoded(uint8 tokenType, address indexed from, address indexed to, address indexed tokenAddress, uint256 valueOrTokenId, uint64 requestNonce, uint256 fee, bytes extraData, uint8 encodingVer, bytes encodedData)
 11528  func (_BridgeTransferERC20 *BridgeTransferERC20Filterer) WatchRequestValueTransferEncoded(opts *bind.WatchOpts, sink chan<- *BridgeTransferERC20RequestValueTransferEncoded, from []common.Address, to []common.Address, tokenAddress []common.Address) (event.Subscription, error) {
 11529  
 11530  	var fromRule []interface{}
 11531  	for _, fromItem := range from {
 11532  		fromRule = append(fromRule, fromItem)
 11533  	}
 11534  	var toRule []interface{}
 11535  	for _, toItem := range to {
 11536  		toRule = append(toRule, toItem)
 11537  	}
 11538  	var tokenAddressRule []interface{}
 11539  	for _, tokenAddressItem := range tokenAddress {
 11540  		tokenAddressRule = append(tokenAddressRule, tokenAddressItem)
 11541  	}
 11542  
 11543  	logs, sub, err := _BridgeTransferERC20.contract.WatchLogs(opts, "RequestValueTransferEncoded", fromRule, toRule, tokenAddressRule)
 11544  	if err != nil {
 11545  		return nil, err
 11546  	}
 11547  	return event.NewSubscription(func(quit <-chan struct{}) error {
 11548  		defer sub.Unsubscribe()
 11549  		for {
 11550  			select {
 11551  			case log := <-logs:
 11552  				// New log arrived, parse the event and forward to the user
 11553  				event := new(BridgeTransferERC20RequestValueTransferEncoded)
 11554  				if err := _BridgeTransferERC20.contract.UnpackLog(event, "RequestValueTransferEncoded", log); err != nil {
 11555  					return err
 11556  				}
 11557  				event.Raw = log
 11558  
 11559  				select {
 11560  				case sink <- event:
 11561  				case err := <-sub.Err():
 11562  					return err
 11563  				case <-quit:
 11564  					return nil
 11565  				}
 11566  			case err := <-sub.Err():
 11567  				return err
 11568  			case <-quit:
 11569  				return nil
 11570  			}
 11571  		}
 11572  	}), nil
 11573  }
 11574  
 11575  // ParseRequestValueTransferEncoded is a log parse operation binding the contract event 0x17d76053ca34a4dd8c402fe6498deb797fac89bf7ed02f3f5161aa9368cc8c1f.
 11576  //
 11577  // Solidity: event RequestValueTransferEncoded(uint8 tokenType, address indexed from, address indexed to, address indexed tokenAddress, uint256 valueOrTokenId, uint64 requestNonce, uint256 fee, bytes extraData, uint8 encodingVer, bytes encodedData)
 11578  func (_BridgeTransferERC20 *BridgeTransferERC20Filterer) ParseRequestValueTransferEncoded(log types.Log) (*BridgeTransferERC20RequestValueTransferEncoded, error) {
 11579  	event := new(BridgeTransferERC20RequestValueTransferEncoded)
 11580  	if err := _BridgeTransferERC20.contract.UnpackLog(event, "RequestValueTransferEncoded", log); err != nil {
 11581  		return nil, err
 11582  	}
 11583  	return event, nil
 11584  }
 11585  
 11586  // BridgeTransferERC20TokenDeregisteredIterator is returned from FilterTokenDeregistered and is used to iterate over the raw logs and unpacked data for TokenDeregistered events raised by the BridgeTransferERC20 contract.
 11587  type BridgeTransferERC20TokenDeregisteredIterator struct {
 11588  	Event *BridgeTransferERC20TokenDeregistered // Event containing the contract specifics and raw log
 11589  
 11590  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 11591  	event    string              // Event name to use for unpacking event data
 11592  
 11593  	logs chan types.Log      // Log channel receiving the found contract events
 11594  	sub  klaytn.Subscription // Subscription for errors, completion and termination
 11595  	done bool                // Whether the subscription completed delivering logs
 11596  	fail error               // Occurred error to stop iteration
 11597  }
 11598  
 11599  // Next advances the iterator to the subsequent event, returning whether there
 11600  // are any more events found. In case of a retrieval or parsing error, false is
 11601  // returned and Error() can be queried for the exact failure.
 11602  func (it *BridgeTransferERC20TokenDeregisteredIterator) Next() bool {
 11603  	// If the iterator failed, stop iterating
 11604  	if it.fail != nil {
 11605  		return false
 11606  	}
 11607  	// If the iterator completed, deliver directly whatever's available
 11608  	if it.done {
 11609  		select {
 11610  		case log := <-it.logs:
 11611  			it.Event = new(BridgeTransferERC20TokenDeregistered)
 11612  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 11613  				it.fail = err
 11614  				return false
 11615  			}
 11616  			it.Event.Raw = log
 11617  			return true
 11618  
 11619  		default:
 11620  			return false
 11621  		}
 11622  	}
 11623  	// Iterator still in progress, wait for either a data or an error event
 11624  	select {
 11625  	case log := <-it.logs:
 11626  		it.Event = new(BridgeTransferERC20TokenDeregistered)
 11627  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 11628  			it.fail = err
 11629  			return false
 11630  		}
 11631  		it.Event.Raw = log
 11632  		return true
 11633  
 11634  	case err := <-it.sub.Err():
 11635  		it.done = true
 11636  		it.fail = err
 11637  		return it.Next()
 11638  	}
 11639  }
 11640  
 11641  // Error returns any retrieval or parsing error occurred during filtering.
 11642  func (it *BridgeTransferERC20TokenDeregisteredIterator) Error() error {
 11643  	return it.fail
 11644  }
 11645  
 11646  // Close terminates the iteration process, releasing any pending underlying
 11647  // resources.
 11648  func (it *BridgeTransferERC20TokenDeregisteredIterator) Close() error {
 11649  	it.sub.Unsubscribe()
 11650  	return nil
 11651  }
 11652  
 11653  // BridgeTransferERC20TokenDeregistered represents a TokenDeregistered event raised by the BridgeTransferERC20 contract.
 11654  type BridgeTransferERC20TokenDeregistered struct {
 11655  	Token common.Address
 11656  	Raw   types.Log // Blockchain specific contextual infos
 11657  }
 11658  
 11659  // FilterTokenDeregistered is a free log retrieval operation binding the contract event 0x1d735ca20b63676dde668b718be78606b061d6bd7534ff815a90a121a6c084b6.
 11660  //
 11661  // Solidity: event TokenDeregistered(address indexed token)
 11662  func (_BridgeTransferERC20 *BridgeTransferERC20Filterer) FilterTokenDeregistered(opts *bind.FilterOpts, token []common.Address) (*BridgeTransferERC20TokenDeregisteredIterator, error) {
 11663  
 11664  	var tokenRule []interface{}
 11665  	for _, tokenItem := range token {
 11666  		tokenRule = append(tokenRule, tokenItem)
 11667  	}
 11668  
 11669  	logs, sub, err := _BridgeTransferERC20.contract.FilterLogs(opts, "TokenDeregistered", tokenRule)
 11670  	if err != nil {
 11671  		return nil, err
 11672  	}
 11673  	return &BridgeTransferERC20TokenDeregisteredIterator{contract: _BridgeTransferERC20.contract, event: "TokenDeregistered", logs: logs, sub: sub}, nil
 11674  }
 11675  
 11676  // WatchTokenDeregistered is a free log subscription operation binding the contract event 0x1d735ca20b63676dde668b718be78606b061d6bd7534ff815a90a121a6c084b6.
 11677  //
 11678  // Solidity: event TokenDeregistered(address indexed token)
 11679  func (_BridgeTransferERC20 *BridgeTransferERC20Filterer) WatchTokenDeregistered(opts *bind.WatchOpts, sink chan<- *BridgeTransferERC20TokenDeregistered, token []common.Address) (event.Subscription, error) {
 11680  
 11681  	var tokenRule []interface{}
 11682  	for _, tokenItem := range token {
 11683  		tokenRule = append(tokenRule, tokenItem)
 11684  	}
 11685  
 11686  	logs, sub, err := _BridgeTransferERC20.contract.WatchLogs(opts, "TokenDeregistered", tokenRule)
 11687  	if err != nil {
 11688  		return nil, err
 11689  	}
 11690  	return event.NewSubscription(func(quit <-chan struct{}) error {
 11691  		defer sub.Unsubscribe()
 11692  		for {
 11693  			select {
 11694  			case log := <-logs:
 11695  				// New log arrived, parse the event and forward to the user
 11696  				event := new(BridgeTransferERC20TokenDeregistered)
 11697  				if err := _BridgeTransferERC20.contract.UnpackLog(event, "TokenDeregistered", log); err != nil {
 11698  					return err
 11699  				}
 11700  				event.Raw = log
 11701  
 11702  				select {
 11703  				case sink <- event:
 11704  				case err := <-sub.Err():
 11705  					return err
 11706  				case <-quit:
 11707  					return nil
 11708  				}
 11709  			case err := <-sub.Err():
 11710  				return err
 11711  			case <-quit:
 11712  				return nil
 11713  			}
 11714  		}
 11715  	}), nil
 11716  }
 11717  
 11718  // ParseTokenDeregistered is a log parse operation binding the contract event 0x1d735ca20b63676dde668b718be78606b061d6bd7534ff815a90a121a6c084b6.
 11719  //
 11720  // Solidity: event TokenDeregistered(address indexed token)
 11721  func (_BridgeTransferERC20 *BridgeTransferERC20Filterer) ParseTokenDeregistered(log types.Log) (*BridgeTransferERC20TokenDeregistered, error) {
 11722  	event := new(BridgeTransferERC20TokenDeregistered)
 11723  	if err := _BridgeTransferERC20.contract.UnpackLog(event, "TokenDeregistered", log); err != nil {
 11724  		return nil, err
 11725  	}
 11726  	return event, nil
 11727  }
 11728  
 11729  // BridgeTransferERC20TokenLockedIterator is returned from FilterTokenLocked and is used to iterate over the raw logs and unpacked data for TokenLocked events raised by the BridgeTransferERC20 contract.
 11730  type BridgeTransferERC20TokenLockedIterator struct {
 11731  	Event *BridgeTransferERC20TokenLocked // Event containing the contract specifics and raw log
 11732  
 11733  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 11734  	event    string              // Event name to use for unpacking event data
 11735  
 11736  	logs chan types.Log      // Log channel receiving the found contract events
 11737  	sub  klaytn.Subscription // Subscription for errors, completion and termination
 11738  	done bool                // Whether the subscription completed delivering logs
 11739  	fail error               // Occurred error to stop iteration
 11740  }
 11741  
 11742  // Next advances the iterator to the subsequent event, returning whether there
 11743  // are any more events found. In case of a retrieval or parsing error, false is
 11744  // returned and Error() can be queried for the exact failure.
 11745  func (it *BridgeTransferERC20TokenLockedIterator) Next() bool {
 11746  	// If the iterator failed, stop iterating
 11747  	if it.fail != nil {
 11748  		return false
 11749  	}
 11750  	// If the iterator completed, deliver directly whatever's available
 11751  	if it.done {
 11752  		select {
 11753  		case log := <-it.logs:
 11754  			it.Event = new(BridgeTransferERC20TokenLocked)
 11755  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 11756  				it.fail = err
 11757  				return false
 11758  			}
 11759  			it.Event.Raw = log
 11760  			return true
 11761  
 11762  		default:
 11763  			return false
 11764  		}
 11765  	}
 11766  	// Iterator still in progress, wait for either a data or an error event
 11767  	select {
 11768  	case log := <-it.logs:
 11769  		it.Event = new(BridgeTransferERC20TokenLocked)
 11770  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 11771  			it.fail = err
 11772  			return false
 11773  		}
 11774  		it.Event.Raw = log
 11775  		return true
 11776  
 11777  	case err := <-it.sub.Err():
 11778  		it.done = true
 11779  		it.fail = err
 11780  		return it.Next()
 11781  	}
 11782  }
 11783  
 11784  // Error returns any retrieval or parsing error occurred during filtering.
 11785  func (it *BridgeTransferERC20TokenLockedIterator) Error() error {
 11786  	return it.fail
 11787  }
 11788  
 11789  // Close terminates the iteration process, releasing any pending underlying
 11790  // resources.
 11791  func (it *BridgeTransferERC20TokenLockedIterator) Close() error {
 11792  	it.sub.Unsubscribe()
 11793  	return nil
 11794  }
 11795  
 11796  // BridgeTransferERC20TokenLocked represents a TokenLocked event raised by the BridgeTransferERC20 contract.
 11797  type BridgeTransferERC20TokenLocked struct {
 11798  	Token common.Address
 11799  	Raw   types.Log // Blockchain specific contextual infos
 11800  }
 11801  
 11802  // FilterTokenLocked is a free log retrieval operation binding the contract event 0xca1b0a14e18ada4c44846768dd186e35630cdc5cfeaca83c404ae4acaafbecd7.
 11803  //
 11804  // Solidity: event TokenLocked(address indexed token)
 11805  func (_BridgeTransferERC20 *BridgeTransferERC20Filterer) FilterTokenLocked(opts *bind.FilterOpts, token []common.Address) (*BridgeTransferERC20TokenLockedIterator, error) {
 11806  
 11807  	var tokenRule []interface{}
 11808  	for _, tokenItem := range token {
 11809  		tokenRule = append(tokenRule, tokenItem)
 11810  	}
 11811  
 11812  	logs, sub, err := _BridgeTransferERC20.contract.FilterLogs(opts, "TokenLocked", tokenRule)
 11813  	if err != nil {
 11814  		return nil, err
 11815  	}
 11816  	return &BridgeTransferERC20TokenLockedIterator{contract: _BridgeTransferERC20.contract, event: "TokenLocked", logs: logs, sub: sub}, nil
 11817  }
 11818  
 11819  // WatchTokenLocked is a free log subscription operation binding the contract event 0xca1b0a14e18ada4c44846768dd186e35630cdc5cfeaca83c404ae4acaafbecd7.
 11820  //
 11821  // Solidity: event TokenLocked(address indexed token)
 11822  func (_BridgeTransferERC20 *BridgeTransferERC20Filterer) WatchTokenLocked(opts *bind.WatchOpts, sink chan<- *BridgeTransferERC20TokenLocked, token []common.Address) (event.Subscription, error) {
 11823  
 11824  	var tokenRule []interface{}
 11825  	for _, tokenItem := range token {
 11826  		tokenRule = append(tokenRule, tokenItem)
 11827  	}
 11828  
 11829  	logs, sub, err := _BridgeTransferERC20.contract.WatchLogs(opts, "TokenLocked", tokenRule)
 11830  	if err != nil {
 11831  		return nil, err
 11832  	}
 11833  	return event.NewSubscription(func(quit <-chan struct{}) error {
 11834  		defer sub.Unsubscribe()
 11835  		for {
 11836  			select {
 11837  			case log := <-logs:
 11838  				// New log arrived, parse the event and forward to the user
 11839  				event := new(BridgeTransferERC20TokenLocked)
 11840  				if err := _BridgeTransferERC20.contract.UnpackLog(event, "TokenLocked", log); err != nil {
 11841  					return err
 11842  				}
 11843  				event.Raw = log
 11844  
 11845  				select {
 11846  				case sink <- event:
 11847  				case err := <-sub.Err():
 11848  					return err
 11849  				case <-quit:
 11850  					return nil
 11851  				}
 11852  			case err := <-sub.Err():
 11853  				return err
 11854  			case <-quit:
 11855  				return nil
 11856  			}
 11857  		}
 11858  	}), nil
 11859  }
 11860  
 11861  // ParseTokenLocked is a log parse operation binding the contract event 0xca1b0a14e18ada4c44846768dd186e35630cdc5cfeaca83c404ae4acaafbecd7.
 11862  //
 11863  // Solidity: event TokenLocked(address indexed token)
 11864  func (_BridgeTransferERC20 *BridgeTransferERC20Filterer) ParseTokenLocked(log types.Log) (*BridgeTransferERC20TokenLocked, error) {
 11865  	event := new(BridgeTransferERC20TokenLocked)
 11866  	if err := _BridgeTransferERC20.contract.UnpackLog(event, "TokenLocked", log); err != nil {
 11867  		return nil, err
 11868  	}
 11869  	return event, nil
 11870  }
 11871  
 11872  // BridgeTransferERC20TokenRegisteredIterator is returned from FilterTokenRegistered and is used to iterate over the raw logs and unpacked data for TokenRegistered events raised by the BridgeTransferERC20 contract.
 11873  type BridgeTransferERC20TokenRegisteredIterator struct {
 11874  	Event *BridgeTransferERC20TokenRegistered // Event containing the contract specifics and raw log
 11875  
 11876  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 11877  	event    string              // Event name to use for unpacking event data
 11878  
 11879  	logs chan types.Log      // Log channel receiving the found contract events
 11880  	sub  klaytn.Subscription // Subscription for errors, completion and termination
 11881  	done bool                // Whether the subscription completed delivering logs
 11882  	fail error               // Occurred error to stop iteration
 11883  }
 11884  
 11885  // Next advances the iterator to the subsequent event, returning whether there
 11886  // are any more events found. In case of a retrieval or parsing error, false is
 11887  // returned and Error() can be queried for the exact failure.
 11888  func (it *BridgeTransferERC20TokenRegisteredIterator) Next() bool {
 11889  	// If the iterator failed, stop iterating
 11890  	if it.fail != nil {
 11891  		return false
 11892  	}
 11893  	// If the iterator completed, deliver directly whatever's available
 11894  	if it.done {
 11895  		select {
 11896  		case log := <-it.logs:
 11897  			it.Event = new(BridgeTransferERC20TokenRegistered)
 11898  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 11899  				it.fail = err
 11900  				return false
 11901  			}
 11902  			it.Event.Raw = log
 11903  			return true
 11904  
 11905  		default:
 11906  			return false
 11907  		}
 11908  	}
 11909  	// Iterator still in progress, wait for either a data or an error event
 11910  	select {
 11911  	case log := <-it.logs:
 11912  		it.Event = new(BridgeTransferERC20TokenRegistered)
 11913  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 11914  			it.fail = err
 11915  			return false
 11916  		}
 11917  		it.Event.Raw = log
 11918  		return true
 11919  
 11920  	case err := <-it.sub.Err():
 11921  		it.done = true
 11922  		it.fail = err
 11923  		return it.Next()
 11924  	}
 11925  }
 11926  
 11927  // Error returns any retrieval or parsing error occurred during filtering.
 11928  func (it *BridgeTransferERC20TokenRegisteredIterator) Error() error {
 11929  	return it.fail
 11930  }
 11931  
 11932  // Close terminates the iteration process, releasing any pending underlying
 11933  // resources.
 11934  func (it *BridgeTransferERC20TokenRegisteredIterator) Close() error {
 11935  	it.sub.Unsubscribe()
 11936  	return nil
 11937  }
 11938  
 11939  // BridgeTransferERC20TokenRegistered represents a TokenRegistered event raised by the BridgeTransferERC20 contract.
 11940  type BridgeTransferERC20TokenRegistered struct {
 11941  	Token common.Address
 11942  	Raw   types.Log // Blockchain specific contextual infos
 11943  }
 11944  
 11945  // FilterTokenRegistered is a free log retrieval operation binding the contract event 0x158412daecdc1456d01568828bcdb18464cc7f1ce0215ddbc3f3cfede9d1e63d.
 11946  //
 11947  // Solidity: event TokenRegistered(address indexed token)
 11948  func (_BridgeTransferERC20 *BridgeTransferERC20Filterer) FilterTokenRegistered(opts *bind.FilterOpts, token []common.Address) (*BridgeTransferERC20TokenRegisteredIterator, error) {
 11949  
 11950  	var tokenRule []interface{}
 11951  	for _, tokenItem := range token {
 11952  		tokenRule = append(tokenRule, tokenItem)
 11953  	}
 11954  
 11955  	logs, sub, err := _BridgeTransferERC20.contract.FilterLogs(opts, "TokenRegistered", tokenRule)
 11956  	if err != nil {
 11957  		return nil, err
 11958  	}
 11959  	return &BridgeTransferERC20TokenRegisteredIterator{contract: _BridgeTransferERC20.contract, event: "TokenRegistered", logs: logs, sub: sub}, nil
 11960  }
 11961  
 11962  // WatchTokenRegistered is a free log subscription operation binding the contract event 0x158412daecdc1456d01568828bcdb18464cc7f1ce0215ddbc3f3cfede9d1e63d.
 11963  //
 11964  // Solidity: event TokenRegistered(address indexed token)
 11965  func (_BridgeTransferERC20 *BridgeTransferERC20Filterer) WatchTokenRegistered(opts *bind.WatchOpts, sink chan<- *BridgeTransferERC20TokenRegistered, token []common.Address) (event.Subscription, error) {
 11966  
 11967  	var tokenRule []interface{}
 11968  	for _, tokenItem := range token {
 11969  		tokenRule = append(tokenRule, tokenItem)
 11970  	}
 11971  
 11972  	logs, sub, err := _BridgeTransferERC20.contract.WatchLogs(opts, "TokenRegistered", tokenRule)
 11973  	if err != nil {
 11974  		return nil, err
 11975  	}
 11976  	return event.NewSubscription(func(quit <-chan struct{}) error {
 11977  		defer sub.Unsubscribe()
 11978  		for {
 11979  			select {
 11980  			case log := <-logs:
 11981  				// New log arrived, parse the event and forward to the user
 11982  				event := new(BridgeTransferERC20TokenRegistered)
 11983  				if err := _BridgeTransferERC20.contract.UnpackLog(event, "TokenRegistered", log); err != nil {
 11984  					return err
 11985  				}
 11986  				event.Raw = log
 11987  
 11988  				select {
 11989  				case sink <- event:
 11990  				case err := <-sub.Err():
 11991  					return err
 11992  				case <-quit:
 11993  					return nil
 11994  				}
 11995  			case err := <-sub.Err():
 11996  				return err
 11997  			case <-quit:
 11998  				return nil
 11999  			}
 12000  		}
 12001  	}), nil
 12002  }
 12003  
 12004  // ParseTokenRegistered is a log parse operation binding the contract event 0x158412daecdc1456d01568828bcdb18464cc7f1ce0215ddbc3f3cfede9d1e63d.
 12005  //
 12006  // Solidity: event TokenRegistered(address indexed token)
 12007  func (_BridgeTransferERC20 *BridgeTransferERC20Filterer) ParseTokenRegistered(log types.Log) (*BridgeTransferERC20TokenRegistered, error) {
 12008  	event := new(BridgeTransferERC20TokenRegistered)
 12009  	if err := _BridgeTransferERC20.contract.UnpackLog(event, "TokenRegistered", log); err != nil {
 12010  		return nil, err
 12011  	}
 12012  	return event, nil
 12013  }
 12014  
 12015  // BridgeTransferERC20TokenUnlockedIterator is returned from FilterTokenUnlocked and is used to iterate over the raw logs and unpacked data for TokenUnlocked events raised by the BridgeTransferERC20 contract.
 12016  type BridgeTransferERC20TokenUnlockedIterator struct {
 12017  	Event *BridgeTransferERC20TokenUnlocked // Event containing the contract specifics and raw log
 12018  
 12019  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 12020  	event    string              // Event name to use for unpacking event data
 12021  
 12022  	logs chan types.Log      // Log channel receiving the found contract events
 12023  	sub  klaytn.Subscription // Subscription for errors, completion and termination
 12024  	done bool                // Whether the subscription completed delivering logs
 12025  	fail error               // Occurred error to stop iteration
 12026  }
 12027  
 12028  // Next advances the iterator to the subsequent event, returning whether there
 12029  // are any more events found. In case of a retrieval or parsing error, false is
 12030  // returned and Error() can be queried for the exact failure.
 12031  func (it *BridgeTransferERC20TokenUnlockedIterator) Next() bool {
 12032  	// If the iterator failed, stop iterating
 12033  	if it.fail != nil {
 12034  		return false
 12035  	}
 12036  	// If the iterator completed, deliver directly whatever's available
 12037  	if it.done {
 12038  		select {
 12039  		case log := <-it.logs:
 12040  			it.Event = new(BridgeTransferERC20TokenUnlocked)
 12041  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 12042  				it.fail = err
 12043  				return false
 12044  			}
 12045  			it.Event.Raw = log
 12046  			return true
 12047  
 12048  		default:
 12049  			return false
 12050  		}
 12051  	}
 12052  	// Iterator still in progress, wait for either a data or an error event
 12053  	select {
 12054  	case log := <-it.logs:
 12055  		it.Event = new(BridgeTransferERC20TokenUnlocked)
 12056  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 12057  			it.fail = err
 12058  			return false
 12059  		}
 12060  		it.Event.Raw = log
 12061  		return true
 12062  
 12063  	case err := <-it.sub.Err():
 12064  		it.done = true
 12065  		it.fail = err
 12066  		return it.Next()
 12067  	}
 12068  }
 12069  
 12070  // Error returns any retrieval or parsing error occurred during filtering.
 12071  func (it *BridgeTransferERC20TokenUnlockedIterator) Error() error {
 12072  	return it.fail
 12073  }
 12074  
 12075  // Close terminates the iteration process, releasing any pending underlying
 12076  // resources.
 12077  func (it *BridgeTransferERC20TokenUnlockedIterator) Close() error {
 12078  	it.sub.Unsubscribe()
 12079  	return nil
 12080  }
 12081  
 12082  // BridgeTransferERC20TokenUnlocked represents a TokenUnlocked event raised by the BridgeTransferERC20 contract.
 12083  type BridgeTransferERC20TokenUnlocked struct {
 12084  	Token common.Address
 12085  	Raw   types.Log // Blockchain specific contextual infos
 12086  }
 12087  
 12088  // FilterTokenUnlocked is a free log retrieval operation binding the contract event 0x81ec08d3372506e176c49e626d8beb7e091712ef92908a130f4ccc6524fe2eec.
 12089  //
 12090  // Solidity: event TokenUnlocked(address indexed token)
 12091  func (_BridgeTransferERC20 *BridgeTransferERC20Filterer) FilterTokenUnlocked(opts *bind.FilterOpts, token []common.Address) (*BridgeTransferERC20TokenUnlockedIterator, error) {
 12092  
 12093  	var tokenRule []interface{}
 12094  	for _, tokenItem := range token {
 12095  		tokenRule = append(tokenRule, tokenItem)
 12096  	}
 12097  
 12098  	logs, sub, err := _BridgeTransferERC20.contract.FilterLogs(opts, "TokenUnlocked", tokenRule)
 12099  	if err != nil {
 12100  		return nil, err
 12101  	}
 12102  	return &BridgeTransferERC20TokenUnlockedIterator{contract: _BridgeTransferERC20.contract, event: "TokenUnlocked", logs: logs, sub: sub}, nil
 12103  }
 12104  
 12105  // WatchTokenUnlocked is a free log subscription operation binding the contract event 0x81ec08d3372506e176c49e626d8beb7e091712ef92908a130f4ccc6524fe2eec.
 12106  //
 12107  // Solidity: event TokenUnlocked(address indexed token)
 12108  func (_BridgeTransferERC20 *BridgeTransferERC20Filterer) WatchTokenUnlocked(opts *bind.WatchOpts, sink chan<- *BridgeTransferERC20TokenUnlocked, token []common.Address) (event.Subscription, error) {
 12109  
 12110  	var tokenRule []interface{}
 12111  	for _, tokenItem := range token {
 12112  		tokenRule = append(tokenRule, tokenItem)
 12113  	}
 12114  
 12115  	logs, sub, err := _BridgeTransferERC20.contract.WatchLogs(opts, "TokenUnlocked", tokenRule)
 12116  	if err != nil {
 12117  		return nil, err
 12118  	}
 12119  	return event.NewSubscription(func(quit <-chan struct{}) error {
 12120  		defer sub.Unsubscribe()
 12121  		for {
 12122  			select {
 12123  			case log := <-logs:
 12124  				// New log arrived, parse the event and forward to the user
 12125  				event := new(BridgeTransferERC20TokenUnlocked)
 12126  				if err := _BridgeTransferERC20.contract.UnpackLog(event, "TokenUnlocked", log); err != nil {
 12127  					return err
 12128  				}
 12129  				event.Raw = log
 12130  
 12131  				select {
 12132  				case sink <- event:
 12133  				case err := <-sub.Err():
 12134  					return err
 12135  				case <-quit:
 12136  					return nil
 12137  				}
 12138  			case err := <-sub.Err():
 12139  				return err
 12140  			case <-quit:
 12141  				return nil
 12142  			}
 12143  		}
 12144  	}), nil
 12145  }
 12146  
 12147  // ParseTokenUnlocked is a log parse operation binding the contract event 0x81ec08d3372506e176c49e626d8beb7e091712ef92908a130f4ccc6524fe2eec.
 12148  //
 12149  // Solidity: event TokenUnlocked(address indexed token)
 12150  func (_BridgeTransferERC20 *BridgeTransferERC20Filterer) ParseTokenUnlocked(log types.Log) (*BridgeTransferERC20TokenUnlocked, error) {
 12151  	event := new(BridgeTransferERC20TokenUnlocked)
 12152  	if err := _BridgeTransferERC20.contract.UnpackLog(event, "TokenUnlocked", log); err != nil {
 12153  		return nil, err
 12154  	}
 12155  	return event, nil
 12156  }
 12157  
 12158  // BridgeTransferERC721MetaData contains all meta data concerning the BridgeTransferERC721 contract.
 12159  var BridgeTransferERC721MetaData = &bind.MetaData{
 12160  	ABI: "[{\"constant\":false,\"inputs\":[{\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"lockToken\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"uint64\"}],\"name\":\"handleNoncesToBlockNums\",\"outputs\":[{\"name\":\"\",\"type\":\"uint64\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"address\"}],\"name\":\"operators\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"isRunning\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_tokenAddress\",\"type\":\"address\"},{\"name\":\"_to\",\"type\":\"address\"},{\"name\":\"_tokenId\",\"type\":\"uint256\"},{\"name\":\"_extraData\",\"type\":\"bytes\"}],\"name\":\"requestERC721Transfer\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_operator\",\"type\":\"address\"}],\"name\":\"registerOperator\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"MAX_OPERATOR\",\"outputs\":[{\"name\":\"\",\"type\":\"uint64\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"registeredTokenList\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_token\",\"type\":\"address\"},{\"name\":\"_cToken\",\"type\":\"address\"}],\"name\":\"registerToken\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"address\"}],\"name\":\"feeOfERC20\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"address\"}],\"name\":\"indexOfTokens\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"lowerHandleNonce\",\"outputs\":[{\"name\":\"\",\"type\":\"uint64\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"upperHandleNonce\",\"outputs\":[{\"name\":\"\",\"type\":\"uint64\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"uint8\"}],\"name\":\"operatorThresholds\",\"outputs\":[{\"name\":\"\",\"type\":\"uint8\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"address\"}],\"name\":\"lockedTokens\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"modeMintBurn\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"requestNonce\",\"outputs\":[{\"name\":\"\",\"type\":\"uint64\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"handledRequestTx\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"address\"}],\"name\":\"registeredTokens\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"isOwner\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"uint64\"}],\"name\":\"closedValueTransferVotes\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"recoveryBlockNumber\",\"outputs\":[{\"name\":\"\",\"type\":\"uint64\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"unlockToken\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"configurationNonce\",\"outputs\":[{\"name\":\"\",\"type\":\"uint64\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_requestTxHash\",\"type\":\"bytes32\"},{\"name\":\"_from\",\"type\":\"address\"},{\"name\":\"_to\",\"type\":\"address\"},{\"name\":\"_tokenAddress\",\"type\":\"address\"},{\"name\":\"_tokenId\",\"type\":\"uint256\"},{\"name\":\"_requestedNonce\",\"type\":\"uint64\"},{\"name\":\"_requestedBlockNumber\",\"type\":\"uint64\"},{\"name\":\"_tokenURI\",\"type\":\"string\"},{\"name\":\"_extraData\",\"type\":\"bytes\"}],\"name\":\"handleERC721Transfer\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getOperatorList\",\"outputs\":[{\"name\":\"\",\"type\":\"address[]\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"feeReceiver\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"deregisterToken\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"feeOfKLAY\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_status\",\"type\":\"bool\"}],\"name\":\"start\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"operatorList\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_from\",\"type\":\"address\"},{\"name\":\"_tokenId\",\"type\":\"uint256\"},{\"name\":\"_to\",\"type\":\"address\"},{\"name\":\"_extraData\",\"type\":\"bytes\"}],\"name\":\"onERC721Received\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_operator\",\"type\":\"address\"}],\"name\":\"deregisterOperator\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getRegisteredTokenList\",\"outputs\":[{\"name\":\"\",\"type\":\"address[]\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_voteType\",\"type\":\"uint8\"},{\"name\":\"_threshold\",\"type\":\"uint8\"}],\"name\":\"setOperatorThreshold\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_feeReceiver\",\"type\":\"address\"}],\"name\":\"setFeeReceiver\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"tokenType\",\"type\":\"uint8\"},{\"indexed\":true,\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"tokenAddress\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"valueOrTokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"requestNonce\",\"type\":\"uint64\"},{\"indexed\":false,\"name\":\"fee\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"extraData\",\"type\":\"bytes\"}],\"name\":\"RequestValueTransfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"tokenType\",\"type\":\"uint8\"},{\"indexed\":true,\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"tokenAddress\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"valueOrTokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"requestNonce\",\"type\":\"uint64\"},{\"indexed\":false,\"name\":\"fee\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"extraData\",\"type\":\"bytes\"},{\"indexed\":false,\"name\":\"encodingVer\",\"type\":\"uint8\"},{\"indexed\":false,\"name\":\"encodedData\",\"type\":\"bytes\"}],\"name\":\"RequestValueTransferEncoded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"requestTxHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"name\":\"tokenType\",\"type\":\"uint8\"},{\"indexed\":true,\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"tokenAddress\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"valueOrTokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"handleNonce\",\"type\":\"uint64\"},{\"indexed\":false,\"name\":\"lowerHandleNonce\",\"type\":\"uint64\"},{\"indexed\":false,\"name\":\"extraData\",\"type\":\"bytes\"}],\"name\":\"HandleValueTransfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"token\",\"type\":\"address\"}],\"name\":\"TokenRegistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"token\",\"type\":\"address\"}],\"name\":\"TokenDeregistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"token\",\"type\":\"address\"}],\"name\":\"TokenLocked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"token\",\"type\":\"address\"}],\"name\":\"TokenUnlocked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"fee\",\"type\":\"uint256\"}],\"name\":\"KLAYFeeChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"token\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"fee\",\"type\":\"uint256\"}],\"name\":\"ERC20FeeChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"feeReceiver\",\"type\":\"address\"}],\"name\":\"FeeReceiverChanged\",\"type\":\"event\"}]",
 12161  	Sigs: map[string]string{
 12162  		"3a3099d1": "MAX_OPERATOR()",
 12163  		"9832c1d7": "closedValueTransferVotes(uint64)",
 12164  		"ac6fff0b": "configurationNonce()",
 12165  		"d8cf98ca": "deregisterOperator(address)",
 12166  		"bab2af1d": "deregisterToken(address)",
 12167  		"488af871": "feeOfERC20(address)",
 12168  		"c263b5d6": "feeOfKLAY()",
 12169  		"b3f00674": "feeReceiver()",
 12170  		"b2c01030": "getOperatorList()",
 12171  		"ea21eade": "getRegisteredTokenList()",
 12172  		"afb60223": "handleERC721Transfer(bytes32,address,address,address,uint256,uint64,uint64,string,bytes)",
 12173  		"13a6738a": "handleNoncesToBlockNums(uint64)",
 12174  		"8a75eee2": "handledRequestTx(bytes32)",
 12175  		"48a18a6a": "indexOfTokens(address)",
 12176  		"8f32d59b": "isOwner()",
 12177  		"2014e5d1": "isRunning()",
 12178  		"10693fcd": "lockToken(address)",
 12179  		"5eb7413a": "lockedTokens(address)",
 12180  		"4b40b826": "lowerHandleNonce()",
 12181  		"6e176ec2": "modeMintBurn()",
 12182  		"cf0da290": "onERC721Received(address,uint256,address,bytes)",
 12183  		"cb38f407": "operatorList(uint256)",
 12184  		"5526f76b": "operatorThresholds(uint8)",
 12185  		"13e7c9d8": "operators(address)",
 12186  		"8da5cb5b": "owner()",
 12187  		"989ba0d3": "recoveryBlockNumber()",
 12188  		"3682a450": "registerOperator(address)",
 12189  		"4739f7e5": "registerToken(address,address)",
 12190  		"3e4fe949": "registeredTokenList(uint256)",
 12191  		"8c0bd916": "registeredTokens(address)",
 12192  		"715018a6": "renounceOwnership()",
 12193  		"22604742": "requestERC721Transfer(address,address,uint256,bytes)",
 12194  		"7c1a0302": "requestNonce()",
 12195  		"efdcd974": "setFeeReceiver(address)",
 12196  		"ee2aec65": "setOperatorThreshold(uint8,uint8)",
 12197  		"c877cf37": "start(bool)",
 12198  		"f2fde38b": "transferOwnership(address)",
 12199  		"9ef2017b": "unlockToken(address)",
 12200  		"54edad72": "upperHandleNonce()",
 12201  	},
 12202  }
 12203  
 12204  // BridgeTransferERC721ABI is the input ABI used to generate the binding from.
 12205  // Deprecated: Use BridgeTransferERC721MetaData.ABI instead.
 12206  var BridgeTransferERC721ABI = BridgeTransferERC721MetaData.ABI
 12207  
 12208  // BridgeTransferERC721BinRuntime is the compiled bytecode used for adding genesis block without deploying code.
 12209  const BridgeTransferERC721BinRuntime = ``
 12210  
 12211  // BridgeTransferERC721FuncSigs maps the 4-byte function signature to its string representation.
 12212  // Deprecated: Use BridgeTransferERC721MetaData.Sigs instead.
 12213  var BridgeTransferERC721FuncSigs = BridgeTransferERC721MetaData.Sigs
 12214  
 12215  // BridgeTransferERC721 is an auto generated Go binding around a Klaytn contract.
 12216  type BridgeTransferERC721 struct {
 12217  	BridgeTransferERC721Caller     // Read-only binding to the contract
 12218  	BridgeTransferERC721Transactor // Write-only binding to the contract
 12219  	BridgeTransferERC721Filterer   // Log filterer for contract events
 12220  }
 12221  
 12222  // BridgeTransferERC721Caller is an auto generated read-only Go binding around a Klaytn contract.
 12223  type BridgeTransferERC721Caller struct {
 12224  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 12225  }
 12226  
 12227  // BridgeTransferERC721Transactor is an auto generated write-only Go binding around a Klaytn contract.
 12228  type BridgeTransferERC721Transactor struct {
 12229  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 12230  }
 12231  
 12232  // BridgeTransferERC721Filterer is an auto generated log filtering Go binding around a Klaytn contract events.
 12233  type BridgeTransferERC721Filterer struct {
 12234  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 12235  }
 12236  
 12237  // BridgeTransferERC721Session is an auto generated Go binding around a Klaytn contract,
 12238  // with pre-set call and transact options.
 12239  type BridgeTransferERC721Session struct {
 12240  	Contract     *BridgeTransferERC721 // Generic contract binding to set the session for
 12241  	CallOpts     bind.CallOpts         // Call options to use throughout this session
 12242  	TransactOpts bind.TransactOpts     // Transaction auth options to use throughout this session
 12243  }
 12244  
 12245  // BridgeTransferERC721CallerSession is an auto generated read-only Go binding around a Klaytn contract,
 12246  // with pre-set call options.
 12247  type BridgeTransferERC721CallerSession struct {
 12248  	Contract *BridgeTransferERC721Caller // Generic contract caller binding to set the session for
 12249  	CallOpts bind.CallOpts               // Call options to use throughout this session
 12250  }
 12251  
 12252  // BridgeTransferERC721TransactorSession is an auto generated write-only Go binding around a Klaytn contract,
 12253  // with pre-set transact options.
 12254  type BridgeTransferERC721TransactorSession struct {
 12255  	Contract     *BridgeTransferERC721Transactor // Generic contract transactor binding to set the session for
 12256  	TransactOpts bind.TransactOpts               // Transaction auth options to use throughout this session
 12257  }
 12258  
 12259  // BridgeTransferERC721Raw is an auto generated low-level Go binding around a Klaytn contract.
 12260  type BridgeTransferERC721Raw struct {
 12261  	Contract *BridgeTransferERC721 // Generic contract binding to access the raw methods on
 12262  }
 12263  
 12264  // BridgeTransferERC721CallerRaw is an auto generated low-level read-only Go binding around a Klaytn contract.
 12265  type BridgeTransferERC721CallerRaw struct {
 12266  	Contract *BridgeTransferERC721Caller // Generic read-only contract binding to access the raw methods on
 12267  }
 12268  
 12269  // BridgeTransferERC721TransactorRaw is an auto generated low-level write-only Go binding around a Klaytn contract.
 12270  type BridgeTransferERC721TransactorRaw struct {
 12271  	Contract *BridgeTransferERC721Transactor // Generic write-only contract binding to access the raw methods on
 12272  }
 12273  
 12274  // NewBridgeTransferERC721 creates a new instance of BridgeTransferERC721, bound to a specific deployed contract.
 12275  func NewBridgeTransferERC721(address common.Address, backend bind.ContractBackend) (*BridgeTransferERC721, error) {
 12276  	contract, err := bindBridgeTransferERC721(address, backend, backend, backend)
 12277  	if err != nil {
 12278  		return nil, err
 12279  	}
 12280  	return &BridgeTransferERC721{BridgeTransferERC721Caller: BridgeTransferERC721Caller{contract: contract}, BridgeTransferERC721Transactor: BridgeTransferERC721Transactor{contract: contract}, BridgeTransferERC721Filterer: BridgeTransferERC721Filterer{contract: contract}}, nil
 12281  }
 12282  
 12283  // NewBridgeTransferERC721Caller creates a new read-only instance of BridgeTransferERC721, bound to a specific deployed contract.
 12284  func NewBridgeTransferERC721Caller(address common.Address, caller bind.ContractCaller) (*BridgeTransferERC721Caller, error) {
 12285  	contract, err := bindBridgeTransferERC721(address, caller, nil, nil)
 12286  	if err != nil {
 12287  		return nil, err
 12288  	}
 12289  	return &BridgeTransferERC721Caller{contract: contract}, nil
 12290  }
 12291  
 12292  // NewBridgeTransferERC721Transactor creates a new write-only instance of BridgeTransferERC721, bound to a specific deployed contract.
 12293  func NewBridgeTransferERC721Transactor(address common.Address, transactor bind.ContractTransactor) (*BridgeTransferERC721Transactor, error) {
 12294  	contract, err := bindBridgeTransferERC721(address, nil, transactor, nil)
 12295  	if err != nil {
 12296  		return nil, err
 12297  	}
 12298  	return &BridgeTransferERC721Transactor{contract: contract}, nil
 12299  }
 12300  
 12301  // NewBridgeTransferERC721Filterer creates a new log filterer instance of BridgeTransferERC721, bound to a specific deployed contract.
 12302  func NewBridgeTransferERC721Filterer(address common.Address, filterer bind.ContractFilterer) (*BridgeTransferERC721Filterer, error) {
 12303  	contract, err := bindBridgeTransferERC721(address, nil, nil, filterer)
 12304  	if err != nil {
 12305  		return nil, err
 12306  	}
 12307  	return &BridgeTransferERC721Filterer{contract: contract}, nil
 12308  }
 12309  
 12310  // bindBridgeTransferERC721 binds a generic wrapper to an already deployed contract.
 12311  func bindBridgeTransferERC721(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
 12312  	parsed, err := BridgeTransferERC721MetaData.GetAbi()
 12313  	if err != nil {
 12314  		return nil, err
 12315  	}
 12316  	return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil
 12317  }
 12318  
 12319  // Call invokes the (constant) contract method with params as input values and
 12320  // sets the output to result. The result type might be a single field for simple
 12321  // returns, a slice of interfaces for anonymous returns and a struct for named
 12322  // returns.
 12323  func (_BridgeTransferERC721 *BridgeTransferERC721Raw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
 12324  	return _BridgeTransferERC721.Contract.BridgeTransferERC721Caller.contract.Call(opts, result, method, params...)
 12325  }
 12326  
 12327  // Transfer initiates a plain transaction to move funds to the contract, calling
 12328  // its default method if one is available.
 12329  func (_BridgeTransferERC721 *BridgeTransferERC721Raw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
 12330  	return _BridgeTransferERC721.Contract.BridgeTransferERC721Transactor.contract.Transfer(opts)
 12331  }
 12332  
 12333  // Transact invokes the (paid) contract method with params as input values.
 12334  func (_BridgeTransferERC721 *BridgeTransferERC721Raw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
 12335  	return _BridgeTransferERC721.Contract.BridgeTransferERC721Transactor.contract.Transact(opts, method, params...)
 12336  }
 12337  
 12338  // Call invokes the (constant) contract method with params as input values and
 12339  // sets the output to result. The result type might be a single field for simple
 12340  // returns, a slice of interfaces for anonymous returns and a struct for named
 12341  // returns.
 12342  func (_BridgeTransferERC721 *BridgeTransferERC721CallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
 12343  	return _BridgeTransferERC721.Contract.contract.Call(opts, result, method, params...)
 12344  }
 12345  
 12346  // Transfer initiates a plain transaction to move funds to the contract, calling
 12347  // its default method if one is available.
 12348  func (_BridgeTransferERC721 *BridgeTransferERC721TransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
 12349  	return _BridgeTransferERC721.Contract.contract.Transfer(opts)
 12350  }
 12351  
 12352  // Transact invokes the (paid) contract method with params as input values.
 12353  func (_BridgeTransferERC721 *BridgeTransferERC721TransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
 12354  	return _BridgeTransferERC721.Contract.contract.Transact(opts, method, params...)
 12355  }
 12356  
 12357  // MAXOPERATOR is a free data retrieval call binding the contract method 0x3a3099d1.
 12358  //
 12359  // Solidity: function MAX_OPERATOR() view returns(uint64)
 12360  func (_BridgeTransferERC721 *BridgeTransferERC721Caller) MAXOPERATOR(opts *bind.CallOpts) (uint64, error) {
 12361  	var out []interface{}
 12362  	err := _BridgeTransferERC721.contract.Call(opts, &out, "MAX_OPERATOR")
 12363  
 12364  	if err != nil {
 12365  		return *new(uint64), err
 12366  	}
 12367  
 12368  	out0 := *abi.ConvertType(out[0], new(uint64)).(*uint64)
 12369  
 12370  	return out0, err
 12371  
 12372  }
 12373  
 12374  // MAXOPERATOR is a free data retrieval call binding the contract method 0x3a3099d1.
 12375  //
 12376  // Solidity: function MAX_OPERATOR() view returns(uint64)
 12377  func (_BridgeTransferERC721 *BridgeTransferERC721Session) MAXOPERATOR() (uint64, error) {
 12378  	return _BridgeTransferERC721.Contract.MAXOPERATOR(&_BridgeTransferERC721.CallOpts)
 12379  }
 12380  
 12381  // MAXOPERATOR is a free data retrieval call binding the contract method 0x3a3099d1.
 12382  //
 12383  // Solidity: function MAX_OPERATOR() view returns(uint64)
 12384  func (_BridgeTransferERC721 *BridgeTransferERC721CallerSession) MAXOPERATOR() (uint64, error) {
 12385  	return _BridgeTransferERC721.Contract.MAXOPERATOR(&_BridgeTransferERC721.CallOpts)
 12386  }
 12387  
 12388  // ClosedValueTransferVotes is a free data retrieval call binding the contract method 0x9832c1d7.
 12389  //
 12390  // Solidity: function closedValueTransferVotes(uint64 ) view returns(bool)
 12391  func (_BridgeTransferERC721 *BridgeTransferERC721Caller) ClosedValueTransferVotes(opts *bind.CallOpts, arg0 uint64) (bool, error) {
 12392  	var out []interface{}
 12393  	err := _BridgeTransferERC721.contract.Call(opts, &out, "closedValueTransferVotes", arg0)
 12394  
 12395  	if err != nil {
 12396  		return *new(bool), err
 12397  	}
 12398  
 12399  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
 12400  
 12401  	return out0, err
 12402  
 12403  }
 12404  
 12405  // ClosedValueTransferVotes is a free data retrieval call binding the contract method 0x9832c1d7.
 12406  //
 12407  // Solidity: function closedValueTransferVotes(uint64 ) view returns(bool)
 12408  func (_BridgeTransferERC721 *BridgeTransferERC721Session) ClosedValueTransferVotes(arg0 uint64) (bool, error) {
 12409  	return _BridgeTransferERC721.Contract.ClosedValueTransferVotes(&_BridgeTransferERC721.CallOpts, arg0)
 12410  }
 12411  
 12412  // ClosedValueTransferVotes is a free data retrieval call binding the contract method 0x9832c1d7.
 12413  //
 12414  // Solidity: function closedValueTransferVotes(uint64 ) view returns(bool)
 12415  func (_BridgeTransferERC721 *BridgeTransferERC721CallerSession) ClosedValueTransferVotes(arg0 uint64) (bool, error) {
 12416  	return _BridgeTransferERC721.Contract.ClosedValueTransferVotes(&_BridgeTransferERC721.CallOpts, arg0)
 12417  }
 12418  
 12419  // ConfigurationNonce is a free data retrieval call binding the contract method 0xac6fff0b.
 12420  //
 12421  // Solidity: function configurationNonce() view returns(uint64)
 12422  func (_BridgeTransferERC721 *BridgeTransferERC721Caller) ConfigurationNonce(opts *bind.CallOpts) (uint64, error) {
 12423  	var out []interface{}
 12424  	err := _BridgeTransferERC721.contract.Call(opts, &out, "configurationNonce")
 12425  
 12426  	if err != nil {
 12427  		return *new(uint64), err
 12428  	}
 12429  
 12430  	out0 := *abi.ConvertType(out[0], new(uint64)).(*uint64)
 12431  
 12432  	return out0, err
 12433  
 12434  }
 12435  
 12436  // ConfigurationNonce is a free data retrieval call binding the contract method 0xac6fff0b.
 12437  //
 12438  // Solidity: function configurationNonce() view returns(uint64)
 12439  func (_BridgeTransferERC721 *BridgeTransferERC721Session) ConfigurationNonce() (uint64, error) {
 12440  	return _BridgeTransferERC721.Contract.ConfigurationNonce(&_BridgeTransferERC721.CallOpts)
 12441  }
 12442  
 12443  // ConfigurationNonce is a free data retrieval call binding the contract method 0xac6fff0b.
 12444  //
 12445  // Solidity: function configurationNonce() view returns(uint64)
 12446  func (_BridgeTransferERC721 *BridgeTransferERC721CallerSession) ConfigurationNonce() (uint64, error) {
 12447  	return _BridgeTransferERC721.Contract.ConfigurationNonce(&_BridgeTransferERC721.CallOpts)
 12448  }
 12449  
 12450  // FeeOfERC20 is a free data retrieval call binding the contract method 0x488af871.
 12451  //
 12452  // Solidity: function feeOfERC20(address ) view returns(uint256)
 12453  func (_BridgeTransferERC721 *BridgeTransferERC721Caller) FeeOfERC20(opts *bind.CallOpts, arg0 common.Address) (*big.Int, error) {
 12454  	var out []interface{}
 12455  	err := _BridgeTransferERC721.contract.Call(opts, &out, "feeOfERC20", arg0)
 12456  
 12457  	if err != nil {
 12458  		return *new(*big.Int), err
 12459  	}
 12460  
 12461  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
 12462  
 12463  	return out0, err
 12464  
 12465  }
 12466  
 12467  // FeeOfERC20 is a free data retrieval call binding the contract method 0x488af871.
 12468  //
 12469  // Solidity: function feeOfERC20(address ) view returns(uint256)
 12470  func (_BridgeTransferERC721 *BridgeTransferERC721Session) FeeOfERC20(arg0 common.Address) (*big.Int, error) {
 12471  	return _BridgeTransferERC721.Contract.FeeOfERC20(&_BridgeTransferERC721.CallOpts, arg0)
 12472  }
 12473  
 12474  // FeeOfERC20 is a free data retrieval call binding the contract method 0x488af871.
 12475  //
 12476  // Solidity: function feeOfERC20(address ) view returns(uint256)
 12477  func (_BridgeTransferERC721 *BridgeTransferERC721CallerSession) FeeOfERC20(arg0 common.Address) (*big.Int, error) {
 12478  	return _BridgeTransferERC721.Contract.FeeOfERC20(&_BridgeTransferERC721.CallOpts, arg0)
 12479  }
 12480  
 12481  // FeeOfKLAY is a free data retrieval call binding the contract method 0xc263b5d6.
 12482  //
 12483  // Solidity: function feeOfKLAY() view returns(uint256)
 12484  func (_BridgeTransferERC721 *BridgeTransferERC721Caller) FeeOfKLAY(opts *bind.CallOpts) (*big.Int, error) {
 12485  	var out []interface{}
 12486  	err := _BridgeTransferERC721.contract.Call(opts, &out, "feeOfKLAY")
 12487  
 12488  	if err != nil {
 12489  		return *new(*big.Int), err
 12490  	}
 12491  
 12492  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
 12493  
 12494  	return out0, err
 12495  
 12496  }
 12497  
 12498  // FeeOfKLAY is a free data retrieval call binding the contract method 0xc263b5d6.
 12499  //
 12500  // Solidity: function feeOfKLAY() view returns(uint256)
 12501  func (_BridgeTransferERC721 *BridgeTransferERC721Session) FeeOfKLAY() (*big.Int, error) {
 12502  	return _BridgeTransferERC721.Contract.FeeOfKLAY(&_BridgeTransferERC721.CallOpts)
 12503  }
 12504  
 12505  // FeeOfKLAY is a free data retrieval call binding the contract method 0xc263b5d6.
 12506  //
 12507  // Solidity: function feeOfKLAY() view returns(uint256)
 12508  func (_BridgeTransferERC721 *BridgeTransferERC721CallerSession) FeeOfKLAY() (*big.Int, error) {
 12509  	return _BridgeTransferERC721.Contract.FeeOfKLAY(&_BridgeTransferERC721.CallOpts)
 12510  }
 12511  
 12512  // FeeReceiver is a free data retrieval call binding the contract method 0xb3f00674.
 12513  //
 12514  // Solidity: function feeReceiver() view returns(address)
 12515  func (_BridgeTransferERC721 *BridgeTransferERC721Caller) FeeReceiver(opts *bind.CallOpts) (common.Address, error) {
 12516  	var out []interface{}
 12517  	err := _BridgeTransferERC721.contract.Call(opts, &out, "feeReceiver")
 12518  
 12519  	if err != nil {
 12520  		return *new(common.Address), err
 12521  	}
 12522  
 12523  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
 12524  
 12525  	return out0, err
 12526  
 12527  }
 12528  
 12529  // FeeReceiver is a free data retrieval call binding the contract method 0xb3f00674.
 12530  //
 12531  // Solidity: function feeReceiver() view returns(address)
 12532  func (_BridgeTransferERC721 *BridgeTransferERC721Session) FeeReceiver() (common.Address, error) {
 12533  	return _BridgeTransferERC721.Contract.FeeReceiver(&_BridgeTransferERC721.CallOpts)
 12534  }
 12535  
 12536  // FeeReceiver is a free data retrieval call binding the contract method 0xb3f00674.
 12537  //
 12538  // Solidity: function feeReceiver() view returns(address)
 12539  func (_BridgeTransferERC721 *BridgeTransferERC721CallerSession) FeeReceiver() (common.Address, error) {
 12540  	return _BridgeTransferERC721.Contract.FeeReceiver(&_BridgeTransferERC721.CallOpts)
 12541  }
 12542  
 12543  // GetOperatorList is a free data retrieval call binding the contract method 0xb2c01030.
 12544  //
 12545  // Solidity: function getOperatorList() view returns(address[])
 12546  func (_BridgeTransferERC721 *BridgeTransferERC721Caller) GetOperatorList(opts *bind.CallOpts) ([]common.Address, error) {
 12547  	var out []interface{}
 12548  	err := _BridgeTransferERC721.contract.Call(opts, &out, "getOperatorList")
 12549  
 12550  	if err != nil {
 12551  		return *new([]common.Address), err
 12552  	}
 12553  
 12554  	out0 := *abi.ConvertType(out[0], new([]common.Address)).(*[]common.Address)
 12555  
 12556  	return out0, err
 12557  
 12558  }
 12559  
 12560  // GetOperatorList is a free data retrieval call binding the contract method 0xb2c01030.
 12561  //
 12562  // Solidity: function getOperatorList() view returns(address[])
 12563  func (_BridgeTransferERC721 *BridgeTransferERC721Session) GetOperatorList() ([]common.Address, error) {
 12564  	return _BridgeTransferERC721.Contract.GetOperatorList(&_BridgeTransferERC721.CallOpts)
 12565  }
 12566  
 12567  // GetOperatorList is a free data retrieval call binding the contract method 0xb2c01030.
 12568  //
 12569  // Solidity: function getOperatorList() view returns(address[])
 12570  func (_BridgeTransferERC721 *BridgeTransferERC721CallerSession) GetOperatorList() ([]common.Address, error) {
 12571  	return _BridgeTransferERC721.Contract.GetOperatorList(&_BridgeTransferERC721.CallOpts)
 12572  }
 12573  
 12574  // GetRegisteredTokenList is a free data retrieval call binding the contract method 0xea21eade.
 12575  //
 12576  // Solidity: function getRegisteredTokenList() view returns(address[])
 12577  func (_BridgeTransferERC721 *BridgeTransferERC721Caller) GetRegisteredTokenList(opts *bind.CallOpts) ([]common.Address, error) {
 12578  	var out []interface{}
 12579  	err := _BridgeTransferERC721.contract.Call(opts, &out, "getRegisteredTokenList")
 12580  
 12581  	if err != nil {
 12582  		return *new([]common.Address), err
 12583  	}
 12584  
 12585  	out0 := *abi.ConvertType(out[0], new([]common.Address)).(*[]common.Address)
 12586  
 12587  	return out0, err
 12588  
 12589  }
 12590  
 12591  // GetRegisteredTokenList is a free data retrieval call binding the contract method 0xea21eade.
 12592  //
 12593  // Solidity: function getRegisteredTokenList() view returns(address[])
 12594  func (_BridgeTransferERC721 *BridgeTransferERC721Session) GetRegisteredTokenList() ([]common.Address, error) {
 12595  	return _BridgeTransferERC721.Contract.GetRegisteredTokenList(&_BridgeTransferERC721.CallOpts)
 12596  }
 12597  
 12598  // GetRegisteredTokenList is a free data retrieval call binding the contract method 0xea21eade.
 12599  //
 12600  // Solidity: function getRegisteredTokenList() view returns(address[])
 12601  func (_BridgeTransferERC721 *BridgeTransferERC721CallerSession) GetRegisteredTokenList() ([]common.Address, error) {
 12602  	return _BridgeTransferERC721.Contract.GetRegisteredTokenList(&_BridgeTransferERC721.CallOpts)
 12603  }
 12604  
 12605  // HandleNoncesToBlockNums is a free data retrieval call binding the contract method 0x13a6738a.
 12606  //
 12607  // Solidity: function handleNoncesToBlockNums(uint64 ) view returns(uint64)
 12608  func (_BridgeTransferERC721 *BridgeTransferERC721Caller) HandleNoncesToBlockNums(opts *bind.CallOpts, arg0 uint64) (uint64, error) {
 12609  	var out []interface{}
 12610  	err := _BridgeTransferERC721.contract.Call(opts, &out, "handleNoncesToBlockNums", arg0)
 12611  
 12612  	if err != nil {
 12613  		return *new(uint64), err
 12614  	}
 12615  
 12616  	out0 := *abi.ConvertType(out[0], new(uint64)).(*uint64)
 12617  
 12618  	return out0, err
 12619  
 12620  }
 12621  
 12622  // HandleNoncesToBlockNums is a free data retrieval call binding the contract method 0x13a6738a.
 12623  //
 12624  // Solidity: function handleNoncesToBlockNums(uint64 ) view returns(uint64)
 12625  func (_BridgeTransferERC721 *BridgeTransferERC721Session) HandleNoncesToBlockNums(arg0 uint64) (uint64, error) {
 12626  	return _BridgeTransferERC721.Contract.HandleNoncesToBlockNums(&_BridgeTransferERC721.CallOpts, arg0)
 12627  }
 12628  
 12629  // HandleNoncesToBlockNums is a free data retrieval call binding the contract method 0x13a6738a.
 12630  //
 12631  // Solidity: function handleNoncesToBlockNums(uint64 ) view returns(uint64)
 12632  func (_BridgeTransferERC721 *BridgeTransferERC721CallerSession) HandleNoncesToBlockNums(arg0 uint64) (uint64, error) {
 12633  	return _BridgeTransferERC721.Contract.HandleNoncesToBlockNums(&_BridgeTransferERC721.CallOpts, arg0)
 12634  }
 12635  
 12636  // HandledRequestTx is a free data retrieval call binding the contract method 0x8a75eee2.
 12637  //
 12638  // Solidity: function handledRequestTx(bytes32 ) view returns(bool)
 12639  func (_BridgeTransferERC721 *BridgeTransferERC721Caller) HandledRequestTx(opts *bind.CallOpts, arg0 [32]byte) (bool, error) {
 12640  	var out []interface{}
 12641  	err := _BridgeTransferERC721.contract.Call(opts, &out, "handledRequestTx", arg0)
 12642  
 12643  	if err != nil {
 12644  		return *new(bool), err
 12645  	}
 12646  
 12647  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
 12648  
 12649  	return out0, err
 12650  
 12651  }
 12652  
 12653  // HandledRequestTx is a free data retrieval call binding the contract method 0x8a75eee2.
 12654  //
 12655  // Solidity: function handledRequestTx(bytes32 ) view returns(bool)
 12656  func (_BridgeTransferERC721 *BridgeTransferERC721Session) HandledRequestTx(arg0 [32]byte) (bool, error) {
 12657  	return _BridgeTransferERC721.Contract.HandledRequestTx(&_BridgeTransferERC721.CallOpts, arg0)
 12658  }
 12659  
 12660  // HandledRequestTx is a free data retrieval call binding the contract method 0x8a75eee2.
 12661  //
 12662  // Solidity: function handledRequestTx(bytes32 ) view returns(bool)
 12663  func (_BridgeTransferERC721 *BridgeTransferERC721CallerSession) HandledRequestTx(arg0 [32]byte) (bool, error) {
 12664  	return _BridgeTransferERC721.Contract.HandledRequestTx(&_BridgeTransferERC721.CallOpts, arg0)
 12665  }
 12666  
 12667  // IndexOfTokens is a free data retrieval call binding the contract method 0x48a18a6a.
 12668  //
 12669  // Solidity: function indexOfTokens(address ) view returns(uint256)
 12670  func (_BridgeTransferERC721 *BridgeTransferERC721Caller) IndexOfTokens(opts *bind.CallOpts, arg0 common.Address) (*big.Int, error) {
 12671  	var out []interface{}
 12672  	err := _BridgeTransferERC721.contract.Call(opts, &out, "indexOfTokens", arg0)
 12673  
 12674  	if err != nil {
 12675  		return *new(*big.Int), err
 12676  	}
 12677  
 12678  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
 12679  
 12680  	return out0, err
 12681  
 12682  }
 12683  
 12684  // IndexOfTokens is a free data retrieval call binding the contract method 0x48a18a6a.
 12685  //
 12686  // Solidity: function indexOfTokens(address ) view returns(uint256)
 12687  func (_BridgeTransferERC721 *BridgeTransferERC721Session) IndexOfTokens(arg0 common.Address) (*big.Int, error) {
 12688  	return _BridgeTransferERC721.Contract.IndexOfTokens(&_BridgeTransferERC721.CallOpts, arg0)
 12689  }
 12690  
 12691  // IndexOfTokens is a free data retrieval call binding the contract method 0x48a18a6a.
 12692  //
 12693  // Solidity: function indexOfTokens(address ) view returns(uint256)
 12694  func (_BridgeTransferERC721 *BridgeTransferERC721CallerSession) IndexOfTokens(arg0 common.Address) (*big.Int, error) {
 12695  	return _BridgeTransferERC721.Contract.IndexOfTokens(&_BridgeTransferERC721.CallOpts, arg0)
 12696  }
 12697  
 12698  // IsOwner is a free data retrieval call binding the contract method 0x8f32d59b.
 12699  //
 12700  // Solidity: function isOwner() view returns(bool)
 12701  func (_BridgeTransferERC721 *BridgeTransferERC721Caller) IsOwner(opts *bind.CallOpts) (bool, error) {
 12702  	var out []interface{}
 12703  	err := _BridgeTransferERC721.contract.Call(opts, &out, "isOwner")
 12704  
 12705  	if err != nil {
 12706  		return *new(bool), err
 12707  	}
 12708  
 12709  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
 12710  
 12711  	return out0, err
 12712  
 12713  }
 12714  
 12715  // IsOwner is a free data retrieval call binding the contract method 0x8f32d59b.
 12716  //
 12717  // Solidity: function isOwner() view returns(bool)
 12718  func (_BridgeTransferERC721 *BridgeTransferERC721Session) IsOwner() (bool, error) {
 12719  	return _BridgeTransferERC721.Contract.IsOwner(&_BridgeTransferERC721.CallOpts)
 12720  }
 12721  
 12722  // IsOwner is a free data retrieval call binding the contract method 0x8f32d59b.
 12723  //
 12724  // Solidity: function isOwner() view returns(bool)
 12725  func (_BridgeTransferERC721 *BridgeTransferERC721CallerSession) IsOwner() (bool, error) {
 12726  	return _BridgeTransferERC721.Contract.IsOwner(&_BridgeTransferERC721.CallOpts)
 12727  }
 12728  
 12729  // IsRunning is a free data retrieval call binding the contract method 0x2014e5d1.
 12730  //
 12731  // Solidity: function isRunning() view returns(bool)
 12732  func (_BridgeTransferERC721 *BridgeTransferERC721Caller) IsRunning(opts *bind.CallOpts) (bool, error) {
 12733  	var out []interface{}
 12734  	err := _BridgeTransferERC721.contract.Call(opts, &out, "isRunning")
 12735  
 12736  	if err != nil {
 12737  		return *new(bool), err
 12738  	}
 12739  
 12740  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
 12741  
 12742  	return out0, err
 12743  
 12744  }
 12745  
 12746  // IsRunning is a free data retrieval call binding the contract method 0x2014e5d1.
 12747  //
 12748  // Solidity: function isRunning() view returns(bool)
 12749  func (_BridgeTransferERC721 *BridgeTransferERC721Session) IsRunning() (bool, error) {
 12750  	return _BridgeTransferERC721.Contract.IsRunning(&_BridgeTransferERC721.CallOpts)
 12751  }
 12752  
 12753  // IsRunning is a free data retrieval call binding the contract method 0x2014e5d1.
 12754  //
 12755  // Solidity: function isRunning() view returns(bool)
 12756  func (_BridgeTransferERC721 *BridgeTransferERC721CallerSession) IsRunning() (bool, error) {
 12757  	return _BridgeTransferERC721.Contract.IsRunning(&_BridgeTransferERC721.CallOpts)
 12758  }
 12759  
 12760  // LockedTokens is a free data retrieval call binding the contract method 0x5eb7413a.
 12761  //
 12762  // Solidity: function lockedTokens(address ) view returns(bool)
 12763  func (_BridgeTransferERC721 *BridgeTransferERC721Caller) LockedTokens(opts *bind.CallOpts, arg0 common.Address) (bool, error) {
 12764  	var out []interface{}
 12765  	err := _BridgeTransferERC721.contract.Call(opts, &out, "lockedTokens", arg0)
 12766  
 12767  	if err != nil {
 12768  		return *new(bool), err
 12769  	}
 12770  
 12771  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
 12772  
 12773  	return out0, err
 12774  
 12775  }
 12776  
 12777  // LockedTokens is a free data retrieval call binding the contract method 0x5eb7413a.
 12778  //
 12779  // Solidity: function lockedTokens(address ) view returns(bool)
 12780  func (_BridgeTransferERC721 *BridgeTransferERC721Session) LockedTokens(arg0 common.Address) (bool, error) {
 12781  	return _BridgeTransferERC721.Contract.LockedTokens(&_BridgeTransferERC721.CallOpts, arg0)
 12782  }
 12783  
 12784  // LockedTokens is a free data retrieval call binding the contract method 0x5eb7413a.
 12785  //
 12786  // Solidity: function lockedTokens(address ) view returns(bool)
 12787  func (_BridgeTransferERC721 *BridgeTransferERC721CallerSession) LockedTokens(arg0 common.Address) (bool, error) {
 12788  	return _BridgeTransferERC721.Contract.LockedTokens(&_BridgeTransferERC721.CallOpts, arg0)
 12789  }
 12790  
 12791  // LowerHandleNonce is a free data retrieval call binding the contract method 0x4b40b826.
 12792  //
 12793  // Solidity: function lowerHandleNonce() view returns(uint64)
 12794  func (_BridgeTransferERC721 *BridgeTransferERC721Caller) LowerHandleNonce(opts *bind.CallOpts) (uint64, error) {
 12795  	var out []interface{}
 12796  	err := _BridgeTransferERC721.contract.Call(opts, &out, "lowerHandleNonce")
 12797  
 12798  	if err != nil {
 12799  		return *new(uint64), err
 12800  	}
 12801  
 12802  	out0 := *abi.ConvertType(out[0], new(uint64)).(*uint64)
 12803  
 12804  	return out0, err
 12805  
 12806  }
 12807  
 12808  // LowerHandleNonce is a free data retrieval call binding the contract method 0x4b40b826.
 12809  //
 12810  // Solidity: function lowerHandleNonce() view returns(uint64)
 12811  func (_BridgeTransferERC721 *BridgeTransferERC721Session) LowerHandleNonce() (uint64, error) {
 12812  	return _BridgeTransferERC721.Contract.LowerHandleNonce(&_BridgeTransferERC721.CallOpts)
 12813  }
 12814  
 12815  // LowerHandleNonce is a free data retrieval call binding the contract method 0x4b40b826.
 12816  //
 12817  // Solidity: function lowerHandleNonce() view returns(uint64)
 12818  func (_BridgeTransferERC721 *BridgeTransferERC721CallerSession) LowerHandleNonce() (uint64, error) {
 12819  	return _BridgeTransferERC721.Contract.LowerHandleNonce(&_BridgeTransferERC721.CallOpts)
 12820  }
 12821  
 12822  // ModeMintBurn is a free data retrieval call binding the contract method 0x6e176ec2.
 12823  //
 12824  // Solidity: function modeMintBurn() view returns(bool)
 12825  func (_BridgeTransferERC721 *BridgeTransferERC721Caller) ModeMintBurn(opts *bind.CallOpts) (bool, error) {
 12826  	var out []interface{}
 12827  	err := _BridgeTransferERC721.contract.Call(opts, &out, "modeMintBurn")
 12828  
 12829  	if err != nil {
 12830  		return *new(bool), err
 12831  	}
 12832  
 12833  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
 12834  
 12835  	return out0, err
 12836  
 12837  }
 12838  
 12839  // ModeMintBurn is a free data retrieval call binding the contract method 0x6e176ec2.
 12840  //
 12841  // Solidity: function modeMintBurn() view returns(bool)
 12842  func (_BridgeTransferERC721 *BridgeTransferERC721Session) ModeMintBurn() (bool, error) {
 12843  	return _BridgeTransferERC721.Contract.ModeMintBurn(&_BridgeTransferERC721.CallOpts)
 12844  }
 12845  
 12846  // ModeMintBurn is a free data retrieval call binding the contract method 0x6e176ec2.
 12847  //
 12848  // Solidity: function modeMintBurn() view returns(bool)
 12849  func (_BridgeTransferERC721 *BridgeTransferERC721CallerSession) ModeMintBurn() (bool, error) {
 12850  	return _BridgeTransferERC721.Contract.ModeMintBurn(&_BridgeTransferERC721.CallOpts)
 12851  }
 12852  
 12853  // OperatorList is a free data retrieval call binding the contract method 0xcb38f407.
 12854  //
 12855  // Solidity: function operatorList(uint256 ) view returns(address)
 12856  func (_BridgeTransferERC721 *BridgeTransferERC721Caller) OperatorList(opts *bind.CallOpts, arg0 *big.Int) (common.Address, error) {
 12857  	var out []interface{}
 12858  	err := _BridgeTransferERC721.contract.Call(opts, &out, "operatorList", arg0)
 12859  
 12860  	if err != nil {
 12861  		return *new(common.Address), err
 12862  	}
 12863  
 12864  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
 12865  
 12866  	return out0, err
 12867  
 12868  }
 12869  
 12870  // OperatorList is a free data retrieval call binding the contract method 0xcb38f407.
 12871  //
 12872  // Solidity: function operatorList(uint256 ) view returns(address)
 12873  func (_BridgeTransferERC721 *BridgeTransferERC721Session) OperatorList(arg0 *big.Int) (common.Address, error) {
 12874  	return _BridgeTransferERC721.Contract.OperatorList(&_BridgeTransferERC721.CallOpts, arg0)
 12875  }
 12876  
 12877  // OperatorList is a free data retrieval call binding the contract method 0xcb38f407.
 12878  //
 12879  // Solidity: function operatorList(uint256 ) view returns(address)
 12880  func (_BridgeTransferERC721 *BridgeTransferERC721CallerSession) OperatorList(arg0 *big.Int) (common.Address, error) {
 12881  	return _BridgeTransferERC721.Contract.OperatorList(&_BridgeTransferERC721.CallOpts, arg0)
 12882  }
 12883  
 12884  // OperatorThresholds is a free data retrieval call binding the contract method 0x5526f76b.
 12885  //
 12886  // Solidity: function operatorThresholds(uint8 ) view returns(uint8)
 12887  func (_BridgeTransferERC721 *BridgeTransferERC721Caller) OperatorThresholds(opts *bind.CallOpts, arg0 uint8) (uint8, error) {
 12888  	var out []interface{}
 12889  	err := _BridgeTransferERC721.contract.Call(opts, &out, "operatorThresholds", arg0)
 12890  
 12891  	if err != nil {
 12892  		return *new(uint8), err
 12893  	}
 12894  
 12895  	out0 := *abi.ConvertType(out[0], new(uint8)).(*uint8)
 12896  
 12897  	return out0, err
 12898  
 12899  }
 12900  
 12901  // OperatorThresholds is a free data retrieval call binding the contract method 0x5526f76b.
 12902  //
 12903  // Solidity: function operatorThresholds(uint8 ) view returns(uint8)
 12904  func (_BridgeTransferERC721 *BridgeTransferERC721Session) OperatorThresholds(arg0 uint8) (uint8, error) {
 12905  	return _BridgeTransferERC721.Contract.OperatorThresholds(&_BridgeTransferERC721.CallOpts, arg0)
 12906  }
 12907  
 12908  // OperatorThresholds is a free data retrieval call binding the contract method 0x5526f76b.
 12909  //
 12910  // Solidity: function operatorThresholds(uint8 ) view returns(uint8)
 12911  func (_BridgeTransferERC721 *BridgeTransferERC721CallerSession) OperatorThresholds(arg0 uint8) (uint8, error) {
 12912  	return _BridgeTransferERC721.Contract.OperatorThresholds(&_BridgeTransferERC721.CallOpts, arg0)
 12913  }
 12914  
 12915  // Operators is a free data retrieval call binding the contract method 0x13e7c9d8.
 12916  //
 12917  // Solidity: function operators(address ) view returns(bool)
 12918  func (_BridgeTransferERC721 *BridgeTransferERC721Caller) Operators(opts *bind.CallOpts, arg0 common.Address) (bool, error) {
 12919  	var out []interface{}
 12920  	err := _BridgeTransferERC721.contract.Call(opts, &out, "operators", arg0)
 12921  
 12922  	if err != nil {
 12923  		return *new(bool), err
 12924  	}
 12925  
 12926  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
 12927  
 12928  	return out0, err
 12929  
 12930  }
 12931  
 12932  // Operators is a free data retrieval call binding the contract method 0x13e7c9d8.
 12933  //
 12934  // Solidity: function operators(address ) view returns(bool)
 12935  func (_BridgeTransferERC721 *BridgeTransferERC721Session) Operators(arg0 common.Address) (bool, error) {
 12936  	return _BridgeTransferERC721.Contract.Operators(&_BridgeTransferERC721.CallOpts, arg0)
 12937  }
 12938  
 12939  // Operators is a free data retrieval call binding the contract method 0x13e7c9d8.
 12940  //
 12941  // Solidity: function operators(address ) view returns(bool)
 12942  func (_BridgeTransferERC721 *BridgeTransferERC721CallerSession) Operators(arg0 common.Address) (bool, error) {
 12943  	return _BridgeTransferERC721.Contract.Operators(&_BridgeTransferERC721.CallOpts, arg0)
 12944  }
 12945  
 12946  // Owner is a free data retrieval call binding the contract method 0x8da5cb5b.
 12947  //
 12948  // Solidity: function owner() view returns(address)
 12949  func (_BridgeTransferERC721 *BridgeTransferERC721Caller) Owner(opts *bind.CallOpts) (common.Address, error) {
 12950  	var out []interface{}
 12951  	err := _BridgeTransferERC721.contract.Call(opts, &out, "owner")
 12952  
 12953  	if err != nil {
 12954  		return *new(common.Address), err
 12955  	}
 12956  
 12957  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
 12958  
 12959  	return out0, err
 12960  
 12961  }
 12962  
 12963  // Owner is a free data retrieval call binding the contract method 0x8da5cb5b.
 12964  //
 12965  // Solidity: function owner() view returns(address)
 12966  func (_BridgeTransferERC721 *BridgeTransferERC721Session) Owner() (common.Address, error) {
 12967  	return _BridgeTransferERC721.Contract.Owner(&_BridgeTransferERC721.CallOpts)
 12968  }
 12969  
 12970  // Owner is a free data retrieval call binding the contract method 0x8da5cb5b.
 12971  //
 12972  // Solidity: function owner() view returns(address)
 12973  func (_BridgeTransferERC721 *BridgeTransferERC721CallerSession) Owner() (common.Address, error) {
 12974  	return _BridgeTransferERC721.Contract.Owner(&_BridgeTransferERC721.CallOpts)
 12975  }
 12976  
 12977  // RecoveryBlockNumber is a free data retrieval call binding the contract method 0x989ba0d3.
 12978  //
 12979  // Solidity: function recoveryBlockNumber() view returns(uint64)
 12980  func (_BridgeTransferERC721 *BridgeTransferERC721Caller) RecoveryBlockNumber(opts *bind.CallOpts) (uint64, error) {
 12981  	var out []interface{}
 12982  	err := _BridgeTransferERC721.contract.Call(opts, &out, "recoveryBlockNumber")
 12983  
 12984  	if err != nil {
 12985  		return *new(uint64), err
 12986  	}
 12987  
 12988  	out0 := *abi.ConvertType(out[0], new(uint64)).(*uint64)
 12989  
 12990  	return out0, err
 12991  
 12992  }
 12993  
 12994  // RecoveryBlockNumber is a free data retrieval call binding the contract method 0x989ba0d3.
 12995  //
 12996  // Solidity: function recoveryBlockNumber() view returns(uint64)
 12997  func (_BridgeTransferERC721 *BridgeTransferERC721Session) RecoveryBlockNumber() (uint64, error) {
 12998  	return _BridgeTransferERC721.Contract.RecoveryBlockNumber(&_BridgeTransferERC721.CallOpts)
 12999  }
 13000  
 13001  // RecoveryBlockNumber is a free data retrieval call binding the contract method 0x989ba0d3.
 13002  //
 13003  // Solidity: function recoveryBlockNumber() view returns(uint64)
 13004  func (_BridgeTransferERC721 *BridgeTransferERC721CallerSession) RecoveryBlockNumber() (uint64, error) {
 13005  	return _BridgeTransferERC721.Contract.RecoveryBlockNumber(&_BridgeTransferERC721.CallOpts)
 13006  }
 13007  
 13008  // RegisteredTokenList is a free data retrieval call binding the contract method 0x3e4fe949.
 13009  //
 13010  // Solidity: function registeredTokenList(uint256 ) view returns(address)
 13011  func (_BridgeTransferERC721 *BridgeTransferERC721Caller) RegisteredTokenList(opts *bind.CallOpts, arg0 *big.Int) (common.Address, error) {
 13012  	var out []interface{}
 13013  	err := _BridgeTransferERC721.contract.Call(opts, &out, "registeredTokenList", arg0)
 13014  
 13015  	if err != nil {
 13016  		return *new(common.Address), err
 13017  	}
 13018  
 13019  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
 13020  
 13021  	return out0, err
 13022  
 13023  }
 13024  
 13025  // RegisteredTokenList is a free data retrieval call binding the contract method 0x3e4fe949.
 13026  //
 13027  // Solidity: function registeredTokenList(uint256 ) view returns(address)
 13028  func (_BridgeTransferERC721 *BridgeTransferERC721Session) RegisteredTokenList(arg0 *big.Int) (common.Address, error) {
 13029  	return _BridgeTransferERC721.Contract.RegisteredTokenList(&_BridgeTransferERC721.CallOpts, arg0)
 13030  }
 13031  
 13032  // RegisteredTokenList is a free data retrieval call binding the contract method 0x3e4fe949.
 13033  //
 13034  // Solidity: function registeredTokenList(uint256 ) view returns(address)
 13035  func (_BridgeTransferERC721 *BridgeTransferERC721CallerSession) RegisteredTokenList(arg0 *big.Int) (common.Address, error) {
 13036  	return _BridgeTransferERC721.Contract.RegisteredTokenList(&_BridgeTransferERC721.CallOpts, arg0)
 13037  }
 13038  
 13039  // RegisteredTokens is a free data retrieval call binding the contract method 0x8c0bd916.
 13040  //
 13041  // Solidity: function registeredTokens(address ) view returns(address)
 13042  func (_BridgeTransferERC721 *BridgeTransferERC721Caller) RegisteredTokens(opts *bind.CallOpts, arg0 common.Address) (common.Address, error) {
 13043  	var out []interface{}
 13044  	err := _BridgeTransferERC721.contract.Call(opts, &out, "registeredTokens", arg0)
 13045  
 13046  	if err != nil {
 13047  		return *new(common.Address), err
 13048  	}
 13049  
 13050  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
 13051  
 13052  	return out0, err
 13053  
 13054  }
 13055  
 13056  // RegisteredTokens is a free data retrieval call binding the contract method 0x8c0bd916.
 13057  //
 13058  // Solidity: function registeredTokens(address ) view returns(address)
 13059  func (_BridgeTransferERC721 *BridgeTransferERC721Session) RegisteredTokens(arg0 common.Address) (common.Address, error) {
 13060  	return _BridgeTransferERC721.Contract.RegisteredTokens(&_BridgeTransferERC721.CallOpts, arg0)
 13061  }
 13062  
 13063  // RegisteredTokens is a free data retrieval call binding the contract method 0x8c0bd916.
 13064  //
 13065  // Solidity: function registeredTokens(address ) view returns(address)
 13066  func (_BridgeTransferERC721 *BridgeTransferERC721CallerSession) RegisteredTokens(arg0 common.Address) (common.Address, error) {
 13067  	return _BridgeTransferERC721.Contract.RegisteredTokens(&_BridgeTransferERC721.CallOpts, arg0)
 13068  }
 13069  
 13070  // RequestNonce is a free data retrieval call binding the contract method 0x7c1a0302.
 13071  //
 13072  // Solidity: function requestNonce() view returns(uint64)
 13073  func (_BridgeTransferERC721 *BridgeTransferERC721Caller) RequestNonce(opts *bind.CallOpts) (uint64, error) {
 13074  	var out []interface{}
 13075  	err := _BridgeTransferERC721.contract.Call(opts, &out, "requestNonce")
 13076  
 13077  	if err != nil {
 13078  		return *new(uint64), err
 13079  	}
 13080  
 13081  	out0 := *abi.ConvertType(out[0], new(uint64)).(*uint64)
 13082  
 13083  	return out0, err
 13084  
 13085  }
 13086  
 13087  // RequestNonce is a free data retrieval call binding the contract method 0x7c1a0302.
 13088  //
 13089  // Solidity: function requestNonce() view returns(uint64)
 13090  func (_BridgeTransferERC721 *BridgeTransferERC721Session) RequestNonce() (uint64, error) {
 13091  	return _BridgeTransferERC721.Contract.RequestNonce(&_BridgeTransferERC721.CallOpts)
 13092  }
 13093  
 13094  // RequestNonce is a free data retrieval call binding the contract method 0x7c1a0302.
 13095  //
 13096  // Solidity: function requestNonce() view returns(uint64)
 13097  func (_BridgeTransferERC721 *BridgeTransferERC721CallerSession) RequestNonce() (uint64, error) {
 13098  	return _BridgeTransferERC721.Contract.RequestNonce(&_BridgeTransferERC721.CallOpts)
 13099  }
 13100  
 13101  // UpperHandleNonce is a free data retrieval call binding the contract method 0x54edad72.
 13102  //
 13103  // Solidity: function upperHandleNonce() view returns(uint64)
 13104  func (_BridgeTransferERC721 *BridgeTransferERC721Caller) UpperHandleNonce(opts *bind.CallOpts) (uint64, error) {
 13105  	var out []interface{}
 13106  	err := _BridgeTransferERC721.contract.Call(opts, &out, "upperHandleNonce")
 13107  
 13108  	if err != nil {
 13109  		return *new(uint64), err
 13110  	}
 13111  
 13112  	out0 := *abi.ConvertType(out[0], new(uint64)).(*uint64)
 13113  
 13114  	return out0, err
 13115  
 13116  }
 13117  
 13118  // UpperHandleNonce is a free data retrieval call binding the contract method 0x54edad72.
 13119  //
 13120  // Solidity: function upperHandleNonce() view returns(uint64)
 13121  func (_BridgeTransferERC721 *BridgeTransferERC721Session) UpperHandleNonce() (uint64, error) {
 13122  	return _BridgeTransferERC721.Contract.UpperHandleNonce(&_BridgeTransferERC721.CallOpts)
 13123  }
 13124  
 13125  // UpperHandleNonce is a free data retrieval call binding the contract method 0x54edad72.
 13126  //
 13127  // Solidity: function upperHandleNonce() view returns(uint64)
 13128  func (_BridgeTransferERC721 *BridgeTransferERC721CallerSession) UpperHandleNonce() (uint64, error) {
 13129  	return _BridgeTransferERC721.Contract.UpperHandleNonce(&_BridgeTransferERC721.CallOpts)
 13130  }
 13131  
 13132  // DeregisterOperator is a paid mutator transaction binding the contract method 0xd8cf98ca.
 13133  //
 13134  // Solidity: function deregisterOperator(address _operator) returns()
 13135  func (_BridgeTransferERC721 *BridgeTransferERC721Transactor) DeregisterOperator(opts *bind.TransactOpts, _operator common.Address) (*types.Transaction, error) {
 13136  	return _BridgeTransferERC721.contract.Transact(opts, "deregisterOperator", _operator)
 13137  }
 13138  
 13139  // DeregisterOperator is a paid mutator transaction binding the contract method 0xd8cf98ca.
 13140  //
 13141  // Solidity: function deregisterOperator(address _operator) returns()
 13142  func (_BridgeTransferERC721 *BridgeTransferERC721Session) DeregisterOperator(_operator common.Address) (*types.Transaction, error) {
 13143  	return _BridgeTransferERC721.Contract.DeregisterOperator(&_BridgeTransferERC721.TransactOpts, _operator)
 13144  }
 13145  
 13146  // DeregisterOperator is a paid mutator transaction binding the contract method 0xd8cf98ca.
 13147  //
 13148  // Solidity: function deregisterOperator(address _operator) returns()
 13149  func (_BridgeTransferERC721 *BridgeTransferERC721TransactorSession) DeregisterOperator(_operator common.Address) (*types.Transaction, error) {
 13150  	return _BridgeTransferERC721.Contract.DeregisterOperator(&_BridgeTransferERC721.TransactOpts, _operator)
 13151  }
 13152  
 13153  // DeregisterToken is a paid mutator transaction binding the contract method 0xbab2af1d.
 13154  //
 13155  // Solidity: function deregisterToken(address _token) returns()
 13156  func (_BridgeTransferERC721 *BridgeTransferERC721Transactor) DeregisterToken(opts *bind.TransactOpts, _token common.Address) (*types.Transaction, error) {
 13157  	return _BridgeTransferERC721.contract.Transact(opts, "deregisterToken", _token)
 13158  }
 13159  
 13160  // DeregisterToken is a paid mutator transaction binding the contract method 0xbab2af1d.
 13161  //
 13162  // Solidity: function deregisterToken(address _token) returns()
 13163  func (_BridgeTransferERC721 *BridgeTransferERC721Session) DeregisterToken(_token common.Address) (*types.Transaction, error) {
 13164  	return _BridgeTransferERC721.Contract.DeregisterToken(&_BridgeTransferERC721.TransactOpts, _token)
 13165  }
 13166  
 13167  // DeregisterToken is a paid mutator transaction binding the contract method 0xbab2af1d.
 13168  //
 13169  // Solidity: function deregisterToken(address _token) returns()
 13170  func (_BridgeTransferERC721 *BridgeTransferERC721TransactorSession) DeregisterToken(_token common.Address) (*types.Transaction, error) {
 13171  	return _BridgeTransferERC721.Contract.DeregisterToken(&_BridgeTransferERC721.TransactOpts, _token)
 13172  }
 13173  
 13174  // HandleERC721Transfer is a paid mutator transaction binding the contract method 0xafb60223.
 13175  //
 13176  // Solidity: function handleERC721Transfer(bytes32 _requestTxHash, address _from, address _to, address _tokenAddress, uint256 _tokenId, uint64 _requestedNonce, uint64 _requestedBlockNumber, string _tokenURI, bytes _extraData) returns()
 13177  func (_BridgeTransferERC721 *BridgeTransferERC721Transactor) HandleERC721Transfer(opts *bind.TransactOpts, _requestTxHash [32]byte, _from common.Address, _to common.Address, _tokenAddress common.Address, _tokenId *big.Int, _requestedNonce uint64, _requestedBlockNumber uint64, _tokenURI string, _extraData []byte) (*types.Transaction, error) {
 13178  	return _BridgeTransferERC721.contract.Transact(opts, "handleERC721Transfer", _requestTxHash, _from, _to, _tokenAddress, _tokenId, _requestedNonce, _requestedBlockNumber, _tokenURI, _extraData)
 13179  }
 13180  
 13181  // HandleERC721Transfer is a paid mutator transaction binding the contract method 0xafb60223.
 13182  //
 13183  // Solidity: function handleERC721Transfer(bytes32 _requestTxHash, address _from, address _to, address _tokenAddress, uint256 _tokenId, uint64 _requestedNonce, uint64 _requestedBlockNumber, string _tokenURI, bytes _extraData) returns()
 13184  func (_BridgeTransferERC721 *BridgeTransferERC721Session) HandleERC721Transfer(_requestTxHash [32]byte, _from common.Address, _to common.Address, _tokenAddress common.Address, _tokenId *big.Int, _requestedNonce uint64, _requestedBlockNumber uint64, _tokenURI string, _extraData []byte) (*types.Transaction, error) {
 13185  	return _BridgeTransferERC721.Contract.HandleERC721Transfer(&_BridgeTransferERC721.TransactOpts, _requestTxHash, _from, _to, _tokenAddress, _tokenId, _requestedNonce, _requestedBlockNumber, _tokenURI, _extraData)
 13186  }
 13187  
 13188  // HandleERC721Transfer is a paid mutator transaction binding the contract method 0xafb60223.
 13189  //
 13190  // Solidity: function handleERC721Transfer(bytes32 _requestTxHash, address _from, address _to, address _tokenAddress, uint256 _tokenId, uint64 _requestedNonce, uint64 _requestedBlockNumber, string _tokenURI, bytes _extraData) returns()
 13191  func (_BridgeTransferERC721 *BridgeTransferERC721TransactorSession) HandleERC721Transfer(_requestTxHash [32]byte, _from common.Address, _to common.Address, _tokenAddress common.Address, _tokenId *big.Int, _requestedNonce uint64, _requestedBlockNumber uint64, _tokenURI string, _extraData []byte) (*types.Transaction, error) {
 13192  	return _BridgeTransferERC721.Contract.HandleERC721Transfer(&_BridgeTransferERC721.TransactOpts, _requestTxHash, _from, _to, _tokenAddress, _tokenId, _requestedNonce, _requestedBlockNumber, _tokenURI, _extraData)
 13193  }
 13194  
 13195  // LockToken is a paid mutator transaction binding the contract method 0x10693fcd.
 13196  //
 13197  // Solidity: function lockToken(address _token) returns()
 13198  func (_BridgeTransferERC721 *BridgeTransferERC721Transactor) LockToken(opts *bind.TransactOpts, _token common.Address) (*types.Transaction, error) {
 13199  	return _BridgeTransferERC721.contract.Transact(opts, "lockToken", _token)
 13200  }
 13201  
 13202  // LockToken is a paid mutator transaction binding the contract method 0x10693fcd.
 13203  //
 13204  // Solidity: function lockToken(address _token) returns()
 13205  func (_BridgeTransferERC721 *BridgeTransferERC721Session) LockToken(_token common.Address) (*types.Transaction, error) {
 13206  	return _BridgeTransferERC721.Contract.LockToken(&_BridgeTransferERC721.TransactOpts, _token)
 13207  }
 13208  
 13209  // LockToken is a paid mutator transaction binding the contract method 0x10693fcd.
 13210  //
 13211  // Solidity: function lockToken(address _token) returns()
 13212  func (_BridgeTransferERC721 *BridgeTransferERC721TransactorSession) LockToken(_token common.Address) (*types.Transaction, error) {
 13213  	return _BridgeTransferERC721.Contract.LockToken(&_BridgeTransferERC721.TransactOpts, _token)
 13214  }
 13215  
 13216  // OnERC721Received is a paid mutator transaction binding the contract method 0xcf0da290.
 13217  //
 13218  // Solidity: function onERC721Received(address _from, uint256 _tokenId, address _to, bytes _extraData) returns()
 13219  func (_BridgeTransferERC721 *BridgeTransferERC721Transactor) OnERC721Received(opts *bind.TransactOpts, _from common.Address, _tokenId *big.Int, _to common.Address, _extraData []byte) (*types.Transaction, error) {
 13220  	return _BridgeTransferERC721.contract.Transact(opts, "onERC721Received", _from, _tokenId, _to, _extraData)
 13221  }
 13222  
 13223  // OnERC721Received is a paid mutator transaction binding the contract method 0xcf0da290.
 13224  //
 13225  // Solidity: function onERC721Received(address _from, uint256 _tokenId, address _to, bytes _extraData) returns()
 13226  func (_BridgeTransferERC721 *BridgeTransferERC721Session) OnERC721Received(_from common.Address, _tokenId *big.Int, _to common.Address, _extraData []byte) (*types.Transaction, error) {
 13227  	return _BridgeTransferERC721.Contract.OnERC721Received(&_BridgeTransferERC721.TransactOpts, _from, _tokenId, _to, _extraData)
 13228  }
 13229  
 13230  // OnERC721Received is a paid mutator transaction binding the contract method 0xcf0da290.
 13231  //
 13232  // Solidity: function onERC721Received(address _from, uint256 _tokenId, address _to, bytes _extraData) returns()
 13233  func (_BridgeTransferERC721 *BridgeTransferERC721TransactorSession) OnERC721Received(_from common.Address, _tokenId *big.Int, _to common.Address, _extraData []byte) (*types.Transaction, error) {
 13234  	return _BridgeTransferERC721.Contract.OnERC721Received(&_BridgeTransferERC721.TransactOpts, _from, _tokenId, _to, _extraData)
 13235  }
 13236  
 13237  // RegisterOperator is a paid mutator transaction binding the contract method 0x3682a450.
 13238  //
 13239  // Solidity: function registerOperator(address _operator) returns()
 13240  func (_BridgeTransferERC721 *BridgeTransferERC721Transactor) RegisterOperator(opts *bind.TransactOpts, _operator common.Address) (*types.Transaction, error) {
 13241  	return _BridgeTransferERC721.contract.Transact(opts, "registerOperator", _operator)
 13242  }
 13243  
 13244  // RegisterOperator is a paid mutator transaction binding the contract method 0x3682a450.
 13245  //
 13246  // Solidity: function registerOperator(address _operator) returns()
 13247  func (_BridgeTransferERC721 *BridgeTransferERC721Session) RegisterOperator(_operator common.Address) (*types.Transaction, error) {
 13248  	return _BridgeTransferERC721.Contract.RegisterOperator(&_BridgeTransferERC721.TransactOpts, _operator)
 13249  }
 13250  
 13251  // RegisterOperator is a paid mutator transaction binding the contract method 0x3682a450.
 13252  //
 13253  // Solidity: function registerOperator(address _operator) returns()
 13254  func (_BridgeTransferERC721 *BridgeTransferERC721TransactorSession) RegisterOperator(_operator common.Address) (*types.Transaction, error) {
 13255  	return _BridgeTransferERC721.Contract.RegisterOperator(&_BridgeTransferERC721.TransactOpts, _operator)
 13256  }
 13257  
 13258  // RegisterToken is a paid mutator transaction binding the contract method 0x4739f7e5.
 13259  //
 13260  // Solidity: function registerToken(address _token, address _cToken) returns()
 13261  func (_BridgeTransferERC721 *BridgeTransferERC721Transactor) RegisterToken(opts *bind.TransactOpts, _token common.Address, _cToken common.Address) (*types.Transaction, error) {
 13262  	return _BridgeTransferERC721.contract.Transact(opts, "registerToken", _token, _cToken)
 13263  }
 13264  
 13265  // RegisterToken is a paid mutator transaction binding the contract method 0x4739f7e5.
 13266  //
 13267  // Solidity: function registerToken(address _token, address _cToken) returns()
 13268  func (_BridgeTransferERC721 *BridgeTransferERC721Session) RegisterToken(_token common.Address, _cToken common.Address) (*types.Transaction, error) {
 13269  	return _BridgeTransferERC721.Contract.RegisterToken(&_BridgeTransferERC721.TransactOpts, _token, _cToken)
 13270  }
 13271  
 13272  // RegisterToken is a paid mutator transaction binding the contract method 0x4739f7e5.
 13273  //
 13274  // Solidity: function registerToken(address _token, address _cToken) returns()
 13275  func (_BridgeTransferERC721 *BridgeTransferERC721TransactorSession) RegisterToken(_token common.Address, _cToken common.Address) (*types.Transaction, error) {
 13276  	return _BridgeTransferERC721.Contract.RegisterToken(&_BridgeTransferERC721.TransactOpts, _token, _cToken)
 13277  }
 13278  
 13279  // RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6.
 13280  //
 13281  // Solidity: function renounceOwnership() returns()
 13282  func (_BridgeTransferERC721 *BridgeTransferERC721Transactor) RenounceOwnership(opts *bind.TransactOpts) (*types.Transaction, error) {
 13283  	return _BridgeTransferERC721.contract.Transact(opts, "renounceOwnership")
 13284  }
 13285  
 13286  // RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6.
 13287  //
 13288  // Solidity: function renounceOwnership() returns()
 13289  func (_BridgeTransferERC721 *BridgeTransferERC721Session) RenounceOwnership() (*types.Transaction, error) {
 13290  	return _BridgeTransferERC721.Contract.RenounceOwnership(&_BridgeTransferERC721.TransactOpts)
 13291  }
 13292  
 13293  // RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6.
 13294  //
 13295  // Solidity: function renounceOwnership() returns()
 13296  func (_BridgeTransferERC721 *BridgeTransferERC721TransactorSession) RenounceOwnership() (*types.Transaction, error) {
 13297  	return _BridgeTransferERC721.Contract.RenounceOwnership(&_BridgeTransferERC721.TransactOpts)
 13298  }
 13299  
 13300  // RequestERC721Transfer is a paid mutator transaction binding the contract method 0x22604742.
 13301  //
 13302  // Solidity: function requestERC721Transfer(address _tokenAddress, address _to, uint256 _tokenId, bytes _extraData) returns()
 13303  func (_BridgeTransferERC721 *BridgeTransferERC721Transactor) RequestERC721Transfer(opts *bind.TransactOpts, _tokenAddress common.Address, _to common.Address, _tokenId *big.Int, _extraData []byte) (*types.Transaction, error) {
 13304  	return _BridgeTransferERC721.contract.Transact(opts, "requestERC721Transfer", _tokenAddress, _to, _tokenId, _extraData)
 13305  }
 13306  
 13307  // RequestERC721Transfer is a paid mutator transaction binding the contract method 0x22604742.
 13308  //
 13309  // Solidity: function requestERC721Transfer(address _tokenAddress, address _to, uint256 _tokenId, bytes _extraData) returns()
 13310  func (_BridgeTransferERC721 *BridgeTransferERC721Session) RequestERC721Transfer(_tokenAddress common.Address, _to common.Address, _tokenId *big.Int, _extraData []byte) (*types.Transaction, error) {
 13311  	return _BridgeTransferERC721.Contract.RequestERC721Transfer(&_BridgeTransferERC721.TransactOpts, _tokenAddress, _to, _tokenId, _extraData)
 13312  }
 13313  
 13314  // RequestERC721Transfer is a paid mutator transaction binding the contract method 0x22604742.
 13315  //
 13316  // Solidity: function requestERC721Transfer(address _tokenAddress, address _to, uint256 _tokenId, bytes _extraData) returns()
 13317  func (_BridgeTransferERC721 *BridgeTransferERC721TransactorSession) RequestERC721Transfer(_tokenAddress common.Address, _to common.Address, _tokenId *big.Int, _extraData []byte) (*types.Transaction, error) {
 13318  	return _BridgeTransferERC721.Contract.RequestERC721Transfer(&_BridgeTransferERC721.TransactOpts, _tokenAddress, _to, _tokenId, _extraData)
 13319  }
 13320  
 13321  // SetFeeReceiver is a paid mutator transaction binding the contract method 0xefdcd974.
 13322  //
 13323  // Solidity: function setFeeReceiver(address _feeReceiver) returns()
 13324  func (_BridgeTransferERC721 *BridgeTransferERC721Transactor) SetFeeReceiver(opts *bind.TransactOpts, _feeReceiver common.Address) (*types.Transaction, error) {
 13325  	return _BridgeTransferERC721.contract.Transact(opts, "setFeeReceiver", _feeReceiver)
 13326  }
 13327  
 13328  // SetFeeReceiver is a paid mutator transaction binding the contract method 0xefdcd974.
 13329  //
 13330  // Solidity: function setFeeReceiver(address _feeReceiver) returns()
 13331  func (_BridgeTransferERC721 *BridgeTransferERC721Session) SetFeeReceiver(_feeReceiver common.Address) (*types.Transaction, error) {
 13332  	return _BridgeTransferERC721.Contract.SetFeeReceiver(&_BridgeTransferERC721.TransactOpts, _feeReceiver)
 13333  }
 13334  
 13335  // SetFeeReceiver is a paid mutator transaction binding the contract method 0xefdcd974.
 13336  //
 13337  // Solidity: function setFeeReceiver(address _feeReceiver) returns()
 13338  func (_BridgeTransferERC721 *BridgeTransferERC721TransactorSession) SetFeeReceiver(_feeReceiver common.Address) (*types.Transaction, error) {
 13339  	return _BridgeTransferERC721.Contract.SetFeeReceiver(&_BridgeTransferERC721.TransactOpts, _feeReceiver)
 13340  }
 13341  
 13342  // SetOperatorThreshold is a paid mutator transaction binding the contract method 0xee2aec65.
 13343  //
 13344  // Solidity: function setOperatorThreshold(uint8 _voteType, uint8 _threshold) returns()
 13345  func (_BridgeTransferERC721 *BridgeTransferERC721Transactor) SetOperatorThreshold(opts *bind.TransactOpts, _voteType uint8, _threshold uint8) (*types.Transaction, error) {
 13346  	return _BridgeTransferERC721.contract.Transact(opts, "setOperatorThreshold", _voteType, _threshold)
 13347  }
 13348  
 13349  // SetOperatorThreshold is a paid mutator transaction binding the contract method 0xee2aec65.
 13350  //
 13351  // Solidity: function setOperatorThreshold(uint8 _voteType, uint8 _threshold) returns()
 13352  func (_BridgeTransferERC721 *BridgeTransferERC721Session) SetOperatorThreshold(_voteType uint8, _threshold uint8) (*types.Transaction, error) {
 13353  	return _BridgeTransferERC721.Contract.SetOperatorThreshold(&_BridgeTransferERC721.TransactOpts, _voteType, _threshold)
 13354  }
 13355  
 13356  // SetOperatorThreshold is a paid mutator transaction binding the contract method 0xee2aec65.
 13357  //
 13358  // Solidity: function setOperatorThreshold(uint8 _voteType, uint8 _threshold) returns()
 13359  func (_BridgeTransferERC721 *BridgeTransferERC721TransactorSession) SetOperatorThreshold(_voteType uint8, _threshold uint8) (*types.Transaction, error) {
 13360  	return _BridgeTransferERC721.Contract.SetOperatorThreshold(&_BridgeTransferERC721.TransactOpts, _voteType, _threshold)
 13361  }
 13362  
 13363  // Start is a paid mutator transaction binding the contract method 0xc877cf37.
 13364  //
 13365  // Solidity: function start(bool _status) returns()
 13366  func (_BridgeTransferERC721 *BridgeTransferERC721Transactor) Start(opts *bind.TransactOpts, _status bool) (*types.Transaction, error) {
 13367  	return _BridgeTransferERC721.contract.Transact(opts, "start", _status)
 13368  }
 13369  
 13370  // Start is a paid mutator transaction binding the contract method 0xc877cf37.
 13371  //
 13372  // Solidity: function start(bool _status) returns()
 13373  func (_BridgeTransferERC721 *BridgeTransferERC721Session) Start(_status bool) (*types.Transaction, error) {
 13374  	return _BridgeTransferERC721.Contract.Start(&_BridgeTransferERC721.TransactOpts, _status)
 13375  }
 13376  
 13377  // Start is a paid mutator transaction binding the contract method 0xc877cf37.
 13378  //
 13379  // Solidity: function start(bool _status) returns()
 13380  func (_BridgeTransferERC721 *BridgeTransferERC721TransactorSession) Start(_status bool) (*types.Transaction, error) {
 13381  	return _BridgeTransferERC721.Contract.Start(&_BridgeTransferERC721.TransactOpts, _status)
 13382  }
 13383  
 13384  // TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b.
 13385  //
 13386  // Solidity: function transferOwnership(address newOwner) returns()
 13387  func (_BridgeTransferERC721 *BridgeTransferERC721Transactor) TransferOwnership(opts *bind.TransactOpts, newOwner common.Address) (*types.Transaction, error) {
 13388  	return _BridgeTransferERC721.contract.Transact(opts, "transferOwnership", newOwner)
 13389  }
 13390  
 13391  // TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b.
 13392  //
 13393  // Solidity: function transferOwnership(address newOwner) returns()
 13394  func (_BridgeTransferERC721 *BridgeTransferERC721Session) TransferOwnership(newOwner common.Address) (*types.Transaction, error) {
 13395  	return _BridgeTransferERC721.Contract.TransferOwnership(&_BridgeTransferERC721.TransactOpts, newOwner)
 13396  }
 13397  
 13398  // TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b.
 13399  //
 13400  // Solidity: function transferOwnership(address newOwner) returns()
 13401  func (_BridgeTransferERC721 *BridgeTransferERC721TransactorSession) TransferOwnership(newOwner common.Address) (*types.Transaction, error) {
 13402  	return _BridgeTransferERC721.Contract.TransferOwnership(&_BridgeTransferERC721.TransactOpts, newOwner)
 13403  }
 13404  
 13405  // UnlockToken is a paid mutator transaction binding the contract method 0x9ef2017b.
 13406  //
 13407  // Solidity: function unlockToken(address _token) returns()
 13408  func (_BridgeTransferERC721 *BridgeTransferERC721Transactor) UnlockToken(opts *bind.TransactOpts, _token common.Address) (*types.Transaction, error) {
 13409  	return _BridgeTransferERC721.contract.Transact(opts, "unlockToken", _token)
 13410  }
 13411  
 13412  // UnlockToken is a paid mutator transaction binding the contract method 0x9ef2017b.
 13413  //
 13414  // Solidity: function unlockToken(address _token) returns()
 13415  func (_BridgeTransferERC721 *BridgeTransferERC721Session) UnlockToken(_token common.Address) (*types.Transaction, error) {
 13416  	return _BridgeTransferERC721.Contract.UnlockToken(&_BridgeTransferERC721.TransactOpts, _token)
 13417  }
 13418  
 13419  // UnlockToken is a paid mutator transaction binding the contract method 0x9ef2017b.
 13420  //
 13421  // Solidity: function unlockToken(address _token) returns()
 13422  func (_BridgeTransferERC721 *BridgeTransferERC721TransactorSession) UnlockToken(_token common.Address) (*types.Transaction, error) {
 13423  	return _BridgeTransferERC721.Contract.UnlockToken(&_BridgeTransferERC721.TransactOpts, _token)
 13424  }
 13425  
 13426  // BridgeTransferERC721ERC20FeeChangedIterator is returned from FilterERC20FeeChanged and is used to iterate over the raw logs and unpacked data for ERC20FeeChanged events raised by the BridgeTransferERC721 contract.
 13427  type BridgeTransferERC721ERC20FeeChangedIterator struct {
 13428  	Event *BridgeTransferERC721ERC20FeeChanged // Event containing the contract specifics and raw log
 13429  
 13430  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 13431  	event    string              // Event name to use for unpacking event data
 13432  
 13433  	logs chan types.Log      // Log channel receiving the found contract events
 13434  	sub  klaytn.Subscription // Subscription for errors, completion and termination
 13435  	done bool                // Whether the subscription completed delivering logs
 13436  	fail error               // Occurred error to stop iteration
 13437  }
 13438  
 13439  // Next advances the iterator to the subsequent event, returning whether there
 13440  // are any more events found. In case of a retrieval or parsing error, false is
 13441  // returned and Error() can be queried for the exact failure.
 13442  func (it *BridgeTransferERC721ERC20FeeChangedIterator) Next() bool {
 13443  	// If the iterator failed, stop iterating
 13444  	if it.fail != nil {
 13445  		return false
 13446  	}
 13447  	// If the iterator completed, deliver directly whatever's available
 13448  	if it.done {
 13449  		select {
 13450  		case log := <-it.logs:
 13451  			it.Event = new(BridgeTransferERC721ERC20FeeChanged)
 13452  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 13453  				it.fail = err
 13454  				return false
 13455  			}
 13456  			it.Event.Raw = log
 13457  			return true
 13458  
 13459  		default:
 13460  			return false
 13461  		}
 13462  	}
 13463  	// Iterator still in progress, wait for either a data or an error event
 13464  	select {
 13465  	case log := <-it.logs:
 13466  		it.Event = new(BridgeTransferERC721ERC20FeeChanged)
 13467  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 13468  			it.fail = err
 13469  			return false
 13470  		}
 13471  		it.Event.Raw = log
 13472  		return true
 13473  
 13474  	case err := <-it.sub.Err():
 13475  		it.done = true
 13476  		it.fail = err
 13477  		return it.Next()
 13478  	}
 13479  }
 13480  
 13481  // Error returns any retrieval or parsing error occurred during filtering.
 13482  func (it *BridgeTransferERC721ERC20FeeChangedIterator) Error() error {
 13483  	return it.fail
 13484  }
 13485  
 13486  // Close terminates the iteration process, releasing any pending underlying
 13487  // resources.
 13488  func (it *BridgeTransferERC721ERC20FeeChangedIterator) Close() error {
 13489  	it.sub.Unsubscribe()
 13490  	return nil
 13491  }
 13492  
 13493  // BridgeTransferERC721ERC20FeeChanged represents a ERC20FeeChanged event raised by the BridgeTransferERC721 contract.
 13494  type BridgeTransferERC721ERC20FeeChanged struct {
 13495  	Token common.Address
 13496  	Fee   *big.Int
 13497  	Raw   types.Log // Blockchain specific contextual infos
 13498  }
 13499  
 13500  // FilterERC20FeeChanged is a free log retrieval operation binding the contract event 0xdb5ad2e76ae20cfa4e7adbc7305d7538442164d85ead9937c98620a1aa4c255b.
 13501  //
 13502  // Solidity: event ERC20FeeChanged(address indexed token, uint256 indexed fee)
 13503  func (_BridgeTransferERC721 *BridgeTransferERC721Filterer) FilterERC20FeeChanged(opts *bind.FilterOpts, token []common.Address, fee []*big.Int) (*BridgeTransferERC721ERC20FeeChangedIterator, error) {
 13504  
 13505  	var tokenRule []interface{}
 13506  	for _, tokenItem := range token {
 13507  		tokenRule = append(tokenRule, tokenItem)
 13508  	}
 13509  	var feeRule []interface{}
 13510  	for _, feeItem := range fee {
 13511  		feeRule = append(feeRule, feeItem)
 13512  	}
 13513  
 13514  	logs, sub, err := _BridgeTransferERC721.contract.FilterLogs(opts, "ERC20FeeChanged", tokenRule, feeRule)
 13515  	if err != nil {
 13516  		return nil, err
 13517  	}
 13518  	return &BridgeTransferERC721ERC20FeeChangedIterator{contract: _BridgeTransferERC721.contract, event: "ERC20FeeChanged", logs: logs, sub: sub}, nil
 13519  }
 13520  
 13521  // WatchERC20FeeChanged is a free log subscription operation binding the contract event 0xdb5ad2e76ae20cfa4e7adbc7305d7538442164d85ead9937c98620a1aa4c255b.
 13522  //
 13523  // Solidity: event ERC20FeeChanged(address indexed token, uint256 indexed fee)
 13524  func (_BridgeTransferERC721 *BridgeTransferERC721Filterer) WatchERC20FeeChanged(opts *bind.WatchOpts, sink chan<- *BridgeTransferERC721ERC20FeeChanged, token []common.Address, fee []*big.Int) (event.Subscription, error) {
 13525  
 13526  	var tokenRule []interface{}
 13527  	for _, tokenItem := range token {
 13528  		tokenRule = append(tokenRule, tokenItem)
 13529  	}
 13530  	var feeRule []interface{}
 13531  	for _, feeItem := range fee {
 13532  		feeRule = append(feeRule, feeItem)
 13533  	}
 13534  
 13535  	logs, sub, err := _BridgeTransferERC721.contract.WatchLogs(opts, "ERC20FeeChanged", tokenRule, feeRule)
 13536  	if err != nil {
 13537  		return nil, err
 13538  	}
 13539  	return event.NewSubscription(func(quit <-chan struct{}) error {
 13540  		defer sub.Unsubscribe()
 13541  		for {
 13542  			select {
 13543  			case log := <-logs:
 13544  				// New log arrived, parse the event and forward to the user
 13545  				event := new(BridgeTransferERC721ERC20FeeChanged)
 13546  				if err := _BridgeTransferERC721.contract.UnpackLog(event, "ERC20FeeChanged", log); err != nil {
 13547  					return err
 13548  				}
 13549  				event.Raw = log
 13550  
 13551  				select {
 13552  				case sink <- event:
 13553  				case err := <-sub.Err():
 13554  					return err
 13555  				case <-quit:
 13556  					return nil
 13557  				}
 13558  			case err := <-sub.Err():
 13559  				return err
 13560  			case <-quit:
 13561  				return nil
 13562  			}
 13563  		}
 13564  	}), nil
 13565  }
 13566  
 13567  // ParseERC20FeeChanged is a log parse operation binding the contract event 0xdb5ad2e76ae20cfa4e7adbc7305d7538442164d85ead9937c98620a1aa4c255b.
 13568  //
 13569  // Solidity: event ERC20FeeChanged(address indexed token, uint256 indexed fee)
 13570  func (_BridgeTransferERC721 *BridgeTransferERC721Filterer) ParseERC20FeeChanged(log types.Log) (*BridgeTransferERC721ERC20FeeChanged, error) {
 13571  	event := new(BridgeTransferERC721ERC20FeeChanged)
 13572  	if err := _BridgeTransferERC721.contract.UnpackLog(event, "ERC20FeeChanged", log); err != nil {
 13573  		return nil, err
 13574  	}
 13575  	return event, nil
 13576  }
 13577  
 13578  // BridgeTransferERC721FeeReceiverChangedIterator is returned from FilterFeeReceiverChanged and is used to iterate over the raw logs and unpacked data for FeeReceiverChanged events raised by the BridgeTransferERC721 contract.
 13579  type BridgeTransferERC721FeeReceiverChangedIterator struct {
 13580  	Event *BridgeTransferERC721FeeReceiverChanged // Event containing the contract specifics and raw log
 13581  
 13582  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 13583  	event    string              // Event name to use for unpacking event data
 13584  
 13585  	logs chan types.Log      // Log channel receiving the found contract events
 13586  	sub  klaytn.Subscription // Subscription for errors, completion and termination
 13587  	done bool                // Whether the subscription completed delivering logs
 13588  	fail error               // Occurred error to stop iteration
 13589  }
 13590  
 13591  // Next advances the iterator to the subsequent event, returning whether there
 13592  // are any more events found. In case of a retrieval or parsing error, false is
 13593  // returned and Error() can be queried for the exact failure.
 13594  func (it *BridgeTransferERC721FeeReceiverChangedIterator) Next() bool {
 13595  	// If the iterator failed, stop iterating
 13596  	if it.fail != nil {
 13597  		return false
 13598  	}
 13599  	// If the iterator completed, deliver directly whatever's available
 13600  	if it.done {
 13601  		select {
 13602  		case log := <-it.logs:
 13603  			it.Event = new(BridgeTransferERC721FeeReceiverChanged)
 13604  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 13605  				it.fail = err
 13606  				return false
 13607  			}
 13608  			it.Event.Raw = log
 13609  			return true
 13610  
 13611  		default:
 13612  			return false
 13613  		}
 13614  	}
 13615  	// Iterator still in progress, wait for either a data or an error event
 13616  	select {
 13617  	case log := <-it.logs:
 13618  		it.Event = new(BridgeTransferERC721FeeReceiverChanged)
 13619  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 13620  			it.fail = err
 13621  			return false
 13622  		}
 13623  		it.Event.Raw = log
 13624  		return true
 13625  
 13626  	case err := <-it.sub.Err():
 13627  		it.done = true
 13628  		it.fail = err
 13629  		return it.Next()
 13630  	}
 13631  }
 13632  
 13633  // Error returns any retrieval or parsing error occurred during filtering.
 13634  func (it *BridgeTransferERC721FeeReceiverChangedIterator) Error() error {
 13635  	return it.fail
 13636  }
 13637  
 13638  // Close terminates the iteration process, releasing any pending underlying
 13639  // resources.
 13640  func (it *BridgeTransferERC721FeeReceiverChangedIterator) Close() error {
 13641  	it.sub.Unsubscribe()
 13642  	return nil
 13643  }
 13644  
 13645  // BridgeTransferERC721FeeReceiverChanged represents a FeeReceiverChanged event raised by the BridgeTransferERC721 contract.
 13646  type BridgeTransferERC721FeeReceiverChanged struct {
 13647  	FeeReceiver common.Address
 13648  	Raw         types.Log // Blockchain specific contextual infos
 13649  }
 13650  
 13651  // FilterFeeReceiverChanged is a free log retrieval operation binding the contract event 0x647672599d3468abcfa241a13c9e3d34383caadb5cc80fb67c3cdfcd5f786059.
 13652  //
 13653  // Solidity: event FeeReceiverChanged(address indexed feeReceiver)
 13654  func (_BridgeTransferERC721 *BridgeTransferERC721Filterer) FilterFeeReceiverChanged(opts *bind.FilterOpts, feeReceiver []common.Address) (*BridgeTransferERC721FeeReceiverChangedIterator, error) {
 13655  
 13656  	var feeReceiverRule []interface{}
 13657  	for _, feeReceiverItem := range feeReceiver {
 13658  		feeReceiverRule = append(feeReceiverRule, feeReceiverItem)
 13659  	}
 13660  
 13661  	logs, sub, err := _BridgeTransferERC721.contract.FilterLogs(opts, "FeeReceiverChanged", feeReceiverRule)
 13662  	if err != nil {
 13663  		return nil, err
 13664  	}
 13665  	return &BridgeTransferERC721FeeReceiverChangedIterator{contract: _BridgeTransferERC721.contract, event: "FeeReceiverChanged", logs: logs, sub: sub}, nil
 13666  }
 13667  
 13668  // WatchFeeReceiverChanged is a free log subscription operation binding the contract event 0x647672599d3468abcfa241a13c9e3d34383caadb5cc80fb67c3cdfcd5f786059.
 13669  //
 13670  // Solidity: event FeeReceiverChanged(address indexed feeReceiver)
 13671  func (_BridgeTransferERC721 *BridgeTransferERC721Filterer) WatchFeeReceiverChanged(opts *bind.WatchOpts, sink chan<- *BridgeTransferERC721FeeReceiverChanged, feeReceiver []common.Address) (event.Subscription, error) {
 13672  
 13673  	var feeReceiverRule []interface{}
 13674  	for _, feeReceiverItem := range feeReceiver {
 13675  		feeReceiverRule = append(feeReceiverRule, feeReceiverItem)
 13676  	}
 13677  
 13678  	logs, sub, err := _BridgeTransferERC721.contract.WatchLogs(opts, "FeeReceiverChanged", feeReceiverRule)
 13679  	if err != nil {
 13680  		return nil, err
 13681  	}
 13682  	return event.NewSubscription(func(quit <-chan struct{}) error {
 13683  		defer sub.Unsubscribe()
 13684  		for {
 13685  			select {
 13686  			case log := <-logs:
 13687  				// New log arrived, parse the event and forward to the user
 13688  				event := new(BridgeTransferERC721FeeReceiverChanged)
 13689  				if err := _BridgeTransferERC721.contract.UnpackLog(event, "FeeReceiverChanged", log); err != nil {
 13690  					return err
 13691  				}
 13692  				event.Raw = log
 13693  
 13694  				select {
 13695  				case sink <- event:
 13696  				case err := <-sub.Err():
 13697  					return err
 13698  				case <-quit:
 13699  					return nil
 13700  				}
 13701  			case err := <-sub.Err():
 13702  				return err
 13703  			case <-quit:
 13704  				return nil
 13705  			}
 13706  		}
 13707  	}), nil
 13708  }
 13709  
 13710  // ParseFeeReceiverChanged is a log parse operation binding the contract event 0x647672599d3468abcfa241a13c9e3d34383caadb5cc80fb67c3cdfcd5f786059.
 13711  //
 13712  // Solidity: event FeeReceiverChanged(address indexed feeReceiver)
 13713  func (_BridgeTransferERC721 *BridgeTransferERC721Filterer) ParseFeeReceiverChanged(log types.Log) (*BridgeTransferERC721FeeReceiverChanged, error) {
 13714  	event := new(BridgeTransferERC721FeeReceiverChanged)
 13715  	if err := _BridgeTransferERC721.contract.UnpackLog(event, "FeeReceiverChanged", log); err != nil {
 13716  		return nil, err
 13717  	}
 13718  	return event, nil
 13719  }
 13720  
 13721  // BridgeTransferERC721HandleValueTransferIterator is returned from FilterHandleValueTransfer and is used to iterate over the raw logs and unpacked data for HandleValueTransfer events raised by the BridgeTransferERC721 contract.
 13722  type BridgeTransferERC721HandleValueTransferIterator struct {
 13723  	Event *BridgeTransferERC721HandleValueTransfer // Event containing the contract specifics and raw log
 13724  
 13725  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 13726  	event    string              // Event name to use for unpacking event data
 13727  
 13728  	logs chan types.Log      // Log channel receiving the found contract events
 13729  	sub  klaytn.Subscription // Subscription for errors, completion and termination
 13730  	done bool                // Whether the subscription completed delivering logs
 13731  	fail error               // Occurred error to stop iteration
 13732  }
 13733  
 13734  // Next advances the iterator to the subsequent event, returning whether there
 13735  // are any more events found. In case of a retrieval or parsing error, false is
 13736  // returned and Error() can be queried for the exact failure.
 13737  func (it *BridgeTransferERC721HandleValueTransferIterator) Next() bool {
 13738  	// If the iterator failed, stop iterating
 13739  	if it.fail != nil {
 13740  		return false
 13741  	}
 13742  	// If the iterator completed, deliver directly whatever's available
 13743  	if it.done {
 13744  		select {
 13745  		case log := <-it.logs:
 13746  			it.Event = new(BridgeTransferERC721HandleValueTransfer)
 13747  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 13748  				it.fail = err
 13749  				return false
 13750  			}
 13751  			it.Event.Raw = log
 13752  			return true
 13753  
 13754  		default:
 13755  			return false
 13756  		}
 13757  	}
 13758  	// Iterator still in progress, wait for either a data or an error event
 13759  	select {
 13760  	case log := <-it.logs:
 13761  		it.Event = new(BridgeTransferERC721HandleValueTransfer)
 13762  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 13763  			it.fail = err
 13764  			return false
 13765  		}
 13766  		it.Event.Raw = log
 13767  		return true
 13768  
 13769  	case err := <-it.sub.Err():
 13770  		it.done = true
 13771  		it.fail = err
 13772  		return it.Next()
 13773  	}
 13774  }
 13775  
 13776  // Error returns any retrieval or parsing error occurred during filtering.
 13777  func (it *BridgeTransferERC721HandleValueTransferIterator) Error() error {
 13778  	return it.fail
 13779  }
 13780  
 13781  // Close terminates the iteration process, releasing any pending underlying
 13782  // resources.
 13783  func (it *BridgeTransferERC721HandleValueTransferIterator) Close() error {
 13784  	it.sub.Unsubscribe()
 13785  	return nil
 13786  }
 13787  
 13788  // BridgeTransferERC721HandleValueTransfer represents a HandleValueTransfer event raised by the BridgeTransferERC721 contract.
 13789  type BridgeTransferERC721HandleValueTransfer struct {
 13790  	RequestTxHash    [32]byte
 13791  	TokenType        uint8
 13792  	From             common.Address
 13793  	To               common.Address
 13794  	TokenAddress     common.Address
 13795  	ValueOrTokenId   *big.Int
 13796  	HandleNonce      uint64
 13797  	LowerHandleNonce uint64
 13798  	ExtraData        []byte
 13799  	Raw              types.Log // Blockchain specific contextual infos
 13800  }
 13801  
 13802  // FilterHandleValueTransfer is a free log retrieval operation binding the contract event 0x12b02f226d965a2881e0e8ffed6c421803a22d57ad91f9ef996fe0748ea10175.
 13803  //
 13804  // Solidity: event HandleValueTransfer(bytes32 requestTxHash, uint8 tokenType, address indexed from, address indexed to, address indexed tokenAddress, uint256 valueOrTokenId, uint64 handleNonce, uint64 lowerHandleNonce, bytes extraData)
 13805  func (_BridgeTransferERC721 *BridgeTransferERC721Filterer) FilterHandleValueTransfer(opts *bind.FilterOpts, from []common.Address, to []common.Address, tokenAddress []common.Address) (*BridgeTransferERC721HandleValueTransferIterator, error) {
 13806  
 13807  	var fromRule []interface{}
 13808  	for _, fromItem := range from {
 13809  		fromRule = append(fromRule, fromItem)
 13810  	}
 13811  	var toRule []interface{}
 13812  	for _, toItem := range to {
 13813  		toRule = append(toRule, toItem)
 13814  	}
 13815  	var tokenAddressRule []interface{}
 13816  	for _, tokenAddressItem := range tokenAddress {
 13817  		tokenAddressRule = append(tokenAddressRule, tokenAddressItem)
 13818  	}
 13819  
 13820  	logs, sub, err := _BridgeTransferERC721.contract.FilterLogs(opts, "HandleValueTransfer", fromRule, toRule, tokenAddressRule)
 13821  	if err != nil {
 13822  		return nil, err
 13823  	}
 13824  	return &BridgeTransferERC721HandleValueTransferIterator{contract: _BridgeTransferERC721.contract, event: "HandleValueTransfer", logs: logs, sub: sub}, nil
 13825  }
 13826  
 13827  // WatchHandleValueTransfer is a free log subscription operation binding the contract event 0x12b02f226d965a2881e0e8ffed6c421803a22d57ad91f9ef996fe0748ea10175.
 13828  //
 13829  // Solidity: event HandleValueTransfer(bytes32 requestTxHash, uint8 tokenType, address indexed from, address indexed to, address indexed tokenAddress, uint256 valueOrTokenId, uint64 handleNonce, uint64 lowerHandleNonce, bytes extraData)
 13830  func (_BridgeTransferERC721 *BridgeTransferERC721Filterer) WatchHandleValueTransfer(opts *bind.WatchOpts, sink chan<- *BridgeTransferERC721HandleValueTransfer, from []common.Address, to []common.Address, tokenAddress []common.Address) (event.Subscription, error) {
 13831  
 13832  	var fromRule []interface{}
 13833  	for _, fromItem := range from {
 13834  		fromRule = append(fromRule, fromItem)
 13835  	}
 13836  	var toRule []interface{}
 13837  	for _, toItem := range to {
 13838  		toRule = append(toRule, toItem)
 13839  	}
 13840  	var tokenAddressRule []interface{}
 13841  	for _, tokenAddressItem := range tokenAddress {
 13842  		tokenAddressRule = append(tokenAddressRule, tokenAddressItem)
 13843  	}
 13844  
 13845  	logs, sub, err := _BridgeTransferERC721.contract.WatchLogs(opts, "HandleValueTransfer", fromRule, toRule, tokenAddressRule)
 13846  	if err != nil {
 13847  		return nil, err
 13848  	}
 13849  	return event.NewSubscription(func(quit <-chan struct{}) error {
 13850  		defer sub.Unsubscribe()
 13851  		for {
 13852  			select {
 13853  			case log := <-logs:
 13854  				// New log arrived, parse the event and forward to the user
 13855  				event := new(BridgeTransferERC721HandleValueTransfer)
 13856  				if err := _BridgeTransferERC721.contract.UnpackLog(event, "HandleValueTransfer", log); err != nil {
 13857  					return err
 13858  				}
 13859  				event.Raw = log
 13860  
 13861  				select {
 13862  				case sink <- event:
 13863  				case err := <-sub.Err():
 13864  					return err
 13865  				case <-quit:
 13866  					return nil
 13867  				}
 13868  			case err := <-sub.Err():
 13869  				return err
 13870  			case <-quit:
 13871  				return nil
 13872  			}
 13873  		}
 13874  	}), nil
 13875  }
 13876  
 13877  // ParseHandleValueTransfer is a log parse operation binding the contract event 0x12b02f226d965a2881e0e8ffed6c421803a22d57ad91f9ef996fe0748ea10175.
 13878  //
 13879  // Solidity: event HandleValueTransfer(bytes32 requestTxHash, uint8 tokenType, address indexed from, address indexed to, address indexed tokenAddress, uint256 valueOrTokenId, uint64 handleNonce, uint64 lowerHandleNonce, bytes extraData)
 13880  func (_BridgeTransferERC721 *BridgeTransferERC721Filterer) ParseHandleValueTransfer(log types.Log) (*BridgeTransferERC721HandleValueTransfer, error) {
 13881  	event := new(BridgeTransferERC721HandleValueTransfer)
 13882  	if err := _BridgeTransferERC721.contract.UnpackLog(event, "HandleValueTransfer", log); err != nil {
 13883  		return nil, err
 13884  	}
 13885  	return event, nil
 13886  }
 13887  
 13888  // BridgeTransferERC721KLAYFeeChangedIterator is returned from FilterKLAYFeeChanged and is used to iterate over the raw logs and unpacked data for KLAYFeeChanged events raised by the BridgeTransferERC721 contract.
 13889  type BridgeTransferERC721KLAYFeeChangedIterator struct {
 13890  	Event *BridgeTransferERC721KLAYFeeChanged // Event containing the contract specifics and raw log
 13891  
 13892  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 13893  	event    string              // Event name to use for unpacking event data
 13894  
 13895  	logs chan types.Log      // Log channel receiving the found contract events
 13896  	sub  klaytn.Subscription // Subscription for errors, completion and termination
 13897  	done bool                // Whether the subscription completed delivering logs
 13898  	fail error               // Occurred error to stop iteration
 13899  }
 13900  
 13901  // Next advances the iterator to the subsequent event, returning whether there
 13902  // are any more events found. In case of a retrieval or parsing error, false is
 13903  // returned and Error() can be queried for the exact failure.
 13904  func (it *BridgeTransferERC721KLAYFeeChangedIterator) Next() bool {
 13905  	// If the iterator failed, stop iterating
 13906  	if it.fail != nil {
 13907  		return false
 13908  	}
 13909  	// If the iterator completed, deliver directly whatever's available
 13910  	if it.done {
 13911  		select {
 13912  		case log := <-it.logs:
 13913  			it.Event = new(BridgeTransferERC721KLAYFeeChanged)
 13914  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 13915  				it.fail = err
 13916  				return false
 13917  			}
 13918  			it.Event.Raw = log
 13919  			return true
 13920  
 13921  		default:
 13922  			return false
 13923  		}
 13924  	}
 13925  	// Iterator still in progress, wait for either a data or an error event
 13926  	select {
 13927  	case log := <-it.logs:
 13928  		it.Event = new(BridgeTransferERC721KLAYFeeChanged)
 13929  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 13930  			it.fail = err
 13931  			return false
 13932  		}
 13933  		it.Event.Raw = log
 13934  		return true
 13935  
 13936  	case err := <-it.sub.Err():
 13937  		it.done = true
 13938  		it.fail = err
 13939  		return it.Next()
 13940  	}
 13941  }
 13942  
 13943  // Error returns any retrieval or parsing error occurred during filtering.
 13944  func (it *BridgeTransferERC721KLAYFeeChangedIterator) Error() error {
 13945  	return it.fail
 13946  }
 13947  
 13948  // Close terminates the iteration process, releasing any pending underlying
 13949  // resources.
 13950  func (it *BridgeTransferERC721KLAYFeeChangedIterator) Close() error {
 13951  	it.sub.Unsubscribe()
 13952  	return nil
 13953  }
 13954  
 13955  // BridgeTransferERC721KLAYFeeChanged represents a KLAYFeeChanged event raised by the BridgeTransferERC721 contract.
 13956  type BridgeTransferERC721KLAYFeeChanged struct {
 13957  	Fee *big.Int
 13958  	Raw types.Log // Blockchain specific contextual infos
 13959  }
 13960  
 13961  // FilterKLAYFeeChanged is a free log retrieval operation binding the contract event 0xa7a33d0996347e1aa55ca2206015b61b9534bdd881d59d59aa680e25eefac365.
 13962  //
 13963  // Solidity: event KLAYFeeChanged(uint256 indexed fee)
 13964  func (_BridgeTransferERC721 *BridgeTransferERC721Filterer) FilterKLAYFeeChanged(opts *bind.FilterOpts, fee []*big.Int) (*BridgeTransferERC721KLAYFeeChangedIterator, error) {
 13965  
 13966  	var feeRule []interface{}
 13967  	for _, feeItem := range fee {
 13968  		feeRule = append(feeRule, feeItem)
 13969  	}
 13970  
 13971  	logs, sub, err := _BridgeTransferERC721.contract.FilterLogs(opts, "KLAYFeeChanged", feeRule)
 13972  	if err != nil {
 13973  		return nil, err
 13974  	}
 13975  	return &BridgeTransferERC721KLAYFeeChangedIterator{contract: _BridgeTransferERC721.contract, event: "KLAYFeeChanged", logs: logs, sub: sub}, nil
 13976  }
 13977  
 13978  // WatchKLAYFeeChanged is a free log subscription operation binding the contract event 0xa7a33d0996347e1aa55ca2206015b61b9534bdd881d59d59aa680e25eefac365.
 13979  //
 13980  // Solidity: event KLAYFeeChanged(uint256 indexed fee)
 13981  func (_BridgeTransferERC721 *BridgeTransferERC721Filterer) WatchKLAYFeeChanged(opts *bind.WatchOpts, sink chan<- *BridgeTransferERC721KLAYFeeChanged, fee []*big.Int) (event.Subscription, error) {
 13982  
 13983  	var feeRule []interface{}
 13984  	for _, feeItem := range fee {
 13985  		feeRule = append(feeRule, feeItem)
 13986  	}
 13987  
 13988  	logs, sub, err := _BridgeTransferERC721.contract.WatchLogs(opts, "KLAYFeeChanged", feeRule)
 13989  	if err != nil {
 13990  		return nil, err
 13991  	}
 13992  	return event.NewSubscription(func(quit <-chan struct{}) error {
 13993  		defer sub.Unsubscribe()
 13994  		for {
 13995  			select {
 13996  			case log := <-logs:
 13997  				// New log arrived, parse the event and forward to the user
 13998  				event := new(BridgeTransferERC721KLAYFeeChanged)
 13999  				if err := _BridgeTransferERC721.contract.UnpackLog(event, "KLAYFeeChanged", log); err != nil {
 14000  					return err
 14001  				}
 14002  				event.Raw = log
 14003  
 14004  				select {
 14005  				case sink <- event:
 14006  				case err := <-sub.Err():
 14007  					return err
 14008  				case <-quit:
 14009  					return nil
 14010  				}
 14011  			case err := <-sub.Err():
 14012  				return err
 14013  			case <-quit:
 14014  				return nil
 14015  			}
 14016  		}
 14017  	}), nil
 14018  }
 14019  
 14020  // ParseKLAYFeeChanged is a log parse operation binding the contract event 0xa7a33d0996347e1aa55ca2206015b61b9534bdd881d59d59aa680e25eefac365.
 14021  //
 14022  // Solidity: event KLAYFeeChanged(uint256 indexed fee)
 14023  func (_BridgeTransferERC721 *BridgeTransferERC721Filterer) ParseKLAYFeeChanged(log types.Log) (*BridgeTransferERC721KLAYFeeChanged, error) {
 14024  	event := new(BridgeTransferERC721KLAYFeeChanged)
 14025  	if err := _BridgeTransferERC721.contract.UnpackLog(event, "KLAYFeeChanged", log); err != nil {
 14026  		return nil, err
 14027  	}
 14028  	return event, nil
 14029  }
 14030  
 14031  // BridgeTransferERC721OwnershipTransferredIterator is returned from FilterOwnershipTransferred and is used to iterate over the raw logs and unpacked data for OwnershipTransferred events raised by the BridgeTransferERC721 contract.
 14032  type BridgeTransferERC721OwnershipTransferredIterator struct {
 14033  	Event *BridgeTransferERC721OwnershipTransferred // Event containing the contract specifics and raw log
 14034  
 14035  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 14036  	event    string              // Event name to use for unpacking event data
 14037  
 14038  	logs chan types.Log      // Log channel receiving the found contract events
 14039  	sub  klaytn.Subscription // Subscription for errors, completion and termination
 14040  	done bool                // Whether the subscription completed delivering logs
 14041  	fail error               // Occurred error to stop iteration
 14042  }
 14043  
 14044  // Next advances the iterator to the subsequent event, returning whether there
 14045  // are any more events found. In case of a retrieval or parsing error, false is
 14046  // returned and Error() can be queried for the exact failure.
 14047  func (it *BridgeTransferERC721OwnershipTransferredIterator) Next() bool {
 14048  	// If the iterator failed, stop iterating
 14049  	if it.fail != nil {
 14050  		return false
 14051  	}
 14052  	// If the iterator completed, deliver directly whatever's available
 14053  	if it.done {
 14054  		select {
 14055  		case log := <-it.logs:
 14056  			it.Event = new(BridgeTransferERC721OwnershipTransferred)
 14057  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 14058  				it.fail = err
 14059  				return false
 14060  			}
 14061  			it.Event.Raw = log
 14062  			return true
 14063  
 14064  		default:
 14065  			return false
 14066  		}
 14067  	}
 14068  	// Iterator still in progress, wait for either a data or an error event
 14069  	select {
 14070  	case log := <-it.logs:
 14071  		it.Event = new(BridgeTransferERC721OwnershipTransferred)
 14072  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 14073  			it.fail = err
 14074  			return false
 14075  		}
 14076  		it.Event.Raw = log
 14077  		return true
 14078  
 14079  	case err := <-it.sub.Err():
 14080  		it.done = true
 14081  		it.fail = err
 14082  		return it.Next()
 14083  	}
 14084  }
 14085  
 14086  // Error returns any retrieval or parsing error occurred during filtering.
 14087  func (it *BridgeTransferERC721OwnershipTransferredIterator) Error() error {
 14088  	return it.fail
 14089  }
 14090  
 14091  // Close terminates the iteration process, releasing any pending underlying
 14092  // resources.
 14093  func (it *BridgeTransferERC721OwnershipTransferredIterator) Close() error {
 14094  	it.sub.Unsubscribe()
 14095  	return nil
 14096  }
 14097  
 14098  // BridgeTransferERC721OwnershipTransferred represents a OwnershipTransferred event raised by the BridgeTransferERC721 contract.
 14099  type BridgeTransferERC721OwnershipTransferred struct {
 14100  	PreviousOwner common.Address
 14101  	NewOwner      common.Address
 14102  	Raw           types.Log // Blockchain specific contextual infos
 14103  }
 14104  
 14105  // FilterOwnershipTransferred is a free log retrieval operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0.
 14106  //
 14107  // Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
 14108  func (_BridgeTransferERC721 *BridgeTransferERC721Filterer) FilterOwnershipTransferred(opts *bind.FilterOpts, previousOwner []common.Address, newOwner []common.Address) (*BridgeTransferERC721OwnershipTransferredIterator, error) {
 14109  
 14110  	var previousOwnerRule []interface{}
 14111  	for _, previousOwnerItem := range previousOwner {
 14112  		previousOwnerRule = append(previousOwnerRule, previousOwnerItem)
 14113  	}
 14114  	var newOwnerRule []interface{}
 14115  	for _, newOwnerItem := range newOwner {
 14116  		newOwnerRule = append(newOwnerRule, newOwnerItem)
 14117  	}
 14118  
 14119  	logs, sub, err := _BridgeTransferERC721.contract.FilterLogs(opts, "OwnershipTransferred", previousOwnerRule, newOwnerRule)
 14120  	if err != nil {
 14121  		return nil, err
 14122  	}
 14123  	return &BridgeTransferERC721OwnershipTransferredIterator{contract: _BridgeTransferERC721.contract, event: "OwnershipTransferred", logs: logs, sub: sub}, nil
 14124  }
 14125  
 14126  // WatchOwnershipTransferred is a free log subscription operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0.
 14127  //
 14128  // Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
 14129  func (_BridgeTransferERC721 *BridgeTransferERC721Filterer) WatchOwnershipTransferred(opts *bind.WatchOpts, sink chan<- *BridgeTransferERC721OwnershipTransferred, previousOwner []common.Address, newOwner []common.Address) (event.Subscription, error) {
 14130  
 14131  	var previousOwnerRule []interface{}
 14132  	for _, previousOwnerItem := range previousOwner {
 14133  		previousOwnerRule = append(previousOwnerRule, previousOwnerItem)
 14134  	}
 14135  	var newOwnerRule []interface{}
 14136  	for _, newOwnerItem := range newOwner {
 14137  		newOwnerRule = append(newOwnerRule, newOwnerItem)
 14138  	}
 14139  
 14140  	logs, sub, err := _BridgeTransferERC721.contract.WatchLogs(opts, "OwnershipTransferred", previousOwnerRule, newOwnerRule)
 14141  	if err != nil {
 14142  		return nil, err
 14143  	}
 14144  	return event.NewSubscription(func(quit <-chan struct{}) error {
 14145  		defer sub.Unsubscribe()
 14146  		for {
 14147  			select {
 14148  			case log := <-logs:
 14149  				// New log arrived, parse the event and forward to the user
 14150  				event := new(BridgeTransferERC721OwnershipTransferred)
 14151  				if err := _BridgeTransferERC721.contract.UnpackLog(event, "OwnershipTransferred", log); err != nil {
 14152  					return err
 14153  				}
 14154  				event.Raw = log
 14155  
 14156  				select {
 14157  				case sink <- event:
 14158  				case err := <-sub.Err():
 14159  					return err
 14160  				case <-quit:
 14161  					return nil
 14162  				}
 14163  			case err := <-sub.Err():
 14164  				return err
 14165  			case <-quit:
 14166  				return nil
 14167  			}
 14168  		}
 14169  	}), nil
 14170  }
 14171  
 14172  // ParseOwnershipTransferred is a log parse operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0.
 14173  //
 14174  // Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
 14175  func (_BridgeTransferERC721 *BridgeTransferERC721Filterer) ParseOwnershipTransferred(log types.Log) (*BridgeTransferERC721OwnershipTransferred, error) {
 14176  	event := new(BridgeTransferERC721OwnershipTransferred)
 14177  	if err := _BridgeTransferERC721.contract.UnpackLog(event, "OwnershipTransferred", log); err != nil {
 14178  		return nil, err
 14179  	}
 14180  	return event, nil
 14181  }
 14182  
 14183  // BridgeTransferERC721RequestValueTransferIterator is returned from FilterRequestValueTransfer and is used to iterate over the raw logs and unpacked data for RequestValueTransfer events raised by the BridgeTransferERC721 contract.
 14184  type BridgeTransferERC721RequestValueTransferIterator struct {
 14185  	Event *BridgeTransferERC721RequestValueTransfer // Event containing the contract specifics and raw log
 14186  
 14187  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 14188  	event    string              // Event name to use for unpacking event data
 14189  
 14190  	logs chan types.Log      // Log channel receiving the found contract events
 14191  	sub  klaytn.Subscription // Subscription for errors, completion and termination
 14192  	done bool                // Whether the subscription completed delivering logs
 14193  	fail error               // Occurred error to stop iteration
 14194  }
 14195  
 14196  // Next advances the iterator to the subsequent event, returning whether there
 14197  // are any more events found. In case of a retrieval or parsing error, false is
 14198  // returned and Error() can be queried for the exact failure.
 14199  func (it *BridgeTransferERC721RequestValueTransferIterator) Next() bool {
 14200  	// If the iterator failed, stop iterating
 14201  	if it.fail != nil {
 14202  		return false
 14203  	}
 14204  	// If the iterator completed, deliver directly whatever's available
 14205  	if it.done {
 14206  		select {
 14207  		case log := <-it.logs:
 14208  			it.Event = new(BridgeTransferERC721RequestValueTransfer)
 14209  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 14210  				it.fail = err
 14211  				return false
 14212  			}
 14213  			it.Event.Raw = log
 14214  			return true
 14215  
 14216  		default:
 14217  			return false
 14218  		}
 14219  	}
 14220  	// Iterator still in progress, wait for either a data or an error event
 14221  	select {
 14222  	case log := <-it.logs:
 14223  		it.Event = new(BridgeTransferERC721RequestValueTransfer)
 14224  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 14225  			it.fail = err
 14226  			return false
 14227  		}
 14228  		it.Event.Raw = log
 14229  		return true
 14230  
 14231  	case err := <-it.sub.Err():
 14232  		it.done = true
 14233  		it.fail = err
 14234  		return it.Next()
 14235  	}
 14236  }
 14237  
 14238  // Error returns any retrieval or parsing error occurred during filtering.
 14239  func (it *BridgeTransferERC721RequestValueTransferIterator) Error() error {
 14240  	return it.fail
 14241  }
 14242  
 14243  // Close terminates the iteration process, releasing any pending underlying
 14244  // resources.
 14245  func (it *BridgeTransferERC721RequestValueTransferIterator) Close() error {
 14246  	it.sub.Unsubscribe()
 14247  	return nil
 14248  }
 14249  
 14250  // BridgeTransferERC721RequestValueTransfer represents a RequestValueTransfer event raised by the BridgeTransferERC721 contract.
 14251  type BridgeTransferERC721RequestValueTransfer struct {
 14252  	TokenType      uint8
 14253  	From           common.Address
 14254  	To             common.Address
 14255  	TokenAddress   common.Address
 14256  	ValueOrTokenId *big.Int
 14257  	RequestNonce   uint64
 14258  	Fee            *big.Int
 14259  	ExtraData      []byte
 14260  	Raw            types.Log // Blockchain specific contextual infos
 14261  }
 14262  
 14263  // FilterRequestValueTransfer is a free log retrieval operation binding the contract event 0xeff76c36e53fa5ff52f27acc8a34d5047a8246abb07b77b12f1309f71e337f09.
 14264  //
 14265  // Solidity: event RequestValueTransfer(uint8 tokenType, address indexed from, address indexed to, address indexed tokenAddress, uint256 valueOrTokenId, uint64 requestNonce, uint256 fee, bytes extraData)
 14266  func (_BridgeTransferERC721 *BridgeTransferERC721Filterer) FilterRequestValueTransfer(opts *bind.FilterOpts, from []common.Address, to []common.Address, tokenAddress []common.Address) (*BridgeTransferERC721RequestValueTransferIterator, error) {
 14267  
 14268  	var fromRule []interface{}
 14269  	for _, fromItem := range from {
 14270  		fromRule = append(fromRule, fromItem)
 14271  	}
 14272  	var toRule []interface{}
 14273  	for _, toItem := range to {
 14274  		toRule = append(toRule, toItem)
 14275  	}
 14276  	var tokenAddressRule []interface{}
 14277  	for _, tokenAddressItem := range tokenAddress {
 14278  		tokenAddressRule = append(tokenAddressRule, tokenAddressItem)
 14279  	}
 14280  
 14281  	logs, sub, err := _BridgeTransferERC721.contract.FilterLogs(opts, "RequestValueTransfer", fromRule, toRule, tokenAddressRule)
 14282  	if err != nil {
 14283  		return nil, err
 14284  	}
 14285  	return &BridgeTransferERC721RequestValueTransferIterator{contract: _BridgeTransferERC721.contract, event: "RequestValueTransfer", logs: logs, sub: sub}, nil
 14286  }
 14287  
 14288  // WatchRequestValueTransfer is a free log subscription operation binding the contract event 0xeff76c36e53fa5ff52f27acc8a34d5047a8246abb07b77b12f1309f71e337f09.
 14289  //
 14290  // Solidity: event RequestValueTransfer(uint8 tokenType, address indexed from, address indexed to, address indexed tokenAddress, uint256 valueOrTokenId, uint64 requestNonce, uint256 fee, bytes extraData)
 14291  func (_BridgeTransferERC721 *BridgeTransferERC721Filterer) WatchRequestValueTransfer(opts *bind.WatchOpts, sink chan<- *BridgeTransferERC721RequestValueTransfer, from []common.Address, to []common.Address, tokenAddress []common.Address) (event.Subscription, error) {
 14292  
 14293  	var fromRule []interface{}
 14294  	for _, fromItem := range from {
 14295  		fromRule = append(fromRule, fromItem)
 14296  	}
 14297  	var toRule []interface{}
 14298  	for _, toItem := range to {
 14299  		toRule = append(toRule, toItem)
 14300  	}
 14301  	var tokenAddressRule []interface{}
 14302  	for _, tokenAddressItem := range tokenAddress {
 14303  		tokenAddressRule = append(tokenAddressRule, tokenAddressItem)
 14304  	}
 14305  
 14306  	logs, sub, err := _BridgeTransferERC721.contract.WatchLogs(opts, "RequestValueTransfer", fromRule, toRule, tokenAddressRule)
 14307  	if err != nil {
 14308  		return nil, err
 14309  	}
 14310  	return event.NewSubscription(func(quit <-chan struct{}) error {
 14311  		defer sub.Unsubscribe()
 14312  		for {
 14313  			select {
 14314  			case log := <-logs:
 14315  				// New log arrived, parse the event and forward to the user
 14316  				event := new(BridgeTransferERC721RequestValueTransfer)
 14317  				if err := _BridgeTransferERC721.contract.UnpackLog(event, "RequestValueTransfer", log); err != nil {
 14318  					return err
 14319  				}
 14320  				event.Raw = log
 14321  
 14322  				select {
 14323  				case sink <- event:
 14324  				case err := <-sub.Err():
 14325  					return err
 14326  				case <-quit:
 14327  					return nil
 14328  				}
 14329  			case err := <-sub.Err():
 14330  				return err
 14331  			case <-quit:
 14332  				return nil
 14333  			}
 14334  		}
 14335  	}), nil
 14336  }
 14337  
 14338  // ParseRequestValueTransfer is a log parse operation binding the contract event 0xeff76c36e53fa5ff52f27acc8a34d5047a8246abb07b77b12f1309f71e337f09.
 14339  //
 14340  // Solidity: event RequestValueTransfer(uint8 tokenType, address indexed from, address indexed to, address indexed tokenAddress, uint256 valueOrTokenId, uint64 requestNonce, uint256 fee, bytes extraData)
 14341  func (_BridgeTransferERC721 *BridgeTransferERC721Filterer) ParseRequestValueTransfer(log types.Log) (*BridgeTransferERC721RequestValueTransfer, error) {
 14342  	event := new(BridgeTransferERC721RequestValueTransfer)
 14343  	if err := _BridgeTransferERC721.contract.UnpackLog(event, "RequestValueTransfer", log); err != nil {
 14344  		return nil, err
 14345  	}
 14346  	return event, nil
 14347  }
 14348  
 14349  // BridgeTransferERC721RequestValueTransferEncodedIterator is returned from FilterRequestValueTransferEncoded and is used to iterate over the raw logs and unpacked data for RequestValueTransferEncoded events raised by the BridgeTransferERC721 contract.
 14350  type BridgeTransferERC721RequestValueTransferEncodedIterator struct {
 14351  	Event *BridgeTransferERC721RequestValueTransferEncoded // Event containing the contract specifics and raw log
 14352  
 14353  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 14354  	event    string              // Event name to use for unpacking event data
 14355  
 14356  	logs chan types.Log      // Log channel receiving the found contract events
 14357  	sub  klaytn.Subscription // Subscription for errors, completion and termination
 14358  	done bool                // Whether the subscription completed delivering logs
 14359  	fail error               // Occurred error to stop iteration
 14360  }
 14361  
 14362  // Next advances the iterator to the subsequent event, returning whether there
 14363  // are any more events found. In case of a retrieval or parsing error, false is
 14364  // returned and Error() can be queried for the exact failure.
 14365  func (it *BridgeTransferERC721RequestValueTransferEncodedIterator) Next() bool {
 14366  	// If the iterator failed, stop iterating
 14367  	if it.fail != nil {
 14368  		return false
 14369  	}
 14370  	// If the iterator completed, deliver directly whatever's available
 14371  	if it.done {
 14372  		select {
 14373  		case log := <-it.logs:
 14374  			it.Event = new(BridgeTransferERC721RequestValueTransferEncoded)
 14375  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 14376  				it.fail = err
 14377  				return false
 14378  			}
 14379  			it.Event.Raw = log
 14380  			return true
 14381  
 14382  		default:
 14383  			return false
 14384  		}
 14385  	}
 14386  	// Iterator still in progress, wait for either a data or an error event
 14387  	select {
 14388  	case log := <-it.logs:
 14389  		it.Event = new(BridgeTransferERC721RequestValueTransferEncoded)
 14390  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 14391  			it.fail = err
 14392  			return false
 14393  		}
 14394  		it.Event.Raw = log
 14395  		return true
 14396  
 14397  	case err := <-it.sub.Err():
 14398  		it.done = true
 14399  		it.fail = err
 14400  		return it.Next()
 14401  	}
 14402  }
 14403  
 14404  // Error returns any retrieval or parsing error occurred during filtering.
 14405  func (it *BridgeTransferERC721RequestValueTransferEncodedIterator) Error() error {
 14406  	return it.fail
 14407  }
 14408  
 14409  // Close terminates the iteration process, releasing any pending underlying
 14410  // resources.
 14411  func (it *BridgeTransferERC721RequestValueTransferEncodedIterator) Close() error {
 14412  	it.sub.Unsubscribe()
 14413  	return nil
 14414  }
 14415  
 14416  // BridgeTransferERC721RequestValueTransferEncoded represents a RequestValueTransferEncoded event raised by the BridgeTransferERC721 contract.
 14417  type BridgeTransferERC721RequestValueTransferEncoded struct {
 14418  	TokenType      uint8
 14419  	From           common.Address
 14420  	To             common.Address
 14421  	TokenAddress   common.Address
 14422  	ValueOrTokenId *big.Int
 14423  	RequestNonce   uint64
 14424  	Fee            *big.Int
 14425  	ExtraData      []byte
 14426  	EncodingVer    uint8
 14427  	EncodedData    []byte
 14428  	Raw            types.Log // Blockchain specific contextual infos
 14429  }
 14430  
 14431  // FilterRequestValueTransferEncoded is a free log retrieval operation binding the contract event 0x17d76053ca34a4dd8c402fe6498deb797fac89bf7ed02f3f5161aa9368cc8c1f.
 14432  //
 14433  // Solidity: event RequestValueTransferEncoded(uint8 tokenType, address indexed from, address indexed to, address indexed tokenAddress, uint256 valueOrTokenId, uint64 requestNonce, uint256 fee, bytes extraData, uint8 encodingVer, bytes encodedData)
 14434  func (_BridgeTransferERC721 *BridgeTransferERC721Filterer) FilterRequestValueTransferEncoded(opts *bind.FilterOpts, from []common.Address, to []common.Address, tokenAddress []common.Address) (*BridgeTransferERC721RequestValueTransferEncodedIterator, error) {
 14435  
 14436  	var fromRule []interface{}
 14437  	for _, fromItem := range from {
 14438  		fromRule = append(fromRule, fromItem)
 14439  	}
 14440  	var toRule []interface{}
 14441  	for _, toItem := range to {
 14442  		toRule = append(toRule, toItem)
 14443  	}
 14444  	var tokenAddressRule []interface{}
 14445  	for _, tokenAddressItem := range tokenAddress {
 14446  		tokenAddressRule = append(tokenAddressRule, tokenAddressItem)
 14447  	}
 14448  
 14449  	logs, sub, err := _BridgeTransferERC721.contract.FilterLogs(opts, "RequestValueTransferEncoded", fromRule, toRule, tokenAddressRule)
 14450  	if err != nil {
 14451  		return nil, err
 14452  	}
 14453  	return &BridgeTransferERC721RequestValueTransferEncodedIterator{contract: _BridgeTransferERC721.contract, event: "RequestValueTransferEncoded", logs: logs, sub: sub}, nil
 14454  }
 14455  
 14456  // WatchRequestValueTransferEncoded is a free log subscription operation binding the contract event 0x17d76053ca34a4dd8c402fe6498deb797fac89bf7ed02f3f5161aa9368cc8c1f.
 14457  //
 14458  // Solidity: event RequestValueTransferEncoded(uint8 tokenType, address indexed from, address indexed to, address indexed tokenAddress, uint256 valueOrTokenId, uint64 requestNonce, uint256 fee, bytes extraData, uint8 encodingVer, bytes encodedData)
 14459  func (_BridgeTransferERC721 *BridgeTransferERC721Filterer) WatchRequestValueTransferEncoded(opts *bind.WatchOpts, sink chan<- *BridgeTransferERC721RequestValueTransferEncoded, from []common.Address, to []common.Address, tokenAddress []common.Address) (event.Subscription, error) {
 14460  
 14461  	var fromRule []interface{}
 14462  	for _, fromItem := range from {
 14463  		fromRule = append(fromRule, fromItem)
 14464  	}
 14465  	var toRule []interface{}
 14466  	for _, toItem := range to {
 14467  		toRule = append(toRule, toItem)
 14468  	}
 14469  	var tokenAddressRule []interface{}
 14470  	for _, tokenAddressItem := range tokenAddress {
 14471  		tokenAddressRule = append(tokenAddressRule, tokenAddressItem)
 14472  	}
 14473  
 14474  	logs, sub, err := _BridgeTransferERC721.contract.WatchLogs(opts, "RequestValueTransferEncoded", fromRule, toRule, tokenAddressRule)
 14475  	if err != nil {
 14476  		return nil, err
 14477  	}
 14478  	return event.NewSubscription(func(quit <-chan struct{}) error {
 14479  		defer sub.Unsubscribe()
 14480  		for {
 14481  			select {
 14482  			case log := <-logs:
 14483  				// New log arrived, parse the event and forward to the user
 14484  				event := new(BridgeTransferERC721RequestValueTransferEncoded)
 14485  				if err := _BridgeTransferERC721.contract.UnpackLog(event, "RequestValueTransferEncoded", log); err != nil {
 14486  					return err
 14487  				}
 14488  				event.Raw = log
 14489  
 14490  				select {
 14491  				case sink <- event:
 14492  				case err := <-sub.Err():
 14493  					return err
 14494  				case <-quit:
 14495  					return nil
 14496  				}
 14497  			case err := <-sub.Err():
 14498  				return err
 14499  			case <-quit:
 14500  				return nil
 14501  			}
 14502  		}
 14503  	}), nil
 14504  }
 14505  
 14506  // ParseRequestValueTransferEncoded is a log parse operation binding the contract event 0x17d76053ca34a4dd8c402fe6498deb797fac89bf7ed02f3f5161aa9368cc8c1f.
 14507  //
 14508  // Solidity: event RequestValueTransferEncoded(uint8 tokenType, address indexed from, address indexed to, address indexed tokenAddress, uint256 valueOrTokenId, uint64 requestNonce, uint256 fee, bytes extraData, uint8 encodingVer, bytes encodedData)
 14509  func (_BridgeTransferERC721 *BridgeTransferERC721Filterer) ParseRequestValueTransferEncoded(log types.Log) (*BridgeTransferERC721RequestValueTransferEncoded, error) {
 14510  	event := new(BridgeTransferERC721RequestValueTransferEncoded)
 14511  	if err := _BridgeTransferERC721.contract.UnpackLog(event, "RequestValueTransferEncoded", log); err != nil {
 14512  		return nil, err
 14513  	}
 14514  	return event, nil
 14515  }
 14516  
 14517  // BridgeTransferERC721TokenDeregisteredIterator is returned from FilterTokenDeregistered and is used to iterate over the raw logs and unpacked data for TokenDeregistered events raised by the BridgeTransferERC721 contract.
 14518  type BridgeTransferERC721TokenDeregisteredIterator struct {
 14519  	Event *BridgeTransferERC721TokenDeregistered // Event containing the contract specifics and raw log
 14520  
 14521  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 14522  	event    string              // Event name to use for unpacking event data
 14523  
 14524  	logs chan types.Log      // Log channel receiving the found contract events
 14525  	sub  klaytn.Subscription // Subscription for errors, completion and termination
 14526  	done bool                // Whether the subscription completed delivering logs
 14527  	fail error               // Occurred error to stop iteration
 14528  }
 14529  
 14530  // Next advances the iterator to the subsequent event, returning whether there
 14531  // are any more events found. In case of a retrieval or parsing error, false is
 14532  // returned and Error() can be queried for the exact failure.
 14533  func (it *BridgeTransferERC721TokenDeregisteredIterator) Next() bool {
 14534  	// If the iterator failed, stop iterating
 14535  	if it.fail != nil {
 14536  		return false
 14537  	}
 14538  	// If the iterator completed, deliver directly whatever's available
 14539  	if it.done {
 14540  		select {
 14541  		case log := <-it.logs:
 14542  			it.Event = new(BridgeTransferERC721TokenDeregistered)
 14543  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 14544  				it.fail = err
 14545  				return false
 14546  			}
 14547  			it.Event.Raw = log
 14548  			return true
 14549  
 14550  		default:
 14551  			return false
 14552  		}
 14553  	}
 14554  	// Iterator still in progress, wait for either a data or an error event
 14555  	select {
 14556  	case log := <-it.logs:
 14557  		it.Event = new(BridgeTransferERC721TokenDeregistered)
 14558  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 14559  			it.fail = err
 14560  			return false
 14561  		}
 14562  		it.Event.Raw = log
 14563  		return true
 14564  
 14565  	case err := <-it.sub.Err():
 14566  		it.done = true
 14567  		it.fail = err
 14568  		return it.Next()
 14569  	}
 14570  }
 14571  
 14572  // Error returns any retrieval or parsing error occurred during filtering.
 14573  func (it *BridgeTransferERC721TokenDeregisteredIterator) Error() error {
 14574  	return it.fail
 14575  }
 14576  
 14577  // Close terminates the iteration process, releasing any pending underlying
 14578  // resources.
 14579  func (it *BridgeTransferERC721TokenDeregisteredIterator) Close() error {
 14580  	it.sub.Unsubscribe()
 14581  	return nil
 14582  }
 14583  
 14584  // BridgeTransferERC721TokenDeregistered represents a TokenDeregistered event raised by the BridgeTransferERC721 contract.
 14585  type BridgeTransferERC721TokenDeregistered struct {
 14586  	Token common.Address
 14587  	Raw   types.Log // Blockchain specific contextual infos
 14588  }
 14589  
 14590  // FilterTokenDeregistered is a free log retrieval operation binding the contract event 0x1d735ca20b63676dde668b718be78606b061d6bd7534ff815a90a121a6c084b6.
 14591  //
 14592  // Solidity: event TokenDeregistered(address indexed token)
 14593  func (_BridgeTransferERC721 *BridgeTransferERC721Filterer) FilterTokenDeregistered(opts *bind.FilterOpts, token []common.Address) (*BridgeTransferERC721TokenDeregisteredIterator, error) {
 14594  
 14595  	var tokenRule []interface{}
 14596  	for _, tokenItem := range token {
 14597  		tokenRule = append(tokenRule, tokenItem)
 14598  	}
 14599  
 14600  	logs, sub, err := _BridgeTransferERC721.contract.FilterLogs(opts, "TokenDeregistered", tokenRule)
 14601  	if err != nil {
 14602  		return nil, err
 14603  	}
 14604  	return &BridgeTransferERC721TokenDeregisteredIterator{contract: _BridgeTransferERC721.contract, event: "TokenDeregistered", logs: logs, sub: sub}, nil
 14605  }
 14606  
 14607  // WatchTokenDeregistered is a free log subscription operation binding the contract event 0x1d735ca20b63676dde668b718be78606b061d6bd7534ff815a90a121a6c084b6.
 14608  //
 14609  // Solidity: event TokenDeregistered(address indexed token)
 14610  func (_BridgeTransferERC721 *BridgeTransferERC721Filterer) WatchTokenDeregistered(opts *bind.WatchOpts, sink chan<- *BridgeTransferERC721TokenDeregistered, token []common.Address) (event.Subscription, error) {
 14611  
 14612  	var tokenRule []interface{}
 14613  	for _, tokenItem := range token {
 14614  		tokenRule = append(tokenRule, tokenItem)
 14615  	}
 14616  
 14617  	logs, sub, err := _BridgeTransferERC721.contract.WatchLogs(opts, "TokenDeregistered", tokenRule)
 14618  	if err != nil {
 14619  		return nil, err
 14620  	}
 14621  	return event.NewSubscription(func(quit <-chan struct{}) error {
 14622  		defer sub.Unsubscribe()
 14623  		for {
 14624  			select {
 14625  			case log := <-logs:
 14626  				// New log arrived, parse the event and forward to the user
 14627  				event := new(BridgeTransferERC721TokenDeregistered)
 14628  				if err := _BridgeTransferERC721.contract.UnpackLog(event, "TokenDeregistered", log); err != nil {
 14629  					return err
 14630  				}
 14631  				event.Raw = log
 14632  
 14633  				select {
 14634  				case sink <- event:
 14635  				case err := <-sub.Err():
 14636  					return err
 14637  				case <-quit:
 14638  					return nil
 14639  				}
 14640  			case err := <-sub.Err():
 14641  				return err
 14642  			case <-quit:
 14643  				return nil
 14644  			}
 14645  		}
 14646  	}), nil
 14647  }
 14648  
 14649  // ParseTokenDeregistered is a log parse operation binding the contract event 0x1d735ca20b63676dde668b718be78606b061d6bd7534ff815a90a121a6c084b6.
 14650  //
 14651  // Solidity: event TokenDeregistered(address indexed token)
 14652  func (_BridgeTransferERC721 *BridgeTransferERC721Filterer) ParseTokenDeregistered(log types.Log) (*BridgeTransferERC721TokenDeregistered, error) {
 14653  	event := new(BridgeTransferERC721TokenDeregistered)
 14654  	if err := _BridgeTransferERC721.contract.UnpackLog(event, "TokenDeregistered", log); err != nil {
 14655  		return nil, err
 14656  	}
 14657  	return event, nil
 14658  }
 14659  
 14660  // BridgeTransferERC721TokenLockedIterator is returned from FilterTokenLocked and is used to iterate over the raw logs and unpacked data for TokenLocked events raised by the BridgeTransferERC721 contract.
 14661  type BridgeTransferERC721TokenLockedIterator struct {
 14662  	Event *BridgeTransferERC721TokenLocked // Event containing the contract specifics and raw log
 14663  
 14664  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 14665  	event    string              // Event name to use for unpacking event data
 14666  
 14667  	logs chan types.Log      // Log channel receiving the found contract events
 14668  	sub  klaytn.Subscription // Subscription for errors, completion and termination
 14669  	done bool                // Whether the subscription completed delivering logs
 14670  	fail error               // Occurred error to stop iteration
 14671  }
 14672  
 14673  // Next advances the iterator to the subsequent event, returning whether there
 14674  // are any more events found. In case of a retrieval or parsing error, false is
 14675  // returned and Error() can be queried for the exact failure.
 14676  func (it *BridgeTransferERC721TokenLockedIterator) Next() bool {
 14677  	// If the iterator failed, stop iterating
 14678  	if it.fail != nil {
 14679  		return false
 14680  	}
 14681  	// If the iterator completed, deliver directly whatever's available
 14682  	if it.done {
 14683  		select {
 14684  		case log := <-it.logs:
 14685  			it.Event = new(BridgeTransferERC721TokenLocked)
 14686  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 14687  				it.fail = err
 14688  				return false
 14689  			}
 14690  			it.Event.Raw = log
 14691  			return true
 14692  
 14693  		default:
 14694  			return false
 14695  		}
 14696  	}
 14697  	// Iterator still in progress, wait for either a data or an error event
 14698  	select {
 14699  	case log := <-it.logs:
 14700  		it.Event = new(BridgeTransferERC721TokenLocked)
 14701  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 14702  			it.fail = err
 14703  			return false
 14704  		}
 14705  		it.Event.Raw = log
 14706  		return true
 14707  
 14708  	case err := <-it.sub.Err():
 14709  		it.done = true
 14710  		it.fail = err
 14711  		return it.Next()
 14712  	}
 14713  }
 14714  
 14715  // Error returns any retrieval or parsing error occurred during filtering.
 14716  func (it *BridgeTransferERC721TokenLockedIterator) Error() error {
 14717  	return it.fail
 14718  }
 14719  
 14720  // Close terminates the iteration process, releasing any pending underlying
 14721  // resources.
 14722  func (it *BridgeTransferERC721TokenLockedIterator) Close() error {
 14723  	it.sub.Unsubscribe()
 14724  	return nil
 14725  }
 14726  
 14727  // BridgeTransferERC721TokenLocked represents a TokenLocked event raised by the BridgeTransferERC721 contract.
 14728  type BridgeTransferERC721TokenLocked struct {
 14729  	Token common.Address
 14730  	Raw   types.Log // Blockchain specific contextual infos
 14731  }
 14732  
 14733  // FilterTokenLocked is a free log retrieval operation binding the contract event 0xca1b0a14e18ada4c44846768dd186e35630cdc5cfeaca83c404ae4acaafbecd7.
 14734  //
 14735  // Solidity: event TokenLocked(address indexed token)
 14736  func (_BridgeTransferERC721 *BridgeTransferERC721Filterer) FilterTokenLocked(opts *bind.FilterOpts, token []common.Address) (*BridgeTransferERC721TokenLockedIterator, error) {
 14737  
 14738  	var tokenRule []interface{}
 14739  	for _, tokenItem := range token {
 14740  		tokenRule = append(tokenRule, tokenItem)
 14741  	}
 14742  
 14743  	logs, sub, err := _BridgeTransferERC721.contract.FilterLogs(opts, "TokenLocked", tokenRule)
 14744  	if err != nil {
 14745  		return nil, err
 14746  	}
 14747  	return &BridgeTransferERC721TokenLockedIterator{contract: _BridgeTransferERC721.contract, event: "TokenLocked", logs: logs, sub: sub}, nil
 14748  }
 14749  
 14750  // WatchTokenLocked is a free log subscription operation binding the contract event 0xca1b0a14e18ada4c44846768dd186e35630cdc5cfeaca83c404ae4acaafbecd7.
 14751  //
 14752  // Solidity: event TokenLocked(address indexed token)
 14753  func (_BridgeTransferERC721 *BridgeTransferERC721Filterer) WatchTokenLocked(opts *bind.WatchOpts, sink chan<- *BridgeTransferERC721TokenLocked, token []common.Address) (event.Subscription, error) {
 14754  
 14755  	var tokenRule []interface{}
 14756  	for _, tokenItem := range token {
 14757  		tokenRule = append(tokenRule, tokenItem)
 14758  	}
 14759  
 14760  	logs, sub, err := _BridgeTransferERC721.contract.WatchLogs(opts, "TokenLocked", tokenRule)
 14761  	if err != nil {
 14762  		return nil, err
 14763  	}
 14764  	return event.NewSubscription(func(quit <-chan struct{}) error {
 14765  		defer sub.Unsubscribe()
 14766  		for {
 14767  			select {
 14768  			case log := <-logs:
 14769  				// New log arrived, parse the event and forward to the user
 14770  				event := new(BridgeTransferERC721TokenLocked)
 14771  				if err := _BridgeTransferERC721.contract.UnpackLog(event, "TokenLocked", log); err != nil {
 14772  					return err
 14773  				}
 14774  				event.Raw = log
 14775  
 14776  				select {
 14777  				case sink <- event:
 14778  				case err := <-sub.Err():
 14779  					return err
 14780  				case <-quit:
 14781  					return nil
 14782  				}
 14783  			case err := <-sub.Err():
 14784  				return err
 14785  			case <-quit:
 14786  				return nil
 14787  			}
 14788  		}
 14789  	}), nil
 14790  }
 14791  
 14792  // ParseTokenLocked is a log parse operation binding the contract event 0xca1b0a14e18ada4c44846768dd186e35630cdc5cfeaca83c404ae4acaafbecd7.
 14793  //
 14794  // Solidity: event TokenLocked(address indexed token)
 14795  func (_BridgeTransferERC721 *BridgeTransferERC721Filterer) ParseTokenLocked(log types.Log) (*BridgeTransferERC721TokenLocked, error) {
 14796  	event := new(BridgeTransferERC721TokenLocked)
 14797  	if err := _BridgeTransferERC721.contract.UnpackLog(event, "TokenLocked", log); err != nil {
 14798  		return nil, err
 14799  	}
 14800  	return event, nil
 14801  }
 14802  
 14803  // BridgeTransferERC721TokenRegisteredIterator is returned from FilterTokenRegistered and is used to iterate over the raw logs and unpacked data for TokenRegistered events raised by the BridgeTransferERC721 contract.
 14804  type BridgeTransferERC721TokenRegisteredIterator struct {
 14805  	Event *BridgeTransferERC721TokenRegistered // Event containing the contract specifics and raw log
 14806  
 14807  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 14808  	event    string              // Event name to use for unpacking event data
 14809  
 14810  	logs chan types.Log      // Log channel receiving the found contract events
 14811  	sub  klaytn.Subscription // Subscription for errors, completion and termination
 14812  	done bool                // Whether the subscription completed delivering logs
 14813  	fail error               // Occurred error to stop iteration
 14814  }
 14815  
 14816  // Next advances the iterator to the subsequent event, returning whether there
 14817  // are any more events found. In case of a retrieval or parsing error, false is
 14818  // returned and Error() can be queried for the exact failure.
 14819  func (it *BridgeTransferERC721TokenRegisteredIterator) Next() bool {
 14820  	// If the iterator failed, stop iterating
 14821  	if it.fail != nil {
 14822  		return false
 14823  	}
 14824  	// If the iterator completed, deliver directly whatever's available
 14825  	if it.done {
 14826  		select {
 14827  		case log := <-it.logs:
 14828  			it.Event = new(BridgeTransferERC721TokenRegistered)
 14829  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 14830  				it.fail = err
 14831  				return false
 14832  			}
 14833  			it.Event.Raw = log
 14834  			return true
 14835  
 14836  		default:
 14837  			return false
 14838  		}
 14839  	}
 14840  	// Iterator still in progress, wait for either a data or an error event
 14841  	select {
 14842  	case log := <-it.logs:
 14843  		it.Event = new(BridgeTransferERC721TokenRegistered)
 14844  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 14845  			it.fail = err
 14846  			return false
 14847  		}
 14848  		it.Event.Raw = log
 14849  		return true
 14850  
 14851  	case err := <-it.sub.Err():
 14852  		it.done = true
 14853  		it.fail = err
 14854  		return it.Next()
 14855  	}
 14856  }
 14857  
 14858  // Error returns any retrieval or parsing error occurred during filtering.
 14859  func (it *BridgeTransferERC721TokenRegisteredIterator) Error() error {
 14860  	return it.fail
 14861  }
 14862  
 14863  // Close terminates the iteration process, releasing any pending underlying
 14864  // resources.
 14865  func (it *BridgeTransferERC721TokenRegisteredIterator) Close() error {
 14866  	it.sub.Unsubscribe()
 14867  	return nil
 14868  }
 14869  
 14870  // BridgeTransferERC721TokenRegistered represents a TokenRegistered event raised by the BridgeTransferERC721 contract.
 14871  type BridgeTransferERC721TokenRegistered struct {
 14872  	Token common.Address
 14873  	Raw   types.Log // Blockchain specific contextual infos
 14874  }
 14875  
 14876  // FilterTokenRegistered is a free log retrieval operation binding the contract event 0x158412daecdc1456d01568828bcdb18464cc7f1ce0215ddbc3f3cfede9d1e63d.
 14877  //
 14878  // Solidity: event TokenRegistered(address indexed token)
 14879  func (_BridgeTransferERC721 *BridgeTransferERC721Filterer) FilterTokenRegistered(opts *bind.FilterOpts, token []common.Address) (*BridgeTransferERC721TokenRegisteredIterator, error) {
 14880  
 14881  	var tokenRule []interface{}
 14882  	for _, tokenItem := range token {
 14883  		tokenRule = append(tokenRule, tokenItem)
 14884  	}
 14885  
 14886  	logs, sub, err := _BridgeTransferERC721.contract.FilterLogs(opts, "TokenRegistered", tokenRule)
 14887  	if err != nil {
 14888  		return nil, err
 14889  	}
 14890  	return &BridgeTransferERC721TokenRegisteredIterator{contract: _BridgeTransferERC721.contract, event: "TokenRegistered", logs: logs, sub: sub}, nil
 14891  }
 14892  
 14893  // WatchTokenRegistered is a free log subscription operation binding the contract event 0x158412daecdc1456d01568828bcdb18464cc7f1ce0215ddbc3f3cfede9d1e63d.
 14894  //
 14895  // Solidity: event TokenRegistered(address indexed token)
 14896  func (_BridgeTransferERC721 *BridgeTransferERC721Filterer) WatchTokenRegistered(opts *bind.WatchOpts, sink chan<- *BridgeTransferERC721TokenRegistered, token []common.Address) (event.Subscription, error) {
 14897  
 14898  	var tokenRule []interface{}
 14899  	for _, tokenItem := range token {
 14900  		tokenRule = append(tokenRule, tokenItem)
 14901  	}
 14902  
 14903  	logs, sub, err := _BridgeTransferERC721.contract.WatchLogs(opts, "TokenRegistered", tokenRule)
 14904  	if err != nil {
 14905  		return nil, err
 14906  	}
 14907  	return event.NewSubscription(func(quit <-chan struct{}) error {
 14908  		defer sub.Unsubscribe()
 14909  		for {
 14910  			select {
 14911  			case log := <-logs:
 14912  				// New log arrived, parse the event and forward to the user
 14913  				event := new(BridgeTransferERC721TokenRegistered)
 14914  				if err := _BridgeTransferERC721.contract.UnpackLog(event, "TokenRegistered", log); err != nil {
 14915  					return err
 14916  				}
 14917  				event.Raw = log
 14918  
 14919  				select {
 14920  				case sink <- event:
 14921  				case err := <-sub.Err():
 14922  					return err
 14923  				case <-quit:
 14924  					return nil
 14925  				}
 14926  			case err := <-sub.Err():
 14927  				return err
 14928  			case <-quit:
 14929  				return nil
 14930  			}
 14931  		}
 14932  	}), nil
 14933  }
 14934  
 14935  // ParseTokenRegistered is a log parse operation binding the contract event 0x158412daecdc1456d01568828bcdb18464cc7f1ce0215ddbc3f3cfede9d1e63d.
 14936  //
 14937  // Solidity: event TokenRegistered(address indexed token)
 14938  func (_BridgeTransferERC721 *BridgeTransferERC721Filterer) ParseTokenRegistered(log types.Log) (*BridgeTransferERC721TokenRegistered, error) {
 14939  	event := new(BridgeTransferERC721TokenRegistered)
 14940  	if err := _BridgeTransferERC721.contract.UnpackLog(event, "TokenRegistered", log); err != nil {
 14941  		return nil, err
 14942  	}
 14943  	return event, nil
 14944  }
 14945  
 14946  // BridgeTransferERC721TokenUnlockedIterator is returned from FilterTokenUnlocked and is used to iterate over the raw logs and unpacked data for TokenUnlocked events raised by the BridgeTransferERC721 contract.
 14947  type BridgeTransferERC721TokenUnlockedIterator struct {
 14948  	Event *BridgeTransferERC721TokenUnlocked // Event containing the contract specifics and raw log
 14949  
 14950  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 14951  	event    string              // Event name to use for unpacking event data
 14952  
 14953  	logs chan types.Log      // Log channel receiving the found contract events
 14954  	sub  klaytn.Subscription // Subscription for errors, completion and termination
 14955  	done bool                // Whether the subscription completed delivering logs
 14956  	fail error               // Occurred error to stop iteration
 14957  }
 14958  
 14959  // Next advances the iterator to the subsequent event, returning whether there
 14960  // are any more events found. In case of a retrieval or parsing error, false is
 14961  // returned and Error() can be queried for the exact failure.
 14962  func (it *BridgeTransferERC721TokenUnlockedIterator) Next() bool {
 14963  	// If the iterator failed, stop iterating
 14964  	if it.fail != nil {
 14965  		return false
 14966  	}
 14967  	// If the iterator completed, deliver directly whatever's available
 14968  	if it.done {
 14969  		select {
 14970  		case log := <-it.logs:
 14971  			it.Event = new(BridgeTransferERC721TokenUnlocked)
 14972  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 14973  				it.fail = err
 14974  				return false
 14975  			}
 14976  			it.Event.Raw = log
 14977  			return true
 14978  
 14979  		default:
 14980  			return false
 14981  		}
 14982  	}
 14983  	// Iterator still in progress, wait for either a data or an error event
 14984  	select {
 14985  	case log := <-it.logs:
 14986  		it.Event = new(BridgeTransferERC721TokenUnlocked)
 14987  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 14988  			it.fail = err
 14989  			return false
 14990  		}
 14991  		it.Event.Raw = log
 14992  		return true
 14993  
 14994  	case err := <-it.sub.Err():
 14995  		it.done = true
 14996  		it.fail = err
 14997  		return it.Next()
 14998  	}
 14999  }
 15000  
 15001  // Error returns any retrieval or parsing error occurred during filtering.
 15002  func (it *BridgeTransferERC721TokenUnlockedIterator) Error() error {
 15003  	return it.fail
 15004  }
 15005  
 15006  // Close terminates the iteration process, releasing any pending underlying
 15007  // resources.
 15008  func (it *BridgeTransferERC721TokenUnlockedIterator) Close() error {
 15009  	it.sub.Unsubscribe()
 15010  	return nil
 15011  }
 15012  
 15013  // BridgeTransferERC721TokenUnlocked represents a TokenUnlocked event raised by the BridgeTransferERC721 contract.
 15014  type BridgeTransferERC721TokenUnlocked struct {
 15015  	Token common.Address
 15016  	Raw   types.Log // Blockchain specific contextual infos
 15017  }
 15018  
 15019  // FilterTokenUnlocked is a free log retrieval operation binding the contract event 0x81ec08d3372506e176c49e626d8beb7e091712ef92908a130f4ccc6524fe2eec.
 15020  //
 15021  // Solidity: event TokenUnlocked(address indexed token)
 15022  func (_BridgeTransferERC721 *BridgeTransferERC721Filterer) FilterTokenUnlocked(opts *bind.FilterOpts, token []common.Address) (*BridgeTransferERC721TokenUnlockedIterator, error) {
 15023  
 15024  	var tokenRule []interface{}
 15025  	for _, tokenItem := range token {
 15026  		tokenRule = append(tokenRule, tokenItem)
 15027  	}
 15028  
 15029  	logs, sub, err := _BridgeTransferERC721.contract.FilterLogs(opts, "TokenUnlocked", tokenRule)
 15030  	if err != nil {
 15031  		return nil, err
 15032  	}
 15033  	return &BridgeTransferERC721TokenUnlockedIterator{contract: _BridgeTransferERC721.contract, event: "TokenUnlocked", logs: logs, sub: sub}, nil
 15034  }
 15035  
 15036  // WatchTokenUnlocked is a free log subscription operation binding the contract event 0x81ec08d3372506e176c49e626d8beb7e091712ef92908a130f4ccc6524fe2eec.
 15037  //
 15038  // Solidity: event TokenUnlocked(address indexed token)
 15039  func (_BridgeTransferERC721 *BridgeTransferERC721Filterer) WatchTokenUnlocked(opts *bind.WatchOpts, sink chan<- *BridgeTransferERC721TokenUnlocked, token []common.Address) (event.Subscription, error) {
 15040  
 15041  	var tokenRule []interface{}
 15042  	for _, tokenItem := range token {
 15043  		tokenRule = append(tokenRule, tokenItem)
 15044  	}
 15045  
 15046  	logs, sub, err := _BridgeTransferERC721.contract.WatchLogs(opts, "TokenUnlocked", tokenRule)
 15047  	if err != nil {
 15048  		return nil, err
 15049  	}
 15050  	return event.NewSubscription(func(quit <-chan struct{}) error {
 15051  		defer sub.Unsubscribe()
 15052  		for {
 15053  			select {
 15054  			case log := <-logs:
 15055  				// New log arrived, parse the event and forward to the user
 15056  				event := new(BridgeTransferERC721TokenUnlocked)
 15057  				if err := _BridgeTransferERC721.contract.UnpackLog(event, "TokenUnlocked", log); err != nil {
 15058  					return err
 15059  				}
 15060  				event.Raw = log
 15061  
 15062  				select {
 15063  				case sink <- event:
 15064  				case err := <-sub.Err():
 15065  					return err
 15066  				case <-quit:
 15067  					return nil
 15068  				}
 15069  			case err := <-sub.Err():
 15070  				return err
 15071  			case <-quit:
 15072  				return nil
 15073  			}
 15074  		}
 15075  	}), nil
 15076  }
 15077  
 15078  // ParseTokenUnlocked is a log parse operation binding the contract event 0x81ec08d3372506e176c49e626d8beb7e091712ef92908a130f4ccc6524fe2eec.
 15079  //
 15080  // Solidity: event TokenUnlocked(address indexed token)
 15081  func (_BridgeTransferERC721 *BridgeTransferERC721Filterer) ParseTokenUnlocked(log types.Log) (*BridgeTransferERC721TokenUnlocked, error) {
 15082  	event := new(BridgeTransferERC721TokenUnlocked)
 15083  	if err := _BridgeTransferERC721.contract.UnpackLog(event, "TokenUnlocked", log); err != nil {
 15084  		return nil, err
 15085  	}
 15086  	return event, nil
 15087  }
 15088  
 15089  // BridgeTransferKLAYMetaData contains all meta data concerning the BridgeTransferKLAY contract.
 15090  var BridgeTransferKLAYMetaData = &bind.MetaData{
 15091  	ABI: "[{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"uint64\"}],\"name\":\"handleNoncesToBlockNums\",\"outputs\":[{\"name\":\"\",\"type\":\"uint64\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"address\"}],\"name\":\"operators\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_fee\",\"type\":\"uint256\"},{\"name\":\"_requestNonce\",\"type\":\"uint64\"}],\"name\":\"setKLAYFee\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"unlockKLAY\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"isRunning\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_operator\",\"type\":\"address\"}],\"name\":\"registerOperator\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"MAX_OPERATOR\",\"outputs\":[{\"name\":\"\",\"type\":\"uint64\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"address\"}],\"name\":\"feeOfERC20\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"lowerHandleNonce\",\"outputs\":[{\"name\":\"\",\"type\":\"uint64\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"upperHandleNonce\",\"outputs\":[{\"name\":\"\",\"type\":\"uint64\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"uint8\"}],\"name\":\"operatorThresholds\",\"outputs\":[{\"name\":\"\",\"type\":\"uint8\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"modeMintBurn\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_to\",\"type\":\"address\"},{\"name\":\"_value\",\"type\":\"uint256\"},{\"name\":\"_extraData\",\"type\":\"bytes\"}],\"name\":\"requestKLAYTransfer\",\"outputs\":[],\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"requestNonce\",\"outputs\":[{\"name\":\"\",\"type\":\"uint64\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"handledRequestTx\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"isOwner\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"uint64\"}],\"name\":\"closedValueTransferVotes\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"recoveryBlockNumber\",\"outputs\":[{\"name\":\"\",\"type\":\"uint64\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"lockKLAY\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_requestTxHash\",\"type\":\"bytes32\"},{\"name\":\"_from\",\"type\":\"address\"},{\"name\":\"_to\",\"type\":\"address\"},{\"name\":\"_value\",\"type\":\"uint256\"},{\"name\":\"_requestedNonce\",\"type\":\"uint64\"},{\"name\":\"_requestedBlockNumber\",\"type\":\"uint64\"},{\"name\":\"_extraData\",\"type\":\"bytes\"}],\"name\":\"handleKLAYTransfer\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"configurationNonce\",\"outputs\":[{\"name\":\"\",\"type\":\"uint64\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getOperatorList\",\"outputs\":[{\"name\":\"\",\"type\":\"address[]\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"feeReceiver\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"feeOfKLAY\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_status\",\"type\":\"bool\"}],\"name\":\"start\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"operatorList\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_operator\",\"type\":\"address\"}],\"name\":\"deregisterOperator\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"chargeWithoutEvent\",\"outputs\":[],\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_voteType\",\"type\":\"uint8\"},{\"name\":\"_threshold\",\"type\":\"uint8\"}],\"name\":\"setOperatorThreshold\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_feeReceiver\",\"type\":\"address\"}],\"name\":\"setFeeReceiver\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"isLockedKLAY\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"KLAYLocked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"KLAYUnlocked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"tokenType\",\"type\":\"uint8\"},{\"indexed\":true,\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"tokenAddress\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"valueOrTokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"requestNonce\",\"type\":\"uint64\"},{\"indexed\":false,\"name\":\"fee\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"extraData\",\"type\":\"bytes\"}],\"name\":\"RequestValueTransfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"tokenType\",\"type\":\"uint8\"},{\"indexed\":true,\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"tokenAddress\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"valueOrTokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"requestNonce\",\"type\":\"uint64\"},{\"indexed\":false,\"name\":\"fee\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"extraData\",\"type\":\"bytes\"},{\"indexed\":false,\"name\":\"encodingVer\",\"type\":\"uint8\"},{\"indexed\":false,\"name\":\"encodedData\",\"type\":\"bytes\"}],\"name\":\"RequestValueTransferEncoded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"requestTxHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"name\":\"tokenType\",\"type\":\"uint8\"},{\"indexed\":true,\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"tokenAddress\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"valueOrTokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"handleNonce\",\"type\":\"uint64\"},{\"indexed\":false,\"name\":\"lowerHandleNonce\",\"type\":\"uint64\"},{\"indexed\":false,\"name\":\"extraData\",\"type\":\"bytes\"}],\"name\":\"HandleValueTransfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"fee\",\"type\":\"uint256\"}],\"name\":\"KLAYFeeChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"token\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"fee\",\"type\":\"uint256\"}],\"name\":\"ERC20FeeChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"feeReceiver\",\"type\":\"address\"}],\"name\":\"FeeReceiverChanged\",\"type\":\"event\"}]",
 15092  	Sigs: map[string]string{
 15093  		"3a3099d1": "MAX_OPERATOR()",
 15094  		"dd9222d6": "chargeWithoutEvent()",
 15095  		"9832c1d7": "closedValueTransferVotes(uint64)",
 15096  		"ac6fff0b": "configurationNonce()",
 15097  		"d8cf98ca": "deregisterOperator(address)",
 15098  		"488af871": "feeOfERC20(address)",
 15099  		"c263b5d6": "feeOfKLAY()",
 15100  		"b3f00674": "feeReceiver()",
 15101  		"b2c01030": "getOperatorList()",
 15102  		"a066a7ed": "handleKLAYTransfer(bytes32,address,address,uint256,uint64,uint64,bytes)",
 15103  		"13a6738a": "handleNoncesToBlockNums(uint64)",
 15104  		"8a75eee2": "handledRequestTx(bytes32)",
 15105  		"f1719966": "isLockedKLAY()",
 15106  		"8f32d59b": "isOwner()",
 15107  		"2014e5d1": "isRunning()",
 15108  		"9f071329": "lockKLAY()",
 15109  		"4b40b826": "lowerHandleNonce()",
 15110  		"6e176ec2": "modeMintBurn()",
 15111  		"cb38f407": "operatorList(uint256)",
 15112  		"5526f76b": "operatorThresholds(uint8)",
 15113  		"13e7c9d8": "operators(address)",
 15114  		"8da5cb5b": "owner()",
 15115  		"989ba0d3": "recoveryBlockNumber()",
 15116  		"3682a450": "registerOperator(address)",
 15117  		"715018a6": "renounceOwnership()",
 15118  		"75ebdc09": "requestKLAYTransfer(address,uint256,bytes)",
 15119  		"7c1a0302": "requestNonce()",
 15120  		"efdcd974": "setFeeReceiver(address)",
 15121  		"1a2ae53e": "setKLAYFee(uint256,uint64)",
 15122  		"ee2aec65": "setOperatorThreshold(uint8,uint8)",
 15123  		"c877cf37": "start(bool)",
 15124  		"f2fde38b": "transferOwnership(address)",
 15125  		"1ebdca38": "unlockKLAY()",
 15126  		"54edad72": "upperHandleNonce()",
 15127  	},
 15128  }
 15129  
 15130  // BridgeTransferKLAYABI is the input ABI used to generate the binding from.
 15131  // Deprecated: Use BridgeTransferKLAYMetaData.ABI instead.
 15132  var BridgeTransferKLAYABI = BridgeTransferKLAYMetaData.ABI
 15133  
 15134  // BridgeTransferKLAYBinRuntime is the compiled bytecode used for adding genesis block without deploying code.
 15135  const BridgeTransferKLAYBinRuntime = ``
 15136  
 15137  // BridgeTransferKLAYFuncSigs maps the 4-byte function signature to its string representation.
 15138  // Deprecated: Use BridgeTransferKLAYMetaData.Sigs instead.
 15139  var BridgeTransferKLAYFuncSigs = BridgeTransferKLAYMetaData.Sigs
 15140  
 15141  // BridgeTransferKLAY is an auto generated Go binding around a Klaytn contract.
 15142  type BridgeTransferKLAY struct {
 15143  	BridgeTransferKLAYCaller     // Read-only binding to the contract
 15144  	BridgeTransferKLAYTransactor // Write-only binding to the contract
 15145  	BridgeTransferKLAYFilterer   // Log filterer for contract events
 15146  }
 15147  
 15148  // BridgeTransferKLAYCaller is an auto generated read-only Go binding around a Klaytn contract.
 15149  type BridgeTransferKLAYCaller struct {
 15150  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 15151  }
 15152  
 15153  // BridgeTransferKLAYTransactor is an auto generated write-only Go binding around a Klaytn contract.
 15154  type BridgeTransferKLAYTransactor struct {
 15155  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 15156  }
 15157  
 15158  // BridgeTransferKLAYFilterer is an auto generated log filtering Go binding around a Klaytn contract events.
 15159  type BridgeTransferKLAYFilterer struct {
 15160  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 15161  }
 15162  
 15163  // BridgeTransferKLAYSession is an auto generated Go binding around a Klaytn contract,
 15164  // with pre-set call and transact options.
 15165  type BridgeTransferKLAYSession struct {
 15166  	Contract     *BridgeTransferKLAY // Generic contract binding to set the session for
 15167  	CallOpts     bind.CallOpts       // Call options to use throughout this session
 15168  	TransactOpts bind.TransactOpts   // Transaction auth options to use throughout this session
 15169  }
 15170  
 15171  // BridgeTransferKLAYCallerSession is an auto generated read-only Go binding around a Klaytn contract,
 15172  // with pre-set call options.
 15173  type BridgeTransferKLAYCallerSession struct {
 15174  	Contract *BridgeTransferKLAYCaller // Generic contract caller binding to set the session for
 15175  	CallOpts bind.CallOpts             // Call options to use throughout this session
 15176  }
 15177  
 15178  // BridgeTransferKLAYTransactorSession is an auto generated write-only Go binding around a Klaytn contract,
 15179  // with pre-set transact options.
 15180  type BridgeTransferKLAYTransactorSession struct {
 15181  	Contract     *BridgeTransferKLAYTransactor // Generic contract transactor binding to set the session for
 15182  	TransactOpts bind.TransactOpts             // Transaction auth options to use throughout this session
 15183  }
 15184  
 15185  // BridgeTransferKLAYRaw is an auto generated low-level Go binding around a Klaytn contract.
 15186  type BridgeTransferKLAYRaw struct {
 15187  	Contract *BridgeTransferKLAY // Generic contract binding to access the raw methods on
 15188  }
 15189  
 15190  // BridgeTransferKLAYCallerRaw is an auto generated low-level read-only Go binding around a Klaytn contract.
 15191  type BridgeTransferKLAYCallerRaw struct {
 15192  	Contract *BridgeTransferKLAYCaller // Generic read-only contract binding to access the raw methods on
 15193  }
 15194  
 15195  // BridgeTransferKLAYTransactorRaw is an auto generated low-level write-only Go binding around a Klaytn contract.
 15196  type BridgeTransferKLAYTransactorRaw struct {
 15197  	Contract *BridgeTransferKLAYTransactor // Generic write-only contract binding to access the raw methods on
 15198  }
 15199  
 15200  // NewBridgeTransferKLAY creates a new instance of BridgeTransferKLAY, bound to a specific deployed contract.
 15201  func NewBridgeTransferKLAY(address common.Address, backend bind.ContractBackend) (*BridgeTransferKLAY, error) {
 15202  	contract, err := bindBridgeTransferKLAY(address, backend, backend, backend)
 15203  	if err != nil {
 15204  		return nil, err
 15205  	}
 15206  	return &BridgeTransferKLAY{BridgeTransferKLAYCaller: BridgeTransferKLAYCaller{contract: contract}, BridgeTransferKLAYTransactor: BridgeTransferKLAYTransactor{contract: contract}, BridgeTransferKLAYFilterer: BridgeTransferKLAYFilterer{contract: contract}}, nil
 15207  }
 15208  
 15209  // NewBridgeTransferKLAYCaller creates a new read-only instance of BridgeTransferKLAY, bound to a specific deployed contract.
 15210  func NewBridgeTransferKLAYCaller(address common.Address, caller bind.ContractCaller) (*BridgeTransferKLAYCaller, error) {
 15211  	contract, err := bindBridgeTransferKLAY(address, caller, nil, nil)
 15212  	if err != nil {
 15213  		return nil, err
 15214  	}
 15215  	return &BridgeTransferKLAYCaller{contract: contract}, nil
 15216  }
 15217  
 15218  // NewBridgeTransferKLAYTransactor creates a new write-only instance of BridgeTransferKLAY, bound to a specific deployed contract.
 15219  func NewBridgeTransferKLAYTransactor(address common.Address, transactor bind.ContractTransactor) (*BridgeTransferKLAYTransactor, error) {
 15220  	contract, err := bindBridgeTransferKLAY(address, nil, transactor, nil)
 15221  	if err != nil {
 15222  		return nil, err
 15223  	}
 15224  	return &BridgeTransferKLAYTransactor{contract: contract}, nil
 15225  }
 15226  
 15227  // NewBridgeTransferKLAYFilterer creates a new log filterer instance of BridgeTransferKLAY, bound to a specific deployed contract.
 15228  func NewBridgeTransferKLAYFilterer(address common.Address, filterer bind.ContractFilterer) (*BridgeTransferKLAYFilterer, error) {
 15229  	contract, err := bindBridgeTransferKLAY(address, nil, nil, filterer)
 15230  	if err != nil {
 15231  		return nil, err
 15232  	}
 15233  	return &BridgeTransferKLAYFilterer{contract: contract}, nil
 15234  }
 15235  
 15236  // bindBridgeTransferKLAY binds a generic wrapper to an already deployed contract.
 15237  func bindBridgeTransferKLAY(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
 15238  	parsed, err := BridgeTransferKLAYMetaData.GetAbi()
 15239  	if err != nil {
 15240  		return nil, err
 15241  	}
 15242  	return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil
 15243  }
 15244  
 15245  // Call invokes the (constant) contract method with params as input values and
 15246  // sets the output to result. The result type might be a single field for simple
 15247  // returns, a slice of interfaces for anonymous returns and a struct for named
 15248  // returns.
 15249  func (_BridgeTransferKLAY *BridgeTransferKLAYRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
 15250  	return _BridgeTransferKLAY.Contract.BridgeTransferKLAYCaller.contract.Call(opts, result, method, params...)
 15251  }
 15252  
 15253  // Transfer initiates a plain transaction to move funds to the contract, calling
 15254  // its default method if one is available.
 15255  func (_BridgeTransferKLAY *BridgeTransferKLAYRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
 15256  	return _BridgeTransferKLAY.Contract.BridgeTransferKLAYTransactor.contract.Transfer(opts)
 15257  }
 15258  
 15259  // Transact invokes the (paid) contract method with params as input values.
 15260  func (_BridgeTransferKLAY *BridgeTransferKLAYRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
 15261  	return _BridgeTransferKLAY.Contract.BridgeTransferKLAYTransactor.contract.Transact(opts, method, params...)
 15262  }
 15263  
 15264  // Call invokes the (constant) contract method with params as input values and
 15265  // sets the output to result. The result type might be a single field for simple
 15266  // returns, a slice of interfaces for anonymous returns and a struct for named
 15267  // returns.
 15268  func (_BridgeTransferKLAY *BridgeTransferKLAYCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
 15269  	return _BridgeTransferKLAY.Contract.contract.Call(opts, result, method, params...)
 15270  }
 15271  
 15272  // Transfer initiates a plain transaction to move funds to the contract, calling
 15273  // its default method if one is available.
 15274  func (_BridgeTransferKLAY *BridgeTransferKLAYTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
 15275  	return _BridgeTransferKLAY.Contract.contract.Transfer(opts)
 15276  }
 15277  
 15278  // Transact invokes the (paid) contract method with params as input values.
 15279  func (_BridgeTransferKLAY *BridgeTransferKLAYTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
 15280  	return _BridgeTransferKLAY.Contract.contract.Transact(opts, method, params...)
 15281  }
 15282  
 15283  // MAXOPERATOR is a free data retrieval call binding the contract method 0x3a3099d1.
 15284  //
 15285  // Solidity: function MAX_OPERATOR() view returns(uint64)
 15286  func (_BridgeTransferKLAY *BridgeTransferKLAYCaller) MAXOPERATOR(opts *bind.CallOpts) (uint64, error) {
 15287  	var out []interface{}
 15288  	err := _BridgeTransferKLAY.contract.Call(opts, &out, "MAX_OPERATOR")
 15289  
 15290  	if err != nil {
 15291  		return *new(uint64), err
 15292  	}
 15293  
 15294  	out0 := *abi.ConvertType(out[0], new(uint64)).(*uint64)
 15295  
 15296  	return out0, err
 15297  
 15298  }
 15299  
 15300  // MAXOPERATOR is a free data retrieval call binding the contract method 0x3a3099d1.
 15301  //
 15302  // Solidity: function MAX_OPERATOR() view returns(uint64)
 15303  func (_BridgeTransferKLAY *BridgeTransferKLAYSession) MAXOPERATOR() (uint64, error) {
 15304  	return _BridgeTransferKLAY.Contract.MAXOPERATOR(&_BridgeTransferKLAY.CallOpts)
 15305  }
 15306  
 15307  // MAXOPERATOR is a free data retrieval call binding the contract method 0x3a3099d1.
 15308  //
 15309  // Solidity: function MAX_OPERATOR() view returns(uint64)
 15310  func (_BridgeTransferKLAY *BridgeTransferKLAYCallerSession) MAXOPERATOR() (uint64, error) {
 15311  	return _BridgeTransferKLAY.Contract.MAXOPERATOR(&_BridgeTransferKLAY.CallOpts)
 15312  }
 15313  
 15314  // ClosedValueTransferVotes is a free data retrieval call binding the contract method 0x9832c1d7.
 15315  //
 15316  // Solidity: function closedValueTransferVotes(uint64 ) view returns(bool)
 15317  func (_BridgeTransferKLAY *BridgeTransferKLAYCaller) ClosedValueTransferVotes(opts *bind.CallOpts, arg0 uint64) (bool, error) {
 15318  	var out []interface{}
 15319  	err := _BridgeTransferKLAY.contract.Call(opts, &out, "closedValueTransferVotes", arg0)
 15320  
 15321  	if err != nil {
 15322  		return *new(bool), err
 15323  	}
 15324  
 15325  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
 15326  
 15327  	return out0, err
 15328  
 15329  }
 15330  
 15331  // ClosedValueTransferVotes is a free data retrieval call binding the contract method 0x9832c1d7.
 15332  //
 15333  // Solidity: function closedValueTransferVotes(uint64 ) view returns(bool)
 15334  func (_BridgeTransferKLAY *BridgeTransferKLAYSession) ClosedValueTransferVotes(arg0 uint64) (bool, error) {
 15335  	return _BridgeTransferKLAY.Contract.ClosedValueTransferVotes(&_BridgeTransferKLAY.CallOpts, arg0)
 15336  }
 15337  
 15338  // ClosedValueTransferVotes is a free data retrieval call binding the contract method 0x9832c1d7.
 15339  //
 15340  // Solidity: function closedValueTransferVotes(uint64 ) view returns(bool)
 15341  func (_BridgeTransferKLAY *BridgeTransferKLAYCallerSession) ClosedValueTransferVotes(arg0 uint64) (bool, error) {
 15342  	return _BridgeTransferKLAY.Contract.ClosedValueTransferVotes(&_BridgeTransferKLAY.CallOpts, arg0)
 15343  }
 15344  
 15345  // ConfigurationNonce is a free data retrieval call binding the contract method 0xac6fff0b.
 15346  //
 15347  // Solidity: function configurationNonce() view returns(uint64)
 15348  func (_BridgeTransferKLAY *BridgeTransferKLAYCaller) ConfigurationNonce(opts *bind.CallOpts) (uint64, error) {
 15349  	var out []interface{}
 15350  	err := _BridgeTransferKLAY.contract.Call(opts, &out, "configurationNonce")
 15351  
 15352  	if err != nil {
 15353  		return *new(uint64), err
 15354  	}
 15355  
 15356  	out0 := *abi.ConvertType(out[0], new(uint64)).(*uint64)
 15357  
 15358  	return out0, err
 15359  
 15360  }
 15361  
 15362  // ConfigurationNonce is a free data retrieval call binding the contract method 0xac6fff0b.
 15363  //
 15364  // Solidity: function configurationNonce() view returns(uint64)
 15365  func (_BridgeTransferKLAY *BridgeTransferKLAYSession) ConfigurationNonce() (uint64, error) {
 15366  	return _BridgeTransferKLAY.Contract.ConfigurationNonce(&_BridgeTransferKLAY.CallOpts)
 15367  }
 15368  
 15369  // ConfigurationNonce is a free data retrieval call binding the contract method 0xac6fff0b.
 15370  //
 15371  // Solidity: function configurationNonce() view returns(uint64)
 15372  func (_BridgeTransferKLAY *BridgeTransferKLAYCallerSession) ConfigurationNonce() (uint64, error) {
 15373  	return _BridgeTransferKLAY.Contract.ConfigurationNonce(&_BridgeTransferKLAY.CallOpts)
 15374  }
 15375  
 15376  // FeeOfERC20 is a free data retrieval call binding the contract method 0x488af871.
 15377  //
 15378  // Solidity: function feeOfERC20(address ) view returns(uint256)
 15379  func (_BridgeTransferKLAY *BridgeTransferKLAYCaller) FeeOfERC20(opts *bind.CallOpts, arg0 common.Address) (*big.Int, error) {
 15380  	var out []interface{}
 15381  	err := _BridgeTransferKLAY.contract.Call(opts, &out, "feeOfERC20", arg0)
 15382  
 15383  	if err != nil {
 15384  		return *new(*big.Int), err
 15385  	}
 15386  
 15387  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
 15388  
 15389  	return out0, err
 15390  
 15391  }
 15392  
 15393  // FeeOfERC20 is a free data retrieval call binding the contract method 0x488af871.
 15394  //
 15395  // Solidity: function feeOfERC20(address ) view returns(uint256)
 15396  func (_BridgeTransferKLAY *BridgeTransferKLAYSession) FeeOfERC20(arg0 common.Address) (*big.Int, error) {
 15397  	return _BridgeTransferKLAY.Contract.FeeOfERC20(&_BridgeTransferKLAY.CallOpts, arg0)
 15398  }
 15399  
 15400  // FeeOfERC20 is a free data retrieval call binding the contract method 0x488af871.
 15401  //
 15402  // Solidity: function feeOfERC20(address ) view returns(uint256)
 15403  func (_BridgeTransferKLAY *BridgeTransferKLAYCallerSession) FeeOfERC20(arg0 common.Address) (*big.Int, error) {
 15404  	return _BridgeTransferKLAY.Contract.FeeOfERC20(&_BridgeTransferKLAY.CallOpts, arg0)
 15405  }
 15406  
 15407  // FeeOfKLAY is a free data retrieval call binding the contract method 0xc263b5d6.
 15408  //
 15409  // Solidity: function feeOfKLAY() view returns(uint256)
 15410  func (_BridgeTransferKLAY *BridgeTransferKLAYCaller) FeeOfKLAY(opts *bind.CallOpts) (*big.Int, error) {
 15411  	var out []interface{}
 15412  	err := _BridgeTransferKLAY.contract.Call(opts, &out, "feeOfKLAY")
 15413  
 15414  	if err != nil {
 15415  		return *new(*big.Int), err
 15416  	}
 15417  
 15418  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
 15419  
 15420  	return out0, err
 15421  
 15422  }
 15423  
 15424  // FeeOfKLAY is a free data retrieval call binding the contract method 0xc263b5d6.
 15425  //
 15426  // Solidity: function feeOfKLAY() view returns(uint256)
 15427  func (_BridgeTransferKLAY *BridgeTransferKLAYSession) FeeOfKLAY() (*big.Int, error) {
 15428  	return _BridgeTransferKLAY.Contract.FeeOfKLAY(&_BridgeTransferKLAY.CallOpts)
 15429  }
 15430  
 15431  // FeeOfKLAY is a free data retrieval call binding the contract method 0xc263b5d6.
 15432  //
 15433  // Solidity: function feeOfKLAY() view returns(uint256)
 15434  func (_BridgeTransferKLAY *BridgeTransferKLAYCallerSession) FeeOfKLAY() (*big.Int, error) {
 15435  	return _BridgeTransferKLAY.Contract.FeeOfKLAY(&_BridgeTransferKLAY.CallOpts)
 15436  }
 15437  
 15438  // FeeReceiver is a free data retrieval call binding the contract method 0xb3f00674.
 15439  //
 15440  // Solidity: function feeReceiver() view returns(address)
 15441  func (_BridgeTransferKLAY *BridgeTransferKLAYCaller) FeeReceiver(opts *bind.CallOpts) (common.Address, error) {
 15442  	var out []interface{}
 15443  	err := _BridgeTransferKLAY.contract.Call(opts, &out, "feeReceiver")
 15444  
 15445  	if err != nil {
 15446  		return *new(common.Address), err
 15447  	}
 15448  
 15449  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
 15450  
 15451  	return out0, err
 15452  
 15453  }
 15454  
 15455  // FeeReceiver is a free data retrieval call binding the contract method 0xb3f00674.
 15456  //
 15457  // Solidity: function feeReceiver() view returns(address)
 15458  func (_BridgeTransferKLAY *BridgeTransferKLAYSession) FeeReceiver() (common.Address, error) {
 15459  	return _BridgeTransferKLAY.Contract.FeeReceiver(&_BridgeTransferKLAY.CallOpts)
 15460  }
 15461  
 15462  // FeeReceiver is a free data retrieval call binding the contract method 0xb3f00674.
 15463  //
 15464  // Solidity: function feeReceiver() view returns(address)
 15465  func (_BridgeTransferKLAY *BridgeTransferKLAYCallerSession) FeeReceiver() (common.Address, error) {
 15466  	return _BridgeTransferKLAY.Contract.FeeReceiver(&_BridgeTransferKLAY.CallOpts)
 15467  }
 15468  
 15469  // GetOperatorList is a free data retrieval call binding the contract method 0xb2c01030.
 15470  //
 15471  // Solidity: function getOperatorList() view returns(address[])
 15472  func (_BridgeTransferKLAY *BridgeTransferKLAYCaller) GetOperatorList(opts *bind.CallOpts) ([]common.Address, error) {
 15473  	var out []interface{}
 15474  	err := _BridgeTransferKLAY.contract.Call(opts, &out, "getOperatorList")
 15475  
 15476  	if err != nil {
 15477  		return *new([]common.Address), err
 15478  	}
 15479  
 15480  	out0 := *abi.ConvertType(out[0], new([]common.Address)).(*[]common.Address)
 15481  
 15482  	return out0, err
 15483  
 15484  }
 15485  
 15486  // GetOperatorList is a free data retrieval call binding the contract method 0xb2c01030.
 15487  //
 15488  // Solidity: function getOperatorList() view returns(address[])
 15489  func (_BridgeTransferKLAY *BridgeTransferKLAYSession) GetOperatorList() ([]common.Address, error) {
 15490  	return _BridgeTransferKLAY.Contract.GetOperatorList(&_BridgeTransferKLAY.CallOpts)
 15491  }
 15492  
 15493  // GetOperatorList is a free data retrieval call binding the contract method 0xb2c01030.
 15494  //
 15495  // Solidity: function getOperatorList() view returns(address[])
 15496  func (_BridgeTransferKLAY *BridgeTransferKLAYCallerSession) GetOperatorList() ([]common.Address, error) {
 15497  	return _BridgeTransferKLAY.Contract.GetOperatorList(&_BridgeTransferKLAY.CallOpts)
 15498  }
 15499  
 15500  // HandleNoncesToBlockNums is a free data retrieval call binding the contract method 0x13a6738a.
 15501  //
 15502  // Solidity: function handleNoncesToBlockNums(uint64 ) view returns(uint64)
 15503  func (_BridgeTransferKLAY *BridgeTransferKLAYCaller) HandleNoncesToBlockNums(opts *bind.CallOpts, arg0 uint64) (uint64, error) {
 15504  	var out []interface{}
 15505  	err := _BridgeTransferKLAY.contract.Call(opts, &out, "handleNoncesToBlockNums", arg0)
 15506  
 15507  	if err != nil {
 15508  		return *new(uint64), err
 15509  	}
 15510  
 15511  	out0 := *abi.ConvertType(out[0], new(uint64)).(*uint64)
 15512  
 15513  	return out0, err
 15514  
 15515  }
 15516  
 15517  // HandleNoncesToBlockNums is a free data retrieval call binding the contract method 0x13a6738a.
 15518  //
 15519  // Solidity: function handleNoncesToBlockNums(uint64 ) view returns(uint64)
 15520  func (_BridgeTransferKLAY *BridgeTransferKLAYSession) HandleNoncesToBlockNums(arg0 uint64) (uint64, error) {
 15521  	return _BridgeTransferKLAY.Contract.HandleNoncesToBlockNums(&_BridgeTransferKLAY.CallOpts, arg0)
 15522  }
 15523  
 15524  // HandleNoncesToBlockNums is a free data retrieval call binding the contract method 0x13a6738a.
 15525  //
 15526  // Solidity: function handleNoncesToBlockNums(uint64 ) view returns(uint64)
 15527  func (_BridgeTransferKLAY *BridgeTransferKLAYCallerSession) HandleNoncesToBlockNums(arg0 uint64) (uint64, error) {
 15528  	return _BridgeTransferKLAY.Contract.HandleNoncesToBlockNums(&_BridgeTransferKLAY.CallOpts, arg0)
 15529  }
 15530  
 15531  // HandledRequestTx is a free data retrieval call binding the contract method 0x8a75eee2.
 15532  //
 15533  // Solidity: function handledRequestTx(bytes32 ) view returns(bool)
 15534  func (_BridgeTransferKLAY *BridgeTransferKLAYCaller) HandledRequestTx(opts *bind.CallOpts, arg0 [32]byte) (bool, error) {
 15535  	var out []interface{}
 15536  	err := _BridgeTransferKLAY.contract.Call(opts, &out, "handledRequestTx", arg0)
 15537  
 15538  	if err != nil {
 15539  		return *new(bool), err
 15540  	}
 15541  
 15542  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
 15543  
 15544  	return out0, err
 15545  
 15546  }
 15547  
 15548  // HandledRequestTx is a free data retrieval call binding the contract method 0x8a75eee2.
 15549  //
 15550  // Solidity: function handledRequestTx(bytes32 ) view returns(bool)
 15551  func (_BridgeTransferKLAY *BridgeTransferKLAYSession) HandledRequestTx(arg0 [32]byte) (bool, error) {
 15552  	return _BridgeTransferKLAY.Contract.HandledRequestTx(&_BridgeTransferKLAY.CallOpts, arg0)
 15553  }
 15554  
 15555  // HandledRequestTx is a free data retrieval call binding the contract method 0x8a75eee2.
 15556  //
 15557  // Solidity: function handledRequestTx(bytes32 ) view returns(bool)
 15558  func (_BridgeTransferKLAY *BridgeTransferKLAYCallerSession) HandledRequestTx(arg0 [32]byte) (bool, error) {
 15559  	return _BridgeTransferKLAY.Contract.HandledRequestTx(&_BridgeTransferKLAY.CallOpts, arg0)
 15560  }
 15561  
 15562  // IsLockedKLAY is a free data retrieval call binding the contract method 0xf1719966.
 15563  //
 15564  // Solidity: function isLockedKLAY() view returns(bool)
 15565  func (_BridgeTransferKLAY *BridgeTransferKLAYCaller) IsLockedKLAY(opts *bind.CallOpts) (bool, error) {
 15566  	var out []interface{}
 15567  	err := _BridgeTransferKLAY.contract.Call(opts, &out, "isLockedKLAY")
 15568  
 15569  	if err != nil {
 15570  		return *new(bool), err
 15571  	}
 15572  
 15573  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
 15574  
 15575  	return out0, err
 15576  
 15577  }
 15578  
 15579  // IsLockedKLAY is a free data retrieval call binding the contract method 0xf1719966.
 15580  //
 15581  // Solidity: function isLockedKLAY() view returns(bool)
 15582  func (_BridgeTransferKLAY *BridgeTransferKLAYSession) IsLockedKLAY() (bool, error) {
 15583  	return _BridgeTransferKLAY.Contract.IsLockedKLAY(&_BridgeTransferKLAY.CallOpts)
 15584  }
 15585  
 15586  // IsLockedKLAY is a free data retrieval call binding the contract method 0xf1719966.
 15587  //
 15588  // Solidity: function isLockedKLAY() view returns(bool)
 15589  func (_BridgeTransferKLAY *BridgeTransferKLAYCallerSession) IsLockedKLAY() (bool, error) {
 15590  	return _BridgeTransferKLAY.Contract.IsLockedKLAY(&_BridgeTransferKLAY.CallOpts)
 15591  }
 15592  
 15593  // IsOwner is a free data retrieval call binding the contract method 0x8f32d59b.
 15594  //
 15595  // Solidity: function isOwner() view returns(bool)
 15596  func (_BridgeTransferKLAY *BridgeTransferKLAYCaller) IsOwner(opts *bind.CallOpts) (bool, error) {
 15597  	var out []interface{}
 15598  	err := _BridgeTransferKLAY.contract.Call(opts, &out, "isOwner")
 15599  
 15600  	if err != nil {
 15601  		return *new(bool), err
 15602  	}
 15603  
 15604  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
 15605  
 15606  	return out0, err
 15607  
 15608  }
 15609  
 15610  // IsOwner is a free data retrieval call binding the contract method 0x8f32d59b.
 15611  //
 15612  // Solidity: function isOwner() view returns(bool)
 15613  func (_BridgeTransferKLAY *BridgeTransferKLAYSession) IsOwner() (bool, error) {
 15614  	return _BridgeTransferKLAY.Contract.IsOwner(&_BridgeTransferKLAY.CallOpts)
 15615  }
 15616  
 15617  // IsOwner is a free data retrieval call binding the contract method 0x8f32d59b.
 15618  //
 15619  // Solidity: function isOwner() view returns(bool)
 15620  func (_BridgeTransferKLAY *BridgeTransferKLAYCallerSession) IsOwner() (bool, error) {
 15621  	return _BridgeTransferKLAY.Contract.IsOwner(&_BridgeTransferKLAY.CallOpts)
 15622  }
 15623  
 15624  // IsRunning is a free data retrieval call binding the contract method 0x2014e5d1.
 15625  //
 15626  // Solidity: function isRunning() view returns(bool)
 15627  func (_BridgeTransferKLAY *BridgeTransferKLAYCaller) IsRunning(opts *bind.CallOpts) (bool, error) {
 15628  	var out []interface{}
 15629  	err := _BridgeTransferKLAY.contract.Call(opts, &out, "isRunning")
 15630  
 15631  	if err != nil {
 15632  		return *new(bool), err
 15633  	}
 15634  
 15635  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
 15636  
 15637  	return out0, err
 15638  
 15639  }
 15640  
 15641  // IsRunning is a free data retrieval call binding the contract method 0x2014e5d1.
 15642  //
 15643  // Solidity: function isRunning() view returns(bool)
 15644  func (_BridgeTransferKLAY *BridgeTransferKLAYSession) IsRunning() (bool, error) {
 15645  	return _BridgeTransferKLAY.Contract.IsRunning(&_BridgeTransferKLAY.CallOpts)
 15646  }
 15647  
 15648  // IsRunning is a free data retrieval call binding the contract method 0x2014e5d1.
 15649  //
 15650  // Solidity: function isRunning() view returns(bool)
 15651  func (_BridgeTransferKLAY *BridgeTransferKLAYCallerSession) IsRunning() (bool, error) {
 15652  	return _BridgeTransferKLAY.Contract.IsRunning(&_BridgeTransferKLAY.CallOpts)
 15653  }
 15654  
 15655  // LowerHandleNonce is a free data retrieval call binding the contract method 0x4b40b826.
 15656  //
 15657  // Solidity: function lowerHandleNonce() view returns(uint64)
 15658  func (_BridgeTransferKLAY *BridgeTransferKLAYCaller) LowerHandleNonce(opts *bind.CallOpts) (uint64, error) {
 15659  	var out []interface{}
 15660  	err := _BridgeTransferKLAY.contract.Call(opts, &out, "lowerHandleNonce")
 15661  
 15662  	if err != nil {
 15663  		return *new(uint64), err
 15664  	}
 15665  
 15666  	out0 := *abi.ConvertType(out[0], new(uint64)).(*uint64)
 15667  
 15668  	return out0, err
 15669  
 15670  }
 15671  
 15672  // LowerHandleNonce is a free data retrieval call binding the contract method 0x4b40b826.
 15673  //
 15674  // Solidity: function lowerHandleNonce() view returns(uint64)
 15675  func (_BridgeTransferKLAY *BridgeTransferKLAYSession) LowerHandleNonce() (uint64, error) {
 15676  	return _BridgeTransferKLAY.Contract.LowerHandleNonce(&_BridgeTransferKLAY.CallOpts)
 15677  }
 15678  
 15679  // LowerHandleNonce is a free data retrieval call binding the contract method 0x4b40b826.
 15680  //
 15681  // Solidity: function lowerHandleNonce() view returns(uint64)
 15682  func (_BridgeTransferKLAY *BridgeTransferKLAYCallerSession) LowerHandleNonce() (uint64, error) {
 15683  	return _BridgeTransferKLAY.Contract.LowerHandleNonce(&_BridgeTransferKLAY.CallOpts)
 15684  }
 15685  
 15686  // ModeMintBurn is a free data retrieval call binding the contract method 0x6e176ec2.
 15687  //
 15688  // Solidity: function modeMintBurn() view returns(bool)
 15689  func (_BridgeTransferKLAY *BridgeTransferKLAYCaller) ModeMintBurn(opts *bind.CallOpts) (bool, error) {
 15690  	var out []interface{}
 15691  	err := _BridgeTransferKLAY.contract.Call(opts, &out, "modeMintBurn")
 15692  
 15693  	if err != nil {
 15694  		return *new(bool), err
 15695  	}
 15696  
 15697  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
 15698  
 15699  	return out0, err
 15700  
 15701  }
 15702  
 15703  // ModeMintBurn is a free data retrieval call binding the contract method 0x6e176ec2.
 15704  //
 15705  // Solidity: function modeMintBurn() view returns(bool)
 15706  func (_BridgeTransferKLAY *BridgeTransferKLAYSession) ModeMintBurn() (bool, error) {
 15707  	return _BridgeTransferKLAY.Contract.ModeMintBurn(&_BridgeTransferKLAY.CallOpts)
 15708  }
 15709  
 15710  // ModeMintBurn is a free data retrieval call binding the contract method 0x6e176ec2.
 15711  //
 15712  // Solidity: function modeMintBurn() view returns(bool)
 15713  func (_BridgeTransferKLAY *BridgeTransferKLAYCallerSession) ModeMintBurn() (bool, error) {
 15714  	return _BridgeTransferKLAY.Contract.ModeMintBurn(&_BridgeTransferKLAY.CallOpts)
 15715  }
 15716  
 15717  // OperatorList is a free data retrieval call binding the contract method 0xcb38f407.
 15718  //
 15719  // Solidity: function operatorList(uint256 ) view returns(address)
 15720  func (_BridgeTransferKLAY *BridgeTransferKLAYCaller) OperatorList(opts *bind.CallOpts, arg0 *big.Int) (common.Address, error) {
 15721  	var out []interface{}
 15722  	err := _BridgeTransferKLAY.contract.Call(opts, &out, "operatorList", arg0)
 15723  
 15724  	if err != nil {
 15725  		return *new(common.Address), err
 15726  	}
 15727  
 15728  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
 15729  
 15730  	return out0, err
 15731  
 15732  }
 15733  
 15734  // OperatorList is a free data retrieval call binding the contract method 0xcb38f407.
 15735  //
 15736  // Solidity: function operatorList(uint256 ) view returns(address)
 15737  func (_BridgeTransferKLAY *BridgeTransferKLAYSession) OperatorList(arg0 *big.Int) (common.Address, error) {
 15738  	return _BridgeTransferKLAY.Contract.OperatorList(&_BridgeTransferKLAY.CallOpts, arg0)
 15739  }
 15740  
 15741  // OperatorList is a free data retrieval call binding the contract method 0xcb38f407.
 15742  //
 15743  // Solidity: function operatorList(uint256 ) view returns(address)
 15744  func (_BridgeTransferKLAY *BridgeTransferKLAYCallerSession) OperatorList(arg0 *big.Int) (common.Address, error) {
 15745  	return _BridgeTransferKLAY.Contract.OperatorList(&_BridgeTransferKLAY.CallOpts, arg0)
 15746  }
 15747  
 15748  // OperatorThresholds is a free data retrieval call binding the contract method 0x5526f76b.
 15749  //
 15750  // Solidity: function operatorThresholds(uint8 ) view returns(uint8)
 15751  func (_BridgeTransferKLAY *BridgeTransferKLAYCaller) OperatorThresholds(opts *bind.CallOpts, arg0 uint8) (uint8, error) {
 15752  	var out []interface{}
 15753  	err := _BridgeTransferKLAY.contract.Call(opts, &out, "operatorThresholds", arg0)
 15754  
 15755  	if err != nil {
 15756  		return *new(uint8), err
 15757  	}
 15758  
 15759  	out0 := *abi.ConvertType(out[0], new(uint8)).(*uint8)
 15760  
 15761  	return out0, err
 15762  
 15763  }
 15764  
 15765  // OperatorThresholds is a free data retrieval call binding the contract method 0x5526f76b.
 15766  //
 15767  // Solidity: function operatorThresholds(uint8 ) view returns(uint8)
 15768  func (_BridgeTransferKLAY *BridgeTransferKLAYSession) OperatorThresholds(arg0 uint8) (uint8, error) {
 15769  	return _BridgeTransferKLAY.Contract.OperatorThresholds(&_BridgeTransferKLAY.CallOpts, arg0)
 15770  }
 15771  
 15772  // OperatorThresholds is a free data retrieval call binding the contract method 0x5526f76b.
 15773  //
 15774  // Solidity: function operatorThresholds(uint8 ) view returns(uint8)
 15775  func (_BridgeTransferKLAY *BridgeTransferKLAYCallerSession) OperatorThresholds(arg0 uint8) (uint8, error) {
 15776  	return _BridgeTransferKLAY.Contract.OperatorThresholds(&_BridgeTransferKLAY.CallOpts, arg0)
 15777  }
 15778  
 15779  // Operators is a free data retrieval call binding the contract method 0x13e7c9d8.
 15780  //
 15781  // Solidity: function operators(address ) view returns(bool)
 15782  func (_BridgeTransferKLAY *BridgeTransferKLAYCaller) Operators(opts *bind.CallOpts, arg0 common.Address) (bool, error) {
 15783  	var out []interface{}
 15784  	err := _BridgeTransferKLAY.contract.Call(opts, &out, "operators", arg0)
 15785  
 15786  	if err != nil {
 15787  		return *new(bool), err
 15788  	}
 15789  
 15790  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
 15791  
 15792  	return out0, err
 15793  
 15794  }
 15795  
 15796  // Operators is a free data retrieval call binding the contract method 0x13e7c9d8.
 15797  //
 15798  // Solidity: function operators(address ) view returns(bool)
 15799  func (_BridgeTransferKLAY *BridgeTransferKLAYSession) Operators(arg0 common.Address) (bool, error) {
 15800  	return _BridgeTransferKLAY.Contract.Operators(&_BridgeTransferKLAY.CallOpts, arg0)
 15801  }
 15802  
 15803  // Operators is a free data retrieval call binding the contract method 0x13e7c9d8.
 15804  //
 15805  // Solidity: function operators(address ) view returns(bool)
 15806  func (_BridgeTransferKLAY *BridgeTransferKLAYCallerSession) Operators(arg0 common.Address) (bool, error) {
 15807  	return _BridgeTransferKLAY.Contract.Operators(&_BridgeTransferKLAY.CallOpts, arg0)
 15808  }
 15809  
 15810  // Owner is a free data retrieval call binding the contract method 0x8da5cb5b.
 15811  //
 15812  // Solidity: function owner() view returns(address)
 15813  func (_BridgeTransferKLAY *BridgeTransferKLAYCaller) Owner(opts *bind.CallOpts) (common.Address, error) {
 15814  	var out []interface{}
 15815  	err := _BridgeTransferKLAY.contract.Call(opts, &out, "owner")
 15816  
 15817  	if err != nil {
 15818  		return *new(common.Address), err
 15819  	}
 15820  
 15821  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
 15822  
 15823  	return out0, err
 15824  
 15825  }
 15826  
 15827  // Owner is a free data retrieval call binding the contract method 0x8da5cb5b.
 15828  //
 15829  // Solidity: function owner() view returns(address)
 15830  func (_BridgeTransferKLAY *BridgeTransferKLAYSession) Owner() (common.Address, error) {
 15831  	return _BridgeTransferKLAY.Contract.Owner(&_BridgeTransferKLAY.CallOpts)
 15832  }
 15833  
 15834  // Owner is a free data retrieval call binding the contract method 0x8da5cb5b.
 15835  //
 15836  // Solidity: function owner() view returns(address)
 15837  func (_BridgeTransferKLAY *BridgeTransferKLAYCallerSession) Owner() (common.Address, error) {
 15838  	return _BridgeTransferKLAY.Contract.Owner(&_BridgeTransferKLAY.CallOpts)
 15839  }
 15840  
 15841  // RecoveryBlockNumber is a free data retrieval call binding the contract method 0x989ba0d3.
 15842  //
 15843  // Solidity: function recoveryBlockNumber() view returns(uint64)
 15844  func (_BridgeTransferKLAY *BridgeTransferKLAYCaller) RecoveryBlockNumber(opts *bind.CallOpts) (uint64, error) {
 15845  	var out []interface{}
 15846  	err := _BridgeTransferKLAY.contract.Call(opts, &out, "recoveryBlockNumber")
 15847  
 15848  	if err != nil {
 15849  		return *new(uint64), err
 15850  	}
 15851  
 15852  	out0 := *abi.ConvertType(out[0], new(uint64)).(*uint64)
 15853  
 15854  	return out0, err
 15855  
 15856  }
 15857  
 15858  // RecoveryBlockNumber is a free data retrieval call binding the contract method 0x989ba0d3.
 15859  //
 15860  // Solidity: function recoveryBlockNumber() view returns(uint64)
 15861  func (_BridgeTransferKLAY *BridgeTransferKLAYSession) RecoveryBlockNumber() (uint64, error) {
 15862  	return _BridgeTransferKLAY.Contract.RecoveryBlockNumber(&_BridgeTransferKLAY.CallOpts)
 15863  }
 15864  
 15865  // RecoveryBlockNumber is a free data retrieval call binding the contract method 0x989ba0d3.
 15866  //
 15867  // Solidity: function recoveryBlockNumber() view returns(uint64)
 15868  func (_BridgeTransferKLAY *BridgeTransferKLAYCallerSession) RecoveryBlockNumber() (uint64, error) {
 15869  	return _BridgeTransferKLAY.Contract.RecoveryBlockNumber(&_BridgeTransferKLAY.CallOpts)
 15870  }
 15871  
 15872  // RequestNonce is a free data retrieval call binding the contract method 0x7c1a0302.
 15873  //
 15874  // Solidity: function requestNonce() view returns(uint64)
 15875  func (_BridgeTransferKLAY *BridgeTransferKLAYCaller) RequestNonce(opts *bind.CallOpts) (uint64, error) {
 15876  	var out []interface{}
 15877  	err := _BridgeTransferKLAY.contract.Call(opts, &out, "requestNonce")
 15878  
 15879  	if err != nil {
 15880  		return *new(uint64), err
 15881  	}
 15882  
 15883  	out0 := *abi.ConvertType(out[0], new(uint64)).(*uint64)
 15884  
 15885  	return out0, err
 15886  
 15887  }
 15888  
 15889  // RequestNonce is a free data retrieval call binding the contract method 0x7c1a0302.
 15890  //
 15891  // Solidity: function requestNonce() view returns(uint64)
 15892  func (_BridgeTransferKLAY *BridgeTransferKLAYSession) RequestNonce() (uint64, error) {
 15893  	return _BridgeTransferKLAY.Contract.RequestNonce(&_BridgeTransferKLAY.CallOpts)
 15894  }
 15895  
 15896  // RequestNonce is a free data retrieval call binding the contract method 0x7c1a0302.
 15897  //
 15898  // Solidity: function requestNonce() view returns(uint64)
 15899  func (_BridgeTransferKLAY *BridgeTransferKLAYCallerSession) RequestNonce() (uint64, error) {
 15900  	return _BridgeTransferKLAY.Contract.RequestNonce(&_BridgeTransferKLAY.CallOpts)
 15901  }
 15902  
 15903  // UpperHandleNonce is a free data retrieval call binding the contract method 0x54edad72.
 15904  //
 15905  // Solidity: function upperHandleNonce() view returns(uint64)
 15906  func (_BridgeTransferKLAY *BridgeTransferKLAYCaller) UpperHandleNonce(opts *bind.CallOpts) (uint64, error) {
 15907  	var out []interface{}
 15908  	err := _BridgeTransferKLAY.contract.Call(opts, &out, "upperHandleNonce")
 15909  
 15910  	if err != nil {
 15911  		return *new(uint64), err
 15912  	}
 15913  
 15914  	out0 := *abi.ConvertType(out[0], new(uint64)).(*uint64)
 15915  
 15916  	return out0, err
 15917  
 15918  }
 15919  
 15920  // UpperHandleNonce is a free data retrieval call binding the contract method 0x54edad72.
 15921  //
 15922  // Solidity: function upperHandleNonce() view returns(uint64)
 15923  func (_BridgeTransferKLAY *BridgeTransferKLAYSession) UpperHandleNonce() (uint64, error) {
 15924  	return _BridgeTransferKLAY.Contract.UpperHandleNonce(&_BridgeTransferKLAY.CallOpts)
 15925  }
 15926  
 15927  // UpperHandleNonce is a free data retrieval call binding the contract method 0x54edad72.
 15928  //
 15929  // Solidity: function upperHandleNonce() view returns(uint64)
 15930  func (_BridgeTransferKLAY *BridgeTransferKLAYCallerSession) UpperHandleNonce() (uint64, error) {
 15931  	return _BridgeTransferKLAY.Contract.UpperHandleNonce(&_BridgeTransferKLAY.CallOpts)
 15932  }
 15933  
 15934  // ChargeWithoutEvent is a paid mutator transaction binding the contract method 0xdd9222d6.
 15935  //
 15936  // Solidity: function chargeWithoutEvent() payable returns()
 15937  func (_BridgeTransferKLAY *BridgeTransferKLAYTransactor) ChargeWithoutEvent(opts *bind.TransactOpts) (*types.Transaction, error) {
 15938  	return _BridgeTransferKLAY.contract.Transact(opts, "chargeWithoutEvent")
 15939  }
 15940  
 15941  // ChargeWithoutEvent is a paid mutator transaction binding the contract method 0xdd9222d6.
 15942  //
 15943  // Solidity: function chargeWithoutEvent() payable returns()
 15944  func (_BridgeTransferKLAY *BridgeTransferKLAYSession) ChargeWithoutEvent() (*types.Transaction, error) {
 15945  	return _BridgeTransferKLAY.Contract.ChargeWithoutEvent(&_BridgeTransferKLAY.TransactOpts)
 15946  }
 15947  
 15948  // ChargeWithoutEvent is a paid mutator transaction binding the contract method 0xdd9222d6.
 15949  //
 15950  // Solidity: function chargeWithoutEvent() payable returns()
 15951  func (_BridgeTransferKLAY *BridgeTransferKLAYTransactorSession) ChargeWithoutEvent() (*types.Transaction, error) {
 15952  	return _BridgeTransferKLAY.Contract.ChargeWithoutEvent(&_BridgeTransferKLAY.TransactOpts)
 15953  }
 15954  
 15955  // DeregisterOperator is a paid mutator transaction binding the contract method 0xd8cf98ca.
 15956  //
 15957  // Solidity: function deregisterOperator(address _operator) returns()
 15958  func (_BridgeTransferKLAY *BridgeTransferKLAYTransactor) DeregisterOperator(opts *bind.TransactOpts, _operator common.Address) (*types.Transaction, error) {
 15959  	return _BridgeTransferKLAY.contract.Transact(opts, "deregisterOperator", _operator)
 15960  }
 15961  
 15962  // DeregisterOperator is a paid mutator transaction binding the contract method 0xd8cf98ca.
 15963  //
 15964  // Solidity: function deregisterOperator(address _operator) returns()
 15965  func (_BridgeTransferKLAY *BridgeTransferKLAYSession) DeregisterOperator(_operator common.Address) (*types.Transaction, error) {
 15966  	return _BridgeTransferKLAY.Contract.DeregisterOperator(&_BridgeTransferKLAY.TransactOpts, _operator)
 15967  }
 15968  
 15969  // DeregisterOperator is a paid mutator transaction binding the contract method 0xd8cf98ca.
 15970  //
 15971  // Solidity: function deregisterOperator(address _operator) returns()
 15972  func (_BridgeTransferKLAY *BridgeTransferKLAYTransactorSession) DeregisterOperator(_operator common.Address) (*types.Transaction, error) {
 15973  	return _BridgeTransferKLAY.Contract.DeregisterOperator(&_BridgeTransferKLAY.TransactOpts, _operator)
 15974  }
 15975  
 15976  // HandleKLAYTransfer is a paid mutator transaction binding the contract method 0xa066a7ed.
 15977  //
 15978  // Solidity: function handleKLAYTransfer(bytes32 _requestTxHash, address _from, address _to, uint256 _value, uint64 _requestedNonce, uint64 _requestedBlockNumber, bytes _extraData) returns()
 15979  func (_BridgeTransferKLAY *BridgeTransferKLAYTransactor) HandleKLAYTransfer(opts *bind.TransactOpts, _requestTxHash [32]byte, _from common.Address, _to common.Address, _value *big.Int, _requestedNonce uint64, _requestedBlockNumber uint64, _extraData []byte) (*types.Transaction, error) {
 15980  	return _BridgeTransferKLAY.contract.Transact(opts, "handleKLAYTransfer", _requestTxHash, _from, _to, _value, _requestedNonce, _requestedBlockNumber, _extraData)
 15981  }
 15982  
 15983  // HandleKLAYTransfer is a paid mutator transaction binding the contract method 0xa066a7ed.
 15984  //
 15985  // Solidity: function handleKLAYTransfer(bytes32 _requestTxHash, address _from, address _to, uint256 _value, uint64 _requestedNonce, uint64 _requestedBlockNumber, bytes _extraData) returns()
 15986  func (_BridgeTransferKLAY *BridgeTransferKLAYSession) HandleKLAYTransfer(_requestTxHash [32]byte, _from common.Address, _to common.Address, _value *big.Int, _requestedNonce uint64, _requestedBlockNumber uint64, _extraData []byte) (*types.Transaction, error) {
 15987  	return _BridgeTransferKLAY.Contract.HandleKLAYTransfer(&_BridgeTransferKLAY.TransactOpts, _requestTxHash, _from, _to, _value, _requestedNonce, _requestedBlockNumber, _extraData)
 15988  }
 15989  
 15990  // HandleKLAYTransfer is a paid mutator transaction binding the contract method 0xa066a7ed.
 15991  //
 15992  // Solidity: function handleKLAYTransfer(bytes32 _requestTxHash, address _from, address _to, uint256 _value, uint64 _requestedNonce, uint64 _requestedBlockNumber, bytes _extraData) returns()
 15993  func (_BridgeTransferKLAY *BridgeTransferKLAYTransactorSession) HandleKLAYTransfer(_requestTxHash [32]byte, _from common.Address, _to common.Address, _value *big.Int, _requestedNonce uint64, _requestedBlockNumber uint64, _extraData []byte) (*types.Transaction, error) {
 15994  	return _BridgeTransferKLAY.Contract.HandleKLAYTransfer(&_BridgeTransferKLAY.TransactOpts, _requestTxHash, _from, _to, _value, _requestedNonce, _requestedBlockNumber, _extraData)
 15995  }
 15996  
 15997  // LockKLAY is a paid mutator transaction binding the contract method 0x9f071329.
 15998  //
 15999  // Solidity: function lockKLAY() returns()
 16000  func (_BridgeTransferKLAY *BridgeTransferKLAYTransactor) LockKLAY(opts *bind.TransactOpts) (*types.Transaction, error) {
 16001  	return _BridgeTransferKLAY.contract.Transact(opts, "lockKLAY")
 16002  }
 16003  
 16004  // LockKLAY is a paid mutator transaction binding the contract method 0x9f071329.
 16005  //
 16006  // Solidity: function lockKLAY() returns()
 16007  func (_BridgeTransferKLAY *BridgeTransferKLAYSession) LockKLAY() (*types.Transaction, error) {
 16008  	return _BridgeTransferKLAY.Contract.LockKLAY(&_BridgeTransferKLAY.TransactOpts)
 16009  }
 16010  
 16011  // LockKLAY is a paid mutator transaction binding the contract method 0x9f071329.
 16012  //
 16013  // Solidity: function lockKLAY() returns()
 16014  func (_BridgeTransferKLAY *BridgeTransferKLAYTransactorSession) LockKLAY() (*types.Transaction, error) {
 16015  	return _BridgeTransferKLAY.Contract.LockKLAY(&_BridgeTransferKLAY.TransactOpts)
 16016  }
 16017  
 16018  // RegisterOperator is a paid mutator transaction binding the contract method 0x3682a450.
 16019  //
 16020  // Solidity: function registerOperator(address _operator) returns()
 16021  func (_BridgeTransferKLAY *BridgeTransferKLAYTransactor) RegisterOperator(opts *bind.TransactOpts, _operator common.Address) (*types.Transaction, error) {
 16022  	return _BridgeTransferKLAY.contract.Transact(opts, "registerOperator", _operator)
 16023  }
 16024  
 16025  // RegisterOperator is a paid mutator transaction binding the contract method 0x3682a450.
 16026  //
 16027  // Solidity: function registerOperator(address _operator) returns()
 16028  func (_BridgeTransferKLAY *BridgeTransferKLAYSession) RegisterOperator(_operator common.Address) (*types.Transaction, error) {
 16029  	return _BridgeTransferKLAY.Contract.RegisterOperator(&_BridgeTransferKLAY.TransactOpts, _operator)
 16030  }
 16031  
 16032  // RegisterOperator is a paid mutator transaction binding the contract method 0x3682a450.
 16033  //
 16034  // Solidity: function registerOperator(address _operator) returns()
 16035  func (_BridgeTransferKLAY *BridgeTransferKLAYTransactorSession) RegisterOperator(_operator common.Address) (*types.Transaction, error) {
 16036  	return _BridgeTransferKLAY.Contract.RegisterOperator(&_BridgeTransferKLAY.TransactOpts, _operator)
 16037  }
 16038  
 16039  // RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6.
 16040  //
 16041  // Solidity: function renounceOwnership() returns()
 16042  func (_BridgeTransferKLAY *BridgeTransferKLAYTransactor) RenounceOwnership(opts *bind.TransactOpts) (*types.Transaction, error) {
 16043  	return _BridgeTransferKLAY.contract.Transact(opts, "renounceOwnership")
 16044  }
 16045  
 16046  // RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6.
 16047  //
 16048  // Solidity: function renounceOwnership() returns()
 16049  func (_BridgeTransferKLAY *BridgeTransferKLAYSession) RenounceOwnership() (*types.Transaction, error) {
 16050  	return _BridgeTransferKLAY.Contract.RenounceOwnership(&_BridgeTransferKLAY.TransactOpts)
 16051  }
 16052  
 16053  // RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6.
 16054  //
 16055  // Solidity: function renounceOwnership() returns()
 16056  func (_BridgeTransferKLAY *BridgeTransferKLAYTransactorSession) RenounceOwnership() (*types.Transaction, error) {
 16057  	return _BridgeTransferKLAY.Contract.RenounceOwnership(&_BridgeTransferKLAY.TransactOpts)
 16058  }
 16059  
 16060  // RequestKLAYTransfer is a paid mutator transaction binding the contract method 0x75ebdc09.
 16061  //
 16062  // Solidity: function requestKLAYTransfer(address _to, uint256 _value, bytes _extraData) payable returns()
 16063  func (_BridgeTransferKLAY *BridgeTransferKLAYTransactor) RequestKLAYTransfer(opts *bind.TransactOpts, _to common.Address, _value *big.Int, _extraData []byte) (*types.Transaction, error) {
 16064  	return _BridgeTransferKLAY.contract.Transact(opts, "requestKLAYTransfer", _to, _value, _extraData)
 16065  }
 16066  
 16067  // RequestKLAYTransfer is a paid mutator transaction binding the contract method 0x75ebdc09.
 16068  //
 16069  // Solidity: function requestKLAYTransfer(address _to, uint256 _value, bytes _extraData) payable returns()
 16070  func (_BridgeTransferKLAY *BridgeTransferKLAYSession) RequestKLAYTransfer(_to common.Address, _value *big.Int, _extraData []byte) (*types.Transaction, error) {
 16071  	return _BridgeTransferKLAY.Contract.RequestKLAYTransfer(&_BridgeTransferKLAY.TransactOpts, _to, _value, _extraData)
 16072  }
 16073  
 16074  // RequestKLAYTransfer is a paid mutator transaction binding the contract method 0x75ebdc09.
 16075  //
 16076  // Solidity: function requestKLAYTransfer(address _to, uint256 _value, bytes _extraData) payable returns()
 16077  func (_BridgeTransferKLAY *BridgeTransferKLAYTransactorSession) RequestKLAYTransfer(_to common.Address, _value *big.Int, _extraData []byte) (*types.Transaction, error) {
 16078  	return _BridgeTransferKLAY.Contract.RequestKLAYTransfer(&_BridgeTransferKLAY.TransactOpts, _to, _value, _extraData)
 16079  }
 16080  
 16081  // SetFeeReceiver is a paid mutator transaction binding the contract method 0xefdcd974.
 16082  //
 16083  // Solidity: function setFeeReceiver(address _feeReceiver) returns()
 16084  func (_BridgeTransferKLAY *BridgeTransferKLAYTransactor) SetFeeReceiver(opts *bind.TransactOpts, _feeReceiver common.Address) (*types.Transaction, error) {
 16085  	return _BridgeTransferKLAY.contract.Transact(opts, "setFeeReceiver", _feeReceiver)
 16086  }
 16087  
 16088  // SetFeeReceiver is a paid mutator transaction binding the contract method 0xefdcd974.
 16089  //
 16090  // Solidity: function setFeeReceiver(address _feeReceiver) returns()
 16091  func (_BridgeTransferKLAY *BridgeTransferKLAYSession) SetFeeReceiver(_feeReceiver common.Address) (*types.Transaction, error) {
 16092  	return _BridgeTransferKLAY.Contract.SetFeeReceiver(&_BridgeTransferKLAY.TransactOpts, _feeReceiver)
 16093  }
 16094  
 16095  // SetFeeReceiver is a paid mutator transaction binding the contract method 0xefdcd974.
 16096  //
 16097  // Solidity: function setFeeReceiver(address _feeReceiver) returns()
 16098  func (_BridgeTransferKLAY *BridgeTransferKLAYTransactorSession) SetFeeReceiver(_feeReceiver common.Address) (*types.Transaction, error) {
 16099  	return _BridgeTransferKLAY.Contract.SetFeeReceiver(&_BridgeTransferKLAY.TransactOpts, _feeReceiver)
 16100  }
 16101  
 16102  // SetKLAYFee is a paid mutator transaction binding the contract method 0x1a2ae53e.
 16103  //
 16104  // Solidity: function setKLAYFee(uint256 _fee, uint64 _requestNonce) returns()
 16105  func (_BridgeTransferKLAY *BridgeTransferKLAYTransactor) SetKLAYFee(opts *bind.TransactOpts, _fee *big.Int, _requestNonce uint64) (*types.Transaction, error) {
 16106  	return _BridgeTransferKLAY.contract.Transact(opts, "setKLAYFee", _fee, _requestNonce)
 16107  }
 16108  
 16109  // SetKLAYFee is a paid mutator transaction binding the contract method 0x1a2ae53e.
 16110  //
 16111  // Solidity: function setKLAYFee(uint256 _fee, uint64 _requestNonce) returns()
 16112  func (_BridgeTransferKLAY *BridgeTransferKLAYSession) SetKLAYFee(_fee *big.Int, _requestNonce uint64) (*types.Transaction, error) {
 16113  	return _BridgeTransferKLAY.Contract.SetKLAYFee(&_BridgeTransferKLAY.TransactOpts, _fee, _requestNonce)
 16114  }
 16115  
 16116  // SetKLAYFee is a paid mutator transaction binding the contract method 0x1a2ae53e.
 16117  //
 16118  // Solidity: function setKLAYFee(uint256 _fee, uint64 _requestNonce) returns()
 16119  func (_BridgeTransferKLAY *BridgeTransferKLAYTransactorSession) SetKLAYFee(_fee *big.Int, _requestNonce uint64) (*types.Transaction, error) {
 16120  	return _BridgeTransferKLAY.Contract.SetKLAYFee(&_BridgeTransferKLAY.TransactOpts, _fee, _requestNonce)
 16121  }
 16122  
 16123  // SetOperatorThreshold is a paid mutator transaction binding the contract method 0xee2aec65.
 16124  //
 16125  // Solidity: function setOperatorThreshold(uint8 _voteType, uint8 _threshold) returns()
 16126  func (_BridgeTransferKLAY *BridgeTransferKLAYTransactor) SetOperatorThreshold(opts *bind.TransactOpts, _voteType uint8, _threshold uint8) (*types.Transaction, error) {
 16127  	return _BridgeTransferKLAY.contract.Transact(opts, "setOperatorThreshold", _voteType, _threshold)
 16128  }
 16129  
 16130  // SetOperatorThreshold is a paid mutator transaction binding the contract method 0xee2aec65.
 16131  //
 16132  // Solidity: function setOperatorThreshold(uint8 _voteType, uint8 _threshold) returns()
 16133  func (_BridgeTransferKLAY *BridgeTransferKLAYSession) SetOperatorThreshold(_voteType uint8, _threshold uint8) (*types.Transaction, error) {
 16134  	return _BridgeTransferKLAY.Contract.SetOperatorThreshold(&_BridgeTransferKLAY.TransactOpts, _voteType, _threshold)
 16135  }
 16136  
 16137  // SetOperatorThreshold is a paid mutator transaction binding the contract method 0xee2aec65.
 16138  //
 16139  // Solidity: function setOperatorThreshold(uint8 _voteType, uint8 _threshold) returns()
 16140  func (_BridgeTransferKLAY *BridgeTransferKLAYTransactorSession) SetOperatorThreshold(_voteType uint8, _threshold uint8) (*types.Transaction, error) {
 16141  	return _BridgeTransferKLAY.Contract.SetOperatorThreshold(&_BridgeTransferKLAY.TransactOpts, _voteType, _threshold)
 16142  }
 16143  
 16144  // Start is a paid mutator transaction binding the contract method 0xc877cf37.
 16145  //
 16146  // Solidity: function start(bool _status) returns()
 16147  func (_BridgeTransferKLAY *BridgeTransferKLAYTransactor) Start(opts *bind.TransactOpts, _status bool) (*types.Transaction, error) {
 16148  	return _BridgeTransferKLAY.contract.Transact(opts, "start", _status)
 16149  }
 16150  
 16151  // Start is a paid mutator transaction binding the contract method 0xc877cf37.
 16152  //
 16153  // Solidity: function start(bool _status) returns()
 16154  func (_BridgeTransferKLAY *BridgeTransferKLAYSession) Start(_status bool) (*types.Transaction, error) {
 16155  	return _BridgeTransferKLAY.Contract.Start(&_BridgeTransferKLAY.TransactOpts, _status)
 16156  }
 16157  
 16158  // Start is a paid mutator transaction binding the contract method 0xc877cf37.
 16159  //
 16160  // Solidity: function start(bool _status) returns()
 16161  func (_BridgeTransferKLAY *BridgeTransferKLAYTransactorSession) Start(_status bool) (*types.Transaction, error) {
 16162  	return _BridgeTransferKLAY.Contract.Start(&_BridgeTransferKLAY.TransactOpts, _status)
 16163  }
 16164  
 16165  // TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b.
 16166  //
 16167  // Solidity: function transferOwnership(address newOwner) returns()
 16168  func (_BridgeTransferKLAY *BridgeTransferKLAYTransactor) TransferOwnership(opts *bind.TransactOpts, newOwner common.Address) (*types.Transaction, error) {
 16169  	return _BridgeTransferKLAY.contract.Transact(opts, "transferOwnership", newOwner)
 16170  }
 16171  
 16172  // TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b.
 16173  //
 16174  // Solidity: function transferOwnership(address newOwner) returns()
 16175  func (_BridgeTransferKLAY *BridgeTransferKLAYSession) TransferOwnership(newOwner common.Address) (*types.Transaction, error) {
 16176  	return _BridgeTransferKLAY.Contract.TransferOwnership(&_BridgeTransferKLAY.TransactOpts, newOwner)
 16177  }
 16178  
 16179  // TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b.
 16180  //
 16181  // Solidity: function transferOwnership(address newOwner) returns()
 16182  func (_BridgeTransferKLAY *BridgeTransferKLAYTransactorSession) TransferOwnership(newOwner common.Address) (*types.Transaction, error) {
 16183  	return _BridgeTransferKLAY.Contract.TransferOwnership(&_BridgeTransferKLAY.TransactOpts, newOwner)
 16184  }
 16185  
 16186  // UnlockKLAY is a paid mutator transaction binding the contract method 0x1ebdca38.
 16187  //
 16188  // Solidity: function unlockKLAY() returns()
 16189  func (_BridgeTransferKLAY *BridgeTransferKLAYTransactor) UnlockKLAY(opts *bind.TransactOpts) (*types.Transaction, error) {
 16190  	return _BridgeTransferKLAY.contract.Transact(opts, "unlockKLAY")
 16191  }
 16192  
 16193  // UnlockKLAY is a paid mutator transaction binding the contract method 0x1ebdca38.
 16194  //
 16195  // Solidity: function unlockKLAY() returns()
 16196  func (_BridgeTransferKLAY *BridgeTransferKLAYSession) UnlockKLAY() (*types.Transaction, error) {
 16197  	return _BridgeTransferKLAY.Contract.UnlockKLAY(&_BridgeTransferKLAY.TransactOpts)
 16198  }
 16199  
 16200  // UnlockKLAY is a paid mutator transaction binding the contract method 0x1ebdca38.
 16201  //
 16202  // Solidity: function unlockKLAY() returns()
 16203  func (_BridgeTransferKLAY *BridgeTransferKLAYTransactorSession) UnlockKLAY() (*types.Transaction, error) {
 16204  	return _BridgeTransferKLAY.Contract.UnlockKLAY(&_BridgeTransferKLAY.TransactOpts)
 16205  }
 16206  
 16207  // Fallback is a paid mutator transaction binding the contract fallback function.
 16208  //
 16209  // Solidity: fallback() payable returns()
 16210  func (_BridgeTransferKLAY *BridgeTransferKLAYTransactor) Fallback(opts *bind.TransactOpts, calldata []byte) (*types.Transaction, error) {
 16211  	return _BridgeTransferKLAY.contract.RawTransact(opts, calldata)
 16212  }
 16213  
 16214  // Fallback is a paid mutator transaction binding the contract fallback function.
 16215  //
 16216  // Solidity: fallback() payable returns()
 16217  func (_BridgeTransferKLAY *BridgeTransferKLAYSession) Fallback(calldata []byte) (*types.Transaction, error) {
 16218  	return _BridgeTransferKLAY.Contract.Fallback(&_BridgeTransferKLAY.TransactOpts, calldata)
 16219  }
 16220  
 16221  // Fallback is a paid mutator transaction binding the contract fallback function.
 16222  //
 16223  // Solidity: fallback() payable returns()
 16224  func (_BridgeTransferKLAY *BridgeTransferKLAYTransactorSession) Fallback(calldata []byte) (*types.Transaction, error) {
 16225  	return _BridgeTransferKLAY.Contract.Fallback(&_BridgeTransferKLAY.TransactOpts, calldata)
 16226  }
 16227  
 16228  // BridgeTransferKLAYERC20FeeChangedIterator is returned from FilterERC20FeeChanged and is used to iterate over the raw logs and unpacked data for ERC20FeeChanged events raised by the BridgeTransferKLAY contract.
 16229  type BridgeTransferKLAYERC20FeeChangedIterator struct {
 16230  	Event *BridgeTransferKLAYERC20FeeChanged // Event containing the contract specifics and raw log
 16231  
 16232  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 16233  	event    string              // Event name to use for unpacking event data
 16234  
 16235  	logs chan types.Log      // Log channel receiving the found contract events
 16236  	sub  klaytn.Subscription // Subscription for errors, completion and termination
 16237  	done bool                // Whether the subscription completed delivering logs
 16238  	fail error               // Occurred error to stop iteration
 16239  }
 16240  
 16241  // Next advances the iterator to the subsequent event, returning whether there
 16242  // are any more events found. In case of a retrieval or parsing error, false is
 16243  // returned and Error() can be queried for the exact failure.
 16244  func (it *BridgeTransferKLAYERC20FeeChangedIterator) Next() bool {
 16245  	// If the iterator failed, stop iterating
 16246  	if it.fail != nil {
 16247  		return false
 16248  	}
 16249  	// If the iterator completed, deliver directly whatever's available
 16250  	if it.done {
 16251  		select {
 16252  		case log := <-it.logs:
 16253  			it.Event = new(BridgeTransferKLAYERC20FeeChanged)
 16254  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 16255  				it.fail = err
 16256  				return false
 16257  			}
 16258  			it.Event.Raw = log
 16259  			return true
 16260  
 16261  		default:
 16262  			return false
 16263  		}
 16264  	}
 16265  	// Iterator still in progress, wait for either a data or an error event
 16266  	select {
 16267  	case log := <-it.logs:
 16268  		it.Event = new(BridgeTransferKLAYERC20FeeChanged)
 16269  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 16270  			it.fail = err
 16271  			return false
 16272  		}
 16273  		it.Event.Raw = log
 16274  		return true
 16275  
 16276  	case err := <-it.sub.Err():
 16277  		it.done = true
 16278  		it.fail = err
 16279  		return it.Next()
 16280  	}
 16281  }
 16282  
 16283  // Error returns any retrieval or parsing error occurred during filtering.
 16284  func (it *BridgeTransferKLAYERC20FeeChangedIterator) Error() error {
 16285  	return it.fail
 16286  }
 16287  
 16288  // Close terminates the iteration process, releasing any pending underlying
 16289  // resources.
 16290  func (it *BridgeTransferKLAYERC20FeeChangedIterator) Close() error {
 16291  	it.sub.Unsubscribe()
 16292  	return nil
 16293  }
 16294  
 16295  // BridgeTransferKLAYERC20FeeChanged represents a ERC20FeeChanged event raised by the BridgeTransferKLAY contract.
 16296  type BridgeTransferKLAYERC20FeeChanged struct {
 16297  	Token common.Address
 16298  	Fee   *big.Int
 16299  	Raw   types.Log // Blockchain specific contextual infos
 16300  }
 16301  
 16302  // FilterERC20FeeChanged is a free log retrieval operation binding the contract event 0xdb5ad2e76ae20cfa4e7adbc7305d7538442164d85ead9937c98620a1aa4c255b.
 16303  //
 16304  // Solidity: event ERC20FeeChanged(address indexed token, uint256 indexed fee)
 16305  func (_BridgeTransferKLAY *BridgeTransferKLAYFilterer) FilterERC20FeeChanged(opts *bind.FilterOpts, token []common.Address, fee []*big.Int) (*BridgeTransferKLAYERC20FeeChangedIterator, error) {
 16306  
 16307  	var tokenRule []interface{}
 16308  	for _, tokenItem := range token {
 16309  		tokenRule = append(tokenRule, tokenItem)
 16310  	}
 16311  	var feeRule []interface{}
 16312  	for _, feeItem := range fee {
 16313  		feeRule = append(feeRule, feeItem)
 16314  	}
 16315  
 16316  	logs, sub, err := _BridgeTransferKLAY.contract.FilterLogs(opts, "ERC20FeeChanged", tokenRule, feeRule)
 16317  	if err != nil {
 16318  		return nil, err
 16319  	}
 16320  	return &BridgeTransferKLAYERC20FeeChangedIterator{contract: _BridgeTransferKLAY.contract, event: "ERC20FeeChanged", logs: logs, sub: sub}, nil
 16321  }
 16322  
 16323  // WatchERC20FeeChanged is a free log subscription operation binding the contract event 0xdb5ad2e76ae20cfa4e7adbc7305d7538442164d85ead9937c98620a1aa4c255b.
 16324  //
 16325  // Solidity: event ERC20FeeChanged(address indexed token, uint256 indexed fee)
 16326  func (_BridgeTransferKLAY *BridgeTransferKLAYFilterer) WatchERC20FeeChanged(opts *bind.WatchOpts, sink chan<- *BridgeTransferKLAYERC20FeeChanged, token []common.Address, fee []*big.Int) (event.Subscription, error) {
 16327  
 16328  	var tokenRule []interface{}
 16329  	for _, tokenItem := range token {
 16330  		tokenRule = append(tokenRule, tokenItem)
 16331  	}
 16332  	var feeRule []interface{}
 16333  	for _, feeItem := range fee {
 16334  		feeRule = append(feeRule, feeItem)
 16335  	}
 16336  
 16337  	logs, sub, err := _BridgeTransferKLAY.contract.WatchLogs(opts, "ERC20FeeChanged", tokenRule, feeRule)
 16338  	if err != nil {
 16339  		return nil, err
 16340  	}
 16341  	return event.NewSubscription(func(quit <-chan struct{}) error {
 16342  		defer sub.Unsubscribe()
 16343  		for {
 16344  			select {
 16345  			case log := <-logs:
 16346  				// New log arrived, parse the event and forward to the user
 16347  				event := new(BridgeTransferKLAYERC20FeeChanged)
 16348  				if err := _BridgeTransferKLAY.contract.UnpackLog(event, "ERC20FeeChanged", log); err != nil {
 16349  					return err
 16350  				}
 16351  				event.Raw = log
 16352  
 16353  				select {
 16354  				case sink <- event:
 16355  				case err := <-sub.Err():
 16356  					return err
 16357  				case <-quit:
 16358  					return nil
 16359  				}
 16360  			case err := <-sub.Err():
 16361  				return err
 16362  			case <-quit:
 16363  				return nil
 16364  			}
 16365  		}
 16366  	}), nil
 16367  }
 16368  
 16369  // ParseERC20FeeChanged is a log parse operation binding the contract event 0xdb5ad2e76ae20cfa4e7adbc7305d7538442164d85ead9937c98620a1aa4c255b.
 16370  //
 16371  // Solidity: event ERC20FeeChanged(address indexed token, uint256 indexed fee)
 16372  func (_BridgeTransferKLAY *BridgeTransferKLAYFilterer) ParseERC20FeeChanged(log types.Log) (*BridgeTransferKLAYERC20FeeChanged, error) {
 16373  	event := new(BridgeTransferKLAYERC20FeeChanged)
 16374  	if err := _BridgeTransferKLAY.contract.UnpackLog(event, "ERC20FeeChanged", log); err != nil {
 16375  		return nil, err
 16376  	}
 16377  	return event, nil
 16378  }
 16379  
 16380  // BridgeTransferKLAYFeeReceiverChangedIterator is returned from FilterFeeReceiverChanged and is used to iterate over the raw logs and unpacked data for FeeReceiverChanged events raised by the BridgeTransferKLAY contract.
 16381  type BridgeTransferKLAYFeeReceiverChangedIterator struct {
 16382  	Event *BridgeTransferKLAYFeeReceiverChanged // Event containing the contract specifics and raw log
 16383  
 16384  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 16385  	event    string              // Event name to use for unpacking event data
 16386  
 16387  	logs chan types.Log      // Log channel receiving the found contract events
 16388  	sub  klaytn.Subscription // Subscription for errors, completion and termination
 16389  	done bool                // Whether the subscription completed delivering logs
 16390  	fail error               // Occurred error to stop iteration
 16391  }
 16392  
 16393  // Next advances the iterator to the subsequent event, returning whether there
 16394  // are any more events found. In case of a retrieval or parsing error, false is
 16395  // returned and Error() can be queried for the exact failure.
 16396  func (it *BridgeTransferKLAYFeeReceiverChangedIterator) Next() bool {
 16397  	// If the iterator failed, stop iterating
 16398  	if it.fail != nil {
 16399  		return false
 16400  	}
 16401  	// If the iterator completed, deliver directly whatever's available
 16402  	if it.done {
 16403  		select {
 16404  		case log := <-it.logs:
 16405  			it.Event = new(BridgeTransferKLAYFeeReceiverChanged)
 16406  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 16407  				it.fail = err
 16408  				return false
 16409  			}
 16410  			it.Event.Raw = log
 16411  			return true
 16412  
 16413  		default:
 16414  			return false
 16415  		}
 16416  	}
 16417  	// Iterator still in progress, wait for either a data or an error event
 16418  	select {
 16419  	case log := <-it.logs:
 16420  		it.Event = new(BridgeTransferKLAYFeeReceiverChanged)
 16421  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 16422  			it.fail = err
 16423  			return false
 16424  		}
 16425  		it.Event.Raw = log
 16426  		return true
 16427  
 16428  	case err := <-it.sub.Err():
 16429  		it.done = true
 16430  		it.fail = err
 16431  		return it.Next()
 16432  	}
 16433  }
 16434  
 16435  // Error returns any retrieval or parsing error occurred during filtering.
 16436  func (it *BridgeTransferKLAYFeeReceiverChangedIterator) Error() error {
 16437  	return it.fail
 16438  }
 16439  
 16440  // Close terminates the iteration process, releasing any pending underlying
 16441  // resources.
 16442  func (it *BridgeTransferKLAYFeeReceiverChangedIterator) Close() error {
 16443  	it.sub.Unsubscribe()
 16444  	return nil
 16445  }
 16446  
 16447  // BridgeTransferKLAYFeeReceiverChanged represents a FeeReceiverChanged event raised by the BridgeTransferKLAY contract.
 16448  type BridgeTransferKLAYFeeReceiverChanged struct {
 16449  	FeeReceiver common.Address
 16450  	Raw         types.Log // Blockchain specific contextual infos
 16451  }
 16452  
 16453  // FilterFeeReceiverChanged is a free log retrieval operation binding the contract event 0x647672599d3468abcfa241a13c9e3d34383caadb5cc80fb67c3cdfcd5f786059.
 16454  //
 16455  // Solidity: event FeeReceiverChanged(address indexed feeReceiver)
 16456  func (_BridgeTransferKLAY *BridgeTransferKLAYFilterer) FilterFeeReceiverChanged(opts *bind.FilterOpts, feeReceiver []common.Address) (*BridgeTransferKLAYFeeReceiverChangedIterator, error) {
 16457  
 16458  	var feeReceiverRule []interface{}
 16459  	for _, feeReceiverItem := range feeReceiver {
 16460  		feeReceiverRule = append(feeReceiverRule, feeReceiverItem)
 16461  	}
 16462  
 16463  	logs, sub, err := _BridgeTransferKLAY.contract.FilterLogs(opts, "FeeReceiverChanged", feeReceiverRule)
 16464  	if err != nil {
 16465  		return nil, err
 16466  	}
 16467  	return &BridgeTransferKLAYFeeReceiverChangedIterator{contract: _BridgeTransferKLAY.contract, event: "FeeReceiverChanged", logs: logs, sub: sub}, nil
 16468  }
 16469  
 16470  // WatchFeeReceiverChanged is a free log subscription operation binding the contract event 0x647672599d3468abcfa241a13c9e3d34383caadb5cc80fb67c3cdfcd5f786059.
 16471  //
 16472  // Solidity: event FeeReceiverChanged(address indexed feeReceiver)
 16473  func (_BridgeTransferKLAY *BridgeTransferKLAYFilterer) WatchFeeReceiverChanged(opts *bind.WatchOpts, sink chan<- *BridgeTransferKLAYFeeReceiverChanged, feeReceiver []common.Address) (event.Subscription, error) {
 16474  
 16475  	var feeReceiverRule []interface{}
 16476  	for _, feeReceiverItem := range feeReceiver {
 16477  		feeReceiverRule = append(feeReceiverRule, feeReceiverItem)
 16478  	}
 16479  
 16480  	logs, sub, err := _BridgeTransferKLAY.contract.WatchLogs(opts, "FeeReceiverChanged", feeReceiverRule)
 16481  	if err != nil {
 16482  		return nil, err
 16483  	}
 16484  	return event.NewSubscription(func(quit <-chan struct{}) error {
 16485  		defer sub.Unsubscribe()
 16486  		for {
 16487  			select {
 16488  			case log := <-logs:
 16489  				// New log arrived, parse the event and forward to the user
 16490  				event := new(BridgeTransferKLAYFeeReceiverChanged)
 16491  				if err := _BridgeTransferKLAY.contract.UnpackLog(event, "FeeReceiverChanged", log); err != nil {
 16492  					return err
 16493  				}
 16494  				event.Raw = log
 16495  
 16496  				select {
 16497  				case sink <- event:
 16498  				case err := <-sub.Err():
 16499  					return err
 16500  				case <-quit:
 16501  					return nil
 16502  				}
 16503  			case err := <-sub.Err():
 16504  				return err
 16505  			case <-quit:
 16506  				return nil
 16507  			}
 16508  		}
 16509  	}), nil
 16510  }
 16511  
 16512  // ParseFeeReceiverChanged is a log parse operation binding the contract event 0x647672599d3468abcfa241a13c9e3d34383caadb5cc80fb67c3cdfcd5f786059.
 16513  //
 16514  // Solidity: event FeeReceiverChanged(address indexed feeReceiver)
 16515  func (_BridgeTransferKLAY *BridgeTransferKLAYFilterer) ParseFeeReceiverChanged(log types.Log) (*BridgeTransferKLAYFeeReceiverChanged, error) {
 16516  	event := new(BridgeTransferKLAYFeeReceiverChanged)
 16517  	if err := _BridgeTransferKLAY.contract.UnpackLog(event, "FeeReceiverChanged", log); err != nil {
 16518  		return nil, err
 16519  	}
 16520  	return event, nil
 16521  }
 16522  
 16523  // BridgeTransferKLAYHandleValueTransferIterator is returned from FilterHandleValueTransfer and is used to iterate over the raw logs and unpacked data for HandleValueTransfer events raised by the BridgeTransferKLAY contract.
 16524  type BridgeTransferKLAYHandleValueTransferIterator struct {
 16525  	Event *BridgeTransferKLAYHandleValueTransfer // Event containing the contract specifics and raw log
 16526  
 16527  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 16528  	event    string              // Event name to use for unpacking event data
 16529  
 16530  	logs chan types.Log      // Log channel receiving the found contract events
 16531  	sub  klaytn.Subscription // Subscription for errors, completion and termination
 16532  	done bool                // Whether the subscription completed delivering logs
 16533  	fail error               // Occurred error to stop iteration
 16534  }
 16535  
 16536  // Next advances the iterator to the subsequent event, returning whether there
 16537  // are any more events found. In case of a retrieval or parsing error, false is
 16538  // returned and Error() can be queried for the exact failure.
 16539  func (it *BridgeTransferKLAYHandleValueTransferIterator) Next() bool {
 16540  	// If the iterator failed, stop iterating
 16541  	if it.fail != nil {
 16542  		return false
 16543  	}
 16544  	// If the iterator completed, deliver directly whatever's available
 16545  	if it.done {
 16546  		select {
 16547  		case log := <-it.logs:
 16548  			it.Event = new(BridgeTransferKLAYHandleValueTransfer)
 16549  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 16550  				it.fail = err
 16551  				return false
 16552  			}
 16553  			it.Event.Raw = log
 16554  			return true
 16555  
 16556  		default:
 16557  			return false
 16558  		}
 16559  	}
 16560  	// Iterator still in progress, wait for either a data or an error event
 16561  	select {
 16562  	case log := <-it.logs:
 16563  		it.Event = new(BridgeTransferKLAYHandleValueTransfer)
 16564  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 16565  			it.fail = err
 16566  			return false
 16567  		}
 16568  		it.Event.Raw = log
 16569  		return true
 16570  
 16571  	case err := <-it.sub.Err():
 16572  		it.done = true
 16573  		it.fail = err
 16574  		return it.Next()
 16575  	}
 16576  }
 16577  
 16578  // Error returns any retrieval or parsing error occurred during filtering.
 16579  func (it *BridgeTransferKLAYHandleValueTransferIterator) Error() error {
 16580  	return it.fail
 16581  }
 16582  
 16583  // Close terminates the iteration process, releasing any pending underlying
 16584  // resources.
 16585  func (it *BridgeTransferKLAYHandleValueTransferIterator) Close() error {
 16586  	it.sub.Unsubscribe()
 16587  	return nil
 16588  }
 16589  
 16590  // BridgeTransferKLAYHandleValueTransfer represents a HandleValueTransfer event raised by the BridgeTransferKLAY contract.
 16591  type BridgeTransferKLAYHandleValueTransfer struct {
 16592  	RequestTxHash    [32]byte
 16593  	TokenType        uint8
 16594  	From             common.Address
 16595  	To               common.Address
 16596  	TokenAddress     common.Address
 16597  	ValueOrTokenId   *big.Int
 16598  	HandleNonce      uint64
 16599  	LowerHandleNonce uint64
 16600  	ExtraData        []byte
 16601  	Raw              types.Log // Blockchain specific contextual infos
 16602  }
 16603  
 16604  // FilterHandleValueTransfer is a free log retrieval operation binding the contract event 0x12b02f226d965a2881e0e8ffed6c421803a22d57ad91f9ef996fe0748ea10175.
 16605  //
 16606  // Solidity: event HandleValueTransfer(bytes32 requestTxHash, uint8 tokenType, address indexed from, address indexed to, address indexed tokenAddress, uint256 valueOrTokenId, uint64 handleNonce, uint64 lowerHandleNonce, bytes extraData)
 16607  func (_BridgeTransferKLAY *BridgeTransferKLAYFilterer) FilterHandleValueTransfer(opts *bind.FilterOpts, from []common.Address, to []common.Address, tokenAddress []common.Address) (*BridgeTransferKLAYHandleValueTransferIterator, error) {
 16608  
 16609  	var fromRule []interface{}
 16610  	for _, fromItem := range from {
 16611  		fromRule = append(fromRule, fromItem)
 16612  	}
 16613  	var toRule []interface{}
 16614  	for _, toItem := range to {
 16615  		toRule = append(toRule, toItem)
 16616  	}
 16617  	var tokenAddressRule []interface{}
 16618  	for _, tokenAddressItem := range tokenAddress {
 16619  		tokenAddressRule = append(tokenAddressRule, tokenAddressItem)
 16620  	}
 16621  
 16622  	logs, sub, err := _BridgeTransferKLAY.contract.FilterLogs(opts, "HandleValueTransfer", fromRule, toRule, tokenAddressRule)
 16623  	if err != nil {
 16624  		return nil, err
 16625  	}
 16626  	return &BridgeTransferKLAYHandleValueTransferIterator{contract: _BridgeTransferKLAY.contract, event: "HandleValueTransfer", logs: logs, sub: sub}, nil
 16627  }
 16628  
 16629  // WatchHandleValueTransfer is a free log subscription operation binding the contract event 0x12b02f226d965a2881e0e8ffed6c421803a22d57ad91f9ef996fe0748ea10175.
 16630  //
 16631  // Solidity: event HandleValueTransfer(bytes32 requestTxHash, uint8 tokenType, address indexed from, address indexed to, address indexed tokenAddress, uint256 valueOrTokenId, uint64 handleNonce, uint64 lowerHandleNonce, bytes extraData)
 16632  func (_BridgeTransferKLAY *BridgeTransferKLAYFilterer) WatchHandleValueTransfer(opts *bind.WatchOpts, sink chan<- *BridgeTransferKLAYHandleValueTransfer, from []common.Address, to []common.Address, tokenAddress []common.Address) (event.Subscription, error) {
 16633  
 16634  	var fromRule []interface{}
 16635  	for _, fromItem := range from {
 16636  		fromRule = append(fromRule, fromItem)
 16637  	}
 16638  	var toRule []interface{}
 16639  	for _, toItem := range to {
 16640  		toRule = append(toRule, toItem)
 16641  	}
 16642  	var tokenAddressRule []interface{}
 16643  	for _, tokenAddressItem := range tokenAddress {
 16644  		tokenAddressRule = append(tokenAddressRule, tokenAddressItem)
 16645  	}
 16646  
 16647  	logs, sub, err := _BridgeTransferKLAY.contract.WatchLogs(opts, "HandleValueTransfer", fromRule, toRule, tokenAddressRule)
 16648  	if err != nil {
 16649  		return nil, err
 16650  	}
 16651  	return event.NewSubscription(func(quit <-chan struct{}) error {
 16652  		defer sub.Unsubscribe()
 16653  		for {
 16654  			select {
 16655  			case log := <-logs:
 16656  				// New log arrived, parse the event and forward to the user
 16657  				event := new(BridgeTransferKLAYHandleValueTransfer)
 16658  				if err := _BridgeTransferKLAY.contract.UnpackLog(event, "HandleValueTransfer", log); err != nil {
 16659  					return err
 16660  				}
 16661  				event.Raw = log
 16662  
 16663  				select {
 16664  				case sink <- event:
 16665  				case err := <-sub.Err():
 16666  					return err
 16667  				case <-quit:
 16668  					return nil
 16669  				}
 16670  			case err := <-sub.Err():
 16671  				return err
 16672  			case <-quit:
 16673  				return nil
 16674  			}
 16675  		}
 16676  	}), nil
 16677  }
 16678  
 16679  // ParseHandleValueTransfer is a log parse operation binding the contract event 0x12b02f226d965a2881e0e8ffed6c421803a22d57ad91f9ef996fe0748ea10175.
 16680  //
 16681  // Solidity: event HandleValueTransfer(bytes32 requestTxHash, uint8 tokenType, address indexed from, address indexed to, address indexed tokenAddress, uint256 valueOrTokenId, uint64 handleNonce, uint64 lowerHandleNonce, bytes extraData)
 16682  func (_BridgeTransferKLAY *BridgeTransferKLAYFilterer) ParseHandleValueTransfer(log types.Log) (*BridgeTransferKLAYHandleValueTransfer, error) {
 16683  	event := new(BridgeTransferKLAYHandleValueTransfer)
 16684  	if err := _BridgeTransferKLAY.contract.UnpackLog(event, "HandleValueTransfer", log); err != nil {
 16685  		return nil, err
 16686  	}
 16687  	return event, nil
 16688  }
 16689  
 16690  // BridgeTransferKLAYKLAYFeeChangedIterator is returned from FilterKLAYFeeChanged and is used to iterate over the raw logs and unpacked data for KLAYFeeChanged events raised by the BridgeTransferKLAY contract.
 16691  type BridgeTransferKLAYKLAYFeeChangedIterator struct {
 16692  	Event *BridgeTransferKLAYKLAYFeeChanged // Event containing the contract specifics and raw log
 16693  
 16694  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 16695  	event    string              // Event name to use for unpacking event data
 16696  
 16697  	logs chan types.Log      // Log channel receiving the found contract events
 16698  	sub  klaytn.Subscription // Subscription for errors, completion and termination
 16699  	done bool                // Whether the subscription completed delivering logs
 16700  	fail error               // Occurred error to stop iteration
 16701  }
 16702  
 16703  // Next advances the iterator to the subsequent event, returning whether there
 16704  // are any more events found. In case of a retrieval or parsing error, false is
 16705  // returned and Error() can be queried for the exact failure.
 16706  func (it *BridgeTransferKLAYKLAYFeeChangedIterator) Next() bool {
 16707  	// If the iterator failed, stop iterating
 16708  	if it.fail != nil {
 16709  		return false
 16710  	}
 16711  	// If the iterator completed, deliver directly whatever's available
 16712  	if it.done {
 16713  		select {
 16714  		case log := <-it.logs:
 16715  			it.Event = new(BridgeTransferKLAYKLAYFeeChanged)
 16716  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 16717  				it.fail = err
 16718  				return false
 16719  			}
 16720  			it.Event.Raw = log
 16721  			return true
 16722  
 16723  		default:
 16724  			return false
 16725  		}
 16726  	}
 16727  	// Iterator still in progress, wait for either a data or an error event
 16728  	select {
 16729  	case log := <-it.logs:
 16730  		it.Event = new(BridgeTransferKLAYKLAYFeeChanged)
 16731  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 16732  			it.fail = err
 16733  			return false
 16734  		}
 16735  		it.Event.Raw = log
 16736  		return true
 16737  
 16738  	case err := <-it.sub.Err():
 16739  		it.done = true
 16740  		it.fail = err
 16741  		return it.Next()
 16742  	}
 16743  }
 16744  
 16745  // Error returns any retrieval or parsing error occurred during filtering.
 16746  func (it *BridgeTransferKLAYKLAYFeeChangedIterator) Error() error {
 16747  	return it.fail
 16748  }
 16749  
 16750  // Close terminates the iteration process, releasing any pending underlying
 16751  // resources.
 16752  func (it *BridgeTransferKLAYKLAYFeeChangedIterator) Close() error {
 16753  	it.sub.Unsubscribe()
 16754  	return nil
 16755  }
 16756  
 16757  // BridgeTransferKLAYKLAYFeeChanged represents a KLAYFeeChanged event raised by the BridgeTransferKLAY contract.
 16758  type BridgeTransferKLAYKLAYFeeChanged struct {
 16759  	Fee *big.Int
 16760  	Raw types.Log // Blockchain specific contextual infos
 16761  }
 16762  
 16763  // FilterKLAYFeeChanged is a free log retrieval operation binding the contract event 0xa7a33d0996347e1aa55ca2206015b61b9534bdd881d59d59aa680e25eefac365.
 16764  //
 16765  // Solidity: event KLAYFeeChanged(uint256 indexed fee)
 16766  func (_BridgeTransferKLAY *BridgeTransferKLAYFilterer) FilterKLAYFeeChanged(opts *bind.FilterOpts, fee []*big.Int) (*BridgeTransferKLAYKLAYFeeChangedIterator, error) {
 16767  
 16768  	var feeRule []interface{}
 16769  	for _, feeItem := range fee {
 16770  		feeRule = append(feeRule, feeItem)
 16771  	}
 16772  
 16773  	logs, sub, err := _BridgeTransferKLAY.contract.FilterLogs(opts, "KLAYFeeChanged", feeRule)
 16774  	if err != nil {
 16775  		return nil, err
 16776  	}
 16777  	return &BridgeTransferKLAYKLAYFeeChangedIterator{contract: _BridgeTransferKLAY.contract, event: "KLAYFeeChanged", logs: logs, sub: sub}, nil
 16778  }
 16779  
 16780  // WatchKLAYFeeChanged is a free log subscription operation binding the contract event 0xa7a33d0996347e1aa55ca2206015b61b9534bdd881d59d59aa680e25eefac365.
 16781  //
 16782  // Solidity: event KLAYFeeChanged(uint256 indexed fee)
 16783  func (_BridgeTransferKLAY *BridgeTransferKLAYFilterer) WatchKLAYFeeChanged(opts *bind.WatchOpts, sink chan<- *BridgeTransferKLAYKLAYFeeChanged, fee []*big.Int) (event.Subscription, error) {
 16784  
 16785  	var feeRule []interface{}
 16786  	for _, feeItem := range fee {
 16787  		feeRule = append(feeRule, feeItem)
 16788  	}
 16789  
 16790  	logs, sub, err := _BridgeTransferKLAY.contract.WatchLogs(opts, "KLAYFeeChanged", feeRule)
 16791  	if err != nil {
 16792  		return nil, err
 16793  	}
 16794  	return event.NewSubscription(func(quit <-chan struct{}) error {
 16795  		defer sub.Unsubscribe()
 16796  		for {
 16797  			select {
 16798  			case log := <-logs:
 16799  				// New log arrived, parse the event and forward to the user
 16800  				event := new(BridgeTransferKLAYKLAYFeeChanged)
 16801  				if err := _BridgeTransferKLAY.contract.UnpackLog(event, "KLAYFeeChanged", log); err != nil {
 16802  					return err
 16803  				}
 16804  				event.Raw = log
 16805  
 16806  				select {
 16807  				case sink <- event:
 16808  				case err := <-sub.Err():
 16809  					return err
 16810  				case <-quit:
 16811  					return nil
 16812  				}
 16813  			case err := <-sub.Err():
 16814  				return err
 16815  			case <-quit:
 16816  				return nil
 16817  			}
 16818  		}
 16819  	}), nil
 16820  }
 16821  
 16822  // ParseKLAYFeeChanged is a log parse operation binding the contract event 0xa7a33d0996347e1aa55ca2206015b61b9534bdd881d59d59aa680e25eefac365.
 16823  //
 16824  // Solidity: event KLAYFeeChanged(uint256 indexed fee)
 16825  func (_BridgeTransferKLAY *BridgeTransferKLAYFilterer) ParseKLAYFeeChanged(log types.Log) (*BridgeTransferKLAYKLAYFeeChanged, error) {
 16826  	event := new(BridgeTransferKLAYKLAYFeeChanged)
 16827  	if err := _BridgeTransferKLAY.contract.UnpackLog(event, "KLAYFeeChanged", log); err != nil {
 16828  		return nil, err
 16829  	}
 16830  	return event, nil
 16831  }
 16832  
 16833  // BridgeTransferKLAYKLAYLockedIterator is returned from FilterKLAYLocked and is used to iterate over the raw logs and unpacked data for KLAYLocked events raised by the BridgeTransferKLAY contract.
 16834  type BridgeTransferKLAYKLAYLockedIterator struct {
 16835  	Event *BridgeTransferKLAYKLAYLocked // Event containing the contract specifics and raw log
 16836  
 16837  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 16838  	event    string              // Event name to use for unpacking event data
 16839  
 16840  	logs chan types.Log      // Log channel receiving the found contract events
 16841  	sub  klaytn.Subscription // Subscription for errors, completion and termination
 16842  	done bool                // Whether the subscription completed delivering logs
 16843  	fail error               // Occurred error to stop iteration
 16844  }
 16845  
 16846  // Next advances the iterator to the subsequent event, returning whether there
 16847  // are any more events found. In case of a retrieval or parsing error, false is
 16848  // returned and Error() can be queried for the exact failure.
 16849  func (it *BridgeTransferKLAYKLAYLockedIterator) Next() bool {
 16850  	// If the iterator failed, stop iterating
 16851  	if it.fail != nil {
 16852  		return false
 16853  	}
 16854  	// If the iterator completed, deliver directly whatever's available
 16855  	if it.done {
 16856  		select {
 16857  		case log := <-it.logs:
 16858  			it.Event = new(BridgeTransferKLAYKLAYLocked)
 16859  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 16860  				it.fail = err
 16861  				return false
 16862  			}
 16863  			it.Event.Raw = log
 16864  			return true
 16865  
 16866  		default:
 16867  			return false
 16868  		}
 16869  	}
 16870  	// Iterator still in progress, wait for either a data or an error event
 16871  	select {
 16872  	case log := <-it.logs:
 16873  		it.Event = new(BridgeTransferKLAYKLAYLocked)
 16874  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 16875  			it.fail = err
 16876  			return false
 16877  		}
 16878  		it.Event.Raw = log
 16879  		return true
 16880  
 16881  	case err := <-it.sub.Err():
 16882  		it.done = true
 16883  		it.fail = err
 16884  		return it.Next()
 16885  	}
 16886  }
 16887  
 16888  // Error returns any retrieval or parsing error occurred during filtering.
 16889  func (it *BridgeTransferKLAYKLAYLockedIterator) Error() error {
 16890  	return it.fail
 16891  }
 16892  
 16893  // Close terminates the iteration process, releasing any pending underlying
 16894  // resources.
 16895  func (it *BridgeTransferKLAYKLAYLockedIterator) Close() error {
 16896  	it.sub.Unsubscribe()
 16897  	return nil
 16898  }
 16899  
 16900  // BridgeTransferKLAYKLAYLocked represents a KLAYLocked event raised by the BridgeTransferKLAY contract.
 16901  type BridgeTransferKLAYKLAYLocked struct {
 16902  	Raw types.Log // Blockchain specific contextual infos
 16903  }
 16904  
 16905  // FilterKLAYLocked is a free log retrieval operation binding the contract event 0x915f3053cbc6842207cd97b68c0b585109b4f2fe61c5dbeb25d7678bfdfb8dfa.
 16906  //
 16907  // Solidity: event KLAYLocked()
 16908  func (_BridgeTransferKLAY *BridgeTransferKLAYFilterer) FilterKLAYLocked(opts *bind.FilterOpts) (*BridgeTransferKLAYKLAYLockedIterator, error) {
 16909  
 16910  	logs, sub, err := _BridgeTransferKLAY.contract.FilterLogs(opts, "KLAYLocked")
 16911  	if err != nil {
 16912  		return nil, err
 16913  	}
 16914  	return &BridgeTransferKLAYKLAYLockedIterator{contract: _BridgeTransferKLAY.contract, event: "KLAYLocked", logs: logs, sub: sub}, nil
 16915  }
 16916  
 16917  // WatchKLAYLocked is a free log subscription operation binding the contract event 0x915f3053cbc6842207cd97b68c0b585109b4f2fe61c5dbeb25d7678bfdfb8dfa.
 16918  //
 16919  // Solidity: event KLAYLocked()
 16920  func (_BridgeTransferKLAY *BridgeTransferKLAYFilterer) WatchKLAYLocked(opts *bind.WatchOpts, sink chan<- *BridgeTransferKLAYKLAYLocked) (event.Subscription, error) {
 16921  
 16922  	logs, sub, err := _BridgeTransferKLAY.contract.WatchLogs(opts, "KLAYLocked")
 16923  	if err != nil {
 16924  		return nil, err
 16925  	}
 16926  	return event.NewSubscription(func(quit <-chan struct{}) error {
 16927  		defer sub.Unsubscribe()
 16928  		for {
 16929  			select {
 16930  			case log := <-logs:
 16931  				// New log arrived, parse the event and forward to the user
 16932  				event := new(BridgeTransferKLAYKLAYLocked)
 16933  				if err := _BridgeTransferKLAY.contract.UnpackLog(event, "KLAYLocked", log); err != nil {
 16934  					return err
 16935  				}
 16936  				event.Raw = log
 16937  
 16938  				select {
 16939  				case sink <- event:
 16940  				case err := <-sub.Err():
 16941  					return err
 16942  				case <-quit:
 16943  					return nil
 16944  				}
 16945  			case err := <-sub.Err():
 16946  				return err
 16947  			case <-quit:
 16948  				return nil
 16949  			}
 16950  		}
 16951  	}), nil
 16952  }
 16953  
 16954  // ParseKLAYLocked is a log parse operation binding the contract event 0x915f3053cbc6842207cd97b68c0b585109b4f2fe61c5dbeb25d7678bfdfb8dfa.
 16955  //
 16956  // Solidity: event KLAYLocked()
 16957  func (_BridgeTransferKLAY *BridgeTransferKLAYFilterer) ParseKLAYLocked(log types.Log) (*BridgeTransferKLAYKLAYLocked, error) {
 16958  	event := new(BridgeTransferKLAYKLAYLocked)
 16959  	if err := _BridgeTransferKLAY.contract.UnpackLog(event, "KLAYLocked", log); err != nil {
 16960  		return nil, err
 16961  	}
 16962  	return event, nil
 16963  }
 16964  
 16965  // BridgeTransferKLAYKLAYUnlockedIterator is returned from FilterKLAYUnlocked and is used to iterate over the raw logs and unpacked data for KLAYUnlocked events raised by the BridgeTransferKLAY contract.
 16966  type BridgeTransferKLAYKLAYUnlockedIterator struct {
 16967  	Event *BridgeTransferKLAYKLAYUnlocked // Event containing the contract specifics and raw log
 16968  
 16969  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 16970  	event    string              // Event name to use for unpacking event data
 16971  
 16972  	logs chan types.Log      // Log channel receiving the found contract events
 16973  	sub  klaytn.Subscription // Subscription for errors, completion and termination
 16974  	done bool                // Whether the subscription completed delivering logs
 16975  	fail error               // Occurred error to stop iteration
 16976  }
 16977  
 16978  // Next advances the iterator to the subsequent event, returning whether there
 16979  // are any more events found. In case of a retrieval or parsing error, false is
 16980  // returned and Error() can be queried for the exact failure.
 16981  func (it *BridgeTransferKLAYKLAYUnlockedIterator) Next() bool {
 16982  	// If the iterator failed, stop iterating
 16983  	if it.fail != nil {
 16984  		return false
 16985  	}
 16986  	// If the iterator completed, deliver directly whatever's available
 16987  	if it.done {
 16988  		select {
 16989  		case log := <-it.logs:
 16990  			it.Event = new(BridgeTransferKLAYKLAYUnlocked)
 16991  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 16992  				it.fail = err
 16993  				return false
 16994  			}
 16995  			it.Event.Raw = log
 16996  			return true
 16997  
 16998  		default:
 16999  			return false
 17000  		}
 17001  	}
 17002  	// Iterator still in progress, wait for either a data or an error event
 17003  	select {
 17004  	case log := <-it.logs:
 17005  		it.Event = new(BridgeTransferKLAYKLAYUnlocked)
 17006  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 17007  			it.fail = err
 17008  			return false
 17009  		}
 17010  		it.Event.Raw = log
 17011  		return true
 17012  
 17013  	case err := <-it.sub.Err():
 17014  		it.done = true
 17015  		it.fail = err
 17016  		return it.Next()
 17017  	}
 17018  }
 17019  
 17020  // Error returns any retrieval or parsing error occurred during filtering.
 17021  func (it *BridgeTransferKLAYKLAYUnlockedIterator) Error() error {
 17022  	return it.fail
 17023  }
 17024  
 17025  // Close terminates the iteration process, releasing any pending underlying
 17026  // resources.
 17027  func (it *BridgeTransferKLAYKLAYUnlockedIterator) Close() error {
 17028  	it.sub.Unsubscribe()
 17029  	return nil
 17030  }
 17031  
 17032  // BridgeTransferKLAYKLAYUnlocked represents a KLAYUnlocked event raised by the BridgeTransferKLAY contract.
 17033  type BridgeTransferKLAYKLAYUnlocked struct {
 17034  	Raw types.Log // Blockchain specific contextual infos
 17035  }
 17036  
 17037  // FilterKLAYUnlocked is a free log retrieval operation binding the contract event 0xd20610c9b78a6903ef134539e3deb5d243be461de6ef12d4c29536bb9b54fa1b.
 17038  //
 17039  // Solidity: event KLAYUnlocked()
 17040  func (_BridgeTransferKLAY *BridgeTransferKLAYFilterer) FilterKLAYUnlocked(opts *bind.FilterOpts) (*BridgeTransferKLAYKLAYUnlockedIterator, error) {
 17041  
 17042  	logs, sub, err := _BridgeTransferKLAY.contract.FilterLogs(opts, "KLAYUnlocked")
 17043  	if err != nil {
 17044  		return nil, err
 17045  	}
 17046  	return &BridgeTransferKLAYKLAYUnlockedIterator{contract: _BridgeTransferKLAY.contract, event: "KLAYUnlocked", logs: logs, sub: sub}, nil
 17047  }
 17048  
 17049  // WatchKLAYUnlocked is a free log subscription operation binding the contract event 0xd20610c9b78a6903ef134539e3deb5d243be461de6ef12d4c29536bb9b54fa1b.
 17050  //
 17051  // Solidity: event KLAYUnlocked()
 17052  func (_BridgeTransferKLAY *BridgeTransferKLAYFilterer) WatchKLAYUnlocked(opts *bind.WatchOpts, sink chan<- *BridgeTransferKLAYKLAYUnlocked) (event.Subscription, error) {
 17053  
 17054  	logs, sub, err := _BridgeTransferKLAY.contract.WatchLogs(opts, "KLAYUnlocked")
 17055  	if err != nil {
 17056  		return nil, err
 17057  	}
 17058  	return event.NewSubscription(func(quit <-chan struct{}) error {
 17059  		defer sub.Unsubscribe()
 17060  		for {
 17061  			select {
 17062  			case log := <-logs:
 17063  				// New log arrived, parse the event and forward to the user
 17064  				event := new(BridgeTransferKLAYKLAYUnlocked)
 17065  				if err := _BridgeTransferKLAY.contract.UnpackLog(event, "KLAYUnlocked", log); err != nil {
 17066  					return err
 17067  				}
 17068  				event.Raw = log
 17069  
 17070  				select {
 17071  				case sink <- event:
 17072  				case err := <-sub.Err():
 17073  					return err
 17074  				case <-quit:
 17075  					return nil
 17076  				}
 17077  			case err := <-sub.Err():
 17078  				return err
 17079  			case <-quit:
 17080  				return nil
 17081  			}
 17082  		}
 17083  	}), nil
 17084  }
 17085  
 17086  // ParseKLAYUnlocked is a log parse operation binding the contract event 0xd20610c9b78a6903ef134539e3deb5d243be461de6ef12d4c29536bb9b54fa1b.
 17087  //
 17088  // Solidity: event KLAYUnlocked()
 17089  func (_BridgeTransferKLAY *BridgeTransferKLAYFilterer) ParseKLAYUnlocked(log types.Log) (*BridgeTransferKLAYKLAYUnlocked, error) {
 17090  	event := new(BridgeTransferKLAYKLAYUnlocked)
 17091  	if err := _BridgeTransferKLAY.contract.UnpackLog(event, "KLAYUnlocked", log); err != nil {
 17092  		return nil, err
 17093  	}
 17094  	return event, nil
 17095  }
 17096  
 17097  // BridgeTransferKLAYOwnershipTransferredIterator is returned from FilterOwnershipTransferred and is used to iterate over the raw logs and unpacked data for OwnershipTransferred events raised by the BridgeTransferKLAY contract.
 17098  type BridgeTransferKLAYOwnershipTransferredIterator struct {
 17099  	Event *BridgeTransferKLAYOwnershipTransferred // Event containing the contract specifics and raw log
 17100  
 17101  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 17102  	event    string              // Event name to use for unpacking event data
 17103  
 17104  	logs chan types.Log      // Log channel receiving the found contract events
 17105  	sub  klaytn.Subscription // Subscription for errors, completion and termination
 17106  	done bool                // Whether the subscription completed delivering logs
 17107  	fail error               // Occurred error to stop iteration
 17108  }
 17109  
 17110  // Next advances the iterator to the subsequent event, returning whether there
 17111  // are any more events found. In case of a retrieval or parsing error, false is
 17112  // returned and Error() can be queried for the exact failure.
 17113  func (it *BridgeTransferKLAYOwnershipTransferredIterator) Next() bool {
 17114  	// If the iterator failed, stop iterating
 17115  	if it.fail != nil {
 17116  		return false
 17117  	}
 17118  	// If the iterator completed, deliver directly whatever's available
 17119  	if it.done {
 17120  		select {
 17121  		case log := <-it.logs:
 17122  			it.Event = new(BridgeTransferKLAYOwnershipTransferred)
 17123  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 17124  				it.fail = err
 17125  				return false
 17126  			}
 17127  			it.Event.Raw = log
 17128  			return true
 17129  
 17130  		default:
 17131  			return false
 17132  		}
 17133  	}
 17134  	// Iterator still in progress, wait for either a data or an error event
 17135  	select {
 17136  	case log := <-it.logs:
 17137  		it.Event = new(BridgeTransferKLAYOwnershipTransferred)
 17138  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 17139  			it.fail = err
 17140  			return false
 17141  		}
 17142  		it.Event.Raw = log
 17143  		return true
 17144  
 17145  	case err := <-it.sub.Err():
 17146  		it.done = true
 17147  		it.fail = err
 17148  		return it.Next()
 17149  	}
 17150  }
 17151  
 17152  // Error returns any retrieval or parsing error occurred during filtering.
 17153  func (it *BridgeTransferKLAYOwnershipTransferredIterator) Error() error {
 17154  	return it.fail
 17155  }
 17156  
 17157  // Close terminates the iteration process, releasing any pending underlying
 17158  // resources.
 17159  func (it *BridgeTransferKLAYOwnershipTransferredIterator) Close() error {
 17160  	it.sub.Unsubscribe()
 17161  	return nil
 17162  }
 17163  
 17164  // BridgeTransferKLAYOwnershipTransferred represents a OwnershipTransferred event raised by the BridgeTransferKLAY contract.
 17165  type BridgeTransferKLAYOwnershipTransferred struct {
 17166  	PreviousOwner common.Address
 17167  	NewOwner      common.Address
 17168  	Raw           types.Log // Blockchain specific contextual infos
 17169  }
 17170  
 17171  // FilterOwnershipTransferred is a free log retrieval operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0.
 17172  //
 17173  // Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
 17174  func (_BridgeTransferKLAY *BridgeTransferKLAYFilterer) FilterOwnershipTransferred(opts *bind.FilterOpts, previousOwner []common.Address, newOwner []common.Address) (*BridgeTransferKLAYOwnershipTransferredIterator, error) {
 17175  
 17176  	var previousOwnerRule []interface{}
 17177  	for _, previousOwnerItem := range previousOwner {
 17178  		previousOwnerRule = append(previousOwnerRule, previousOwnerItem)
 17179  	}
 17180  	var newOwnerRule []interface{}
 17181  	for _, newOwnerItem := range newOwner {
 17182  		newOwnerRule = append(newOwnerRule, newOwnerItem)
 17183  	}
 17184  
 17185  	logs, sub, err := _BridgeTransferKLAY.contract.FilterLogs(opts, "OwnershipTransferred", previousOwnerRule, newOwnerRule)
 17186  	if err != nil {
 17187  		return nil, err
 17188  	}
 17189  	return &BridgeTransferKLAYOwnershipTransferredIterator{contract: _BridgeTransferKLAY.contract, event: "OwnershipTransferred", logs: logs, sub: sub}, nil
 17190  }
 17191  
 17192  // WatchOwnershipTransferred is a free log subscription operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0.
 17193  //
 17194  // Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
 17195  func (_BridgeTransferKLAY *BridgeTransferKLAYFilterer) WatchOwnershipTransferred(opts *bind.WatchOpts, sink chan<- *BridgeTransferKLAYOwnershipTransferred, previousOwner []common.Address, newOwner []common.Address) (event.Subscription, error) {
 17196  
 17197  	var previousOwnerRule []interface{}
 17198  	for _, previousOwnerItem := range previousOwner {
 17199  		previousOwnerRule = append(previousOwnerRule, previousOwnerItem)
 17200  	}
 17201  	var newOwnerRule []interface{}
 17202  	for _, newOwnerItem := range newOwner {
 17203  		newOwnerRule = append(newOwnerRule, newOwnerItem)
 17204  	}
 17205  
 17206  	logs, sub, err := _BridgeTransferKLAY.contract.WatchLogs(opts, "OwnershipTransferred", previousOwnerRule, newOwnerRule)
 17207  	if err != nil {
 17208  		return nil, err
 17209  	}
 17210  	return event.NewSubscription(func(quit <-chan struct{}) error {
 17211  		defer sub.Unsubscribe()
 17212  		for {
 17213  			select {
 17214  			case log := <-logs:
 17215  				// New log arrived, parse the event and forward to the user
 17216  				event := new(BridgeTransferKLAYOwnershipTransferred)
 17217  				if err := _BridgeTransferKLAY.contract.UnpackLog(event, "OwnershipTransferred", log); err != nil {
 17218  					return err
 17219  				}
 17220  				event.Raw = log
 17221  
 17222  				select {
 17223  				case sink <- event:
 17224  				case err := <-sub.Err():
 17225  					return err
 17226  				case <-quit:
 17227  					return nil
 17228  				}
 17229  			case err := <-sub.Err():
 17230  				return err
 17231  			case <-quit:
 17232  				return nil
 17233  			}
 17234  		}
 17235  	}), nil
 17236  }
 17237  
 17238  // ParseOwnershipTransferred is a log parse operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0.
 17239  //
 17240  // Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
 17241  func (_BridgeTransferKLAY *BridgeTransferKLAYFilterer) ParseOwnershipTransferred(log types.Log) (*BridgeTransferKLAYOwnershipTransferred, error) {
 17242  	event := new(BridgeTransferKLAYOwnershipTransferred)
 17243  	if err := _BridgeTransferKLAY.contract.UnpackLog(event, "OwnershipTransferred", log); err != nil {
 17244  		return nil, err
 17245  	}
 17246  	return event, nil
 17247  }
 17248  
 17249  // BridgeTransferKLAYRequestValueTransferIterator is returned from FilterRequestValueTransfer and is used to iterate over the raw logs and unpacked data for RequestValueTransfer events raised by the BridgeTransferKLAY contract.
 17250  type BridgeTransferKLAYRequestValueTransferIterator struct {
 17251  	Event *BridgeTransferKLAYRequestValueTransfer // Event containing the contract specifics and raw log
 17252  
 17253  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 17254  	event    string              // Event name to use for unpacking event data
 17255  
 17256  	logs chan types.Log      // Log channel receiving the found contract events
 17257  	sub  klaytn.Subscription // Subscription for errors, completion and termination
 17258  	done bool                // Whether the subscription completed delivering logs
 17259  	fail error               // Occurred error to stop iteration
 17260  }
 17261  
 17262  // Next advances the iterator to the subsequent event, returning whether there
 17263  // are any more events found. In case of a retrieval or parsing error, false is
 17264  // returned and Error() can be queried for the exact failure.
 17265  func (it *BridgeTransferKLAYRequestValueTransferIterator) Next() bool {
 17266  	// If the iterator failed, stop iterating
 17267  	if it.fail != nil {
 17268  		return false
 17269  	}
 17270  	// If the iterator completed, deliver directly whatever's available
 17271  	if it.done {
 17272  		select {
 17273  		case log := <-it.logs:
 17274  			it.Event = new(BridgeTransferKLAYRequestValueTransfer)
 17275  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 17276  				it.fail = err
 17277  				return false
 17278  			}
 17279  			it.Event.Raw = log
 17280  			return true
 17281  
 17282  		default:
 17283  			return false
 17284  		}
 17285  	}
 17286  	// Iterator still in progress, wait for either a data or an error event
 17287  	select {
 17288  	case log := <-it.logs:
 17289  		it.Event = new(BridgeTransferKLAYRequestValueTransfer)
 17290  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 17291  			it.fail = err
 17292  			return false
 17293  		}
 17294  		it.Event.Raw = log
 17295  		return true
 17296  
 17297  	case err := <-it.sub.Err():
 17298  		it.done = true
 17299  		it.fail = err
 17300  		return it.Next()
 17301  	}
 17302  }
 17303  
 17304  // Error returns any retrieval or parsing error occurred during filtering.
 17305  func (it *BridgeTransferKLAYRequestValueTransferIterator) Error() error {
 17306  	return it.fail
 17307  }
 17308  
 17309  // Close terminates the iteration process, releasing any pending underlying
 17310  // resources.
 17311  func (it *BridgeTransferKLAYRequestValueTransferIterator) Close() error {
 17312  	it.sub.Unsubscribe()
 17313  	return nil
 17314  }
 17315  
 17316  // BridgeTransferKLAYRequestValueTransfer represents a RequestValueTransfer event raised by the BridgeTransferKLAY contract.
 17317  type BridgeTransferKLAYRequestValueTransfer struct {
 17318  	TokenType      uint8
 17319  	From           common.Address
 17320  	To             common.Address
 17321  	TokenAddress   common.Address
 17322  	ValueOrTokenId *big.Int
 17323  	RequestNonce   uint64
 17324  	Fee            *big.Int
 17325  	ExtraData      []byte
 17326  	Raw            types.Log // Blockchain specific contextual infos
 17327  }
 17328  
 17329  // FilterRequestValueTransfer is a free log retrieval operation binding the contract event 0xeff76c36e53fa5ff52f27acc8a34d5047a8246abb07b77b12f1309f71e337f09.
 17330  //
 17331  // Solidity: event RequestValueTransfer(uint8 tokenType, address indexed from, address indexed to, address indexed tokenAddress, uint256 valueOrTokenId, uint64 requestNonce, uint256 fee, bytes extraData)
 17332  func (_BridgeTransferKLAY *BridgeTransferKLAYFilterer) FilterRequestValueTransfer(opts *bind.FilterOpts, from []common.Address, to []common.Address, tokenAddress []common.Address) (*BridgeTransferKLAYRequestValueTransferIterator, error) {
 17333  
 17334  	var fromRule []interface{}
 17335  	for _, fromItem := range from {
 17336  		fromRule = append(fromRule, fromItem)
 17337  	}
 17338  	var toRule []interface{}
 17339  	for _, toItem := range to {
 17340  		toRule = append(toRule, toItem)
 17341  	}
 17342  	var tokenAddressRule []interface{}
 17343  	for _, tokenAddressItem := range tokenAddress {
 17344  		tokenAddressRule = append(tokenAddressRule, tokenAddressItem)
 17345  	}
 17346  
 17347  	logs, sub, err := _BridgeTransferKLAY.contract.FilterLogs(opts, "RequestValueTransfer", fromRule, toRule, tokenAddressRule)
 17348  	if err != nil {
 17349  		return nil, err
 17350  	}
 17351  	return &BridgeTransferKLAYRequestValueTransferIterator{contract: _BridgeTransferKLAY.contract, event: "RequestValueTransfer", logs: logs, sub: sub}, nil
 17352  }
 17353  
 17354  // WatchRequestValueTransfer is a free log subscription operation binding the contract event 0xeff76c36e53fa5ff52f27acc8a34d5047a8246abb07b77b12f1309f71e337f09.
 17355  //
 17356  // Solidity: event RequestValueTransfer(uint8 tokenType, address indexed from, address indexed to, address indexed tokenAddress, uint256 valueOrTokenId, uint64 requestNonce, uint256 fee, bytes extraData)
 17357  func (_BridgeTransferKLAY *BridgeTransferKLAYFilterer) WatchRequestValueTransfer(opts *bind.WatchOpts, sink chan<- *BridgeTransferKLAYRequestValueTransfer, from []common.Address, to []common.Address, tokenAddress []common.Address) (event.Subscription, error) {
 17358  
 17359  	var fromRule []interface{}
 17360  	for _, fromItem := range from {
 17361  		fromRule = append(fromRule, fromItem)
 17362  	}
 17363  	var toRule []interface{}
 17364  	for _, toItem := range to {
 17365  		toRule = append(toRule, toItem)
 17366  	}
 17367  	var tokenAddressRule []interface{}
 17368  	for _, tokenAddressItem := range tokenAddress {
 17369  		tokenAddressRule = append(tokenAddressRule, tokenAddressItem)
 17370  	}
 17371  
 17372  	logs, sub, err := _BridgeTransferKLAY.contract.WatchLogs(opts, "RequestValueTransfer", fromRule, toRule, tokenAddressRule)
 17373  	if err != nil {
 17374  		return nil, err
 17375  	}
 17376  	return event.NewSubscription(func(quit <-chan struct{}) error {
 17377  		defer sub.Unsubscribe()
 17378  		for {
 17379  			select {
 17380  			case log := <-logs:
 17381  				// New log arrived, parse the event and forward to the user
 17382  				event := new(BridgeTransferKLAYRequestValueTransfer)
 17383  				if err := _BridgeTransferKLAY.contract.UnpackLog(event, "RequestValueTransfer", log); err != nil {
 17384  					return err
 17385  				}
 17386  				event.Raw = log
 17387  
 17388  				select {
 17389  				case sink <- event:
 17390  				case err := <-sub.Err():
 17391  					return err
 17392  				case <-quit:
 17393  					return nil
 17394  				}
 17395  			case err := <-sub.Err():
 17396  				return err
 17397  			case <-quit:
 17398  				return nil
 17399  			}
 17400  		}
 17401  	}), nil
 17402  }
 17403  
 17404  // ParseRequestValueTransfer is a log parse operation binding the contract event 0xeff76c36e53fa5ff52f27acc8a34d5047a8246abb07b77b12f1309f71e337f09.
 17405  //
 17406  // Solidity: event RequestValueTransfer(uint8 tokenType, address indexed from, address indexed to, address indexed tokenAddress, uint256 valueOrTokenId, uint64 requestNonce, uint256 fee, bytes extraData)
 17407  func (_BridgeTransferKLAY *BridgeTransferKLAYFilterer) ParseRequestValueTransfer(log types.Log) (*BridgeTransferKLAYRequestValueTransfer, error) {
 17408  	event := new(BridgeTransferKLAYRequestValueTransfer)
 17409  	if err := _BridgeTransferKLAY.contract.UnpackLog(event, "RequestValueTransfer", log); err != nil {
 17410  		return nil, err
 17411  	}
 17412  	return event, nil
 17413  }
 17414  
 17415  // BridgeTransferKLAYRequestValueTransferEncodedIterator is returned from FilterRequestValueTransferEncoded and is used to iterate over the raw logs and unpacked data for RequestValueTransferEncoded events raised by the BridgeTransferKLAY contract.
 17416  type BridgeTransferKLAYRequestValueTransferEncodedIterator struct {
 17417  	Event *BridgeTransferKLAYRequestValueTransferEncoded // Event containing the contract specifics and raw log
 17418  
 17419  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 17420  	event    string              // Event name to use for unpacking event data
 17421  
 17422  	logs chan types.Log      // Log channel receiving the found contract events
 17423  	sub  klaytn.Subscription // Subscription for errors, completion and termination
 17424  	done bool                // Whether the subscription completed delivering logs
 17425  	fail error               // Occurred error to stop iteration
 17426  }
 17427  
 17428  // Next advances the iterator to the subsequent event, returning whether there
 17429  // are any more events found. In case of a retrieval or parsing error, false is
 17430  // returned and Error() can be queried for the exact failure.
 17431  func (it *BridgeTransferKLAYRequestValueTransferEncodedIterator) Next() bool {
 17432  	// If the iterator failed, stop iterating
 17433  	if it.fail != nil {
 17434  		return false
 17435  	}
 17436  	// If the iterator completed, deliver directly whatever's available
 17437  	if it.done {
 17438  		select {
 17439  		case log := <-it.logs:
 17440  			it.Event = new(BridgeTransferKLAYRequestValueTransferEncoded)
 17441  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 17442  				it.fail = err
 17443  				return false
 17444  			}
 17445  			it.Event.Raw = log
 17446  			return true
 17447  
 17448  		default:
 17449  			return false
 17450  		}
 17451  	}
 17452  	// Iterator still in progress, wait for either a data or an error event
 17453  	select {
 17454  	case log := <-it.logs:
 17455  		it.Event = new(BridgeTransferKLAYRequestValueTransferEncoded)
 17456  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 17457  			it.fail = err
 17458  			return false
 17459  		}
 17460  		it.Event.Raw = log
 17461  		return true
 17462  
 17463  	case err := <-it.sub.Err():
 17464  		it.done = true
 17465  		it.fail = err
 17466  		return it.Next()
 17467  	}
 17468  }
 17469  
 17470  // Error returns any retrieval or parsing error occurred during filtering.
 17471  func (it *BridgeTransferKLAYRequestValueTransferEncodedIterator) Error() error {
 17472  	return it.fail
 17473  }
 17474  
 17475  // Close terminates the iteration process, releasing any pending underlying
 17476  // resources.
 17477  func (it *BridgeTransferKLAYRequestValueTransferEncodedIterator) Close() error {
 17478  	it.sub.Unsubscribe()
 17479  	return nil
 17480  }
 17481  
 17482  // BridgeTransferKLAYRequestValueTransferEncoded represents a RequestValueTransferEncoded event raised by the BridgeTransferKLAY contract.
 17483  type BridgeTransferKLAYRequestValueTransferEncoded struct {
 17484  	TokenType      uint8
 17485  	From           common.Address
 17486  	To             common.Address
 17487  	TokenAddress   common.Address
 17488  	ValueOrTokenId *big.Int
 17489  	RequestNonce   uint64
 17490  	Fee            *big.Int
 17491  	ExtraData      []byte
 17492  	EncodingVer    uint8
 17493  	EncodedData    []byte
 17494  	Raw            types.Log // Blockchain specific contextual infos
 17495  }
 17496  
 17497  // FilterRequestValueTransferEncoded is a free log retrieval operation binding the contract event 0x17d76053ca34a4dd8c402fe6498deb797fac89bf7ed02f3f5161aa9368cc8c1f.
 17498  //
 17499  // Solidity: event RequestValueTransferEncoded(uint8 tokenType, address indexed from, address indexed to, address indexed tokenAddress, uint256 valueOrTokenId, uint64 requestNonce, uint256 fee, bytes extraData, uint8 encodingVer, bytes encodedData)
 17500  func (_BridgeTransferKLAY *BridgeTransferKLAYFilterer) FilterRequestValueTransferEncoded(opts *bind.FilterOpts, from []common.Address, to []common.Address, tokenAddress []common.Address) (*BridgeTransferKLAYRequestValueTransferEncodedIterator, error) {
 17501  
 17502  	var fromRule []interface{}
 17503  	for _, fromItem := range from {
 17504  		fromRule = append(fromRule, fromItem)
 17505  	}
 17506  	var toRule []interface{}
 17507  	for _, toItem := range to {
 17508  		toRule = append(toRule, toItem)
 17509  	}
 17510  	var tokenAddressRule []interface{}
 17511  	for _, tokenAddressItem := range tokenAddress {
 17512  		tokenAddressRule = append(tokenAddressRule, tokenAddressItem)
 17513  	}
 17514  
 17515  	logs, sub, err := _BridgeTransferKLAY.contract.FilterLogs(opts, "RequestValueTransferEncoded", fromRule, toRule, tokenAddressRule)
 17516  	if err != nil {
 17517  		return nil, err
 17518  	}
 17519  	return &BridgeTransferKLAYRequestValueTransferEncodedIterator{contract: _BridgeTransferKLAY.contract, event: "RequestValueTransferEncoded", logs: logs, sub: sub}, nil
 17520  }
 17521  
 17522  // WatchRequestValueTransferEncoded is a free log subscription operation binding the contract event 0x17d76053ca34a4dd8c402fe6498deb797fac89bf7ed02f3f5161aa9368cc8c1f.
 17523  //
 17524  // Solidity: event RequestValueTransferEncoded(uint8 tokenType, address indexed from, address indexed to, address indexed tokenAddress, uint256 valueOrTokenId, uint64 requestNonce, uint256 fee, bytes extraData, uint8 encodingVer, bytes encodedData)
 17525  func (_BridgeTransferKLAY *BridgeTransferKLAYFilterer) WatchRequestValueTransferEncoded(opts *bind.WatchOpts, sink chan<- *BridgeTransferKLAYRequestValueTransferEncoded, from []common.Address, to []common.Address, tokenAddress []common.Address) (event.Subscription, error) {
 17526  
 17527  	var fromRule []interface{}
 17528  	for _, fromItem := range from {
 17529  		fromRule = append(fromRule, fromItem)
 17530  	}
 17531  	var toRule []interface{}
 17532  	for _, toItem := range to {
 17533  		toRule = append(toRule, toItem)
 17534  	}
 17535  	var tokenAddressRule []interface{}
 17536  	for _, tokenAddressItem := range tokenAddress {
 17537  		tokenAddressRule = append(tokenAddressRule, tokenAddressItem)
 17538  	}
 17539  
 17540  	logs, sub, err := _BridgeTransferKLAY.contract.WatchLogs(opts, "RequestValueTransferEncoded", fromRule, toRule, tokenAddressRule)
 17541  	if err != nil {
 17542  		return nil, err
 17543  	}
 17544  	return event.NewSubscription(func(quit <-chan struct{}) error {
 17545  		defer sub.Unsubscribe()
 17546  		for {
 17547  			select {
 17548  			case log := <-logs:
 17549  				// New log arrived, parse the event and forward to the user
 17550  				event := new(BridgeTransferKLAYRequestValueTransferEncoded)
 17551  				if err := _BridgeTransferKLAY.contract.UnpackLog(event, "RequestValueTransferEncoded", log); err != nil {
 17552  					return err
 17553  				}
 17554  				event.Raw = log
 17555  
 17556  				select {
 17557  				case sink <- event:
 17558  				case err := <-sub.Err():
 17559  					return err
 17560  				case <-quit:
 17561  					return nil
 17562  				}
 17563  			case err := <-sub.Err():
 17564  				return err
 17565  			case <-quit:
 17566  				return nil
 17567  			}
 17568  		}
 17569  	}), nil
 17570  }
 17571  
 17572  // ParseRequestValueTransferEncoded is a log parse operation binding the contract event 0x17d76053ca34a4dd8c402fe6498deb797fac89bf7ed02f3f5161aa9368cc8c1f.
 17573  //
 17574  // Solidity: event RequestValueTransferEncoded(uint8 tokenType, address indexed from, address indexed to, address indexed tokenAddress, uint256 valueOrTokenId, uint64 requestNonce, uint256 fee, bytes extraData, uint8 encodingVer, bytes encodedData)
 17575  func (_BridgeTransferKLAY *BridgeTransferKLAYFilterer) ParseRequestValueTransferEncoded(log types.Log) (*BridgeTransferKLAYRequestValueTransferEncoded, error) {
 17576  	event := new(BridgeTransferKLAYRequestValueTransferEncoded)
 17577  	if err := _BridgeTransferKLAY.contract.UnpackLog(event, "RequestValueTransferEncoded", log); err != nil {
 17578  		return nil, err
 17579  	}
 17580  	return event, nil
 17581  }
 17582  
 17583  // CountersMetaData contains all meta data concerning the Counters contract.
 17584  var CountersMetaData = &bind.MetaData{
 17585  	ABI: "[]",
 17586  	Bin: "0x604c6023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea165627a7a72305820805a368616cc52189113373468f3b8d2b801d1cb861a5f35c763ad7ac01ac1fe0029",
 17587  }
 17588  
 17589  // CountersABI is the input ABI used to generate the binding from.
 17590  // Deprecated: Use CountersMetaData.ABI instead.
 17591  var CountersABI = CountersMetaData.ABI
 17592  
 17593  // CountersBinRuntime is the compiled bytecode used for adding genesis block without deploying code.
 17594  const CountersBinRuntime = `73000000000000000000000000000000000000000030146080604052600080fdfea165627a7a72305820805a368616cc52189113373468f3b8d2b801d1cb861a5f35c763ad7ac01ac1fe0029`
 17595  
 17596  // CountersBin is the compiled bytecode used for deploying new contracts.
 17597  // Deprecated: Use CountersMetaData.Bin instead.
 17598  var CountersBin = CountersMetaData.Bin
 17599  
 17600  // DeployCounters deploys a new Klaytn contract, binding an instance of Counters to it.
 17601  func DeployCounters(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *types.Transaction, *Counters, error) {
 17602  	parsed, err := CountersMetaData.GetAbi()
 17603  	if err != nil {
 17604  		return common.Address{}, nil, nil, err
 17605  	}
 17606  	if parsed == nil {
 17607  		return common.Address{}, nil, nil, errors.New("GetABI returned nil")
 17608  	}
 17609  
 17610  	address, tx, contract, err := bind.DeployContract(auth, *parsed, common.FromHex(CountersBin), backend)
 17611  	if err != nil {
 17612  		return common.Address{}, nil, nil, err
 17613  	}
 17614  	return address, tx, &Counters{CountersCaller: CountersCaller{contract: contract}, CountersTransactor: CountersTransactor{contract: contract}, CountersFilterer: CountersFilterer{contract: contract}}, nil
 17615  }
 17616  
 17617  // Counters is an auto generated Go binding around a Klaytn contract.
 17618  type Counters struct {
 17619  	CountersCaller     // Read-only binding to the contract
 17620  	CountersTransactor // Write-only binding to the contract
 17621  	CountersFilterer   // Log filterer for contract events
 17622  }
 17623  
 17624  // CountersCaller is an auto generated read-only Go binding around a Klaytn contract.
 17625  type CountersCaller struct {
 17626  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 17627  }
 17628  
 17629  // CountersTransactor is an auto generated write-only Go binding around a Klaytn contract.
 17630  type CountersTransactor struct {
 17631  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 17632  }
 17633  
 17634  // CountersFilterer is an auto generated log filtering Go binding around a Klaytn contract events.
 17635  type CountersFilterer struct {
 17636  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 17637  }
 17638  
 17639  // CountersSession is an auto generated Go binding around a Klaytn contract,
 17640  // with pre-set call and transact options.
 17641  type CountersSession struct {
 17642  	Contract     *Counters         // Generic contract binding to set the session for
 17643  	CallOpts     bind.CallOpts     // Call options to use throughout this session
 17644  	TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
 17645  }
 17646  
 17647  // CountersCallerSession is an auto generated read-only Go binding around a Klaytn contract,
 17648  // with pre-set call options.
 17649  type CountersCallerSession struct {
 17650  	Contract *CountersCaller // Generic contract caller binding to set the session for
 17651  	CallOpts bind.CallOpts   // Call options to use throughout this session
 17652  }
 17653  
 17654  // CountersTransactorSession is an auto generated write-only Go binding around a Klaytn contract,
 17655  // with pre-set transact options.
 17656  type CountersTransactorSession struct {
 17657  	Contract     *CountersTransactor // Generic contract transactor binding to set the session for
 17658  	TransactOpts bind.TransactOpts   // Transaction auth options to use throughout this session
 17659  }
 17660  
 17661  // CountersRaw is an auto generated low-level Go binding around a Klaytn contract.
 17662  type CountersRaw struct {
 17663  	Contract *Counters // Generic contract binding to access the raw methods on
 17664  }
 17665  
 17666  // CountersCallerRaw is an auto generated low-level read-only Go binding around a Klaytn contract.
 17667  type CountersCallerRaw struct {
 17668  	Contract *CountersCaller // Generic read-only contract binding to access the raw methods on
 17669  }
 17670  
 17671  // CountersTransactorRaw is an auto generated low-level write-only Go binding around a Klaytn contract.
 17672  type CountersTransactorRaw struct {
 17673  	Contract *CountersTransactor // Generic write-only contract binding to access the raw methods on
 17674  }
 17675  
 17676  // NewCounters creates a new instance of Counters, bound to a specific deployed contract.
 17677  func NewCounters(address common.Address, backend bind.ContractBackend) (*Counters, error) {
 17678  	contract, err := bindCounters(address, backend, backend, backend)
 17679  	if err != nil {
 17680  		return nil, err
 17681  	}
 17682  	return &Counters{CountersCaller: CountersCaller{contract: contract}, CountersTransactor: CountersTransactor{contract: contract}, CountersFilterer: CountersFilterer{contract: contract}}, nil
 17683  }
 17684  
 17685  // NewCountersCaller creates a new read-only instance of Counters, bound to a specific deployed contract.
 17686  func NewCountersCaller(address common.Address, caller bind.ContractCaller) (*CountersCaller, error) {
 17687  	contract, err := bindCounters(address, caller, nil, nil)
 17688  	if err != nil {
 17689  		return nil, err
 17690  	}
 17691  	return &CountersCaller{contract: contract}, nil
 17692  }
 17693  
 17694  // NewCountersTransactor creates a new write-only instance of Counters, bound to a specific deployed contract.
 17695  func NewCountersTransactor(address common.Address, transactor bind.ContractTransactor) (*CountersTransactor, error) {
 17696  	contract, err := bindCounters(address, nil, transactor, nil)
 17697  	if err != nil {
 17698  		return nil, err
 17699  	}
 17700  	return &CountersTransactor{contract: contract}, nil
 17701  }
 17702  
 17703  // NewCountersFilterer creates a new log filterer instance of Counters, bound to a specific deployed contract.
 17704  func NewCountersFilterer(address common.Address, filterer bind.ContractFilterer) (*CountersFilterer, error) {
 17705  	contract, err := bindCounters(address, nil, nil, filterer)
 17706  	if err != nil {
 17707  		return nil, err
 17708  	}
 17709  	return &CountersFilterer{contract: contract}, nil
 17710  }
 17711  
 17712  // bindCounters binds a generic wrapper to an already deployed contract.
 17713  func bindCounters(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
 17714  	parsed, err := CountersMetaData.GetAbi()
 17715  	if err != nil {
 17716  		return nil, err
 17717  	}
 17718  	return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil
 17719  }
 17720  
 17721  // Call invokes the (constant) contract method with params as input values and
 17722  // sets the output to result. The result type might be a single field for simple
 17723  // returns, a slice of interfaces for anonymous returns and a struct for named
 17724  // returns.
 17725  func (_Counters *CountersRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
 17726  	return _Counters.Contract.CountersCaller.contract.Call(opts, result, method, params...)
 17727  }
 17728  
 17729  // Transfer initiates a plain transaction to move funds to the contract, calling
 17730  // its default method if one is available.
 17731  func (_Counters *CountersRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
 17732  	return _Counters.Contract.CountersTransactor.contract.Transfer(opts)
 17733  }
 17734  
 17735  // Transact invokes the (paid) contract method with params as input values.
 17736  func (_Counters *CountersRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
 17737  	return _Counters.Contract.CountersTransactor.contract.Transact(opts, method, params...)
 17738  }
 17739  
 17740  // Call invokes the (constant) contract method with params as input values and
 17741  // sets the output to result. The result type might be a single field for simple
 17742  // returns, a slice of interfaces for anonymous returns and a struct for named
 17743  // returns.
 17744  func (_Counters *CountersCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
 17745  	return _Counters.Contract.contract.Call(opts, result, method, params...)
 17746  }
 17747  
 17748  // Transfer initiates a plain transaction to move funds to the contract, calling
 17749  // its default method if one is available.
 17750  func (_Counters *CountersTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
 17751  	return _Counters.Contract.contract.Transfer(opts)
 17752  }
 17753  
 17754  // Transact invokes the (paid) contract method with params as input values.
 17755  func (_Counters *CountersTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
 17756  	return _Counters.Contract.contract.Transact(opts, method, params...)
 17757  }
 17758  
 17759  // ERC165MetaData contains all meta data concerning the ERC165 contract.
 17760  var ERC165MetaData = &bind.MetaData{
 17761  	ABI: "[{\"constant\":true,\"inputs\":[{\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"}]",
 17762  	Sigs: map[string]string{
 17763  		"01ffc9a7": "supportsInterface(bytes4)",
 17764  	},
 17765  }
 17766  
 17767  // ERC165ABI is the input ABI used to generate the binding from.
 17768  // Deprecated: Use ERC165MetaData.ABI instead.
 17769  var ERC165ABI = ERC165MetaData.ABI
 17770  
 17771  // ERC165BinRuntime is the compiled bytecode used for adding genesis block without deploying code.
 17772  const ERC165BinRuntime = ``
 17773  
 17774  // ERC165FuncSigs maps the 4-byte function signature to its string representation.
 17775  // Deprecated: Use ERC165MetaData.Sigs instead.
 17776  var ERC165FuncSigs = ERC165MetaData.Sigs
 17777  
 17778  // ERC165 is an auto generated Go binding around a Klaytn contract.
 17779  type ERC165 struct {
 17780  	ERC165Caller     // Read-only binding to the contract
 17781  	ERC165Transactor // Write-only binding to the contract
 17782  	ERC165Filterer   // Log filterer for contract events
 17783  }
 17784  
 17785  // ERC165Caller is an auto generated read-only Go binding around a Klaytn contract.
 17786  type ERC165Caller struct {
 17787  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 17788  }
 17789  
 17790  // ERC165Transactor is an auto generated write-only Go binding around a Klaytn contract.
 17791  type ERC165Transactor struct {
 17792  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 17793  }
 17794  
 17795  // ERC165Filterer is an auto generated log filtering Go binding around a Klaytn contract events.
 17796  type ERC165Filterer struct {
 17797  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 17798  }
 17799  
 17800  // ERC165Session is an auto generated Go binding around a Klaytn contract,
 17801  // with pre-set call and transact options.
 17802  type ERC165Session struct {
 17803  	Contract     *ERC165           // Generic contract binding to set the session for
 17804  	CallOpts     bind.CallOpts     // Call options to use throughout this session
 17805  	TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
 17806  }
 17807  
 17808  // ERC165CallerSession is an auto generated read-only Go binding around a Klaytn contract,
 17809  // with pre-set call options.
 17810  type ERC165CallerSession struct {
 17811  	Contract *ERC165Caller // Generic contract caller binding to set the session for
 17812  	CallOpts bind.CallOpts // Call options to use throughout this session
 17813  }
 17814  
 17815  // ERC165TransactorSession is an auto generated write-only Go binding around a Klaytn contract,
 17816  // with pre-set transact options.
 17817  type ERC165TransactorSession struct {
 17818  	Contract     *ERC165Transactor // Generic contract transactor binding to set the session for
 17819  	TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
 17820  }
 17821  
 17822  // ERC165Raw is an auto generated low-level Go binding around a Klaytn contract.
 17823  type ERC165Raw struct {
 17824  	Contract *ERC165 // Generic contract binding to access the raw methods on
 17825  }
 17826  
 17827  // ERC165CallerRaw is an auto generated low-level read-only Go binding around a Klaytn contract.
 17828  type ERC165CallerRaw struct {
 17829  	Contract *ERC165Caller // Generic read-only contract binding to access the raw methods on
 17830  }
 17831  
 17832  // ERC165TransactorRaw is an auto generated low-level write-only Go binding around a Klaytn contract.
 17833  type ERC165TransactorRaw struct {
 17834  	Contract *ERC165Transactor // Generic write-only contract binding to access the raw methods on
 17835  }
 17836  
 17837  // NewERC165 creates a new instance of ERC165, bound to a specific deployed contract.
 17838  func NewERC165(address common.Address, backend bind.ContractBackend) (*ERC165, error) {
 17839  	contract, err := bindERC165(address, backend, backend, backend)
 17840  	if err != nil {
 17841  		return nil, err
 17842  	}
 17843  	return &ERC165{ERC165Caller: ERC165Caller{contract: contract}, ERC165Transactor: ERC165Transactor{contract: contract}, ERC165Filterer: ERC165Filterer{contract: contract}}, nil
 17844  }
 17845  
 17846  // NewERC165Caller creates a new read-only instance of ERC165, bound to a specific deployed contract.
 17847  func NewERC165Caller(address common.Address, caller bind.ContractCaller) (*ERC165Caller, error) {
 17848  	contract, err := bindERC165(address, caller, nil, nil)
 17849  	if err != nil {
 17850  		return nil, err
 17851  	}
 17852  	return &ERC165Caller{contract: contract}, nil
 17853  }
 17854  
 17855  // NewERC165Transactor creates a new write-only instance of ERC165, bound to a specific deployed contract.
 17856  func NewERC165Transactor(address common.Address, transactor bind.ContractTransactor) (*ERC165Transactor, error) {
 17857  	contract, err := bindERC165(address, nil, transactor, nil)
 17858  	if err != nil {
 17859  		return nil, err
 17860  	}
 17861  	return &ERC165Transactor{contract: contract}, nil
 17862  }
 17863  
 17864  // NewERC165Filterer creates a new log filterer instance of ERC165, bound to a specific deployed contract.
 17865  func NewERC165Filterer(address common.Address, filterer bind.ContractFilterer) (*ERC165Filterer, error) {
 17866  	contract, err := bindERC165(address, nil, nil, filterer)
 17867  	if err != nil {
 17868  		return nil, err
 17869  	}
 17870  	return &ERC165Filterer{contract: contract}, nil
 17871  }
 17872  
 17873  // bindERC165 binds a generic wrapper to an already deployed contract.
 17874  func bindERC165(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
 17875  	parsed, err := ERC165MetaData.GetAbi()
 17876  	if err != nil {
 17877  		return nil, err
 17878  	}
 17879  	return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil
 17880  }
 17881  
 17882  // Call invokes the (constant) contract method with params as input values and
 17883  // sets the output to result. The result type might be a single field for simple
 17884  // returns, a slice of interfaces for anonymous returns and a struct for named
 17885  // returns.
 17886  func (_ERC165 *ERC165Raw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
 17887  	return _ERC165.Contract.ERC165Caller.contract.Call(opts, result, method, params...)
 17888  }
 17889  
 17890  // Transfer initiates a plain transaction to move funds to the contract, calling
 17891  // its default method if one is available.
 17892  func (_ERC165 *ERC165Raw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
 17893  	return _ERC165.Contract.ERC165Transactor.contract.Transfer(opts)
 17894  }
 17895  
 17896  // Transact invokes the (paid) contract method with params as input values.
 17897  func (_ERC165 *ERC165Raw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
 17898  	return _ERC165.Contract.ERC165Transactor.contract.Transact(opts, method, params...)
 17899  }
 17900  
 17901  // Call invokes the (constant) contract method with params as input values and
 17902  // sets the output to result. The result type might be a single field for simple
 17903  // returns, a slice of interfaces for anonymous returns and a struct for named
 17904  // returns.
 17905  func (_ERC165 *ERC165CallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
 17906  	return _ERC165.Contract.contract.Call(opts, result, method, params...)
 17907  }
 17908  
 17909  // Transfer initiates a plain transaction to move funds to the contract, calling
 17910  // its default method if one is available.
 17911  func (_ERC165 *ERC165TransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
 17912  	return _ERC165.Contract.contract.Transfer(opts)
 17913  }
 17914  
 17915  // Transact invokes the (paid) contract method with params as input values.
 17916  func (_ERC165 *ERC165TransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
 17917  	return _ERC165.Contract.contract.Transact(opts, method, params...)
 17918  }
 17919  
 17920  // SupportsInterface is a free data retrieval call binding the contract method 0x01ffc9a7.
 17921  //
 17922  // Solidity: function supportsInterface(bytes4 interfaceId) view returns(bool)
 17923  func (_ERC165 *ERC165Caller) SupportsInterface(opts *bind.CallOpts, interfaceId [4]byte) (bool, error) {
 17924  	var out []interface{}
 17925  	err := _ERC165.contract.Call(opts, &out, "supportsInterface", interfaceId)
 17926  
 17927  	if err != nil {
 17928  		return *new(bool), err
 17929  	}
 17930  
 17931  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
 17932  
 17933  	return out0, err
 17934  
 17935  }
 17936  
 17937  // SupportsInterface is a free data retrieval call binding the contract method 0x01ffc9a7.
 17938  //
 17939  // Solidity: function supportsInterface(bytes4 interfaceId) view returns(bool)
 17940  func (_ERC165 *ERC165Session) SupportsInterface(interfaceId [4]byte) (bool, error) {
 17941  	return _ERC165.Contract.SupportsInterface(&_ERC165.CallOpts, interfaceId)
 17942  }
 17943  
 17944  // SupportsInterface is a free data retrieval call binding the contract method 0x01ffc9a7.
 17945  //
 17946  // Solidity: function supportsInterface(bytes4 interfaceId) view returns(bool)
 17947  func (_ERC165 *ERC165CallerSession) SupportsInterface(interfaceId [4]byte) (bool, error) {
 17948  	return _ERC165.Contract.SupportsInterface(&_ERC165.CallOpts, interfaceId)
 17949  }
 17950  
 17951  // ERC20MetaData contains all meta data concerning the ERC20 contract.
 17952  var ERC20MetaData = &bind.MetaData{
 17953  	ABI: "[{\"constant\":false,\"inputs\":[{\"name\":\"spender\",\"type\":\"address\"},{\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"sender\",\"type\":\"address\"},{\"name\":\"recipient\",\"type\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"spender\",\"type\":\"address\"},{\"name\":\"addedValue\",\"type\":\"uint256\"}],\"name\":\"increaseAllowance\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"spender\",\"type\":\"address\"},{\"name\":\"subtractedValue\",\"type\":\"uint256\"}],\"name\":\"decreaseAllowance\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"recipient\",\"type\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"owner\",\"type\":\"address\"},{\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"}]",
 17954  	Sigs: map[string]string{
 17955  		"dd62ed3e": "allowance(address,address)",
 17956  		"095ea7b3": "approve(address,uint256)",
 17957  		"70a08231": "balanceOf(address)",
 17958  		"a457c2d7": "decreaseAllowance(address,uint256)",
 17959  		"39509351": "increaseAllowance(address,uint256)",
 17960  		"18160ddd": "totalSupply()",
 17961  		"a9059cbb": "transfer(address,uint256)",
 17962  		"23b872dd": "transferFrom(address,address,uint256)",
 17963  	},
 17964  	Bin: "0x608060405234801561001057600080fd5b506106eb806100206000396000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c806370a082311161005b57806370a0823114610149578063a457c2d71461016f578063a9059cbb1461019b578063dd62ed3e146101c757610088565b8063095ea7b31461008d57806318160ddd146100cd57806323b872dd146100e7578063395093511461011d575b600080fd5b6100b9600480360360408110156100a357600080fd5b506001600160a01b0381351690602001356101f5565b604080519115158252519081900360200190f35b6100d561020b565b60408051918252519081900360200190f35b6100b9600480360360608110156100fd57600080fd5b506001600160a01b03813581169160208101359091169060400135610211565b6100b96004803603604081101561013357600080fd5b506001600160a01b038135169060200135610268565b6100d56004803603602081101561015f57600080fd5b50356001600160a01b03166102a4565b6100b96004803603604081101561018557600080fd5b506001600160a01b0381351690602001356102bf565b6100b9600480360360408110156101b157600080fd5b506001600160a01b0381351690602001356102fb565b6100d5600480360360408110156101dd57600080fd5b506001600160a01b0381358116916020013516610308565b6000610202338484610333565b50600192915050565b60025490565b600061021e848484610425565b6001600160a01b03841660009081526001602090815260408083203380855292529091205461025e918691610259908663ffffffff61056d16565b610333565b5060019392505050565b3360008181526001602090815260408083206001600160a01b03871684529091528120549091610202918590610259908663ffffffff6105cd16565b6001600160a01b031660009081526020819052604090205490565b3360008181526001602090815260408083206001600160a01b03871684529091528120549091610202918590610259908663ffffffff61056d16565b6000610202338484610425565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6001600160a01b03831661037b57604051600160e51b62461bcd02815260040180806020018281038252602481526020018061069c6024913960400191505060405180910390fd5b6001600160a01b0382166103c357604051600160e51b62461bcd0281526004018080602001828103825260228152602001806106556022913960400191505060405180910390fd5b6001600160a01b03808416600081815260016020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b03831661046d57604051600160e51b62461bcd0281526004018080602001828103825260258152602001806106776025913960400191505060405180910390fd5b6001600160a01b0382166104b557604051600160e51b62461bcd0281526004018080602001828103825260238152602001806106326023913960400191505060405180910390fd5b6001600160a01b0383166000908152602081905260409020546104de908263ffffffff61056d16565b6001600160a01b038085166000908152602081905260408082209390935590841681522054610513908263ffffffff6105cd16565b6001600160a01b038084166000818152602081815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b6000828211156105c75760408051600160e51b62461bcd02815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b60008282018381101561062a5760408051600160e51b62461bcd02815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b939250505056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f2061646472657373a165627a7a723058200e33dfdabb620ad5daebde6c55a52fcc617b6413d3d04bdaeb7925e86b327d6a0029",
 17965  }
 17966  
 17967  // ERC20ABI is the input ABI used to generate the binding from.
 17968  // Deprecated: Use ERC20MetaData.ABI instead.
 17969  var ERC20ABI = ERC20MetaData.ABI
 17970  
 17971  // ERC20BinRuntime is the compiled bytecode used for adding genesis block without deploying code.
 17972  const ERC20BinRuntime = `608060405234801561001057600080fd5b50600436106100885760003560e01c806370a082311161005b57806370a0823114610149578063a457c2d71461016f578063a9059cbb1461019b578063dd62ed3e146101c757610088565b8063095ea7b31461008d57806318160ddd146100cd57806323b872dd146100e7578063395093511461011d575b600080fd5b6100b9600480360360408110156100a357600080fd5b506001600160a01b0381351690602001356101f5565b604080519115158252519081900360200190f35b6100d561020b565b60408051918252519081900360200190f35b6100b9600480360360608110156100fd57600080fd5b506001600160a01b03813581169160208101359091169060400135610211565b6100b96004803603604081101561013357600080fd5b506001600160a01b038135169060200135610268565b6100d56004803603602081101561015f57600080fd5b50356001600160a01b03166102a4565b6100b96004803603604081101561018557600080fd5b506001600160a01b0381351690602001356102bf565b6100b9600480360360408110156101b157600080fd5b506001600160a01b0381351690602001356102fb565b6100d5600480360360408110156101dd57600080fd5b506001600160a01b0381358116916020013516610308565b6000610202338484610333565b50600192915050565b60025490565b600061021e848484610425565b6001600160a01b03841660009081526001602090815260408083203380855292529091205461025e918691610259908663ffffffff61056d16565b610333565b5060019392505050565b3360008181526001602090815260408083206001600160a01b03871684529091528120549091610202918590610259908663ffffffff6105cd16565b6001600160a01b031660009081526020819052604090205490565b3360008181526001602090815260408083206001600160a01b03871684529091528120549091610202918590610259908663ffffffff61056d16565b6000610202338484610425565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6001600160a01b03831661037b57604051600160e51b62461bcd02815260040180806020018281038252602481526020018061069c6024913960400191505060405180910390fd5b6001600160a01b0382166103c357604051600160e51b62461bcd0281526004018080602001828103825260228152602001806106556022913960400191505060405180910390fd5b6001600160a01b03808416600081815260016020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b03831661046d57604051600160e51b62461bcd0281526004018080602001828103825260258152602001806106776025913960400191505060405180910390fd5b6001600160a01b0382166104b557604051600160e51b62461bcd0281526004018080602001828103825260238152602001806106326023913960400191505060405180910390fd5b6001600160a01b0383166000908152602081905260409020546104de908263ffffffff61056d16565b6001600160a01b038085166000908152602081905260408082209390935590841681522054610513908263ffffffff6105cd16565b6001600160a01b038084166000818152602081815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b6000828211156105c75760408051600160e51b62461bcd02815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b60008282018381101561062a5760408051600160e51b62461bcd02815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b939250505056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f2061646472657373a165627a7a723058200e33dfdabb620ad5daebde6c55a52fcc617b6413d3d04bdaeb7925e86b327d6a0029`
 17973  
 17974  // ERC20FuncSigs maps the 4-byte function signature to its string representation.
 17975  // Deprecated: Use ERC20MetaData.Sigs instead.
 17976  var ERC20FuncSigs = ERC20MetaData.Sigs
 17977  
 17978  // ERC20Bin is the compiled bytecode used for deploying new contracts.
 17979  // Deprecated: Use ERC20MetaData.Bin instead.
 17980  var ERC20Bin = ERC20MetaData.Bin
 17981  
 17982  // DeployERC20 deploys a new Klaytn contract, binding an instance of ERC20 to it.
 17983  func DeployERC20(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *types.Transaction, *ERC20, error) {
 17984  	parsed, err := ERC20MetaData.GetAbi()
 17985  	if err != nil {
 17986  		return common.Address{}, nil, nil, err
 17987  	}
 17988  	if parsed == nil {
 17989  		return common.Address{}, nil, nil, errors.New("GetABI returned nil")
 17990  	}
 17991  
 17992  	address, tx, contract, err := bind.DeployContract(auth, *parsed, common.FromHex(ERC20Bin), backend)
 17993  	if err != nil {
 17994  		return common.Address{}, nil, nil, err
 17995  	}
 17996  	return address, tx, &ERC20{ERC20Caller: ERC20Caller{contract: contract}, ERC20Transactor: ERC20Transactor{contract: contract}, ERC20Filterer: ERC20Filterer{contract: contract}}, nil
 17997  }
 17998  
 17999  // ERC20 is an auto generated Go binding around a Klaytn contract.
 18000  type ERC20 struct {
 18001  	ERC20Caller     // Read-only binding to the contract
 18002  	ERC20Transactor // Write-only binding to the contract
 18003  	ERC20Filterer   // Log filterer for contract events
 18004  }
 18005  
 18006  // ERC20Caller is an auto generated read-only Go binding around a Klaytn contract.
 18007  type ERC20Caller struct {
 18008  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 18009  }
 18010  
 18011  // ERC20Transactor is an auto generated write-only Go binding around a Klaytn contract.
 18012  type ERC20Transactor struct {
 18013  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 18014  }
 18015  
 18016  // ERC20Filterer is an auto generated log filtering Go binding around a Klaytn contract events.
 18017  type ERC20Filterer struct {
 18018  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 18019  }
 18020  
 18021  // ERC20Session is an auto generated Go binding around a Klaytn contract,
 18022  // with pre-set call and transact options.
 18023  type ERC20Session struct {
 18024  	Contract     *ERC20            // Generic contract binding to set the session for
 18025  	CallOpts     bind.CallOpts     // Call options to use throughout this session
 18026  	TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
 18027  }
 18028  
 18029  // ERC20CallerSession is an auto generated read-only Go binding around a Klaytn contract,
 18030  // with pre-set call options.
 18031  type ERC20CallerSession struct {
 18032  	Contract *ERC20Caller  // Generic contract caller binding to set the session for
 18033  	CallOpts bind.CallOpts // Call options to use throughout this session
 18034  }
 18035  
 18036  // ERC20TransactorSession is an auto generated write-only Go binding around a Klaytn contract,
 18037  // with pre-set transact options.
 18038  type ERC20TransactorSession struct {
 18039  	Contract     *ERC20Transactor  // Generic contract transactor binding to set the session for
 18040  	TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
 18041  }
 18042  
 18043  // ERC20Raw is an auto generated low-level Go binding around a Klaytn contract.
 18044  type ERC20Raw struct {
 18045  	Contract *ERC20 // Generic contract binding to access the raw methods on
 18046  }
 18047  
 18048  // ERC20CallerRaw is an auto generated low-level read-only Go binding around a Klaytn contract.
 18049  type ERC20CallerRaw struct {
 18050  	Contract *ERC20Caller // Generic read-only contract binding to access the raw methods on
 18051  }
 18052  
 18053  // ERC20TransactorRaw is an auto generated low-level write-only Go binding around a Klaytn contract.
 18054  type ERC20TransactorRaw struct {
 18055  	Contract *ERC20Transactor // Generic write-only contract binding to access the raw methods on
 18056  }
 18057  
 18058  // NewERC20 creates a new instance of ERC20, bound to a specific deployed contract.
 18059  func NewERC20(address common.Address, backend bind.ContractBackend) (*ERC20, error) {
 18060  	contract, err := bindERC20(address, backend, backend, backend)
 18061  	if err != nil {
 18062  		return nil, err
 18063  	}
 18064  	return &ERC20{ERC20Caller: ERC20Caller{contract: contract}, ERC20Transactor: ERC20Transactor{contract: contract}, ERC20Filterer: ERC20Filterer{contract: contract}}, nil
 18065  }
 18066  
 18067  // NewERC20Caller creates a new read-only instance of ERC20, bound to a specific deployed contract.
 18068  func NewERC20Caller(address common.Address, caller bind.ContractCaller) (*ERC20Caller, error) {
 18069  	contract, err := bindERC20(address, caller, nil, nil)
 18070  	if err != nil {
 18071  		return nil, err
 18072  	}
 18073  	return &ERC20Caller{contract: contract}, nil
 18074  }
 18075  
 18076  // NewERC20Transactor creates a new write-only instance of ERC20, bound to a specific deployed contract.
 18077  func NewERC20Transactor(address common.Address, transactor bind.ContractTransactor) (*ERC20Transactor, error) {
 18078  	contract, err := bindERC20(address, nil, transactor, nil)
 18079  	if err != nil {
 18080  		return nil, err
 18081  	}
 18082  	return &ERC20Transactor{contract: contract}, nil
 18083  }
 18084  
 18085  // NewERC20Filterer creates a new log filterer instance of ERC20, bound to a specific deployed contract.
 18086  func NewERC20Filterer(address common.Address, filterer bind.ContractFilterer) (*ERC20Filterer, error) {
 18087  	contract, err := bindERC20(address, nil, nil, filterer)
 18088  	if err != nil {
 18089  		return nil, err
 18090  	}
 18091  	return &ERC20Filterer{contract: contract}, nil
 18092  }
 18093  
 18094  // bindERC20 binds a generic wrapper to an already deployed contract.
 18095  func bindERC20(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
 18096  	parsed, err := ERC20MetaData.GetAbi()
 18097  	if err != nil {
 18098  		return nil, err
 18099  	}
 18100  	return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil
 18101  }
 18102  
 18103  // Call invokes the (constant) contract method with params as input values and
 18104  // sets the output to result. The result type might be a single field for simple
 18105  // returns, a slice of interfaces for anonymous returns and a struct for named
 18106  // returns.
 18107  func (_ERC20 *ERC20Raw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
 18108  	return _ERC20.Contract.ERC20Caller.contract.Call(opts, result, method, params...)
 18109  }
 18110  
 18111  // Transfer initiates a plain transaction to move funds to the contract, calling
 18112  // its default method if one is available.
 18113  func (_ERC20 *ERC20Raw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
 18114  	return _ERC20.Contract.ERC20Transactor.contract.Transfer(opts)
 18115  }
 18116  
 18117  // Transact invokes the (paid) contract method with params as input values.
 18118  func (_ERC20 *ERC20Raw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
 18119  	return _ERC20.Contract.ERC20Transactor.contract.Transact(opts, method, params...)
 18120  }
 18121  
 18122  // Call invokes the (constant) contract method with params as input values and
 18123  // sets the output to result. The result type might be a single field for simple
 18124  // returns, a slice of interfaces for anonymous returns and a struct for named
 18125  // returns.
 18126  func (_ERC20 *ERC20CallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
 18127  	return _ERC20.Contract.contract.Call(opts, result, method, params...)
 18128  }
 18129  
 18130  // Transfer initiates a plain transaction to move funds to the contract, calling
 18131  // its default method if one is available.
 18132  func (_ERC20 *ERC20TransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
 18133  	return _ERC20.Contract.contract.Transfer(opts)
 18134  }
 18135  
 18136  // Transact invokes the (paid) contract method with params as input values.
 18137  func (_ERC20 *ERC20TransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
 18138  	return _ERC20.Contract.contract.Transact(opts, method, params...)
 18139  }
 18140  
 18141  // Allowance is a free data retrieval call binding the contract method 0xdd62ed3e.
 18142  //
 18143  // Solidity: function allowance(address owner, address spender) view returns(uint256)
 18144  func (_ERC20 *ERC20Caller) Allowance(opts *bind.CallOpts, owner common.Address, spender common.Address) (*big.Int, error) {
 18145  	var out []interface{}
 18146  	err := _ERC20.contract.Call(opts, &out, "allowance", owner, spender)
 18147  
 18148  	if err != nil {
 18149  		return *new(*big.Int), err
 18150  	}
 18151  
 18152  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
 18153  
 18154  	return out0, err
 18155  
 18156  }
 18157  
 18158  // Allowance is a free data retrieval call binding the contract method 0xdd62ed3e.
 18159  //
 18160  // Solidity: function allowance(address owner, address spender) view returns(uint256)
 18161  func (_ERC20 *ERC20Session) Allowance(owner common.Address, spender common.Address) (*big.Int, error) {
 18162  	return _ERC20.Contract.Allowance(&_ERC20.CallOpts, owner, spender)
 18163  }
 18164  
 18165  // Allowance is a free data retrieval call binding the contract method 0xdd62ed3e.
 18166  //
 18167  // Solidity: function allowance(address owner, address spender) view returns(uint256)
 18168  func (_ERC20 *ERC20CallerSession) Allowance(owner common.Address, spender common.Address) (*big.Int, error) {
 18169  	return _ERC20.Contract.Allowance(&_ERC20.CallOpts, owner, spender)
 18170  }
 18171  
 18172  // BalanceOf is a free data retrieval call binding the contract method 0x70a08231.
 18173  //
 18174  // Solidity: function balanceOf(address account) view returns(uint256)
 18175  func (_ERC20 *ERC20Caller) BalanceOf(opts *bind.CallOpts, account common.Address) (*big.Int, error) {
 18176  	var out []interface{}
 18177  	err := _ERC20.contract.Call(opts, &out, "balanceOf", account)
 18178  
 18179  	if err != nil {
 18180  		return *new(*big.Int), err
 18181  	}
 18182  
 18183  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
 18184  
 18185  	return out0, err
 18186  
 18187  }
 18188  
 18189  // BalanceOf is a free data retrieval call binding the contract method 0x70a08231.
 18190  //
 18191  // Solidity: function balanceOf(address account) view returns(uint256)
 18192  func (_ERC20 *ERC20Session) BalanceOf(account common.Address) (*big.Int, error) {
 18193  	return _ERC20.Contract.BalanceOf(&_ERC20.CallOpts, account)
 18194  }
 18195  
 18196  // BalanceOf is a free data retrieval call binding the contract method 0x70a08231.
 18197  //
 18198  // Solidity: function balanceOf(address account) view returns(uint256)
 18199  func (_ERC20 *ERC20CallerSession) BalanceOf(account common.Address) (*big.Int, error) {
 18200  	return _ERC20.Contract.BalanceOf(&_ERC20.CallOpts, account)
 18201  }
 18202  
 18203  // TotalSupply is a free data retrieval call binding the contract method 0x18160ddd.
 18204  //
 18205  // Solidity: function totalSupply() view returns(uint256)
 18206  func (_ERC20 *ERC20Caller) TotalSupply(opts *bind.CallOpts) (*big.Int, error) {
 18207  	var out []interface{}
 18208  	err := _ERC20.contract.Call(opts, &out, "totalSupply")
 18209  
 18210  	if err != nil {
 18211  		return *new(*big.Int), err
 18212  	}
 18213  
 18214  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
 18215  
 18216  	return out0, err
 18217  
 18218  }
 18219  
 18220  // TotalSupply is a free data retrieval call binding the contract method 0x18160ddd.
 18221  //
 18222  // Solidity: function totalSupply() view returns(uint256)
 18223  func (_ERC20 *ERC20Session) TotalSupply() (*big.Int, error) {
 18224  	return _ERC20.Contract.TotalSupply(&_ERC20.CallOpts)
 18225  }
 18226  
 18227  // TotalSupply is a free data retrieval call binding the contract method 0x18160ddd.
 18228  //
 18229  // Solidity: function totalSupply() view returns(uint256)
 18230  func (_ERC20 *ERC20CallerSession) TotalSupply() (*big.Int, error) {
 18231  	return _ERC20.Contract.TotalSupply(&_ERC20.CallOpts)
 18232  }
 18233  
 18234  // Approve is a paid mutator transaction binding the contract method 0x095ea7b3.
 18235  //
 18236  // Solidity: function approve(address spender, uint256 value) returns(bool)
 18237  func (_ERC20 *ERC20Transactor) Approve(opts *bind.TransactOpts, spender common.Address, value *big.Int) (*types.Transaction, error) {
 18238  	return _ERC20.contract.Transact(opts, "approve", spender, value)
 18239  }
 18240  
 18241  // Approve is a paid mutator transaction binding the contract method 0x095ea7b3.
 18242  //
 18243  // Solidity: function approve(address spender, uint256 value) returns(bool)
 18244  func (_ERC20 *ERC20Session) Approve(spender common.Address, value *big.Int) (*types.Transaction, error) {
 18245  	return _ERC20.Contract.Approve(&_ERC20.TransactOpts, spender, value)
 18246  }
 18247  
 18248  // Approve is a paid mutator transaction binding the contract method 0x095ea7b3.
 18249  //
 18250  // Solidity: function approve(address spender, uint256 value) returns(bool)
 18251  func (_ERC20 *ERC20TransactorSession) Approve(spender common.Address, value *big.Int) (*types.Transaction, error) {
 18252  	return _ERC20.Contract.Approve(&_ERC20.TransactOpts, spender, value)
 18253  }
 18254  
 18255  // DecreaseAllowance is a paid mutator transaction binding the contract method 0xa457c2d7.
 18256  //
 18257  // Solidity: function decreaseAllowance(address spender, uint256 subtractedValue) returns(bool)
 18258  func (_ERC20 *ERC20Transactor) DecreaseAllowance(opts *bind.TransactOpts, spender common.Address, subtractedValue *big.Int) (*types.Transaction, error) {
 18259  	return _ERC20.contract.Transact(opts, "decreaseAllowance", spender, subtractedValue)
 18260  }
 18261  
 18262  // DecreaseAllowance is a paid mutator transaction binding the contract method 0xa457c2d7.
 18263  //
 18264  // Solidity: function decreaseAllowance(address spender, uint256 subtractedValue) returns(bool)
 18265  func (_ERC20 *ERC20Session) DecreaseAllowance(spender common.Address, subtractedValue *big.Int) (*types.Transaction, error) {
 18266  	return _ERC20.Contract.DecreaseAllowance(&_ERC20.TransactOpts, spender, subtractedValue)
 18267  }
 18268  
 18269  // DecreaseAllowance is a paid mutator transaction binding the contract method 0xa457c2d7.
 18270  //
 18271  // Solidity: function decreaseAllowance(address spender, uint256 subtractedValue) returns(bool)
 18272  func (_ERC20 *ERC20TransactorSession) DecreaseAllowance(spender common.Address, subtractedValue *big.Int) (*types.Transaction, error) {
 18273  	return _ERC20.Contract.DecreaseAllowance(&_ERC20.TransactOpts, spender, subtractedValue)
 18274  }
 18275  
 18276  // IncreaseAllowance is a paid mutator transaction binding the contract method 0x39509351.
 18277  //
 18278  // Solidity: function increaseAllowance(address spender, uint256 addedValue) returns(bool)
 18279  func (_ERC20 *ERC20Transactor) IncreaseAllowance(opts *bind.TransactOpts, spender common.Address, addedValue *big.Int) (*types.Transaction, error) {
 18280  	return _ERC20.contract.Transact(opts, "increaseAllowance", spender, addedValue)
 18281  }
 18282  
 18283  // IncreaseAllowance is a paid mutator transaction binding the contract method 0x39509351.
 18284  //
 18285  // Solidity: function increaseAllowance(address spender, uint256 addedValue) returns(bool)
 18286  func (_ERC20 *ERC20Session) IncreaseAllowance(spender common.Address, addedValue *big.Int) (*types.Transaction, error) {
 18287  	return _ERC20.Contract.IncreaseAllowance(&_ERC20.TransactOpts, spender, addedValue)
 18288  }
 18289  
 18290  // IncreaseAllowance is a paid mutator transaction binding the contract method 0x39509351.
 18291  //
 18292  // Solidity: function increaseAllowance(address spender, uint256 addedValue) returns(bool)
 18293  func (_ERC20 *ERC20TransactorSession) IncreaseAllowance(spender common.Address, addedValue *big.Int) (*types.Transaction, error) {
 18294  	return _ERC20.Contract.IncreaseAllowance(&_ERC20.TransactOpts, spender, addedValue)
 18295  }
 18296  
 18297  // Transfer is a paid mutator transaction binding the contract method 0xa9059cbb.
 18298  //
 18299  // Solidity: function transfer(address recipient, uint256 amount) returns(bool)
 18300  func (_ERC20 *ERC20Transactor) Transfer(opts *bind.TransactOpts, recipient common.Address, amount *big.Int) (*types.Transaction, error) {
 18301  	return _ERC20.contract.Transact(opts, "transfer", recipient, amount)
 18302  }
 18303  
 18304  // Transfer is a paid mutator transaction binding the contract method 0xa9059cbb.
 18305  //
 18306  // Solidity: function transfer(address recipient, uint256 amount) returns(bool)
 18307  func (_ERC20 *ERC20Session) Transfer(recipient common.Address, amount *big.Int) (*types.Transaction, error) {
 18308  	return _ERC20.Contract.Transfer(&_ERC20.TransactOpts, recipient, amount)
 18309  }
 18310  
 18311  // Transfer is a paid mutator transaction binding the contract method 0xa9059cbb.
 18312  //
 18313  // Solidity: function transfer(address recipient, uint256 amount) returns(bool)
 18314  func (_ERC20 *ERC20TransactorSession) Transfer(recipient common.Address, amount *big.Int) (*types.Transaction, error) {
 18315  	return _ERC20.Contract.Transfer(&_ERC20.TransactOpts, recipient, amount)
 18316  }
 18317  
 18318  // TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd.
 18319  //
 18320  // Solidity: function transferFrom(address sender, address recipient, uint256 amount) returns(bool)
 18321  func (_ERC20 *ERC20Transactor) TransferFrom(opts *bind.TransactOpts, sender common.Address, recipient common.Address, amount *big.Int) (*types.Transaction, error) {
 18322  	return _ERC20.contract.Transact(opts, "transferFrom", sender, recipient, amount)
 18323  }
 18324  
 18325  // TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd.
 18326  //
 18327  // Solidity: function transferFrom(address sender, address recipient, uint256 amount) returns(bool)
 18328  func (_ERC20 *ERC20Session) TransferFrom(sender common.Address, recipient common.Address, amount *big.Int) (*types.Transaction, error) {
 18329  	return _ERC20.Contract.TransferFrom(&_ERC20.TransactOpts, sender, recipient, amount)
 18330  }
 18331  
 18332  // TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd.
 18333  //
 18334  // Solidity: function transferFrom(address sender, address recipient, uint256 amount) returns(bool)
 18335  func (_ERC20 *ERC20TransactorSession) TransferFrom(sender common.Address, recipient common.Address, amount *big.Int) (*types.Transaction, error) {
 18336  	return _ERC20.Contract.TransferFrom(&_ERC20.TransactOpts, sender, recipient, amount)
 18337  }
 18338  
 18339  // ERC20ApprovalIterator is returned from FilterApproval and is used to iterate over the raw logs and unpacked data for Approval events raised by the ERC20 contract.
 18340  type ERC20ApprovalIterator struct {
 18341  	Event *ERC20Approval // Event containing the contract specifics and raw log
 18342  
 18343  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 18344  	event    string              // Event name to use for unpacking event data
 18345  
 18346  	logs chan types.Log      // Log channel receiving the found contract events
 18347  	sub  klaytn.Subscription // Subscription for errors, completion and termination
 18348  	done bool                // Whether the subscription completed delivering logs
 18349  	fail error               // Occurred error to stop iteration
 18350  }
 18351  
 18352  // Next advances the iterator to the subsequent event, returning whether there
 18353  // are any more events found. In case of a retrieval or parsing error, false is
 18354  // returned and Error() can be queried for the exact failure.
 18355  func (it *ERC20ApprovalIterator) Next() bool {
 18356  	// If the iterator failed, stop iterating
 18357  	if it.fail != nil {
 18358  		return false
 18359  	}
 18360  	// If the iterator completed, deliver directly whatever's available
 18361  	if it.done {
 18362  		select {
 18363  		case log := <-it.logs:
 18364  			it.Event = new(ERC20Approval)
 18365  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 18366  				it.fail = err
 18367  				return false
 18368  			}
 18369  			it.Event.Raw = log
 18370  			return true
 18371  
 18372  		default:
 18373  			return false
 18374  		}
 18375  	}
 18376  	// Iterator still in progress, wait for either a data or an error event
 18377  	select {
 18378  	case log := <-it.logs:
 18379  		it.Event = new(ERC20Approval)
 18380  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 18381  			it.fail = err
 18382  			return false
 18383  		}
 18384  		it.Event.Raw = log
 18385  		return true
 18386  
 18387  	case err := <-it.sub.Err():
 18388  		it.done = true
 18389  		it.fail = err
 18390  		return it.Next()
 18391  	}
 18392  }
 18393  
 18394  // Error returns any retrieval or parsing error occurred during filtering.
 18395  func (it *ERC20ApprovalIterator) Error() error {
 18396  	return it.fail
 18397  }
 18398  
 18399  // Close terminates the iteration process, releasing any pending underlying
 18400  // resources.
 18401  func (it *ERC20ApprovalIterator) Close() error {
 18402  	it.sub.Unsubscribe()
 18403  	return nil
 18404  }
 18405  
 18406  // ERC20Approval represents a Approval event raised by the ERC20 contract.
 18407  type ERC20Approval struct {
 18408  	Owner   common.Address
 18409  	Spender common.Address
 18410  	Value   *big.Int
 18411  	Raw     types.Log // Blockchain specific contextual infos
 18412  }
 18413  
 18414  // FilterApproval is a free log retrieval operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925.
 18415  //
 18416  // Solidity: event Approval(address indexed owner, address indexed spender, uint256 value)
 18417  func (_ERC20 *ERC20Filterer) FilterApproval(opts *bind.FilterOpts, owner []common.Address, spender []common.Address) (*ERC20ApprovalIterator, error) {
 18418  
 18419  	var ownerRule []interface{}
 18420  	for _, ownerItem := range owner {
 18421  		ownerRule = append(ownerRule, ownerItem)
 18422  	}
 18423  	var spenderRule []interface{}
 18424  	for _, spenderItem := range spender {
 18425  		spenderRule = append(spenderRule, spenderItem)
 18426  	}
 18427  
 18428  	logs, sub, err := _ERC20.contract.FilterLogs(opts, "Approval", ownerRule, spenderRule)
 18429  	if err != nil {
 18430  		return nil, err
 18431  	}
 18432  	return &ERC20ApprovalIterator{contract: _ERC20.contract, event: "Approval", logs: logs, sub: sub}, nil
 18433  }
 18434  
 18435  // WatchApproval is a free log subscription operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925.
 18436  //
 18437  // Solidity: event Approval(address indexed owner, address indexed spender, uint256 value)
 18438  func (_ERC20 *ERC20Filterer) WatchApproval(opts *bind.WatchOpts, sink chan<- *ERC20Approval, owner []common.Address, spender []common.Address) (event.Subscription, error) {
 18439  
 18440  	var ownerRule []interface{}
 18441  	for _, ownerItem := range owner {
 18442  		ownerRule = append(ownerRule, ownerItem)
 18443  	}
 18444  	var spenderRule []interface{}
 18445  	for _, spenderItem := range spender {
 18446  		spenderRule = append(spenderRule, spenderItem)
 18447  	}
 18448  
 18449  	logs, sub, err := _ERC20.contract.WatchLogs(opts, "Approval", ownerRule, spenderRule)
 18450  	if err != nil {
 18451  		return nil, err
 18452  	}
 18453  	return event.NewSubscription(func(quit <-chan struct{}) error {
 18454  		defer sub.Unsubscribe()
 18455  		for {
 18456  			select {
 18457  			case log := <-logs:
 18458  				// New log arrived, parse the event and forward to the user
 18459  				event := new(ERC20Approval)
 18460  				if err := _ERC20.contract.UnpackLog(event, "Approval", log); err != nil {
 18461  					return err
 18462  				}
 18463  				event.Raw = log
 18464  
 18465  				select {
 18466  				case sink <- event:
 18467  				case err := <-sub.Err():
 18468  					return err
 18469  				case <-quit:
 18470  					return nil
 18471  				}
 18472  			case err := <-sub.Err():
 18473  				return err
 18474  			case <-quit:
 18475  				return nil
 18476  			}
 18477  		}
 18478  	}), nil
 18479  }
 18480  
 18481  // ParseApproval is a log parse operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925.
 18482  //
 18483  // Solidity: event Approval(address indexed owner, address indexed spender, uint256 value)
 18484  func (_ERC20 *ERC20Filterer) ParseApproval(log types.Log) (*ERC20Approval, error) {
 18485  	event := new(ERC20Approval)
 18486  	if err := _ERC20.contract.UnpackLog(event, "Approval", log); err != nil {
 18487  		return nil, err
 18488  	}
 18489  	return event, nil
 18490  }
 18491  
 18492  // ERC20TransferIterator is returned from FilterTransfer and is used to iterate over the raw logs and unpacked data for Transfer events raised by the ERC20 contract.
 18493  type ERC20TransferIterator struct {
 18494  	Event *ERC20Transfer // Event containing the contract specifics and raw log
 18495  
 18496  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 18497  	event    string              // Event name to use for unpacking event data
 18498  
 18499  	logs chan types.Log      // Log channel receiving the found contract events
 18500  	sub  klaytn.Subscription // Subscription for errors, completion and termination
 18501  	done bool                // Whether the subscription completed delivering logs
 18502  	fail error               // Occurred error to stop iteration
 18503  }
 18504  
 18505  // Next advances the iterator to the subsequent event, returning whether there
 18506  // are any more events found. In case of a retrieval or parsing error, false is
 18507  // returned and Error() can be queried for the exact failure.
 18508  func (it *ERC20TransferIterator) Next() bool {
 18509  	// If the iterator failed, stop iterating
 18510  	if it.fail != nil {
 18511  		return false
 18512  	}
 18513  	// If the iterator completed, deliver directly whatever's available
 18514  	if it.done {
 18515  		select {
 18516  		case log := <-it.logs:
 18517  			it.Event = new(ERC20Transfer)
 18518  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 18519  				it.fail = err
 18520  				return false
 18521  			}
 18522  			it.Event.Raw = log
 18523  			return true
 18524  
 18525  		default:
 18526  			return false
 18527  		}
 18528  	}
 18529  	// Iterator still in progress, wait for either a data or an error event
 18530  	select {
 18531  	case log := <-it.logs:
 18532  		it.Event = new(ERC20Transfer)
 18533  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 18534  			it.fail = err
 18535  			return false
 18536  		}
 18537  		it.Event.Raw = log
 18538  		return true
 18539  
 18540  	case err := <-it.sub.Err():
 18541  		it.done = true
 18542  		it.fail = err
 18543  		return it.Next()
 18544  	}
 18545  }
 18546  
 18547  // Error returns any retrieval or parsing error occurred during filtering.
 18548  func (it *ERC20TransferIterator) Error() error {
 18549  	return it.fail
 18550  }
 18551  
 18552  // Close terminates the iteration process, releasing any pending underlying
 18553  // resources.
 18554  func (it *ERC20TransferIterator) Close() error {
 18555  	it.sub.Unsubscribe()
 18556  	return nil
 18557  }
 18558  
 18559  // ERC20Transfer represents a Transfer event raised by the ERC20 contract.
 18560  type ERC20Transfer struct {
 18561  	From  common.Address
 18562  	To    common.Address
 18563  	Value *big.Int
 18564  	Raw   types.Log // Blockchain specific contextual infos
 18565  }
 18566  
 18567  // FilterTransfer is a free log retrieval operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef.
 18568  //
 18569  // Solidity: event Transfer(address indexed from, address indexed to, uint256 value)
 18570  func (_ERC20 *ERC20Filterer) FilterTransfer(opts *bind.FilterOpts, from []common.Address, to []common.Address) (*ERC20TransferIterator, error) {
 18571  
 18572  	var fromRule []interface{}
 18573  	for _, fromItem := range from {
 18574  		fromRule = append(fromRule, fromItem)
 18575  	}
 18576  	var toRule []interface{}
 18577  	for _, toItem := range to {
 18578  		toRule = append(toRule, toItem)
 18579  	}
 18580  
 18581  	logs, sub, err := _ERC20.contract.FilterLogs(opts, "Transfer", fromRule, toRule)
 18582  	if err != nil {
 18583  		return nil, err
 18584  	}
 18585  	return &ERC20TransferIterator{contract: _ERC20.contract, event: "Transfer", logs: logs, sub: sub}, nil
 18586  }
 18587  
 18588  // WatchTransfer is a free log subscription operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef.
 18589  //
 18590  // Solidity: event Transfer(address indexed from, address indexed to, uint256 value)
 18591  func (_ERC20 *ERC20Filterer) WatchTransfer(opts *bind.WatchOpts, sink chan<- *ERC20Transfer, from []common.Address, to []common.Address) (event.Subscription, error) {
 18592  
 18593  	var fromRule []interface{}
 18594  	for _, fromItem := range from {
 18595  		fromRule = append(fromRule, fromItem)
 18596  	}
 18597  	var toRule []interface{}
 18598  	for _, toItem := range to {
 18599  		toRule = append(toRule, toItem)
 18600  	}
 18601  
 18602  	logs, sub, err := _ERC20.contract.WatchLogs(opts, "Transfer", fromRule, toRule)
 18603  	if err != nil {
 18604  		return nil, err
 18605  	}
 18606  	return event.NewSubscription(func(quit <-chan struct{}) error {
 18607  		defer sub.Unsubscribe()
 18608  		for {
 18609  			select {
 18610  			case log := <-logs:
 18611  				// New log arrived, parse the event and forward to the user
 18612  				event := new(ERC20Transfer)
 18613  				if err := _ERC20.contract.UnpackLog(event, "Transfer", log); err != nil {
 18614  					return err
 18615  				}
 18616  				event.Raw = log
 18617  
 18618  				select {
 18619  				case sink <- event:
 18620  				case err := <-sub.Err():
 18621  					return err
 18622  				case <-quit:
 18623  					return nil
 18624  				}
 18625  			case err := <-sub.Err():
 18626  				return err
 18627  			case <-quit:
 18628  				return nil
 18629  			}
 18630  		}
 18631  	}), nil
 18632  }
 18633  
 18634  // ParseTransfer is a log parse operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef.
 18635  //
 18636  // Solidity: event Transfer(address indexed from, address indexed to, uint256 value)
 18637  func (_ERC20 *ERC20Filterer) ParseTransfer(log types.Log) (*ERC20Transfer, error) {
 18638  	event := new(ERC20Transfer)
 18639  	if err := _ERC20.contract.UnpackLog(event, "Transfer", log); err != nil {
 18640  		return nil, err
 18641  	}
 18642  	return event, nil
 18643  }
 18644  
 18645  // ERC20BurnableMetaData contains all meta data concerning the ERC20Burnable contract.
 18646  var ERC20BurnableMetaData = &bind.MetaData{
 18647  	ABI: "[{\"constant\":false,\"inputs\":[{\"name\":\"spender\",\"type\":\"address\"},{\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"sender\",\"type\":\"address\"},{\"name\":\"recipient\",\"type\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"spender\",\"type\":\"address\"},{\"name\":\"addedValue\",\"type\":\"uint256\"}],\"name\":\"increaseAllowance\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"account\",\"type\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"burnFrom\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"spender\",\"type\":\"address\"},{\"name\":\"subtractedValue\",\"type\":\"uint256\"}],\"name\":\"decreaseAllowance\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"recipient\",\"type\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"owner\",\"type\":\"address\"},{\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"}]",
 18648  	Sigs: map[string]string{
 18649  		"dd62ed3e": "allowance(address,address)",
 18650  		"095ea7b3": "approve(address,uint256)",
 18651  		"70a08231": "balanceOf(address)",
 18652  		"42966c68": "burn(uint256)",
 18653  		"79cc6790": "burnFrom(address,uint256)",
 18654  		"a457c2d7": "decreaseAllowance(address,uint256)",
 18655  		"39509351": "increaseAllowance(address,uint256)",
 18656  		"18160ddd": "totalSupply()",
 18657  		"a9059cbb": "transfer(address,uint256)",
 18658  		"23b872dd": "transferFrom(address,address,uint256)",
 18659  	},
 18660  	Bin: "0x608060405234801561001057600080fd5b506108a9806100206000396000f3fe608060405234801561001057600080fd5b506004361061009e5760003560e01c806370a082311161006657806370a082311461017e57806379cc6790146101a4578063a457c2d7146101d0578063a9059cbb146101fc578063dd62ed3e146102285761009e565b8063095ea7b3146100a357806318160ddd146100e357806323b872dd146100fd578063395093511461013357806342966c681461015f575b600080fd5b6100cf600480360360408110156100b957600080fd5b506001600160a01b038135169060200135610256565b604080519115158252519081900360200190f35b6100eb61026c565b60408051918252519081900360200190f35b6100cf6004803603606081101561011357600080fd5b506001600160a01b03813581169160208101359091169060400135610272565b6100cf6004803603604081101561014957600080fd5b506001600160a01b0381351690602001356102c9565b61017c6004803603602081101561017557600080fd5b5035610305565b005b6100eb6004803603602081101561019457600080fd5b50356001600160a01b0316610312565b61017c600480360360408110156101ba57600080fd5b506001600160a01b03813516906020013561032d565b6100cf600480360360408110156101e657600080fd5b506001600160a01b03813516906020013561033b565b6100cf6004803603604081101561021257600080fd5b506001600160a01b038135169060200135610377565b6100eb6004803603604081101561023e57600080fd5b506001600160a01b0381358116916020013516610384565b60006102633384846103af565b50600192915050565b60025490565b600061027f8484846104a1565b6001600160a01b0384166000908152600160209081526040808320338085529252909120546102bf9186916102ba908663ffffffff6105e916565b6103af565b5060019392505050565b3360008181526001602090815260408083206001600160a01b038716845290915281205490916102639185906102ba908663ffffffff61064916565b61030f33826106ad565b50565b6001600160a01b031660009081526020819052604090205490565b6103378282610789565b5050565b3360008181526001602090815260408083206001600160a01b038716845290915281205490916102639185906102ba908663ffffffff6105e916565b60006102633384846104a1565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6001600160a01b0383166103f757604051600160e51b62461bcd02815260040180806020018281038252602481526020018061085a6024913960400191505060405180910390fd5b6001600160a01b03821661043f57604051600160e51b62461bcd0281526004018080602001828103825260228152602001806107f26022913960400191505060405180910390fd5b6001600160a01b03808416600081815260016020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b0383166104e957604051600160e51b62461bcd0281526004018080602001828103825260258152602001806108356025913960400191505060405180910390fd5b6001600160a01b03821661053157604051600160e51b62461bcd0281526004018080602001828103825260238152602001806107cf6023913960400191505060405180910390fd5b6001600160a01b03831660009081526020819052604090205461055a908263ffffffff6105e916565b6001600160a01b03808516600090815260208190526040808220939093559084168152205461058f908263ffffffff61064916565b6001600160a01b038084166000818152602081815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b6000828211156106435760408051600160e51b62461bcd02815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b6000828201838110156106a65760408051600160e51b62461bcd02815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b6001600160a01b0382166106f557604051600160e51b62461bcd0281526004018080602001828103825260218152602001806108146021913960400191505060405180910390fd5b600254610708908263ffffffff6105e916565b6002556001600160a01b038216600090815260208190526040902054610734908263ffffffff6105e916565b6001600160a01b038316600081815260208181526040808320949094558351858152935191937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929081900390910190a35050565b61079382826106ad565b6001600160a01b0382166000908152600160209081526040808320338085529252909120546103379184916102ba908563ffffffff6105e91656fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a206275726e2066726f6d20746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f2061646472657373a165627a7a723058204231ee98d3acc370c23b7a9c583a427b98017fb9b0fbf87a2a607bdd213332b30029",
 18661  }
 18662  
 18663  // ERC20BurnableABI is the input ABI used to generate the binding from.
 18664  // Deprecated: Use ERC20BurnableMetaData.ABI instead.
 18665  var ERC20BurnableABI = ERC20BurnableMetaData.ABI
 18666  
 18667  // ERC20BurnableBinRuntime is the compiled bytecode used for adding genesis block without deploying code.
 18668  const ERC20BurnableBinRuntime = `608060405234801561001057600080fd5b506004361061009e5760003560e01c806370a082311161006657806370a082311461017e57806379cc6790146101a4578063a457c2d7146101d0578063a9059cbb146101fc578063dd62ed3e146102285761009e565b8063095ea7b3146100a357806318160ddd146100e357806323b872dd146100fd578063395093511461013357806342966c681461015f575b600080fd5b6100cf600480360360408110156100b957600080fd5b506001600160a01b038135169060200135610256565b604080519115158252519081900360200190f35b6100eb61026c565b60408051918252519081900360200190f35b6100cf6004803603606081101561011357600080fd5b506001600160a01b03813581169160208101359091169060400135610272565b6100cf6004803603604081101561014957600080fd5b506001600160a01b0381351690602001356102c9565b61017c6004803603602081101561017557600080fd5b5035610305565b005b6100eb6004803603602081101561019457600080fd5b50356001600160a01b0316610312565b61017c600480360360408110156101ba57600080fd5b506001600160a01b03813516906020013561032d565b6100cf600480360360408110156101e657600080fd5b506001600160a01b03813516906020013561033b565b6100cf6004803603604081101561021257600080fd5b506001600160a01b038135169060200135610377565b6100eb6004803603604081101561023e57600080fd5b506001600160a01b0381358116916020013516610384565b60006102633384846103af565b50600192915050565b60025490565b600061027f8484846104a1565b6001600160a01b0384166000908152600160209081526040808320338085529252909120546102bf9186916102ba908663ffffffff6105e916565b6103af565b5060019392505050565b3360008181526001602090815260408083206001600160a01b038716845290915281205490916102639185906102ba908663ffffffff61064916565b61030f33826106ad565b50565b6001600160a01b031660009081526020819052604090205490565b6103378282610789565b5050565b3360008181526001602090815260408083206001600160a01b038716845290915281205490916102639185906102ba908663ffffffff6105e916565b60006102633384846104a1565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6001600160a01b0383166103f757604051600160e51b62461bcd02815260040180806020018281038252602481526020018061085a6024913960400191505060405180910390fd5b6001600160a01b03821661043f57604051600160e51b62461bcd0281526004018080602001828103825260228152602001806107f26022913960400191505060405180910390fd5b6001600160a01b03808416600081815260016020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b0383166104e957604051600160e51b62461bcd0281526004018080602001828103825260258152602001806108356025913960400191505060405180910390fd5b6001600160a01b03821661053157604051600160e51b62461bcd0281526004018080602001828103825260238152602001806107cf6023913960400191505060405180910390fd5b6001600160a01b03831660009081526020819052604090205461055a908263ffffffff6105e916565b6001600160a01b03808516600090815260208190526040808220939093559084168152205461058f908263ffffffff61064916565b6001600160a01b038084166000818152602081815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b6000828211156106435760408051600160e51b62461bcd02815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b6000828201838110156106a65760408051600160e51b62461bcd02815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b6001600160a01b0382166106f557604051600160e51b62461bcd0281526004018080602001828103825260218152602001806108146021913960400191505060405180910390fd5b600254610708908263ffffffff6105e916565b6002556001600160a01b038216600090815260208190526040902054610734908263ffffffff6105e916565b6001600160a01b038316600081815260208181526040808320949094558351858152935191937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929081900390910190a35050565b61079382826106ad565b6001600160a01b0382166000908152600160209081526040808320338085529252909120546103379184916102ba908563ffffffff6105e91656fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a206275726e2066726f6d20746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f2061646472657373a165627a7a723058204231ee98d3acc370c23b7a9c583a427b98017fb9b0fbf87a2a607bdd213332b30029`
 18669  
 18670  // ERC20BurnableFuncSigs maps the 4-byte function signature to its string representation.
 18671  // Deprecated: Use ERC20BurnableMetaData.Sigs instead.
 18672  var ERC20BurnableFuncSigs = ERC20BurnableMetaData.Sigs
 18673  
 18674  // ERC20BurnableBin is the compiled bytecode used for deploying new contracts.
 18675  // Deprecated: Use ERC20BurnableMetaData.Bin instead.
 18676  var ERC20BurnableBin = ERC20BurnableMetaData.Bin
 18677  
 18678  // DeployERC20Burnable deploys a new Klaytn contract, binding an instance of ERC20Burnable to it.
 18679  func DeployERC20Burnable(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *types.Transaction, *ERC20Burnable, error) {
 18680  	parsed, err := ERC20BurnableMetaData.GetAbi()
 18681  	if err != nil {
 18682  		return common.Address{}, nil, nil, err
 18683  	}
 18684  	if parsed == nil {
 18685  		return common.Address{}, nil, nil, errors.New("GetABI returned nil")
 18686  	}
 18687  
 18688  	address, tx, contract, err := bind.DeployContract(auth, *parsed, common.FromHex(ERC20BurnableBin), backend)
 18689  	if err != nil {
 18690  		return common.Address{}, nil, nil, err
 18691  	}
 18692  	return address, tx, &ERC20Burnable{ERC20BurnableCaller: ERC20BurnableCaller{contract: contract}, ERC20BurnableTransactor: ERC20BurnableTransactor{contract: contract}, ERC20BurnableFilterer: ERC20BurnableFilterer{contract: contract}}, nil
 18693  }
 18694  
 18695  // ERC20Burnable is an auto generated Go binding around a Klaytn contract.
 18696  type ERC20Burnable struct {
 18697  	ERC20BurnableCaller     // Read-only binding to the contract
 18698  	ERC20BurnableTransactor // Write-only binding to the contract
 18699  	ERC20BurnableFilterer   // Log filterer for contract events
 18700  }
 18701  
 18702  // ERC20BurnableCaller is an auto generated read-only Go binding around a Klaytn contract.
 18703  type ERC20BurnableCaller struct {
 18704  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 18705  }
 18706  
 18707  // ERC20BurnableTransactor is an auto generated write-only Go binding around a Klaytn contract.
 18708  type ERC20BurnableTransactor struct {
 18709  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 18710  }
 18711  
 18712  // ERC20BurnableFilterer is an auto generated log filtering Go binding around a Klaytn contract events.
 18713  type ERC20BurnableFilterer struct {
 18714  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 18715  }
 18716  
 18717  // ERC20BurnableSession is an auto generated Go binding around a Klaytn contract,
 18718  // with pre-set call and transact options.
 18719  type ERC20BurnableSession struct {
 18720  	Contract     *ERC20Burnable    // Generic contract binding to set the session for
 18721  	CallOpts     bind.CallOpts     // Call options to use throughout this session
 18722  	TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
 18723  }
 18724  
 18725  // ERC20BurnableCallerSession is an auto generated read-only Go binding around a Klaytn contract,
 18726  // with pre-set call options.
 18727  type ERC20BurnableCallerSession struct {
 18728  	Contract *ERC20BurnableCaller // Generic contract caller binding to set the session for
 18729  	CallOpts bind.CallOpts        // Call options to use throughout this session
 18730  }
 18731  
 18732  // ERC20BurnableTransactorSession is an auto generated write-only Go binding around a Klaytn contract,
 18733  // with pre-set transact options.
 18734  type ERC20BurnableTransactorSession struct {
 18735  	Contract     *ERC20BurnableTransactor // Generic contract transactor binding to set the session for
 18736  	TransactOpts bind.TransactOpts        // Transaction auth options to use throughout this session
 18737  }
 18738  
 18739  // ERC20BurnableRaw is an auto generated low-level Go binding around a Klaytn contract.
 18740  type ERC20BurnableRaw struct {
 18741  	Contract *ERC20Burnable // Generic contract binding to access the raw methods on
 18742  }
 18743  
 18744  // ERC20BurnableCallerRaw is an auto generated low-level read-only Go binding around a Klaytn contract.
 18745  type ERC20BurnableCallerRaw struct {
 18746  	Contract *ERC20BurnableCaller // Generic read-only contract binding to access the raw methods on
 18747  }
 18748  
 18749  // ERC20BurnableTransactorRaw is an auto generated low-level write-only Go binding around a Klaytn contract.
 18750  type ERC20BurnableTransactorRaw struct {
 18751  	Contract *ERC20BurnableTransactor // Generic write-only contract binding to access the raw methods on
 18752  }
 18753  
 18754  // NewERC20Burnable creates a new instance of ERC20Burnable, bound to a specific deployed contract.
 18755  func NewERC20Burnable(address common.Address, backend bind.ContractBackend) (*ERC20Burnable, error) {
 18756  	contract, err := bindERC20Burnable(address, backend, backend, backend)
 18757  	if err != nil {
 18758  		return nil, err
 18759  	}
 18760  	return &ERC20Burnable{ERC20BurnableCaller: ERC20BurnableCaller{contract: contract}, ERC20BurnableTransactor: ERC20BurnableTransactor{contract: contract}, ERC20BurnableFilterer: ERC20BurnableFilterer{contract: contract}}, nil
 18761  }
 18762  
 18763  // NewERC20BurnableCaller creates a new read-only instance of ERC20Burnable, bound to a specific deployed contract.
 18764  func NewERC20BurnableCaller(address common.Address, caller bind.ContractCaller) (*ERC20BurnableCaller, error) {
 18765  	contract, err := bindERC20Burnable(address, caller, nil, nil)
 18766  	if err != nil {
 18767  		return nil, err
 18768  	}
 18769  	return &ERC20BurnableCaller{contract: contract}, nil
 18770  }
 18771  
 18772  // NewERC20BurnableTransactor creates a new write-only instance of ERC20Burnable, bound to a specific deployed contract.
 18773  func NewERC20BurnableTransactor(address common.Address, transactor bind.ContractTransactor) (*ERC20BurnableTransactor, error) {
 18774  	contract, err := bindERC20Burnable(address, nil, transactor, nil)
 18775  	if err != nil {
 18776  		return nil, err
 18777  	}
 18778  	return &ERC20BurnableTransactor{contract: contract}, nil
 18779  }
 18780  
 18781  // NewERC20BurnableFilterer creates a new log filterer instance of ERC20Burnable, bound to a specific deployed contract.
 18782  func NewERC20BurnableFilterer(address common.Address, filterer bind.ContractFilterer) (*ERC20BurnableFilterer, error) {
 18783  	contract, err := bindERC20Burnable(address, nil, nil, filterer)
 18784  	if err != nil {
 18785  		return nil, err
 18786  	}
 18787  	return &ERC20BurnableFilterer{contract: contract}, nil
 18788  }
 18789  
 18790  // bindERC20Burnable binds a generic wrapper to an already deployed contract.
 18791  func bindERC20Burnable(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
 18792  	parsed, err := ERC20BurnableMetaData.GetAbi()
 18793  	if err != nil {
 18794  		return nil, err
 18795  	}
 18796  	return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil
 18797  }
 18798  
 18799  // Call invokes the (constant) contract method with params as input values and
 18800  // sets the output to result. The result type might be a single field for simple
 18801  // returns, a slice of interfaces for anonymous returns and a struct for named
 18802  // returns.
 18803  func (_ERC20Burnable *ERC20BurnableRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
 18804  	return _ERC20Burnable.Contract.ERC20BurnableCaller.contract.Call(opts, result, method, params...)
 18805  }
 18806  
 18807  // Transfer initiates a plain transaction to move funds to the contract, calling
 18808  // its default method if one is available.
 18809  func (_ERC20Burnable *ERC20BurnableRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
 18810  	return _ERC20Burnable.Contract.ERC20BurnableTransactor.contract.Transfer(opts)
 18811  }
 18812  
 18813  // Transact invokes the (paid) contract method with params as input values.
 18814  func (_ERC20Burnable *ERC20BurnableRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
 18815  	return _ERC20Burnable.Contract.ERC20BurnableTransactor.contract.Transact(opts, method, params...)
 18816  }
 18817  
 18818  // Call invokes the (constant) contract method with params as input values and
 18819  // sets the output to result. The result type might be a single field for simple
 18820  // returns, a slice of interfaces for anonymous returns and a struct for named
 18821  // returns.
 18822  func (_ERC20Burnable *ERC20BurnableCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
 18823  	return _ERC20Burnable.Contract.contract.Call(opts, result, method, params...)
 18824  }
 18825  
 18826  // Transfer initiates a plain transaction to move funds to the contract, calling
 18827  // its default method if one is available.
 18828  func (_ERC20Burnable *ERC20BurnableTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
 18829  	return _ERC20Burnable.Contract.contract.Transfer(opts)
 18830  }
 18831  
 18832  // Transact invokes the (paid) contract method with params as input values.
 18833  func (_ERC20Burnable *ERC20BurnableTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
 18834  	return _ERC20Burnable.Contract.contract.Transact(opts, method, params...)
 18835  }
 18836  
 18837  // Allowance is a free data retrieval call binding the contract method 0xdd62ed3e.
 18838  //
 18839  // Solidity: function allowance(address owner, address spender) view returns(uint256)
 18840  func (_ERC20Burnable *ERC20BurnableCaller) Allowance(opts *bind.CallOpts, owner common.Address, spender common.Address) (*big.Int, error) {
 18841  	var out []interface{}
 18842  	err := _ERC20Burnable.contract.Call(opts, &out, "allowance", owner, spender)
 18843  
 18844  	if err != nil {
 18845  		return *new(*big.Int), err
 18846  	}
 18847  
 18848  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
 18849  
 18850  	return out0, err
 18851  
 18852  }
 18853  
 18854  // Allowance is a free data retrieval call binding the contract method 0xdd62ed3e.
 18855  //
 18856  // Solidity: function allowance(address owner, address spender) view returns(uint256)
 18857  func (_ERC20Burnable *ERC20BurnableSession) Allowance(owner common.Address, spender common.Address) (*big.Int, error) {
 18858  	return _ERC20Burnable.Contract.Allowance(&_ERC20Burnable.CallOpts, owner, spender)
 18859  }
 18860  
 18861  // Allowance is a free data retrieval call binding the contract method 0xdd62ed3e.
 18862  //
 18863  // Solidity: function allowance(address owner, address spender) view returns(uint256)
 18864  func (_ERC20Burnable *ERC20BurnableCallerSession) Allowance(owner common.Address, spender common.Address) (*big.Int, error) {
 18865  	return _ERC20Burnable.Contract.Allowance(&_ERC20Burnable.CallOpts, owner, spender)
 18866  }
 18867  
 18868  // BalanceOf is a free data retrieval call binding the contract method 0x70a08231.
 18869  //
 18870  // Solidity: function balanceOf(address account) view returns(uint256)
 18871  func (_ERC20Burnable *ERC20BurnableCaller) BalanceOf(opts *bind.CallOpts, account common.Address) (*big.Int, error) {
 18872  	var out []interface{}
 18873  	err := _ERC20Burnable.contract.Call(opts, &out, "balanceOf", account)
 18874  
 18875  	if err != nil {
 18876  		return *new(*big.Int), err
 18877  	}
 18878  
 18879  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
 18880  
 18881  	return out0, err
 18882  
 18883  }
 18884  
 18885  // BalanceOf is a free data retrieval call binding the contract method 0x70a08231.
 18886  //
 18887  // Solidity: function balanceOf(address account) view returns(uint256)
 18888  func (_ERC20Burnable *ERC20BurnableSession) BalanceOf(account common.Address) (*big.Int, error) {
 18889  	return _ERC20Burnable.Contract.BalanceOf(&_ERC20Burnable.CallOpts, account)
 18890  }
 18891  
 18892  // BalanceOf is a free data retrieval call binding the contract method 0x70a08231.
 18893  //
 18894  // Solidity: function balanceOf(address account) view returns(uint256)
 18895  func (_ERC20Burnable *ERC20BurnableCallerSession) BalanceOf(account common.Address) (*big.Int, error) {
 18896  	return _ERC20Burnable.Contract.BalanceOf(&_ERC20Burnable.CallOpts, account)
 18897  }
 18898  
 18899  // TotalSupply is a free data retrieval call binding the contract method 0x18160ddd.
 18900  //
 18901  // Solidity: function totalSupply() view returns(uint256)
 18902  func (_ERC20Burnable *ERC20BurnableCaller) TotalSupply(opts *bind.CallOpts) (*big.Int, error) {
 18903  	var out []interface{}
 18904  	err := _ERC20Burnable.contract.Call(opts, &out, "totalSupply")
 18905  
 18906  	if err != nil {
 18907  		return *new(*big.Int), err
 18908  	}
 18909  
 18910  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
 18911  
 18912  	return out0, err
 18913  
 18914  }
 18915  
 18916  // TotalSupply is a free data retrieval call binding the contract method 0x18160ddd.
 18917  //
 18918  // Solidity: function totalSupply() view returns(uint256)
 18919  func (_ERC20Burnable *ERC20BurnableSession) TotalSupply() (*big.Int, error) {
 18920  	return _ERC20Burnable.Contract.TotalSupply(&_ERC20Burnable.CallOpts)
 18921  }
 18922  
 18923  // TotalSupply is a free data retrieval call binding the contract method 0x18160ddd.
 18924  //
 18925  // Solidity: function totalSupply() view returns(uint256)
 18926  func (_ERC20Burnable *ERC20BurnableCallerSession) TotalSupply() (*big.Int, error) {
 18927  	return _ERC20Burnable.Contract.TotalSupply(&_ERC20Burnable.CallOpts)
 18928  }
 18929  
 18930  // Approve is a paid mutator transaction binding the contract method 0x095ea7b3.
 18931  //
 18932  // Solidity: function approve(address spender, uint256 value) returns(bool)
 18933  func (_ERC20Burnable *ERC20BurnableTransactor) Approve(opts *bind.TransactOpts, spender common.Address, value *big.Int) (*types.Transaction, error) {
 18934  	return _ERC20Burnable.contract.Transact(opts, "approve", spender, value)
 18935  }
 18936  
 18937  // Approve is a paid mutator transaction binding the contract method 0x095ea7b3.
 18938  //
 18939  // Solidity: function approve(address spender, uint256 value) returns(bool)
 18940  func (_ERC20Burnable *ERC20BurnableSession) Approve(spender common.Address, value *big.Int) (*types.Transaction, error) {
 18941  	return _ERC20Burnable.Contract.Approve(&_ERC20Burnable.TransactOpts, spender, value)
 18942  }
 18943  
 18944  // Approve is a paid mutator transaction binding the contract method 0x095ea7b3.
 18945  //
 18946  // Solidity: function approve(address spender, uint256 value) returns(bool)
 18947  func (_ERC20Burnable *ERC20BurnableTransactorSession) Approve(spender common.Address, value *big.Int) (*types.Transaction, error) {
 18948  	return _ERC20Burnable.Contract.Approve(&_ERC20Burnable.TransactOpts, spender, value)
 18949  }
 18950  
 18951  // Burn is a paid mutator transaction binding the contract method 0x42966c68.
 18952  //
 18953  // Solidity: function burn(uint256 amount) returns()
 18954  func (_ERC20Burnable *ERC20BurnableTransactor) Burn(opts *bind.TransactOpts, amount *big.Int) (*types.Transaction, error) {
 18955  	return _ERC20Burnable.contract.Transact(opts, "burn", amount)
 18956  }
 18957  
 18958  // Burn is a paid mutator transaction binding the contract method 0x42966c68.
 18959  //
 18960  // Solidity: function burn(uint256 amount) returns()
 18961  func (_ERC20Burnable *ERC20BurnableSession) Burn(amount *big.Int) (*types.Transaction, error) {
 18962  	return _ERC20Burnable.Contract.Burn(&_ERC20Burnable.TransactOpts, amount)
 18963  }
 18964  
 18965  // Burn is a paid mutator transaction binding the contract method 0x42966c68.
 18966  //
 18967  // Solidity: function burn(uint256 amount) returns()
 18968  func (_ERC20Burnable *ERC20BurnableTransactorSession) Burn(amount *big.Int) (*types.Transaction, error) {
 18969  	return _ERC20Burnable.Contract.Burn(&_ERC20Burnable.TransactOpts, amount)
 18970  }
 18971  
 18972  // BurnFrom is a paid mutator transaction binding the contract method 0x79cc6790.
 18973  //
 18974  // Solidity: function burnFrom(address account, uint256 amount) returns()
 18975  func (_ERC20Burnable *ERC20BurnableTransactor) BurnFrom(opts *bind.TransactOpts, account common.Address, amount *big.Int) (*types.Transaction, error) {
 18976  	return _ERC20Burnable.contract.Transact(opts, "burnFrom", account, amount)
 18977  }
 18978  
 18979  // BurnFrom is a paid mutator transaction binding the contract method 0x79cc6790.
 18980  //
 18981  // Solidity: function burnFrom(address account, uint256 amount) returns()
 18982  func (_ERC20Burnable *ERC20BurnableSession) BurnFrom(account common.Address, amount *big.Int) (*types.Transaction, error) {
 18983  	return _ERC20Burnable.Contract.BurnFrom(&_ERC20Burnable.TransactOpts, account, amount)
 18984  }
 18985  
 18986  // BurnFrom is a paid mutator transaction binding the contract method 0x79cc6790.
 18987  //
 18988  // Solidity: function burnFrom(address account, uint256 amount) returns()
 18989  func (_ERC20Burnable *ERC20BurnableTransactorSession) BurnFrom(account common.Address, amount *big.Int) (*types.Transaction, error) {
 18990  	return _ERC20Burnable.Contract.BurnFrom(&_ERC20Burnable.TransactOpts, account, amount)
 18991  }
 18992  
 18993  // DecreaseAllowance is a paid mutator transaction binding the contract method 0xa457c2d7.
 18994  //
 18995  // Solidity: function decreaseAllowance(address spender, uint256 subtractedValue) returns(bool)
 18996  func (_ERC20Burnable *ERC20BurnableTransactor) DecreaseAllowance(opts *bind.TransactOpts, spender common.Address, subtractedValue *big.Int) (*types.Transaction, error) {
 18997  	return _ERC20Burnable.contract.Transact(opts, "decreaseAllowance", spender, subtractedValue)
 18998  }
 18999  
 19000  // DecreaseAllowance is a paid mutator transaction binding the contract method 0xa457c2d7.
 19001  //
 19002  // Solidity: function decreaseAllowance(address spender, uint256 subtractedValue) returns(bool)
 19003  func (_ERC20Burnable *ERC20BurnableSession) DecreaseAllowance(spender common.Address, subtractedValue *big.Int) (*types.Transaction, error) {
 19004  	return _ERC20Burnable.Contract.DecreaseAllowance(&_ERC20Burnable.TransactOpts, spender, subtractedValue)
 19005  }
 19006  
 19007  // DecreaseAllowance is a paid mutator transaction binding the contract method 0xa457c2d7.
 19008  //
 19009  // Solidity: function decreaseAllowance(address spender, uint256 subtractedValue) returns(bool)
 19010  func (_ERC20Burnable *ERC20BurnableTransactorSession) DecreaseAllowance(spender common.Address, subtractedValue *big.Int) (*types.Transaction, error) {
 19011  	return _ERC20Burnable.Contract.DecreaseAllowance(&_ERC20Burnable.TransactOpts, spender, subtractedValue)
 19012  }
 19013  
 19014  // IncreaseAllowance is a paid mutator transaction binding the contract method 0x39509351.
 19015  //
 19016  // Solidity: function increaseAllowance(address spender, uint256 addedValue) returns(bool)
 19017  func (_ERC20Burnable *ERC20BurnableTransactor) IncreaseAllowance(opts *bind.TransactOpts, spender common.Address, addedValue *big.Int) (*types.Transaction, error) {
 19018  	return _ERC20Burnable.contract.Transact(opts, "increaseAllowance", spender, addedValue)
 19019  }
 19020  
 19021  // IncreaseAllowance is a paid mutator transaction binding the contract method 0x39509351.
 19022  //
 19023  // Solidity: function increaseAllowance(address spender, uint256 addedValue) returns(bool)
 19024  func (_ERC20Burnable *ERC20BurnableSession) IncreaseAllowance(spender common.Address, addedValue *big.Int) (*types.Transaction, error) {
 19025  	return _ERC20Burnable.Contract.IncreaseAllowance(&_ERC20Burnable.TransactOpts, spender, addedValue)
 19026  }
 19027  
 19028  // IncreaseAllowance is a paid mutator transaction binding the contract method 0x39509351.
 19029  //
 19030  // Solidity: function increaseAllowance(address spender, uint256 addedValue) returns(bool)
 19031  func (_ERC20Burnable *ERC20BurnableTransactorSession) IncreaseAllowance(spender common.Address, addedValue *big.Int) (*types.Transaction, error) {
 19032  	return _ERC20Burnable.Contract.IncreaseAllowance(&_ERC20Burnable.TransactOpts, spender, addedValue)
 19033  }
 19034  
 19035  // Transfer is a paid mutator transaction binding the contract method 0xa9059cbb.
 19036  //
 19037  // Solidity: function transfer(address recipient, uint256 amount) returns(bool)
 19038  func (_ERC20Burnable *ERC20BurnableTransactor) Transfer(opts *bind.TransactOpts, recipient common.Address, amount *big.Int) (*types.Transaction, error) {
 19039  	return _ERC20Burnable.contract.Transact(opts, "transfer", recipient, amount)
 19040  }
 19041  
 19042  // Transfer is a paid mutator transaction binding the contract method 0xa9059cbb.
 19043  //
 19044  // Solidity: function transfer(address recipient, uint256 amount) returns(bool)
 19045  func (_ERC20Burnable *ERC20BurnableSession) Transfer(recipient common.Address, amount *big.Int) (*types.Transaction, error) {
 19046  	return _ERC20Burnable.Contract.Transfer(&_ERC20Burnable.TransactOpts, recipient, amount)
 19047  }
 19048  
 19049  // Transfer is a paid mutator transaction binding the contract method 0xa9059cbb.
 19050  //
 19051  // Solidity: function transfer(address recipient, uint256 amount) returns(bool)
 19052  func (_ERC20Burnable *ERC20BurnableTransactorSession) Transfer(recipient common.Address, amount *big.Int) (*types.Transaction, error) {
 19053  	return _ERC20Burnable.Contract.Transfer(&_ERC20Burnable.TransactOpts, recipient, amount)
 19054  }
 19055  
 19056  // TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd.
 19057  //
 19058  // Solidity: function transferFrom(address sender, address recipient, uint256 amount) returns(bool)
 19059  func (_ERC20Burnable *ERC20BurnableTransactor) TransferFrom(opts *bind.TransactOpts, sender common.Address, recipient common.Address, amount *big.Int) (*types.Transaction, error) {
 19060  	return _ERC20Burnable.contract.Transact(opts, "transferFrom", sender, recipient, amount)
 19061  }
 19062  
 19063  // TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd.
 19064  //
 19065  // Solidity: function transferFrom(address sender, address recipient, uint256 amount) returns(bool)
 19066  func (_ERC20Burnable *ERC20BurnableSession) TransferFrom(sender common.Address, recipient common.Address, amount *big.Int) (*types.Transaction, error) {
 19067  	return _ERC20Burnable.Contract.TransferFrom(&_ERC20Burnable.TransactOpts, sender, recipient, amount)
 19068  }
 19069  
 19070  // TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd.
 19071  //
 19072  // Solidity: function transferFrom(address sender, address recipient, uint256 amount) returns(bool)
 19073  func (_ERC20Burnable *ERC20BurnableTransactorSession) TransferFrom(sender common.Address, recipient common.Address, amount *big.Int) (*types.Transaction, error) {
 19074  	return _ERC20Burnable.Contract.TransferFrom(&_ERC20Burnable.TransactOpts, sender, recipient, amount)
 19075  }
 19076  
 19077  // ERC20BurnableApprovalIterator is returned from FilterApproval and is used to iterate over the raw logs and unpacked data for Approval events raised by the ERC20Burnable contract.
 19078  type ERC20BurnableApprovalIterator struct {
 19079  	Event *ERC20BurnableApproval // Event containing the contract specifics and raw log
 19080  
 19081  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 19082  	event    string              // Event name to use for unpacking event data
 19083  
 19084  	logs chan types.Log      // Log channel receiving the found contract events
 19085  	sub  klaytn.Subscription // Subscription for errors, completion and termination
 19086  	done bool                // Whether the subscription completed delivering logs
 19087  	fail error               // Occurred error to stop iteration
 19088  }
 19089  
 19090  // Next advances the iterator to the subsequent event, returning whether there
 19091  // are any more events found. In case of a retrieval or parsing error, false is
 19092  // returned and Error() can be queried for the exact failure.
 19093  func (it *ERC20BurnableApprovalIterator) Next() bool {
 19094  	// If the iterator failed, stop iterating
 19095  	if it.fail != nil {
 19096  		return false
 19097  	}
 19098  	// If the iterator completed, deliver directly whatever's available
 19099  	if it.done {
 19100  		select {
 19101  		case log := <-it.logs:
 19102  			it.Event = new(ERC20BurnableApproval)
 19103  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 19104  				it.fail = err
 19105  				return false
 19106  			}
 19107  			it.Event.Raw = log
 19108  			return true
 19109  
 19110  		default:
 19111  			return false
 19112  		}
 19113  	}
 19114  	// Iterator still in progress, wait for either a data or an error event
 19115  	select {
 19116  	case log := <-it.logs:
 19117  		it.Event = new(ERC20BurnableApproval)
 19118  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 19119  			it.fail = err
 19120  			return false
 19121  		}
 19122  		it.Event.Raw = log
 19123  		return true
 19124  
 19125  	case err := <-it.sub.Err():
 19126  		it.done = true
 19127  		it.fail = err
 19128  		return it.Next()
 19129  	}
 19130  }
 19131  
 19132  // Error returns any retrieval or parsing error occurred during filtering.
 19133  func (it *ERC20BurnableApprovalIterator) Error() error {
 19134  	return it.fail
 19135  }
 19136  
 19137  // Close terminates the iteration process, releasing any pending underlying
 19138  // resources.
 19139  func (it *ERC20BurnableApprovalIterator) Close() error {
 19140  	it.sub.Unsubscribe()
 19141  	return nil
 19142  }
 19143  
 19144  // ERC20BurnableApproval represents a Approval event raised by the ERC20Burnable contract.
 19145  type ERC20BurnableApproval struct {
 19146  	Owner   common.Address
 19147  	Spender common.Address
 19148  	Value   *big.Int
 19149  	Raw     types.Log // Blockchain specific contextual infos
 19150  }
 19151  
 19152  // FilterApproval is a free log retrieval operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925.
 19153  //
 19154  // Solidity: event Approval(address indexed owner, address indexed spender, uint256 value)
 19155  func (_ERC20Burnable *ERC20BurnableFilterer) FilterApproval(opts *bind.FilterOpts, owner []common.Address, spender []common.Address) (*ERC20BurnableApprovalIterator, error) {
 19156  
 19157  	var ownerRule []interface{}
 19158  	for _, ownerItem := range owner {
 19159  		ownerRule = append(ownerRule, ownerItem)
 19160  	}
 19161  	var spenderRule []interface{}
 19162  	for _, spenderItem := range spender {
 19163  		spenderRule = append(spenderRule, spenderItem)
 19164  	}
 19165  
 19166  	logs, sub, err := _ERC20Burnable.contract.FilterLogs(opts, "Approval", ownerRule, spenderRule)
 19167  	if err != nil {
 19168  		return nil, err
 19169  	}
 19170  	return &ERC20BurnableApprovalIterator{contract: _ERC20Burnable.contract, event: "Approval", logs: logs, sub: sub}, nil
 19171  }
 19172  
 19173  // WatchApproval is a free log subscription operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925.
 19174  //
 19175  // Solidity: event Approval(address indexed owner, address indexed spender, uint256 value)
 19176  func (_ERC20Burnable *ERC20BurnableFilterer) WatchApproval(opts *bind.WatchOpts, sink chan<- *ERC20BurnableApproval, owner []common.Address, spender []common.Address) (event.Subscription, error) {
 19177  
 19178  	var ownerRule []interface{}
 19179  	for _, ownerItem := range owner {
 19180  		ownerRule = append(ownerRule, ownerItem)
 19181  	}
 19182  	var spenderRule []interface{}
 19183  	for _, spenderItem := range spender {
 19184  		spenderRule = append(spenderRule, spenderItem)
 19185  	}
 19186  
 19187  	logs, sub, err := _ERC20Burnable.contract.WatchLogs(opts, "Approval", ownerRule, spenderRule)
 19188  	if err != nil {
 19189  		return nil, err
 19190  	}
 19191  	return event.NewSubscription(func(quit <-chan struct{}) error {
 19192  		defer sub.Unsubscribe()
 19193  		for {
 19194  			select {
 19195  			case log := <-logs:
 19196  				// New log arrived, parse the event and forward to the user
 19197  				event := new(ERC20BurnableApproval)
 19198  				if err := _ERC20Burnable.contract.UnpackLog(event, "Approval", log); err != nil {
 19199  					return err
 19200  				}
 19201  				event.Raw = log
 19202  
 19203  				select {
 19204  				case sink <- event:
 19205  				case err := <-sub.Err():
 19206  					return err
 19207  				case <-quit:
 19208  					return nil
 19209  				}
 19210  			case err := <-sub.Err():
 19211  				return err
 19212  			case <-quit:
 19213  				return nil
 19214  			}
 19215  		}
 19216  	}), nil
 19217  }
 19218  
 19219  // ParseApproval is a log parse operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925.
 19220  //
 19221  // Solidity: event Approval(address indexed owner, address indexed spender, uint256 value)
 19222  func (_ERC20Burnable *ERC20BurnableFilterer) ParseApproval(log types.Log) (*ERC20BurnableApproval, error) {
 19223  	event := new(ERC20BurnableApproval)
 19224  	if err := _ERC20Burnable.contract.UnpackLog(event, "Approval", log); err != nil {
 19225  		return nil, err
 19226  	}
 19227  	return event, nil
 19228  }
 19229  
 19230  // ERC20BurnableTransferIterator is returned from FilterTransfer and is used to iterate over the raw logs and unpacked data for Transfer events raised by the ERC20Burnable contract.
 19231  type ERC20BurnableTransferIterator struct {
 19232  	Event *ERC20BurnableTransfer // Event containing the contract specifics and raw log
 19233  
 19234  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 19235  	event    string              // Event name to use for unpacking event data
 19236  
 19237  	logs chan types.Log      // Log channel receiving the found contract events
 19238  	sub  klaytn.Subscription // Subscription for errors, completion and termination
 19239  	done bool                // Whether the subscription completed delivering logs
 19240  	fail error               // Occurred error to stop iteration
 19241  }
 19242  
 19243  // Next advances the iterator to the subsequent event, returning whether there
 19244  // are any more events found. In case of a retrieval or parsing error, false is
 19245  // returned and Error() can be queried for the exact failure.
 19246  func (it *ERC20BurnableTransferIterator) Next() bool {
 19247  	// If the iterator failed, stop iterating
 19248  	if it.fail != nil {
 19249  		return false
 19250  	}
 19251  	// If the iterator completed, deliver directly whatever's available
 19252  	if it.done {
 19253  		select {
 19254  		case log := <-it.logs:
 19255  			it.Event = new(ERC20BurnableTransfer)
 19256  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 19257  				it.fail = err
 19258  				return false
 19259  			}
 19260  			it.Event.Raw = log
 19261  			return true
 19262  
 19263  		default:
 19264  			return false
 19265  		}
 19266  	}
 19267  	// Iterator still in progress, wait for either a data or an error event
 19268  	select {
 19269  	case log := <-it.logs:
 19270  		it.Event = new(ERC20BurnableTransfer)
 19271  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 19272  			it.fail = err
 19273  			return false
 19274  		}
 19275  		it.Event.Raw = log
 19276  		return true
 19277  
 19278  	case err := <-it.sub.Err():
 19279  		it.done = true
 19280  		it.fail = err
 19281  		return it.Next()
 19282  	}
 19283  }
 19284  
 19285  // Error returns any retrieval or parsing error occurred during filtering.
 19286  func (it *ERC20BurnableTransferIterator) Error() error {
 19287  	return it.fail
 19288  }
 19289  
 19290  // Close terminates the iteration process, releasing any pending underlying
 19291  // resources.
 19292  func (it *ERC20BurnableTransferIterator) Close() error {
 19293  	it.sub.Unsubscribe()
 19294  	return nil
 19295  }
 19296  
 19297  // ERC20BurnableTransfer represents a Transfer event raised by the ERC20Burnable contract.
 19298  type ERC20BurnableTransfer struct {
 19299  	From  common.Address
 19300  	To    common.Address
 19301  	Value *big.Int
 19302  	Raw   types.Log // Blockchain specific contextual infos
 19303  }
 19304  
 19305  // FilterTransfer is a free log retrieval operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef.
 19306  //
 19307  // Solidity: event Transfer(address indexed from, address indexed to, uint256 value)
 19308  func (_ERC20Burnable *ERC20BurnableFilterer) FilterTransfer(opts *bind.FilterOpts, from []common.Address, to []common.Address) (*ERC20BurnableTransferIterator, error) {
 19309  
 19310  	var fromRule []interface{}
 19311  	for _, fromItem := range from {
 19312  		fromRule = append(fromRule, fromItem)
 19313  	}
 19314  	var toRule []interface{}
 19315  	for _, toItem := range to {
 19316  		toRule = append(toRule, toItem)
 19317  	}
 19318  
 19319  	logs, sub, err := _ERC20Burnable.contract.FilterLogs(opts, "Transfer", fromRule, toRule)
 19320  	if err != nil {
 19321  		return nil, err
 19322  	}
 19323  	return &ERC20BurnableTransferIterator{contract: _ERC20Burnable.contract, event: "Transfer", logs: logs, sub: sub}, nil
 19324  }
 19325  
 19326  // WatchTransfer is a free log subscription operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef.
 19327  //
 19328  // Solidity: event Transfer(address indexed from, address indexed to, uint256 value)
 19329  func (_ERC20Burnable *ERC20BurnableFilterer) WatchTransfer(opts *bind.WatchOpts, sink chan<- *ERC20BurnableTransfer, from []common.Address, to []common.Address) (event.Subscription, error) {
 19330  
 19331  	var fromRule []interface{}
 19332  	for _, fromItem := range from {
 19333  		fromRule = append(fromRule, fromItem)
 19334  	}
 19335  	var toRule []interface{}
 19336  	for _, toItem := range to {
 19337  		toRule = append(toRule, toItem)
 19338  	}
 19339  
 19340  	logs, sub, err := _ERC20Burnable.contract.WatchLogs(opts, "Transfer", fromRule, toRule)
 19341  	if err != nil {
 19342  		return nil, err
 19343  	}
 19344  	return event.NewSubscription(func(quit <-chan struct{}) error {
 19345  		defer sub.Unsubscribe()
 19346  		for {
 19347  			select {
 19348  			case log := <-logs:
 19349  				// New log arrived, parse the event and forward to the user
 19350  				event := new(ERC20BurnableTransfer)
 19351  				if err := _ERC20Burnable.contract.UnpackLog(event, "Transfer", log); err != nil {
 19352  					return err
 19353  				}
 19354  				event.Raw = log
 19355  
 19356  				select {
 19357  				case sink <- event:
 19358  				case err := <-sub.Err():
 19359  					return err
 19360  				case <-quit:
 19361  					return nil
 19362  				}
 19363  			case err := <-sub.Err():
 19364  				return err
 19365  			case <-quit:
 19366  				return nil
 19367  			}
 19368  		}
 19369  	}), nil
 19370  }
 19371  
 19372  // ParseTransfer is a log parse operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef.
 19373  //
 19374  // Solidity: event Transfer(address indexed from, address indexed to, uint256 value)
 19375  func (_ERC20Burnable *ERC20BurnableFilterer) ParseTransfer(log types.Log) (*ERC20BurnableTransfer, error) {
 19376  	event := new(ERC20BurnableTransfer)
 19377  	if err := _ERC20Burnable.contract.UnpackLog(event, "Transfer", log); err != nil {
 19378  		return nil, err
 19379  	}
 19380  	return event, nil
 19381  }
 19382  
 19383  // ERC20MintableMetaData contains all meta data concerning the ERC20Mintable contract.
 19384  var ERC20MintableMetaData = &bind.MetaData{
 19385  	ABI: "[{\"constant\":false,\"inputs\":[{\"name\":\"spender\",\"type\":\"address\"},{\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"sender\",\"type\":\"address\"},{\"name\":\"recipient\",\"type\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"spender\",\"type\":\"address\"},{\"name\":\"addedValue\",\"type\":\"uint256\"}],\"name\":\"increaseAllowance\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"account\",\"type\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"account\",\"type\":\"address\"}],\"name\":\"addMinter\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"renounceMinter\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"spender\",\"type\":\"address\"},{\"name\":\"subtractedValue\",\"type\":\"uint256\"}],\"name\":\"decreaseAllowance\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"recipient\",\"type\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"account\",\"type\":\"address\"}],\"name\":\"isMinter\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"owner\",\"type\":\"address\"},{\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"account\",\"type\":\"address\"}],\"name\":\"MinterAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"account\",\"type\":\"address\"}],\"name\":\"MinterRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"}]",
 19386  	Sigs: map[string]string{
 19387  		"983b2d56": "addMinter(address)",
 19388  		"dd62ed3e": "allowance(address,address)",
 19389  		"095ea7b3": "approve(address,uint256)",
 19390  		"70a08231": "balanceOf(address)",
 19391  		"a457c2d7": "decreaseAllowance(address,uint256)",
 19392  		"39509351": "increaseAllowance(address,uint256)",
 19393  		"aa271e1a": "isMinter(address)",
 19394  		"40c10f19": "mint(address,uint256)",
 19395  		"98650275": "renounceMinter()",
 19396  		"18160ddd": "totalSupply()",
 19397  		"a9059cbb": "transfer(address,uint256)",
 19398  		"23b872dd": "transferFrom(address,address,uint256)",
 19399  	},
 19400  	Bin: "0x60806040526100133361001860201b60201c565b610189565b61003081600361006760201b6109961790919060201c565b6040516001600160a01b038216907f6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f690600090a250565b610077828261010860201b60201c565b156100e357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015290519081900360640190fd5b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b60006001600160a01b038216610169576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180610d496022913960400191505060405180910390fd5b506001600160a01b03166000908152602091909152604090205460ff1690565b610bb1806101986000396000f3fe608060405234801561001057600080fd5b50600436106100b45760003560e01c8063983b2d5611610071578063983b2d56146101c757806398650275146101ef578063a457c2d7146101f7578063a9059cbb14610223578063aa271e1a1461024f578063dd62ed3e14610275576100b4565b8063095ea7b3146100b957806318160ddd146100f957806323b872dd14610113578063395093511461014957806340c10f191461017557806370a08231146101a1575b600080fd5b6100e5600480360360408110156100cf57600080fd5b506001600160a01b0381351690602001356102a3565b604080519115158252519081900360200190f35b6101016102b9565b60408051918252519081900360200190f35b6100e56004803603606081101561012957600080fd5b506001600160a01b038135811691602081013590911690604001356102bf565b6100e56004803603604081101561015f57600080fd5b506001600160a01b038135169060200135610316565b6100e56004803603604081101561018b57600080fd5b506001600160a01b038135169060200135610352565b610101600480360360208110156101b757600080fd5b50356001600160a01b03166103a5565b6101ed600480360360208110156101dd57600080fd5b50356001600160a01b03166103c0565b005b6101ed610413565b6100e56004803603604081101561020d57600080fd5b506001600160a01b03813516906020013561041e565b6100e56004803603604081101561023957600080fd5b506001600160a01b03813516906020013561045a565b6100e56004803603602081101561026557600080fd5b50356001600160a01b0316610467565b6101016004803603604081101561028b57600080fd5b506001600160a01b0381358116916020013516610480565b60006102b03384846104ab565b50600192915050565b60025490565b60006102cc84848461059d565b6001600160a01b03841660009081526001602090815260408083203380855292529091205461030c918691610307908663ffffffff6106e516565b6104ab565b5060019392505050565b3360008181526001602090815260408083206001600160a01b038716845290915281205490916102b0918590610307908663ffffffff61074516565b600061035d33610467565b61039b57604051600160e51b62461bcd028152600401808060200182810382526030815260200180610aca6030913960400191505060405180910390fd5b6102b083836107a9565b6001600160a01b031660009081526020819052604090205490565b6103c933610467565b61040757604051600160e51b62461bcd028152600401808060200182810382526030815260200180610aca6030913960400191505060405180910390fd5b6104108161089c565b50565b61041c336108e4565b565b3360008181526001602090815260408083206001600160a01b038716845290915281205490916102b0918590610307908663ffffffff6106e516565b60006102b033848461059d565b600061047a60038363ffffffff61092c16565b92915050565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6001600160a01b0383166104f357604051600160e51b62461bcd028152600401808060200182810382526024815260200180610b626024913960400191505060405180910390fd5b6001600160a01b03821661053b57604051600160e51b62461bcd028152600401808060200182810382526022815260200180610aa86022913960400191505060405180910390fd5b6001600160a01b03808416600081815260016020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b0383166105e557604051600160e51b62461bcd028152600401808060200182810382526025815260200180610b3d6025913960400191505060405180910390fd5b6001600160a01b03821661062d57604051600160e51b62461bcd028152600401808060200182810382526023815260200180610a856023913960400191505060405180910390fd5b6001600160a01b038316600090815260208190526040902054610656908263ffffffff6106e516565b6001600160a01b03808516600090815260208190526040808220939093559084168152205461068b908263ffffffff61074516565b6001600160a01b038084166000818152602081815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b60008282111561073f5760408051600160e51b62461bcd02815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b6000828201838110156107a25760408051600160e51b62461bcd02815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b6001600160a01b0382166108075760408051600160e51b62461bcd02815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b60025461081a908263ffffffff61074516565b6002556001600160a01b038216600090815260208190526040902054610846908263ffffffff61074516565b6001600160a01b0383166000818152602081815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b6108ad60038263ffffffff61099616565b6040516001600160a01b038216907f6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f690600090a250565b6108f560038263ffffffff610a1a16565b6040516001600160a01b038216907fe94479a9f7e1952cc78f2d6baab678adc1b772d936c6583def489e524cb6669290600090a250565b60006001600160a01b03821661097657604051600160e51b62461bcd028152600401808060200182810382526022815260200180610b1b6022913960400191505060405180910390fd5b506001600160a01b03166000908152602091909152604090205460ff1690565b6109a0828261092c565b156109f55760408051600160e51b62461bcd02815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015290519081900360640190fd5b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b610a24828261092c565b610a6257604051600160e51b62461bcd028152600401808060200182810382526021815260200180610afa6021913960400191505060405180910390fd5b6001600160a01b0316600090815260209190915260409020805460ff1916905556fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f20616464726573734d696e746572526f6c653a2063616c6c657220646f6573206e6f74206861766520746865204d696e74657220726f6c65526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c65526f6c65733a206163636f756e7420697320746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f2061646472657373a165627a7a723058207c035c37b5cdab580693ebc5ac8baa8dd64a88acae0a320928f95065065bb8180029526f6c65733a206163636f756e7420697320746865207a65726f2061646472657373",
 19401  }
 19402  
 19403  // ERC20MintableABI is the input ABI used to generate the binding from.
 19404  // Deprecated: Use ERC20MintableMetaData.ABI instead.
 19405  var ERC20MintableABI = ERC20MintableMetaData.ABI
 19406  
 19407  // ERC20MintableBinRuntime is the compiled bytecode used for adding genesis block without deploying code.
 19408  const ERC20MintableBinRuntime = `608060405234801561001057600080fd5b50600436106100b45760003560e01c8063983b2d5611610071578063983b2d56146101c757806398650275146101ef578063a457c2d7146101f7578063a9059cbb14610223578063aa271e1a1461024f578063dd62ed3e14610275576100b4565b8063095ea7b3146100b957806318160ddd146100f957806323b872dd14610113578063395093511461014957806340c10f191461017557806370a08231146101a1575b600080fd5b6100e5600480360360408110156100cf57600080fd5b506001600160a01b0381351690602001356102a3565b604080519115158252519081900360200190f35b6101016102b9565b60408051918252519081900360200190f35b6100e56004803603606081101561012957600080fd5b506001600160a01b038135811691602081013590911690604001356102bf565b6100e56004803603604081101561015f57600080fd5b506001600160a01b038135169060200135610316565b6100e56004803603604081101561018b57600080fd5b506001600160a01b038135169060200135610352565b610101600480360360208110156101b757600080fd5b50356001600160a01b03166103a5565b6101ed600480360360208110156101dd57600080fd5b50356001600160a01b03166103c0565b005b6101ed610413565b6100e56004803603604081101561020d57600080fd5b506001600160a01b03813516906020013561041e565b6100e56004803603604081101561023957600080fd5b506001600160a01b03813516906020013561045a565b6100e56004803603602081101561026557600080fd5b50356001600160a01b0316610467565b6101016004803603604081101561028b57600080fd5b506001600160a01b0381358116916020013516610480565b60006102b03384846104ab565b50600192915050565b60025490565b60006102cc84848461059d565b6001600160a01b03841660009081526001602090815260408083203380855292529091205461030c918691610307908663ffffffff6106e516565b6104ab565b5060019392505050565b3360008181526001602090815260408083206001600160a01b038716845290915281205490916102b0918590610307908663ffffffff61074516565b600061035d33610467565b61039b57604051600160e51b62461bcd028152600401808060200182810382526030815260200180610aca6030913960400191505060405180910390fd5b6102b083836107a9565b6001600160a01b031660009081526020819052604090205490565b6103c933610467565b61040757604051600160e51b62461bcd028152600401808060200182810382526030815260200180610aca6030913960400191505060405180910390fd5b6104108161089c565b50565b61041c336108e4565b565b3360008181526001602090815260408083206001600160a01b038716845290915281205490916102b0918590610307908663ffffffff6106e516565b60006102b033848461059d565b600061047a60038363ffffffff61092c16565b92915050565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6001600160a01b0383166104f357604051600160e51b62461bcd028152600401808060200182810382526024815260200180610b626024913960400191505060405180910390fd5b6001600160a01b03821661053b57604051600160e51b62461bcd028152600401808060200182810382526022815260200180610aa86022913960400191505060405180910390fd5b6001600160a01b03808416600081815260016020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b0383166105e557604051600160e51b62461bcd028152600401808060200182810382526025815260200180610b3d6025913960400191505060405180910390fd5b6001600160a01b03821661062d57604051600160e51b62461bcd028152600401808060200182810382526023815260200180610a856023913960400191505060405180910390fd5b6001600160a01b038316600090815260208190526040902054610656908263ffffffff6106e516565b6001600160a01b03808516600090815260208190526040808220939093559084168152205461068b908263ffffffff61074516565b6001600160a01b038084166000818152602081815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b60008282111561073f5760408051600160e51b62461bcd02815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b6000828201838110156107a25760408051600160e51b62461bcd02815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b6001600160a01b0382166108075760408051600160e51b62461bcd02815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b60025461081a908263ffffffff61074516565b6002556001600160a01b038216600090815260208190526040902054610846908263ffffffff61074516565b6001600160a01b0383166000818152602081815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b6108ad60038263ffffffff61099616565b6040516001600160a01b038216907f6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f690600090a250565b6108f560038263ffffffff610a1a16565b6040516001600160a01b038216907fe94479a9f7e1952cc78f2d6baab678adc1b772d936c6583def489e524cb6669290600090a250565b60006001600160a01b03821661097657604051600160e51b62461bcd028152600401808060200182810382526022815260200180610b1b6022913960400191505060405180910390fd5b506001600160a01b03166000908152602091909152604090205460ff1690565b6109a0828261092c565b156109f55760408051600160e51b62461bcd02815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015290519081900360640190fd5b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b610a24828261092c565b610a6257604051600160e51b62461bcd028152600401808060200182810382526021815260200180610afa6021913960400191505060405180910390fd5b6001600160a01b0316600090815260209190915260409020805460ff1916905556fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f20616464726573734d696e746572526f6c653a2063616c6c657220646f6573206e6f74206861766520746865204d696e74657220726f6c65526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c65526f6c65733a206163636f756e7420697320746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f2061646472657373a165627a7a723058207c035c37b5cdab580693ebc5ac8baa8dd64a88acae0a320928f95065065bb8180029`
 19409  
 19410  // ERC20MintableFuncSigs maps the 4-byte function signature to its string representation.
 19411  // Deprecated: Use ERC20MintableMetaData.Sigs instead.
 19412  var ERC20MintableFuncSigs = ERC20MintableMetaData.Sigs
 19413  
 19414  // ERC20MintableBin is the compiled bytecode used for deploying new contracts.
 19415  // Deprecated: Use ERC20MintableMetaData.Bin instead.
 19416  var ERC20MintableBin = ERC20MintableMetaData.Bin
 19417  
 19418  // DeployERC20Mintable deploys a new Klaytn contract, binding an instance of ERC20Mintable to it.
 19419  func DeployERC20Mintable(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *types.Transaction, *ERC20Mintable, error) {
 19420  	parsed, err := ERC20MintableMetaData.GetAbi()
 19421  	if err != nil {
 19422  		return common.Address{}, nil, nil, err
 19423  	}
 19424  	if parsed == nil {
 19425  		return common.Address{}, nil, nil, errors.New("GetABI returned nil")
 19426  	}
 19427  
 19428  	address, tx, contract, err := bind.DeployContract(auth, *parsed, common.FromHex(ERC20MintableBin), backend)
 19429  	if err != nil {
 19430  		return common.Address{}, nil, nil, err
 19431  	}
 19432  	return address, tx, &ERC20Mintable{ERC20MintableCaller: ERC20MintableCaller{contract: contract}, ERC20MintableTransactor: ERC20MintableTransactor{contract: contract}, ERC20MintableFilterer: ERC20MintableFilterer{contract: contract}}, nil
 19433  }
 19434  
 19435  // ERC20Mintable is an auto generated Go binding around a Klaytn contract.
 19436  type ERC20Mintable struct {
 19437  	ERC20MintableCaller     // Read-only binding to the contract
 19438  	ERC20MintableTransactor // Write-only binding to the contract
 19439  	ERC20MintableFilterer   // Log filterer for contract events
 19440  }
 19441  
 19442  // ERC20MintableCaller is an auto generated read-only Go binding around a Klaytn contract.
 19443  type ERC20MintableCaller struct {
 19444  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 19445  }
 19446  
 19447  // ERC20MintableTransactor is an auto generated write-only Go binding around a Klaytn contract.
 19448  type ERC20MintableTransactor struct {
 19449  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 19450  }
 19451  
 19452  // ERC20MintableFilterer is an auto generated log filtering Go binding around a Klaytn contract events.
 19453  type ERC20MintableFilterer struct {
 19454  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 19455  }
 19456  
 19457  // ERC20MintableSession is an auto generated Go binding around a Klaytn contract,
 19458  // with pre-set call and transact options.
 19459  type ERC20MintableSession struct {
 19460  	Contract     *ERC20Mintable    // Generic contract binding to set the session for
 19461  	CallOpts     bind.CallOpts     // Call options to use throughout this session
 19462  	TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
 19463  }
 19464  
 19465  // ERC20MintableCallerSession is an auto generated read-only Go binding around a Klaytn contract,
 19466  // with pre-set call options.
 19467  type ERC20MintableCallerSession struct {
 19468  	Contract *ERC20MintableCaller // Generic contract caller binding to set the session for
 19469  	CallOpts bind.CallOpts        // Call options to use throughout this session
 19470  }
 19471  
 19472  // ERC20MintableTransactorSession is an auto generated write-only Go binding around a Klaytn contract,
 19473  // with pre-set transact options.
 19474  type ERC20MintableTransactorSession struct {
 19475  	Contract     *ERC20MintableTransactor // Generic contract transactor binding to set the session for
 19476  	TransactOpts bind.TransactOpts        // Transaction auth options to use throughout this session
 19477  }
 19478  
 19479  // ERC20MintableRaw is an auto generated low-level Go binding around a Klaytn contract.
 19480  type ERC20MintableRaw struct {
 19481  	Contract *ERC20Mintable // Generic contract binding to access the raw methods on
 19482  }
 19483  
 19484  // ERC20MintableCallerRaw is an auto generated low-level read-only Go binding around a Klaytn contract.
 19485  type ERC20MintableCallerRaw struct {
 19486  	Contract *ERC20MintableCaller // Generic read-only contract binding to access the raw methods on
 19487  }
 19488  
 19489  // ERC20MintableTransactorRaw is an auto generated low-level write-only Go binding around a Klaytn contract.
 19490  type ERC20MintableTransactorRaw struct {
 19491  	Contract *ERC20MintableTransactor // Generic write-only contract binding to access the raw methods on
 19492  }
 19493  
 19494  // NewERC20Mintable creates a new instance of ERC20Mintable, bound to a specific deployed contract.
 19495  func NewERC20Mintable(address common.Address, backend bind.ContractBackend) (*ERC20Mintable, error) {
 19496  	contract, err := bindERC20Mintable(address, backend, backend, backend)
 19497  	if err != nil {
 19498  		return nil, err
 19499  	}
 19500  	return &ERC20Mintable{ERC20MintableCaller: ERC20MintableCaller{contract: contract}, ERC20MintableTransactor: ERC20MintableTransactor{contract: contract}, ERC20MintableFilterer: ERC20MintableFilterer{contract: contract}}, nil
 19501  }
 19502  
 19503  // NewERC20MintableCaller creates a new read-only instance of ERC20Mintable, bound to a specific deployed contract.
 19504  func NewERC20MintableCaller(address common.Address, caller bind.ContractCaller) (*ERC20MintableCaller, error) {
 19505  	contract, err := bindERC20Mintable(address, caller, nil, nil)
 19506  	if err != nil {
 19507  		return nil, err
 19508  	}
 19509  	return &ERC20MintableCaller{contract: contract}, nil
 19510  }
 19511  
 19512  // NewERC20MintableTransactor creates a new write-only instance of ERC20Mintable, bound to a specific deployed contract.
 19513  func NewERC20MintableTransactor(address common.Address, transactor bind.ContractTransactor) (*ERC20MintableTransactor, error) {
 19514  	contract, err := bindERC20Mintable(address, nil, transactor, nil)
 19515  	if err != nil {
 19516  		return nil, err
 19517  	}
 19518  	return &ERC20MintableTransactor{contract: contract}, nil
 19519  }
 19520  
 19521  // NewERC20MintableFilterer creates a new log filterer instance of ERC20Mintable, bound to a specific deployed contract.
 19522  func NewERC20MintableFilterer(address common.Address, filterer bind.ContractFilterer) (*ERC20MintableFilterer, error) {
 19523  	contract, err := bindERC20Mintable(address, nil, nil, filterer)
 19524  	if err != nil {
 19525  		return nil, err
 19526  	}
 19527  	return &ERC20MintableFilterer{contract: contract}, nil
 19528  }
 19529  
 19530  // bindERC20Mintable binds a generic wrapper to an already deployed contract.
 19531  func bindERC20Mintable(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
 19532  	parsed, err := ERC20MintableMetaData.GetAbi()
 19533  	if err != nil {
 19534  		return nil, err
 19535  	}
 19536  	return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil
 19537  }
 19538  
 19539  // Call invokes the (constant) contract method with params as input values and
 19540  // sets the output to result. The result type might be a single field for simple
 19541  // returns, a slice of interfaces for anonymous returns and a struct for named
 19542  // returns.
 19543  func (_ERC20Mintable *ERC20MintableRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
 19544  	return _ERC20Mintable.Contract.ERC20MintableCaller.contract.Call(opts, result, method, params...)
 19545  }
 19546  
 19547  // Transfer initiates a plain transaction to move funds to the contract, calling
 19548  // its default method if one is available.
 19549  func (_ERC20Mintable *ERC20MintableRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
 19550  	return _ERC20Mintable.Contract.ERC20MintableTransactor.contract.Transfer(opts)
 19551  }
 19552  
 19553  // Transact invokes the (paid) contract method with params as input values.
 19554  func (_ERC20Mintable *ERC20MintableRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
 19555  	return _ERC20Mintable.Contract.ERC20MintableTransactor.contract.Transact(opts, method, params...)
 19556  }
 19557  
 19558  // Call invokes the (constant) contract method with params as input values and
 19559  // sets the output to result. The result type might be a single field for simple
 19560  // returns, a slice of interfaces for anonymous returns and a struct for named
 19561  // returns.
 19562  func (_ERC20Mintable *ERC20MintableCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
 19563  	return _ERC20Mintable.Contract.contract.Call(opts, result, method, params...)
 19564  }
 19565  
 19566  // Transfer initiates a plain transaction to move funds to the contract, calling
 19567  // its default method if one is available.
 19568  func (_ERC20Mintable *ERC20MintableTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
 19569  	return _ERC20Mintable.Contract.contract.Transfer(opts)
 19570  }
 19571  
 19572  // Transact invokes the (paid) contract method with params as input values.
 19573  func (_ERC20Mintable *ERC20MintableTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
 19574  	return _ERC20Mintable.Contract.contract.Transact(opts, method, params...)
 19575  }
 19576  
 19577  // Allowance is a free data retrieval call binding the contract method 0xdd62ed3e.
 19578  //
 19579  // Solidity: function allowance(address owner, address spender) view returns(uint256)
 19580  func (_ERC20Mintable *ERC20MintableCaller) Allowance(opts *bind.CallOpts, owner common.Address, spender common.Address) (*big.Int, error) {
 19581  	var out []interface{}
 19582  	err := _ERC20Mintable.contract.Call(opts, &out, "allowance", owner, spender)
 19583  
 19584  	if err != nil {
 19585  		return *new(*big.Int), err
 19586  	}
 19587  
 19588  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
 19589  
 19590  	return out0, err
 19591  
 19592  }
 19593  
 19594  // Allowance is a free data retrieval call binding the contract method 0xdd62ed3e.
 19595  //
 19596  // Solidity: function allowance(address owner, address spender) view returns(uint256)
 19597  func (_ERC20Mintable *ERC20MintableSession) Allowance(owner common.Address, spender common.Address) (*big.Int, error) {
 19598  	return _ERC20Mintable.Contract.Allowance(&_ERC20Mintable.CallOpts, owner, spender)
 19599  }
 19600  
 19601  // Allowance is a free data retrieval call binding the contract method 0xdd62ed3e.
 19602  //
 19603  // Solidity: function allowance(address owner, address spender) view returns(uint256)
 19604  func (_ERC20Mintable *ERC20MintableCallerSession) Allowance(owner common.Address, spender common.Address) (*big.Int, error) {
 19605  	return _ERC20Mintable.Contract.Allowance(&_ERC20Mintable.CallOpts, owner, spender)
 19606  }
 19607  
 19608  // BalanceOf is a free data retrieval call binding the contract method 0x70a08231.
 19609  //
 19610  // Solidity: function balanceOf(address account) view returns(uint256)
 19611  func (_ERC20Mintable *ERC20MintableCaller) BalanceOf(opts *bind.CallOpts, account common.Address) (*big.Int, error) {
 19612  	var out []interface{}
 19613  	err := _ERC20Mintable.contract.Call(opts, &out, "balanceOf", account)
 19614  
 19615  	if err != nil {
 19616  		return *new(*big.Int), err
 19617  	}
 19618  
 19619  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
 19620  
 19621  	return out0, err
 19622  
 19623  }
 19624  
 19625  // BalanceOf is a free data retrieval call binding the contract method 0x70a08231.
 19626  //
 19627  // Solidity: function balanceOf(address account) view returns(uint256)
 19628  func (_ERC20Mintable *ERC20MintableSession) BalanceOf(account common.Address) (*big.Int, error) {
 19629  	return _ERC20Mintable.Contract.BalanceOf(&_ERC20Mintable.CallOpts, account)
 19630  }
 19631  
 19632  // BalanceOf is a free data retrieval call binding the contract method 0x70a08231.
 19633  //
 19634  // Solidity: function balanceOf(address account) view returns(uint256)
 19635  func (_ERC20Mintable *ERC20MintableCallerSession) BalanceOf(account common.Address) (*big.Int, error) {
 19636  	return _ERC20Mintable.Contract.BalanceOf(&_ERC20Mintable.CallOpts, account)
 19637  }
 19638  
 19639  // IsMinter is a free data retrieval call binding the contract method 0xaa271e1a.
 19640  //
 19641  // Solidity: function isMinter(address account) view returns(bool)
 19642  func (_ERC20Mintable *ERC20MintableCaller) IsMinter(opts *bind.CallOpts, account common.Address) (bool, error) {
 19643  	var out []interface{}
 19644  	err := _ERC20Mintable.contract.Call(opts, &out, "isMinter", account)
 19645  
 19646  	if err != nil {
 19647  		return *new(bool), err
 19648  	}
 19649  
 19650  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
 19651  
 19652  	return out0, err
 19653  
 19654  }
 19655  
 19656  // IsMinter is a free data retrieval call binding the contract method 0xaa271e1a.
 19657  //
 19658  // Solidity: function isMinter(address account) view returns(bool)
 19659  func (_ERC20Mintable *ERC20MintableSession) IsMinter(account common.Address) (bool, error) {
 19660  	return _ERC20Mintable.Contract.IsMinter(&_ERC20Mintable.CallOpts, account)
 19661  }
 19662  
 19663  // IsMinter is a free data retrieval call binding the contract method 0xaa271e1a.
 19664  //
 19665  // Solidity: function isMinter(address account) view returns(bool)
 19666  func (_ERC20Mintable *ERC20MintableCallerSession) IsMinter(account common.Address) (bool, error) {
 19667  	return _ERC20Mintable.Contract.IsMinter(&_ERC20Mintable.CallOpts, account)
 19668  }
 19669  
 19670  // TotalSupply is a free data retrieval call binding the contract method 0x18160ddd.
 19671  //
 19672  // Solidity: function totalSupply() view returns(uint256)
 19673  func (_ERC20Mintable *ERC20MintableCaller) TotalSupply(opts *bind.CallOpts) (*big.Int, error) {
 19674  	var out []interface{}
 19675  	err := _ERC20Mintable.contract.Call(opts, &out, "totalSupply")
 19676  
 19677  	if err != nil {
 19678  		return *new(*big.Int), err
 19679  	}
 19680  
 19681  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
 19682  
 19683  	return out0, err
 19684  
 19685  }
 19686  
 19687  // TotalSupply is a free data retrieval call binding the contract method 0x18160ddd.
 19688  //
 19689  // Solidity: function totalSupply() view returns(uint256)
 19690  func (_ERC20Mintable *ERC20MintableSession) TotalSupply() (*big.Int, error) {
 19691  	return _ERC20Mintable.Contract.TotalSupply(&_ERC20Mintable.CallOpts)
 19692  }
 19693  
 19694  // TotalSupply is a free data retrieval call binding the contract method 0x18160ddd.
 19695  //
 19696  // Solidity: function totalSupply() view returns(uint256)
 19697  func (_ERC20Mintable *ERC20MintableCallerSession) TotalSupply() (*big.Int, error) {
 19698  	return _ERC20Mintable.Contract.TotalSupply(&_ERC20Mintable.CallOpts)
 19699  }
 19700  
 19701  // AddMinter is a paid mutator transaction binding the contract method 0x983b2d56.
 19702  //
 19703  // Solidity: function addMinter(address account) returns()
 19704  func (_ERC20Mintable *ERC20MintableTransactor) AddMinter(opts *bind.TransactOpts, account common.Address) (*types.Transaction, error) {
 19705  	return _ERC20Mintable.contract.Transact(opts, "addMinter", account)
 19706  }
 19707  
 19708  // AddMinter is a paid mutator transaction binding the contract method 0x983b2d56.
 19709  //
 19710  // Solidity: function addMinter(address account) returns()
 19711  func (_ERC20Mintable *ERC20MintableSession) AddMinter(account common.Address) (*types.Transaction, error) {
 19712  	return _ERC20Mintable.Contract.AddMinter(&_ERC20Mintable.TransactOpts, account)
 19713  }
 19714  
 19715  // AddMinter is a paid mutator transaction binding the contract method 0x983b2d56.
 19716  //
 19717  // Solidity: function addMinter(address account) returns()
 19718  func (_ERC20Mintable *ERC20MintableTransactorSession) AddMinter(account common.Address) (*types.Transaction, error) {
 19719  	return _ERC20Mintable.Contract.AddMinter(&_ERC20Mintable.TransactOpts, account)
 19720  }
 19721  
 19722  // Approve is a paid mutator transaction binding the contract method 0x095ea7b3.
 19723  //
 19724  // Solidity: function approve(address spender, uint256 value) returns(bool)
 19725  func (_ERC20Mintable *ERC20MintableTransactor) Approve(opts *bind.TransactOpts, spender common.Address, value *big.Int) (*types.Transaction, error) {
 19726  	return _ERC20Mintable.contract.Transact(opts, "approve", spender, value)
 19727  }
 19728  
 19729  // Approve is a paid mutator transaction binding the contract method 0x095ea7b3.
 19730  //
 19731  // Solidity: function approve(address spender, uint256 value) returns(bool)
 19732  func (_ERC20Mintable *ERC20MintableSession) Approve(spender common.Address, value *big.Int) (*types.Transaction, error) {
 19733  	return _ERC20Mintable.Contract.Approve(&_ERC20Mintable.TransactOpts, spender, value)
 19734  }
 19735  
 19736  // Approve is a paid mutator transaction binding the contract method 0x095ea7b3.
 19737  //
 19738  // Solidity: function approve(address spender, uint256 value) returns(bool)
 19739  func (_ERC20Mintable *ERC20MintableTransactorSession) Approve(spender common.Address, value *big.Int) (*types.Transaction, error) {
 19740  	return _ERC20Mintable.Contract.Approve(&_ERC20Mintable.TransactOpts, spender, value)
 19741  }
 19742  
 19743  // DecreaseAllowance is a paid mutator transaction binding the contract method 0xa457c2d7.
 19744  //
 19745  // Solidity: function decreaseAllowance(address spender, uint256 subtractedValue) returns(bool)
 19746  func (_ERC20Mintable *ERC20MintableTransactor) DecreaseAllowance(opts *bind.TransactOpts, spender common.Address, subtractedValue *big.Int) (*types.Transaction, error) {
 19747  	return _ERC20Mintable.contract.Transact(opts, "decreaseAllowance", spender, subtractedValue)
 19748  }
 19749  
 19750  // DecreaseAllowance is a paid mutator transaction binding the contract method 0xa457c2d7.
 19751  //
 19752  // Solidity: function decreaseAllowance(address spender, uint256 subtractedValue) returns(bool)
 19753  func (_ERC20Mintable *ERC20MintableSession) DecreaseAllowance(spender common.Address, subtractedValue *big.Int) (*types.Transaction, error) {
 19754  	return _ERC20Mintable.Contract.DecreaseAllowance(&_ERC20Mintable.TransactOpts, spender, subtractedValue)
 19755  }
 19756  
 19757  // DecreaseAllowance is a paid mutator transaction binding the contract method 0xa457c2d7.
 19758  //
 19759  // Solidity: function decreaseAllowance(address spender, uint256 subtractedValue) returns(bool)
 19760  func (_ERC20Mintable *ERC20MintableTransactorSession) DecreaseAllowance(spender common.Address, subtractedValue *big.Int) (*types.Transaction, error) {
 19761  	return _ERC20Mintable.Contract.DecreaseAllowance(&_ERC20Mintable.TransactOpts, spender, subtractedValue)
 19762  }
 19763  
 19764  // IncreaseAllowance is a paid mutator transaction binding the contract method 0x39509351.
 19765  //
 19766  // Solidity: function increaseAllowance(address spender, uint256 addedValue) returns(bool)
 19767  func (_ERC20Mintable *ERC20MintableTransactor) IncreaseAllowance(opts *bind.TransactOpts, spender common.Address, addedValue *big.Int) (*types.Transaction, error) {
 19768  	return _ERC20Mintable.contract.Transact(opts, "increaseAllowance", spender, addedValue)
 19769  }
 19770  
 19771  // IncreaseAllowance is a paid mutator transaction binding the contract method 0x39509351.
 19772  //
 19773  // Solidity: function increaseAllowance(address spender, uint256 addedValue) returns(bool)
 19774  func (_ERC20Mintable *ERC20MintableSession) IncreaseAllowance(spender common.Address, addedValue *big.Int) (*types.Transaction, error) {
 19775  	return _ERC20Mintable.Contract.IncreaseAllowance(&_ERC20Mintable.TransactOpts, spender, addedValue)
 19776  }
 19777  
 19778  // IncreaseAllowance is a paid mutator transaction binding the contract method 0x39509351.
 19779  //
 19780  // Solidity: function increaseAllowance(address spender, uint256 addedValue) returns(bool)
 19781  func (_ERC20Mintable *ERC20MintableTransactorSession) IncreaseAllowance(spender common.Address, addedValue *big.Int) (*types.Transaction, error) {
 19782  	return _ERC20Mintable.Contract.IncreaseAllowance(&_ERC20Mintable.TransactOpts, spender, addedValue)
 19783  }
 19784  
 19785  // Mint is a paid mutator transaction binding the contract method 0x40c10f19.
 19786  //
 19787  // Solidity: function mint(address account, uint256 amount) returns(bool)
 19788  func (_ERC20Mintable *ERC20MintableTransactor) Mint(opts *bind.TransactOpts, account common.Address, amount *big.Int) (*types.Transaction, error) {
 19789  	return _ERC20Mintable.contract.Transact(opts, "mint", account, amount)
 19790  }
 19791  
 19792  // Mint is a paid mutator transaction binding the contract method 0x40c10f19.
 19793  //
 19794  // Solidity: function mint(address account, uint256 amount) returns(bool)
 19795  func (_ERC20Mintable *ERC20MintableSession) Mint(account common.Address, amount *big.Int) (*types.Transaction, error) {
 19796  	return _ERC20Mintable.Contract.Mint(&_ERC20Mintable.TransactOpts, account, amount)
 19797  }
 19798  
 19799  // Mint is a paid mutator transaction binding the contract method 0x40c10f19.
 19800  //
 19801  // Solidity: function mint(address account, uint256 amount) returns(bool)
 19802  func (_ERC20Mintable *ERC20MintableTransactorSession) Mint(account common.Address, amount *big.Int) (*types.Transaction, error) {
 19803  	return _ERC20Mintable.Contract.Mint(&_ERC20Mintable.TransactOpts, account, amount)
 19804  }
 19805  
 19806  // RenounceMinter is a paid mutator transaction binding the contract method 0x98650275.
 19807  //
 19808  // Solidity: function renounceMinter() returns()
 19809  func (_ERC20Mintable *ERC20MintableTransactor) RenounceMinter(opts *bind.TransactOpts) (*types.Transaction, error) {
 19810  	return _ERC20Mintable.contract.Transact(opts, "renounceMinter")
 19811  }
 19812  
 19813  // RenounceMinter is a paid mutator transaction binding the contract method 0x98650275.
 19814  //
 19815  // Solidity: function renounceMinter() returns()
 19816  func (_ERC20Mintable *ERC20MintableSession) RenounceMinter() (*types.Transaction, error) {
 19817  	return _ERC20Mintable.Contract.RenounceMinter(&_ERC20Mintable.TransactOpts)
 19818  }
 19819  
 19820  // RenounceMinter is a paid mutator transaction binding the contract method 0x98650275.
 19821  //
 19822  // Solidity: function renounceMinter() returns()
 19823  func (_ERC20Mintable *ERC20MintableTransactorSession) RenounceMinter() (*types.Transaction, error) {
 19824  	return _ERC20Mintable.Contract.RenounceMinter(&_ERC20Mintable.TransactOpts)
 19825  }
 19826  
 19827  // Transfer is a paid mutator transaction binding the contract method 0xa9059cbb.
 19828  //
 19829  // Solidity: function transfer(address recipient, uint256 amount) returns(bool)
 19830  func (_ERC20Mintable *ERC20MintableTransactor) Transfer(opts *bind.TransactOpts, recipient common.Address, amount *big.Int) (*types.Transaction, error) {
 19831  	return _ERC20Mintable.contract.Transact(opts, "transfer", recipient, amount)
 19832  }
 19833  
 19834  // Transfer is a paid mutator transaction binding the contract method 0xa9059cbb.
 19835  //
 19836  // Solidity: function transfer(address recipient, uint256 amount) returns(bool)
 19837  func (_ERC20Mintable *ERC20MintableSession) Transfer(recipient common.Address, amount *big.Int) (*types.Transaction, error) {
 19838  	return _ERC20Mintable.Contract.Transfer(&_ERC20Mintable.TransactOpts, recipient, amount)
 19839  }
 19840  
 19841  // Transfer is a paid mutator transaction binding the contract method 0xa9059cbb.
 19842  //
 19843  // Solidity: function transfer(address recipient, uint256 amount) returns(bool)
 19844  func (_ERC20Mintable *ERC20MintableTransactorSession) Transfer(recipient common.Address, amount *big.Int) (*types.Transaction, error) {
 19845  	return _ERC20Mintable.Contract.Transfer(&_ERC20Mintable.TransactOpts, recipient, amount)
 19846  }
 19847  
 19848  // TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd.
 19849  //
 19850  // Solidity: function transferFrom(address sender, address recipient, uint256 amount) returns(bool)
 19851  func (_ERC20Mintable *ERC20MintableTransactor) TransferFrom(opts *bind.TransactOpts, sender common.Address, recipient common.Address, amount *big.Int) (*types.Transaction, error) {
 19852  	return _ERC20Mintable.contract.Transact(opts, "transferFrom", sender, recipient, amount)
 19853  }
 19854  
 19855  // TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd.
 19856  //
 19857  // Solidity: function transferFrom(address sender, address recipient, uint256 amount) returns(bool)
 19858  func (_ERC20Mintable *ERC20MintableSession) TransferFrom(sender common.Address, recipient common.Address, amount *big.Int) (*types.Transaction, error) {
 19859  	return _ERC20Mintable.Contract.TransferFrom(&_ERC20Mintable.TransactOpts, sender, recipient, amount)
 19860  }
 19861  
 19862  // TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd.
 19863  //
 19864  // Solidity: function transferFrom(address sender, address recipient, uint256 amount) returns(bool)
 19865  func (_ERC20Mintable *ERC20MintableTransactorSession) TransferFrom(sender common.Address, recipient common.Address, amount *big.Int) (*types.Transaction, error) {
 19866  	return _ERC20Mintable.Contract.TransferFrom(&_ERC20Mintable.TransactOpts, sender, recipient, amount)
 19867  }
 19868  
 19869  // ERC20MintableApprovalIterator is returned from FilterApproval and is used to iterate over the raw logs and unpacked data for Approval events raised by the ERC20Mintable contract.
 19870  type ERC20MintableApprovalIterator struct {
 19871  	Event *ERC20MintableApproval // Event containing the contract specifics and raw log
 19872  
 19873  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 19874  	event    string              // Event name to use for unpacking event data
 19875  
 19876  	logs chan types.Log      // Log channel receiving the found contract events
 19877  	sub  klaytn.Subscription // Subscription for errors, completion and termination
 19878  	done bool                // Whether the subscription completed delivering logs
 19879  	fail error               // Occurred error to stop iteration
 19880  }
 19881  
 19882  // Next advances the iterator to the subsequent event, returning whether there
 19883  // are any more events found. In case of a retrieval or parsing error, false is
 19884  // returned and Error() can be queried for the exact failure.
 19885  func (it *ERC20MintableApprovalIterator) Next() bool {
 19886  	// If the iterator failed, stop iterating
 19887  	if it.fail != nil {
 19888  		return false
 19889  	}
 19890  	// If the iterator completed, deliver directly whatever's available
 19891  	if it.done {
 19892  		select {
 19893  		case log := <-it.logs:
 19894  			it.Event = new(ERC20MintableApproval)
 19895  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 19896  				it.fail = err
 19897  				return false
 19898  			}
 19899  			it.Event.Raw = log
 19900  			return true
 19901  
 19902  		default:
 19903  			return false
 19904  		}
 19905  	}
 19906  	// Iterator still in progress, wait for either a data or an error event
 19907  	select {
 19908  	case log := <-it.logs:
 19909  		it.Event = new(ERC20MintableApproval)
 19910  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 19911  			it.fail = err
 19912  			return false
 19913  		}
 19914  		it.Event.Raw = log
 19915  		return true
 19916  
 19917  	case err := <-it.sub.Err():
 19918  		it.done = true
 19919  		it.fail = err
 19920  		return it.Next()
 19921  	}
 19922  }
 19923  
 19924  // Error returns any retrieval or parsing error occurred during filtering.
 19925  func (it *ERC20MintableApprovalIterator) Error() error {
 19926  	return it.fail
 19927  }
 19928  
 19929  // Close terminates the iteration process, releasing any pending underlying
 19930  // resources.
 19931  func (it *ERC20MintableApprovalIterator) Close() error {
 19932  	it.sub.Unsubscribe()
 19933  	return nil
 19934  }
 19935  
 19936  // ERC20MintableApproval represents a Approval event raised by the ERC20Mintable contract.
 19937  type ERC20MintableApproval struct {
 19938  	Owner   common.Address
 19939  	Spender common.Address
 19940  	Value   *big.Int
 19941  	Raw     types.Log // Blockchain specific contextual infos
 19942  }
 19943  
 19944  // FilterApproval is a free log retrieval operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925.
 19945  //
 19946  // Solidity: event Approval(address indexed owner, address indexed spender, uint256 value)
 19947  func (_ERC20Mintable *ERC20MintableFilterer) FilterApproval(opts *bind.FilterOpts, owner []common.Address, spender []common.Address) (*ERC20MintableApprovalIterator, error) {
 19948  
 19949  	var ownerRule []interface{}
 19950  	for _, ownerItem := range owner {
 19951  		ownerRule = append(ownerRule, ownerItem)
 19952  	}
 19953  	var spenderRule []interface{}
 19954  	for _, spenderItem := range spender {
 19955  		spenderRule = append(spenderRule, spenderItem)
 19956  	}
 19957  
 19958  	logs, sub, err := _ERC20Mintable.contract.FilterLogs(opts, "Approval", ownerRule, spenderRule)
 19959  	if err != nil {
 19960  		return nil, err
 19961  	}
 19962  	return &ERC20MintableApprovalIterator{contract: _ERC20Mintable.contract, event: "Approval", logs: logs, sub: sub}, nil
 19963  }
 19964  
 19965  // WatchApproval is a free log subscription operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925.
 19966  //
 19967  // Solidity: event Approval(address indexed owner, address indexed spender, uint256 value)
 19968  func (_ERC20Mintable *ERC20MintableFilterer) WatchApproval(opts *bind.WatchOpts, sink chan<- *ERC20MintableApproval, owner []common.Address, spender []common.Address) (event.Subscription, error) {
 19969  
 19970  	var ownerRule []interface{}
 19971  	for _, ownerItem := range owner {
 19972  		ownerRule = append(ownerRule, ownerItem)
 19973  	}
 19974  	var spenderRule []interface{}
 19975  	for _, spenderItem := range spender {
 19976  		spenderRule = append(spenderRule, spenderItem)
 19977  	}
 19978  
 19979  	logs, sub, err := _ERC20Mintable.contract.WatchLogs(opts, "Approval", ownerRule, spenderRule)
 19980  	if err != nil {
 19981  		return nil, err
 19982  	}
 19983  	return event.NewSubscription(func(quit <-chan struct{}) error {
 19984  		defer sub.Unsubscribe()
 19985  		for {
 19986  			select {
 19987  			case log := <-logs:
 19988  				// New log arrived, parse the event and forward to the user
 19989  				event := new(ERC20MintableApproval)
 19990  				if err := _ERC20Mintable.contract.UnpackLog(event, "Approval", log); err != nil {
 19991  					return err
 19992  				}
 19993  				event.Raw = log
 19994  
 19995  				select {
 19996  				case sink <- event:
 19997  				case err := <-sub.Err():
 19998  					return err
 19999  				case <-quit:
 20000  					return nil
 20001  				}
 20002  			case err := <-sub.Err():
 20003  				return err
 20004  			case <-quit:
 20005  				return nil
 20006  			}
 20007  		}
 20008  	}), nil
 20009  }
 20010  
 20011  // ParseApproval is a log parse operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925.
 20012  //
 20013  // Solidity: event Approval(address indexed owner, address indexed spender, uint256 value)
 20014  func (_ERC20Mintable *ERC20MintableFilterer) ParseApproval(log types.Log) (*ERC20MintableApproval, error) {
 20015  	event := new(ERC20MintableApproval)
 20016  	if err := _ERC20Mintable.contract.UnpackLog(event, "Approval", log); err != nil {
 20017  		return nil, err
 20018  	}
 20019  	return event, nil
 20020  }
 20021  
 20022  // ERC20MintableMinterAddedIterator is returned from FilterMinterAdded and is used to iterate over the raw logs and unpacked data for MinterAdded events raised by the ERC20Mintable contract.
 20023  type ERC20MintableMinterAddedIterator struct {
 20024  	Event *ERC20MintableMinterAdded // Event containing the contract specifics and raw log
 20025  
 20026  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 20027  	event    string              // Event name to use for unpacking event data
 20028  
 20029  	logs chan types.Log      // Log channel receiving the found contract events
 20030  	sub  klaytn.Subscription // Subscription for errors, completion and termination
 20031  	done bool                // Whether the subscription completed delivering logs
 20032  	fail error               // Occurred error to stop iteration
 20033  }
 20034  
 20035  // Next advances the iterator to the subsequent event, returning whether there
 20036  // are any more events found. In case of a retrieval or parsing error, false is
 20037  // returned and Error() can be queried for the exact failure.
 20038  func (it *ERC20MintableMinterAddedIterator) Next() bool {
 20039  	// If the iterator failed, stop iterating
 20040  	if it.fail != nil {
 20041  		return false
 20042  	}
 20043  	// If the iterator completed, deliver directly whatever's available
 20044  	if it.done {
 20045  		select {
 20046  		case log := <-it.logs:
 20047  			it.Event = new(ERC20MintableMinterAdded)
 20048  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 20049  				it.fail = err
 20050  				return false
 20051  			}
 20052  			it.Event.Raw = log
 20053  			return true
 20054  
 20055  		default:
 20056  			return false
 20057  		}
 20058  	}
 20059  	// Iterator still in progress, wait for either a data or an error event
 20060  	select {
 20061  	case log := <-it.logs:
 20062  		it.Event = new(ERC20MintableMinterAdded)
 20063  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 20064  			it.fail = err
 20065  			return false
 20066  		}
 20067  		it.Event.Raw = log
 20068  		return true
 20069  
 20070  	case err := <-it.sub.Err():
 20071  		it.done = true
 20072  		it.fail = err
 20073  		return it.Next()
 20074  	}
 20075  }
 20076  
 20077  // Error returns any retrieval or parsing error occurred during filtering.
 20078  func (it *ERC20MintableMinterAddedIterator) Error() error {
 20079  	return it.fail
 20080  }
 20081  
 20082  // Close terminates the iteration process, releasing any pending underlying
 20083  // resources.
 20084  func (it *ERC20MintableMinterAddedIterator) Close() error {
 20085  	it.sub.Unsubscribe()
 20086  	return nil
 20087  }
 20088  
 20089  // ERC20MintableMinterAdded represents a MinterAdded event raised by the ERC20Mintable contract.
 20090  type ERC20MintableMinterAdded struct {
 20091  	Account common.Address
 20092  	Raw     types.Log // Blockchain specific contextual infos
 20093  }
 20094  
 20095  // FilterMinterAdded is a free log retrieval operation binding the contract event 0x6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f6.
 20096  //
 20097  // Solidity: event MinterAdded(address indexed account)
 20098  func (_ERC20Mintable *ERC20MintableFilterer) FilterMinterAdded(opts *bind.FilterOpts, account []common.Address) (*ERC20MintableMinterAddedIterator, error) {
 20099  
 20100  	var accountRule []interface{}
 20101  	for _, accountItem := range account {
 20102  		accountRule = append(accountRule, accountItem)
 20103  	}
 20104  
 20105  	logs, sub, err := _ERC20Mintable.contract.FilterLogs(opts, "MinterAdded", accountRule)
 20106  	if err != nil {
 20107  		return nil, err
 20108  	}
 20109  	return &ERC20MintableMinterAddedIterator{contract: _ERC20Mintable.contract, event: "MinterAdded", logs: logs, sub: sub}, nil
 20110  }
 20111  
 20112  // WatchMinterAdded is a free log subscription operation binding the contract event 0x6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f6.
 20113  //
 20114  // Solidity: event MinterAdded(address indexed account)
 20115  func (_ERC20Mintable *ERC20MintableFilterer) WatchMinterAdded(opts *bind.WatchOpts, sink chan<- *ERC20MintableMinterAdded, account []common.Address) (event.Subscription, error) {
 20116  
 20117  	var accountRule []interface{}
 20118  	for _, accountItem := range account {
 20119  		accountRule = append(accountRule, accountItem)
 20120  	}
 20121  
 20122  	logs, sub, err := _ERC20Mintable.contract.WatchLogs(opts, "MinterAdded", accountRule)
 20123  	if err != nil {
 20124  		return nil, err
 20125  	}
 20126  	return event.NewSubscription(func(quit <-chan struct{}) error {
 20127  		defer sub.Unsubscribe()
 20128  		for {
 20129  			select {
 20130  			case log := <-logs:
 20131  				// New log arrived, parse the event and forward to the user
 20132  				event := new(ERC20MintableMinterAdded)
 20133  				if err := _ERC20Mintable.contract.UnpackLog(event, "MinterAdded", log); err != nil {
 20134  					return err
 20135  				}
 20136  				event.Raw = log
 20137  
 20138  				select {
 20139  				case sink <- event:
 20140  				case err := <-sub.Err():
 20141  					return err
 20142  				case <-quit:
 20143  					return nil
 20144  				}
 20145  			case err := <-sub.Err():
 20146  				return err
 20147  			case <-quit:
 20148  				return nil
 20149  			}
 20150  		}
 20151  	}), nil
 20152  }
 20153  
 20154  // ParseMinterAdded is a log parse operation binding the contract event 0x6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f6.
 20155  //
 20156  // Solidity: event MinterAdded(address indexed account)
 20157  func (_ERC20Mintable *ERC20MintableFilterer) ParseMinterAdded(log types.Log) (*ERC20MintableMinterAdded, error) {
 20158  	event := new(ERC20MintableMinterAdded)
 20159  	if err := _ERC20Mintable.contract.UnpackLog(event, "MinterAdded", log); err != nil {
 20160  		return nil, err
 20161  	}
 20162  	return event, nil
 20163  }
 20164  
 20165  // ERC20MintableMinterRemovedIterator is returned from FilterMinterRemoved and is used to iterate over the raw logs and unpacked data for MinterRemoved events raised by the ERC20Mintable contract.
 20166  type ERC20MintableMinterRemovedIterator struct {
 20167  	Event *ERC20MintableMinterRemoved // Event containing the contract specifics and raw log
 20168  
 20169  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 20170  	event    string              // Event name to use for unpacking event data
 20171  
 20172  	logs chan types.Log      // Log channel receiving the found contract events
 20173  	sub  klaytn.Subscription // Subscription for errors, completion and termination
 20174  	done bool                // Whether the subscription completed delivering logs
 20175  	fail error               // Occurred error to stop iteration
 20176  }
 20177  
 20178  // Next advances the iterator to the subsequent event, returning whether there
 20179  // are any more events found. In case of a retrieval or parsing error, false is
 20180  // returned and Error() can be queried for the exact failure.
 20181  func (it *ERC20MintableMinterRemovedIterator) Next() bool {
 20182  	// If the iterator failed, stop iterating
 20183  	if it.fail != nil {
 20184  		return false
 20185  	}
 20186  	// If the iterator completed, deliver directly whatever's available
 20187  	if it.done {
 20188  		select {
 20189  		case log := <-it.logs:
 20190  			it.Event = new(ERC20MintableMinterRemoved)
 20191  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 20192  				it.fail = err
 20193  				return false
 20194  			}
 20195  			it.Event.Raw = log
 20196  			return true
 20197  
 20198  		default:
 20199  			return false
 20200  		}
 20201  	}
 20202  	// Iterator still in progress, wait for either a data or an error event
 20203  	select {
 20204  	case log := <-it.logs:
 20205  		it.Event = new(ERC20MintableMinterRemoved)
 20206  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 20207  			it.fail = err
 20208  			return false
 20209  		}
 20210  		it.Event.Raw = log
 20211  		return true
 20212  
 20213  	case err := <-it.sub.Err():
 20214  		it.done = true
 20215  		it.fail = err
 20216  		return it.Next()
 20217  	}
 20218  }
 20219  
 20220  // Error returns any retrieval or parsing error occurred during filtering.
 20221  func (it *ERC20MintableMinterRemovedIterator) Error() error {
 20222  	return it.fail
 20223  }
 20224  
 20225  // Close terminates the iteration process, releasing any pending underlying
 20226  // resources.
 20227  func (it *ERC20MintableMinterRemovedIterator) Close() error {
 20228  	it.sub.Unsubscribe()
 20229  	return nil
 20230  }
 20231  
 20232  // ERC20MintableMinterRemoved represents a MinterRemoved event raised by the ERC20Mintable contract.
 20233  type ERC20MintableMinterRemoved struct {
 20234  	Account common.Address
 20235  	Raw     types.Log // Blockchain specific contextual infos
 20236  }
 20237  
 20238  // FilterMinterRemoved is a free log retrieval operation binding the contract event 0xe94479a9f7e1952cc78f2d6baab678adc1b772d936c6583def489e524cb66692.
 20239  //
 20240  // Solidity: event MinterRemoved(address indexed account)
 20241  func (_ERC20Mintable *ERC20MintableFilterer) FilterMinterRemoved(opts *bind.FilterOpts, account []common.Address) (*ERC20MintableMinterRemovedIterator, error) {
 20242  
 20243  	var accountRule []interface{}
 20244  	for _, accountItem := range account {
 20245  		accountRule = append(accountRule, accountItem)
 20246  	}
 20247  
 20248  	logs, sub, err := _ERC20Mintable.contract.FilterLogs(opts, "MinterRemoved", accountRule)
 20249  	if err != nil {
 20250  		return nil, err
 20251  	}
 20252  	return &ERC20MintableMinterRemovedIterator{contract: _ERC20Mintable.contract, event: "MinterRemoved", logs: logs, sub: sub}, nil
 20253  }
 20254  
 20255  // WatchMinterRemoved is a free log subscription operation binding the contract event 0xe94479a9f7e1952cc78f2d6baab678adc1b772d936c6583def489e524cb66692.
 20256  //
 20257  // Solidity: event MinterRemoved(address indexed account)
 20258  func (_ERC20Mintable *ERC20MintableFilterer) WatchMinterRemoved(opts *bind.WatchOpts, sink chan<- *ERC20MintableMinterRemoved, account []common.Address) (event.Subscription, error) {
 20259  
 20260  	var accountRule []interface{}
 20261  	for _, accountItem := range account {
 20262  		accountRule = append(accountRule, accountItem)
 20263  	}
 20264  
 20265  	logs, sub, err := _ERC20Mintable.contract.WatchLogs(opts, "MinterRemoved", accountRule)
 20266  	if err != nil {
 20267  		return nil, err
 20268  	}
 20269  	return event.NewSubscription(func(quit <-chan struct{}) error {
 20270  		defer sub.Unsubscribe()
 20271  		for {
 20272  			select {
 20273  			case log := <-logs:
 20274  				// New log arrived, parse the event and forward to the user
 20275  				event := new(ERC20MintableMinterRemoved)
 20276  				if err := _ERC20Mintable.contract.UnpackLog(event, "MinterRemoved", log); err != nil {
 20277  					return err
 20278  				}
 20279  				event.Raw = log
 20280  
 20281  				select {
 20282  				case sink <- event:
 20283  				case err := <-sub.Err():
 20284  					return err
 20285  				case <-quit:
 20286  					return nil
 20287  				}
 20288  			case err := <-sub.Err():
 20289  				return err
 20290  			case <-quit:
 20291  				return nil
 20292  			}
 20293  		}
 20294  	}), nil
 20295  }
 20296  
 20297  // ParseMinterRemoved is a log parse operation binding the contract event 0xe94479a9f7e1952cc78f2d6baab678adc1b772d936c6583def489e524cb66692.
 20298  //
 20299  // Solidity: event MinterRemoved(address indexed account)
 20300  func (_ERC20Mintable *ERC20MintableFilterer) ParseMinterRemoved(log types.Log) (*ERC20MintableMinterRemoved, error) {
 20301  	event := new(ERC20MintableMinterRemoved)
 20302  	if err := _ERC20Mintable.contract.UnpackLog(event, "MinterRemoved", log); err != nil {
 20303  		return nil, err
 20304  	}
 20305  	return event, nil
 20306  }
 20307  
 20308  // ERC20MintableTransferIterator is returned from FilterTransfer and is used to iterate over the raw logs and unpacked data for Transfer events raised by the ERC20Mintable contract.
 20309  type ERC20MintableTransferIterator struct {
 20310  	Event *ERC20MintableTransfer // Event containing the contract specifics and raw log
 20311  
 20312  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 20313  	event    string              // Event name to use for unpacking event data
 20314  
 20315  	logs chan types.Log      // Log channel receiving the found contract events
 20316  	sub  klaytn.Subscription // Subscription for errors, completion and termination
 20317  	done bool                // Whether the subscription completed delivering logs
 20318  	fail error               // Occurred error to stop iteration
 20319  }
 20320  
 20321  // Next advances the iterator to the subsequent event, returning whether there
 20322  // are any more events found. In case of a retrieval or parsing error, false is
 20323  // returned and Error() can be queried for the exact failure.
 20324  func (it *ERC20MintableTransferIterator) Next() bool {
 20325  	// If the iterator failed, stop iterating
 20326  	if it.fail != nil {
 20327  		return false
 20328  	}
 20329  	// If the iterator completed, deliver directly whatever's available
 20330  	if it.done {
 20331  		select {
 20332  		case log := <-it.logs:
 20333  			it.Event = new(ERC20MintableTransfer)
 20334  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 20335  				it.fail = err
 20336  				return false
 20337  			}
 20338  			it.Event.Raw = log
 20339  			return true
 20340  
 20341  		default:
 20342  			return false
 20343  		}
 20344  	}
 20345  	// Iterator still in progress, wait for either a data or an error event
 20346  	select {
 20347  	case log := <-it.logs:
 20348  		it.Event = new(ERC20MintableTransfer)
 20349  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 20350  			it.fail = err
 20351  			return false
 20352  		}
 20353  		it.Event.Raw = log
 20354  		return true
 20355  
 20356  	case err := <-it.sub.Err():
 20357  		it.done = true
 20358  		it.fail = err
 20359  		return it.Next()
 20360  	}
 20361  }
 20362  
 20363  // Error returns any retrieval or parsing error occurred during filtering.
 20364  func (it *ERC20MintableTransferIterator) Error() error {
 20365  	return it.fail
 20366  }
 20367  
 20368  // Close terminates the iteration process, releasing any pending underlying
 20369  // resources.
 20370  func (it *ERC20MintableTransferIterator) Close() error {
 20371  	it.sub.Unsubscribe()
 20372  	return nil
 20373  }
 20374  
 20375  // ERC20MintableTransfer represents a Transfer event raised by the ERC20Mintable contract.
 20376  type ERC20MintableTransfer struct {
 20377  	From  common.Address
 20378  	To    common.Address
 20379  	Value *big.Int
 20380  	Raw   types.Log // Blockchain specific contextual infos
 20381  }
 20382  
 20383  // FilterTransfer is a free log retrieval operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef.
 20384  //
 20385  // Solidity: event Transfer(address indexed from, address indexed to, uint256 value)
 20386  func (_ERC20Mintable *ERC20MintableFilterer) FilterTransfer(opts *bind.FilterOpts, from []common.Address, to []common.Address) (*ERC20MintableTransferIterator, error) {
 20387  
 20388  	var fromRule []interface{}
 20389  	for _, fromItem := range from {
 20390  		fromRule = append(fromRule, fromItem)
 20391  	}
 20392  	var toRule []interface{}
 20393  	for _, toItem := range to {
 20394  		toRule = append(toRule, toItem)
 20395  	}
 20396  
 20397  	logs, sub, err := _ERC20Mintable.contract.FilterLogs(opts, "Transfer", fromRule, toRule)
 20398  	if err != nil {
 20399  		return nil, err
 20400  	}
 20401  	return &ERC20MintableTransferIterator{contract: _ERC20Mintable.contract, event: "Transfer", logs: logs, sub: sub}, nil
 20402  }
 20403  
 20404  // WatchTransfer is a free log subscription operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef.
 20405  //
 20406  // Solidity: event Transfer(address indexed from, address indexed to, uint256 value)
 20407  func (_ERC20Mintable *ERC20MintableFilterer) WatchTransfer(opts *bind.WatchOpts, sink chan<- *ERC20MintableTransfer, from []common.Address, to []common.Address) (event.Subscription, error) {
 20408  
 20409  	var fromRule []interface{}
 20410  	for _, fromItem := range from {
 20411  		fromRule = append(fromRule, fromItem)
 20412  	}
 20413  	var toRule []interface{}
 20414  	for _, toItem := range to {
 20415  		toRule = append(toRule, toItem)
 20416  	}
 20417  
 20418  	logs, sub, err := _ERC20Mintable.contract.WatchLogs(opts, "Transfer", fromRule, toRule)
 20419  	if err != nil {
 20420  		return nil, err
 20421  	}
 20422  	return event.NewSubscription(func(quit <-chan struct{}) error {
 20423  		defer sub.Unsubscribe()
 20424  		for {
 20425  			select {
 20426  			case log := <-logs:
 20427  				// New log arrived, parse the event and forward to the user
 20428  				event := new(ERC20MintableTransfer)
 20429  				if err := _ERC20Mintable.contract.UnpackLog(event, "Transfer", log); err != nil {
 20430  					return err
 20431  				}
 20432  				event.Raw = log
 20433  
 20434  				select {
 20435  				case sink <- event:
 20436  				case err := <-sub.Err():
 20437  					return err
 20438  				case <-quit:
 20439  					return nil
 20440  				}
 20441  			case err := <-sub.Err():
 20442  				return err
 20443  			case <-quit:
 20444  				return nil
 20445  			}
 20446  		}
 20447  	}), nil
 20448  }
 20449  
 20450  // ParseTransfer is a log parse operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef.
 20451  //
 20452  // Solidity: event Transfer(address indexed from, address indexed to, uint256 value)
 20453  func (_ERC20Mintable *ERC20MintableFilterer) ParseTransfer(log types.Log) (*ERC20MintableTransfer, error) {
 20454  	event := new(ERC20MintableTransfer)
 20455  	if err := _ERC20Mintable.contract.UnpackLog(event, "Transfer", log); err != nil {
 20456  		return nil, err
 20457  	}
 20458  	return event, nil
 20459  }
 20460  
 20461  // ERC721MetaData contains all meta data concerning the ERC721 contract.
 20462  var ERC721MetaData = &bind.MetaData{
 20463  	ABI: "[{\"constant\":true,\"inputs\":[{\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"to\",\"type\":\"address\"},{\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"from\",\"type\":\"address\"},{\"name\":\"to\",\"type\":\"address\"},{\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"from\",\"type\":\"address\"},{\"name\":\"to\",\"type\":\"address\"},{\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"to\",\"type\":\"address\"},{\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"from\",\"type\":\"address\"},{\"name\":\"to\",\"type\":\"address\"},{\"name\":\"tokenId\",\"type\":\"uint256\"},{\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"owner\",\"type\":\"address\"},{\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"}]",
 20464  	Sigs: map[string]string{
 20465  		"095ea7b3": "approve(address,uint256)",
 20466  		"70a08231": "balanceOf(address)",
 20467  		"081812fc": "getApproved(uint256)",
 20468  		"e985e9c5": "isApprovedForAll(address,address)",
 20469  		"6352211e": "ownerOf(uint256)",
 20470  		"42842e0e": "safeTransferFrom(address,address,uint256)",
 20471  		"b88d4fde": "safeTransferFrom(address,address,uint256,bytes)",
 20472  		"a22cb465": "setApprovalForAll(address,bool)",
 20473  		"01ffc9a7": "supportsInterface(bytes4)",
 20474  		"23b872dd": "transferFrom(address,address,uint256)",
 20475  	},
 20476  	Bin: "0x608060405234801561001057600080fd5b506100276301ffc9a760e01b61004260201b60201c565b61003d6380ac58cd60e01b61004260201b60201c565b610110565b7fffffffff0000000000000000000000000000000000000000000000000000000080821614156100d357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f4552433136353a20696e76616c696420696e7465726661636520696400000000604482015290519081900360640190fd5b7fffffffff00000000000000000000000000000000000000000000000000000000166000908152602081905260409020805460ff19166001179055565b610d448061011f6000396000f3fe608060405234801561001057600080fd5b506004361061009e5760003560e01c80636352211e116100665780636352211e146101b157806370a08231146101ce578063a22cb46514610206578063b88d4fde14610234578063e985e9c5146102fa5761009e565b806301ffc9a7146100a3578063081812fc146100de578063095ea7b31461011757806323b872dd1461014557806342842e0e1461017b575b600080fd5b6100ca600480360360208110156100b957600080fd5b50356001600160e01b031916610328565b604080519115158252519081900360200190f35b6100fb600480360360208110156100f457600080fd5b5035610347565b604080516001600160a01b039092168252519081900360200190f35b6101436004803603604081101561012d57600080fd5b506001600160a01b0381351690602001356103ac565b005b6101436004803603606081101561015b57600080fd5b506001600160a01b038135811691602081013590911690604001356104c3565b6101436004803603606081101561019157600080fd5b506001600160a01b0381358116916020810135909116906040013561051b565b6100fb600480360360208110156101c757600080fd5b5035610536565b6101f4600480360360208110156101e457600080fd5b50356001600160a01b0316610593565b60408051918252519081900360200190f35b6101436004803603604081101561021c57600080fd5b506001600160a01b03813516906020013515156105fe565b6101436004803603608081101561024a57600080fd5b6001600160a01b0382358116926020810135909116916040820135919081019060808101606082013564010000000081111561028557600080fd5b82018360208201111561029757600080fd5b803590602001918460018302840111640100000000831117156102b957600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506106cd945050505050565b6100ca6004803603604081101561031057600080fd5b506001600160a01b0381358116916020013516610728565b6001600160e01b03191660009081526020819052604090205460ff1690565b600061035282610756565b61039057604051600160e51b62461bcd02815260040180806020018281038252602c815260200180610c72602c913960400191505060405180910390fd5b506000908152600260205260409020546001600160a01b031690565b60006103b782610536565b9050806001600160a01b0316836001600160a01b0316141561040d57604051600160e51b62461bcd028152600401808060200182810382526021815260200180610cc76021913960400191505060405180910390fd5b336001600160a01b038216148061042957506104298133610728565b61046757604051600160e51b62461bcd028152600401808060200182810382526038815260200180610be76038913960400191505060405180910390fd5b60008281526002602052604080822080546001600160a01b0319166001600160a01b0387811691821790925591518593918516917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a4505050565b6104cd3382610773565b61050b57604051600160e51b62461bcd028152600401808060200182810382526031815260200180610ce86031913960400191505060405180910390fd5b61051683838361081a565b505050565b610516838383604051806020016040528060008152506106cd565b6000818152600160205260408120546001600160a01b03168061058d57604051600160e51b62461bcd028152600401808060200182810382526029815260200180610c496029913960400191505060405180910390fd5b92915050565b60006001600160a01b0382166105dd57604051600160e51b62461bcd02815260040180806020018281038252602a815260200180610c1f602a913960400191505060405180910390fd5b6001600160a01b038216600090815260036020526040902061058d90610964565b6001600160a01b03821633141561065f5760408051600160e51b62461bcd02815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c657200000000000000604482015290519081900360640190fd5b3360008181526004602090815260408083206001600160a01b03871680855290835292819020805460ff1916861515908117909155815190815290519293927f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31929181900390910190a35050565b6106d88484846104c3565b6106e484848484610968565b61072257604051600160e51b62461bcd028152600401808060200182810382526032815260200180610b656032913960400191505060405180910390fd5b50505050565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205460ff1690565b6000908152600160205260409020546001600160a01b0316151590565b600061077e82610756565b6107bc57604051600160e51b62461bcd02815260040180806020018281038252602c815260200180610bbb602c913960400191505060405180910390fd5b60006107c783610536565b9050806001600160a01b0316846001600160a01b031614806108025750836001600160a01b03166107f784610347565b6001600160a01b0316145b8061081257506108128185610728565b949350505050565b826001600160a01b031661082d82610536565b6001600160a01b03161461087557604051600160e51b62461bcd028152600401808060200182810382526029815260200180610c9e6029913960400191505060405180910390fd5b6001600160a01b0382166108bd57604051600160e51b62461bcd028152600401808060200182810382526024815260200180610b976024913960400191505060405180910390fd5b6108c681610aa1565b6001600160a01b03831660009081526003602052604090206108e790610ade565b6001600160a01b038216600090815260036020526040902061090890610af5565b60008181526001602052604080822080546001600160a01b0319166001600160a01b0386811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b5490565b600061097c846001600160a01b0316610afe565b61098857506001610812565b604051600160e11b630a85bd0102815233600482018181526001600160a01b03888116602485015260448401879052608060648501908152865160848601528651600095928a169463150b7a029490938c938b938b939260a4019060208501908083838e5b83811015610a055781810151838201526020016109ed565b50505050905090810190601f168015610a325780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b158015610a5457600080fd5b505af1158015610a68573d6000803e3d6000fd5b505050506040513d6020811015610a7e57600080fd5b50516001600160e01b031916600160e11b630a85bd010214915050949350505050565b6000818152600260205260409020546001600160a01b031615610adb57600081815260026020526040902080546001600160a01b03191690555b50565b8054610af190600163ffffffff610b0416565b9055565b80546001019055565b3b151590565b600082821115610b5e5760408051600160e51b62461bcd02815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b5090039056fe4552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e7465724552433732313a207472616e7366657220746f20746865207a65726f20616464726573734552433732313a206f70657261746f7220717565727920666f72206e6f6e6578697374656e7420746f6b656e4552433732313a20617070726f76652063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f76656420666f7220616c6c4552433732313a2062616c616e636520717565727920666f7220746865207a65726f20616464726573734552433732313a206f776e657220717565727920666f72206e6f6e6578697374656e7420746f6b656e4552433732313a20617070726f76656420717565727920666f72206e6f6e6578697374656e7420746f6b656e4552433732313a207472616e73666572206f6620746f6b656e2074686174206973206e6f74206f776e4552433732313a20617070726f76616c20746f2063757272656e74206f776e65724552433732313a207472616e736665722063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f766564a165627a7a72305820ed0176cdf6bb84bc2e81a19dd4f43f70a184a383de47142e2b45467f824b179b0029",
 20477  }
 20478  
 20479  // ERC721ABI is the input ABI used to generate the binding from.
 20480  // Deprecated: Use ERC721MetaData.ABI instead.
 20481  var ERC721ABI = ERC721MetaData.ABI
 20482  
 20483  // ERC721BinRuntime is the compiled bytecode used for adding genesis block without deploying code.
 20484  const ERC721BinRuntime = `608060405234801561001057600080fd5b506004361061009e5760003560e01c80636352211e116100665780636352211e146101b157806370a08231146101ce578063a22cb46514610206578063b88d4fde14610234578063e985e9c5146102fa5761009e565b806301ffc9a7146100a3578063081812fc146100de578063095ea7b31461011757806323b872dd1461014557806342842e0e1461017b575b600080fd5b6100ca600480360360208110156100b957600080fd5b50356001600160e01b031916610328565b604080519115158252519081900360200190f35b6100fb600480360360208110156100f457600080fd5b5035610347565b604080516001600160a01b039092168252519081900360200190f35b6101436004803603604081101561012d57600080fd5b506001600160a01b0381351690602001356103ac565b005b6101436004803603606081101561015b57600080fd5b506001600160a01b038135811691602081013590911690604001356104c3565b6101436004803603606081101561019157600080fd5b506001600160a01b0381358116916020810135909116906040013561051b565b6100fb600480360360208110156101c757600080fd5b5035610536565b6101f4600480360360208110156101e457600080fd5b50356001600160a01b0316610593565b60408051918252519081900360200190f35b6101436004803603604081101561021c57600080fd5b506001600160a01b03813516906020013515156105fe565b6101436004803603608081101561024a57600080fd5b6001600160a01b0382358116926020810135909116916040820135919081019060808101606082013564010000000081111561028557600080fd5b82018360208201111561029757600080fd5b803590602001918460018302840111640100000000831117156102b957600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506106cd945050505050565b6100ca6004803603604081101561031057600080fd5b506001600160a01b0381358116916020013516610728565b6001600160e01b03191660009081526020819052604090205460ff1690565b600061035282610756565b61039057604051600160e51b62461bcd02815260040180806020018281038252602c815260200180610c72602c913960400191505060405180910390fd5b506000908152600260205260409020546001600160a01b031690565b60006103b782610536565b9050806001600160a01b0316836001600160a01b0316141561040d57604051600160e51b62461bcd028152600401808060200182810382526021815260200180610cc76021913960400191505060405180910390fd5b336001600160a01b038216148061042957506104298133610728565b61046757604051600160e51b62461bcd028152600401808060200182810382526038815260200180610be76038913960400191505060405180910390fd5b60008281526002602052604080822080546001600160a01b0319166001600160a01b0387811691821790925591518593918516917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a4505050565b6104cd3382610773565b61050b57604051600160e51b62461bcd028152600401808060200182810382526031815260200180610ce86031913960400191505060405180910390fd5b61051683838361081a565b505050565b610516838383604051806020016040528060008152506106cd565b6000818152600160205260408120546001600160a01b03168061058d57604051600160e51b62461bcd028152600401808060200182810382526029815260200180610c496029913960400191505060405180910390fd5b92915050565b60006001600160a01b0382166105dd57604051600160e51b62461bcd02815260040180806020018281038252602a815260200180610c1f602a913960400191505060405180910390fd5b6001600160a01b038216600090815260036020526040902061058d90610964565b6001600160a01b03821633141561065f5760408051600160e51b62461bcd02815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c657200000000000000604482015290519081900360640190fd5b3360008181526004602090815260408083206001600160a01b03871680855290835292819020805460ff1916861515908117909155815190815290519293927f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31929181900390910190a35050565b6106d88484846104c3565b6106e484848484610968565b61072257604051600160e51b62461bcd028152600401808060200182810382526032815260200180610b656032913960400191505060405180910390fd5b50505050565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205460ff1690565b6000908152600160205260409020546001600160a01b0316151590565b600061077e82610756565b6107bc57604051600160e51b62461bcd02815260040180806020018281038252602c815260200180610bbb602c913960400191505060405180910390fd5b60006107c783610536565b9050806001600160a01b0316846001600160a01b031614806108025750836001600160a01b03166107f784610347565b6001600160a01b0316145b8061081257506108128185610728565b949350505050565b826001600160a01b031661082d82610536565b6001600160a01b03161461087557604051600160e51b62461bcd028152600401808060200182810382526029815260200180610c9e6029913960400191505060405180910390fd5b6001600160a01b0382166108bd57604051600160e51b62461bcd028152600401808060200182810382526024815260200180610b976024913960400191505060405180910390fd5b6108c681610aa1565b6001600160a01b03831660009081526003602052604090206108e790610ade565b6001600160a01b038216600090815260036020526040902061090890610af5565b60008181526001602052604080822080546001600160a01b0319166001600160a01b0386811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b5490565b600061097c846001600160a01b0316610afe565b61098857506001610812565b604051600160e11b630a85bd0102815233600482018181526001600160a01b03888116602485015260448401879052608060648501908152865160848601528651600095928a169463150b7a029490938c938b938b939260a4019060208501908083838e5b83811015610a055781810151838201526020016109ed565b50505050905090810190601f168015610a325780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b158015610a5457600080fd5b505af1158015610a68573d6000803e3d6000fd5b505050506040513d6020811015610a7e57600080fd5b50516001600160e01b031916600160e11b630a85bd010214915050949350505050565b6000818152600260205260409020546001600160a01b031615610adb57600081815260026020526040902080546001600160a01b03191690555b50565b8054610af190600163ffffffff610b0416565b9055565b80546001019055565b3b151590565b600082821115610b5e5760408051600160e51b62461bcd02815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b5090039056fe4552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e7465724552433732313a207472616e7366657220746f20746865207a65726f20616464726573734552433732313a206f70657261746f7220717565727920666f72206e6f6e6578697374656e7420746f6b656e4552433732313a20617070726f76652063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f76656420666f7220616c6c4552433732313a2062616c616e636520717565727920666f7220746865207a65726f20616464726573734552433732313a206f776e657220717565727920666f72206e6f6e6578697374656e7420746f6b656e4552433732313a20617070726f76656420717565727920666f72206e6f6e6578697374656e7420746f6b656e4552433732313a207472616e73666572206f6620746f6b656e2074686174206973206e6f74206f776e4552433732313a20617070726f76616c20746f2063757272656e74206f776e65724552433732313a207472616e736665722063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f766564a165627a7a72305820ed0176cdf6bb84bc2e81a19dd4f43f70a184a383de47142e2b45467f824b179b0029`
 20485  
 20486  // ERC721FuncSigs maps the 4-byte function signature to its string representation.
 20487  // Deprecated: Use ERC721MetaData.Sigs instead.
 20488  var ERC721FuncSigs = ERC721MetaData.Sigs
 20489  
 20490  // ERC721Bin is the compiled bytecode used for deploying new contracts.
 20491  // Deprecated: Use ERC721MetaData.Bin instead.
 20492  var ERC721Bin = ERC721MetaData.Bin
 20493  
 20494  // DeployERC721 deploys a new Klaytn contract, binding an instance of ERC721 to it.
 20495  func DeployERC721(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *types.Transaction, *ERC721, error) {
 20496  	parsed, err := ERC721MetaData.GetAbi()
 20497  	if err != nil {
 20498  		return common.Address{}, nil, nil, err
 20499  	}
 20500  	if parsed == nil {
 20501  		return common.Address{}, nil, nil, errors.New("GetABI returned nil")
 20502  	}
 20503  
 20504  	address, tx, contract, err := bind.DeployContract(auth, *parsed, common.FromHex(ERC721Bin), backend)
 20505  	if err != nil {
 20506  		return common.Address{}, nil, nil, err
 20507  	}
 20508  	return address, tx, &ERC721{ERC721Caller: ERC721Caller{contract: contract}, ERC721Transactor: ERC721Transactor{contract: contract}, ERC721Filterer: ERC721Filterer{contract: contract}}, nil
 20509  }
 20510  
 20511  // ERC721 is an auto generated Go binding around a Klaytn contract.
 20512  type ERC721 struct {
 20513  	ERC721Caller     // Read-only binding to the contract
 20514  	ERC721Transactor // Write-only binding to the contract
 20515  	ERC721Filterer   // Log filterer for contract events
 20516  }
 20517  
 20518  // ERC721Caller is an auto generated read-only Go binding around a Klaytn contract.
 20519  type ERC721Caller struct {
 20520  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 20521  }
 20522  
 20523  // ERC721Transactor is an auto generated write-only Go binding around a Klaytn contract.
 20524  type ERC721Transactor struct {
 20525  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 20526  }
 20527  
 20528  // ERC721Filterer is an auto generated log filtering Go binding around a Klaytn contract events.
 20529  type ERC721Filterer struct {
 20530  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 20531  }
 20532  
 20533  // ERC721Session is an auto generated Go binding around a Klaytn contract,
 20534  // with pre-set call and transact options.
 20535  type ERC721Session struct {
 20536  	Contract     *ERC721           // Generic contract binding to set the session for
 20537  	CallOpts     bind.CallOpts     // Call options to use throughout this session
 20538  	TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
 20539  }
 20540  
 20541  // ERC721CallerSession is an auto generated read-only Go binding around a Klaytn contract,
 20542  // with pre-set call options.
 20543  type ERC721CallerSession struct {
 20544  	Contract *ERC721Caller // Generic contract caller binding to set the session for
 20545  	CallOpts bind.CallOpts // Call options to use throughout this session
 20546  }
 20547  
 20548  // ERC721TransactorSession is an auto generated write-only Go binding around a Klaytn contract,
 20549  // with pre-set transact options.
 20550  type ERC721TransactorSession struct {
 20551  	Contract     *ERC721Transactor // Generic contract transactor binding to set the session for
 20552  	TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
 20553  }
 20554  
 20555  // ERC721Raw is an auto generated low-level Go binding around a Klaytn contract.
 20556  type ERC721Raw struct {
 20557  	Contract *ERC721 // Generic contract binding to access the raw methods on
 20558  }
 20559  
 20560  // ERC721CallerRaw is an auto generated low-level read-only Go binding around a Klaytn contract.
 20561  type ERC721CallerRaw struct {
 20562  	Contract *ERC721Caller // Generic read-only contract binding to access the raw methods on
 20563  }
 20564  
 20565  // ERC721TransactorRaw is an auto generated low-level write-only Go binding around a Klaytn contract.
 20566  type ERC721TransactorRaw struct {
 20567  	Contract *ERC721Transactor // Generic write-only contract binding to access the raw methods on
 20568  }
 20569  
 20570  // NewERC721 creates a new instance of ERC721, bound to a specific deployed contract.
 20571  func NewERC721(address common.Address, backend bind.ContractBackend) (*ERC721, error) {
 20572  	contract, err := bindERC721(address, backend, backend, backend)
 20573  	if err != nil {
 20574  		return nil, err
 20575  	}
 20576  	return &ERC721{ERC721Caller: ERC721Caller{contract: contract}, ERC721Transactor: ERC721Transactor{contract: contract}, ERC721Filterer: ERC721Filterer{contract: contract}}, nil
 20577  }
 20578  
 20579  // NewERC721Caller creates a new read-only instance of ERC721, bound to a specific deployed contract.
 20580  func NewERC721Caller(address common.Address, caller bind.ContractCaller) (*ERC721Caller, error) {
 20581  	contract, err := bindERC721(address, caller, nil, nil)
 20582  	if err != nil {
 20583  		return nil, err
 20584  	}
 20585  	return &ERC721Caller{contract: contract}, nil
 20586  }
 20587  
 20588  // NewERC721Transactor creates a new write-only instance of ERC721, bound to a specific deployed contract.
 20589  func NewERC721Transactor(address common.Address, transactor bind.ContractTransactor) (*ERC721Transactor, error) {
 20590  	contract, err := bindERC721(address, nil, transactor, nil)
 20591  	if err != nil {
 20592  		return nil, err
 20593  	}
 20594  	return &ERC721Transactor{contract: contract}, nil
 20595  }
 20596  
 20597  // NewERC721Filterer creates a new log filterer instance of ERC721, bound to a specific deployed contract.
 20598  func NewERC721Filterer(address common.Address, filterer bind.ContractFilterer) (*ERC721Filterer, error) {
 20599  	contract, err := bindERC721(address, nil, nil, filterer)
 20600  	if err != nil {
 20601  		return nil, err
 20602  	}
 20603  	return &ERC721Filterer{contract: contract}, nil
 20604  }
 20605  
 20606  // bindERC721 binds a generic wrapper to an already deployed contract.
 20607  func bindERC721(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
 20608  	parsed, err := ERC721MetaData.GetAbi()
 20609  	if err != nil {
 20610  		return nil, err
 20611  	}
 20612  	return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil
 20613  }
 20614  
 20615  // Call invokes the (constant) contract method with params as input values and
 20616  // sets the output to result. The result type might be a single field for simple
 20617  // returns, a slice of interfaces for anonymous returns and a struct for named
 20618  // returns.
 20619  func (_ERC721 *ERC721Raw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
 20620  	return _ERC721.Contract.ERC721Caller.contract.Call(opts, result, method, params...)
 20621  }
 20622  
 20623  // Transfer initiates a plain transaction to move funds to the contract, calling
 20624  // its default method if one is available.
 20625  func (_ERC721 *ERC721Raw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
 20626  	return _ERC721.Contract.ERC721Transactor.contract.Transfer(opts)
 20627  }
 20628  
 20629  // Transact invokes the (paid) contract method with params as input values.
 20630  func (_ERC721 *ERC721Raw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
 20631  	return _ERC721.Contract.ERC721Transactor.contract.Transact(opts, method, params...)
 20632  }
 20633  
 20634  // Call invokes the (constant) contract method with params as input values and
 20635  // sets the output to result. The result type might be a single field for simple
 20636  // returns, a slice of interfaces for anonymous returns and a struct for named
 20637  // returns.
 20638  func (_ERC721 *ERC721CallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
 20639  	return _ERC721.Contract.contract.Call(opts, result, method, params...)
 20640  }
 20641  
 20642  // Transfer initiates a plain transaction to move funds to the contract, calling
 20643  // its default method if one is available.
 20644  func (_ERC721 *ERC721TransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
 20645  	return _ERC721.Contract.contract.Transfer(opts)
 20646  }
 20647  
 20648  // Transact invokes the (paid) contract method with params as input values.
 20649  func (_ERC721 *ERC721TransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
 20650  	return _ERC721.Contract.contract.Transact(opts, method, params...)
 20651  }
 20652  
 20653  // BalanceOf is a free data retrieval call binding the contract method 0x70a08231.
 20654  //
 20655  // Solidity: function balanceOf(address owner) view returns(uint256)
 20656  func (_ERC721 *ERC721Caller) BalanceOf(opts *bind.CallOpts, owner common.Address) (*big.Int, error) {
 20657  	var out []interface{}
 20658  	err := _ERC721.contract.Call(opts, &out, "balanceOf", owner)
 20659  
 20660  	if err != nil {
 20661  		return *new(*big.Int), err
 20662  	}
 20663  
 20664  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
 20665  
 20666  	return out0, err
 20667  
 20668  }
 20669  
 20670  // BalanceOf is a free data retrieval call binding the contract method 0x70a08231.
 20671  //
 20672  // Solidity: function balanceOf(address owner) view returns(uint256)
 20673  func (_ERC721 *ERC721Session) BalanceOf(owner common.Address) (*big.Int, error) {
 20674  	return _ERC721.Contract.BalanceOf(&_ERC721.CallOpts, owner)
 20675  }
 20676  
 20677  // BalanceOf is a free data retrieval call binding the contract method 0x70a08231.
 20678  //
 20679  // Solidity: function balanceOf(address owner) view returns(uint256)
 20680  func (_ERC721 *ERC721CallerSession) BalanceOf(owner common.Address) (*big.Int, error) {
 20681  	return _ERC721.Contract.BalanceOf(&_ERC721.CallOpts, owner)
 20682  }
 20683  
 20684  // GetApproved is a free data retrieval call binding the contract method 0x081812fc.
 20685  //
 20686  // Solidity: function getApproved(uint256 tokenId) view returns(address)
 20687  func (_ERC721 *ERC721Caller) GetApproved(opts *bind.CallOpts, tokenId *big.Int) (common.Address, error) {
 20688  	var out []interface{}
 20689  	err := _ERC721.contract.Call(opts, &out, "getApproved", tokenId)
 20690  
 20691  	if err != nil {
 20692  		return *new(common.Address), err
 20693  	}
 20694  
 20695  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
 20696  
 20697  	return out0, err
 20698  
 20699  }
 20700  
 20701  // GetApproved is a free data retrieval call binding the contract method 0x081812fc.
 20702  //
 20703  // Solidity: function getApproved(uint256 tokenId) view returns(address)
 20704  func (_ERC721 *ERC721Session) GetApproved(tokenId *big.Int) (common.Address, error) {
 20705  	return _ERC721.Contract.GetApproved(&_ERC721.CallOpts, tokenId)
 20706  }
 20707  
 20708  // GetApproved is a free data retrieval call binding the contract method 0x081812fc.
 20709  //
 20710  // Solidity: function getApproved(uint256 tokenId) view returns(address)
 20711  func (_ERC721 *ERC721CallerSession) GetApproved(tokenId *big.Int) (common.Address, error) {
 20712  	return _ERC721.Contract.GetApproved(&_ERC721.CallOpts, tokenId)
 20713  }
 20714  
 20715  // IsApprovedForAll is a free data retrieval call binding the contract method 0xe985e9c5.
 20716  //
 20717  // Solidity: function isApprovedForAll(address owner, address operator) view returns(bool)
 20718  func (_ERC721 *ERC721Caller) IsApprovedForAll(opts *bind.CallOpts, owner common.Address, operator common.Address) (bool, error) {
 20719  	var out []interface{}
 20720  	err := _ERC721.contract.Call(opts, &out, "isApprovedForAll", owner, operator)
 20721  
 20722  	if err != nil {
 20723  		return *new(bool), err
 20724  	}
 20725  
 20726  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
 20727  
 20728  	return out0, err
 20729  
 20730  }
 20731  
 20732  // IsApprovedForAll is a free data retrieval call binding the contract method 0xe985e9c5.
 20733  //
 20734  // Solidity: function isApprovedForAll(address owner, address operator) view returns(bool)
 20735  func (_ERC721 *ERC721Session) IsApprovedForAll(owner common.Address, operator common.Address) (bool, error) {
 20736  	return _ERC721.Contract.IsApprovedForAll(&_ERC721.CallOpts, owner, operator)
 20737  }
 20738  
 20739  // IsApprovedForAll is a free data retrieval call binding the contract method 0xe985e9c5.
 20740  //
 20741  // Solidity: function isApprovedForAll(address owner, address operator) view returns(bool)
 20742  func (_ERC721 *ERC721CallerSession) IsApprovedForAll(owner common.Address, operator common.Address) (bool, error) {
 20743  	return _ERC721.Contract.IsApprovedForAll(&_ERC721.CallOpts, owner, operator)
 20744  }
 20745  
 20746  // OwnerOf is a free data retrieval call binding the contract method 0x6352211e.
 20747  //
 20748  // Solidity: function ownerOf(uint256 tokenId) view returns(address)
 20749  func (_ERC721 *ERC721Caller) OwnerOf(opts *bind.CallOpts, tokenId *big.Int) (common.Address, error) {
 20750  	var out []interface{}
 20751  	err := _ERC721.contract.Call(opts, &out, "ownerOf", tokenId)
 20752  
 20753  	if err != nil {
 20754  		return *new(common.Address), err
 20755  	}
 20756  
 20757  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
 20758  
 20759  	return out0, err
 20760  
 20761  }
 20762  
 20763  // OwnerOf is a free data retrieval call binding the contract method 0x6352211e.
 20764  //
 20765  // Solidity: function ownerOf(uint256 tokenId) view returns(address)
 20766  func (_ERC721 *ERC721Session) OwnerOf(tokenId *big.Int) (common.Address, error) {
 20767  	return _ERC721.Contract.OwnerOf(&_ERC721.CallOpts, tokenId)
 20768  }
 20769  
 20770  // OwnerOf is a free data retrieval call binding the contract method 0x6352211e.
 20771  //
 20772  // Solidity: function ownerOf(uint256 tokenId) view returns(address)
 20773  func (_ERC721 *ERC721CallerSession) OwnerOf(tokenId *big.Int) (common.Address, error) {
 20774  	return _ERC721.Contract.OwnerOf(&_ERC721.CallOpts, tokenId)
 20775  }
 20776  
 20777  // SupportsInterface is a free data retrieval call binding the contract method 0x01ffc9a7.
 20778  //
 20779  // Solidity: function supportsInterface(bytes4 interfaceId) view returns(bool)
 20780  func (_ERC721 *ERC721Caller) SupportsInterface(opts *bind.CallOpts, interfaceId [4]byte) (bool, error) {
 20781  	var out []interface{}
 20782  	err := _ERC721.contract.Call(opts, &out, "supportsInterface", interfaceId)
 20783  
 20784  	if err != nil {
 20785  		return *new(bool), err
 20786  	}
 20787  
 20788  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
 20789  
 20790  	return out0, err
 20791  
 20792  }
 20793  
 20794  // SupportsInterface is a free data retrieval call binding the contract method 0x01ffc9a7.
 20795  //
 20796  // Solidity: function supportsInterface(bytes4 interfaceId) view returns(bool)
 20797  func (_ERC721 *ERC721Session) SupportsInterface(interfaceId [4]byte) (bool, error) {
 20798  	return _ERC721.Contract.SupportsInterface(&_ERC721.CallOpts, interfaceId)
 20799  }
 20800  
 20801  // SupportsInterface is a free data retrieval call binding the contract method 0x01ffc9a7.
 20802  //
 20803  // Solidity: function supportsInterface(bytes4 interfaceId) view returns(bool)
 20804  func (_ERC721 *ERC721CallerSession) SupportsInterface(interfaceId [4]byte) (bool, error) {
 20805  	return _ERC721.Contract.SupportsInterface(&_ERC721.CallOpts, interfaceId)
 20806  }
 20807  
 20808  // Approve is a paid mutator transaction binding the contract method 0x095ea7b3.
 20809  //
 20810  // Solidity: function approve(address to, uint256 tokenId) returns()
 20811  func (_ERC721 *ERC721Transactor) Approve(opts *bind.TransactOpts, to common.Address, tokenId *big.Int) (*types.Transaction, error) {
 20812  	return _ERC721.contract.Transact(opts, "approve", to, tokenId)
 20813  }
 20814  
 20815  // Approve is a paid mutator transaction binding the contract method 0x095ea7b3.
 20816  //
 20817  // Solidity: function approve(address to, uint256 tokenId) returns()
 20818  func (_ERC721 *ERC721Session) Approve(to common.Address, tokenId *big.Int) (*types.Transaction, error) {
 20819  	return _ERC721.Contract.Approve(&_ERC721.TransactOpts, to, tokenId)
 20820  }
 20821  
 20822  // Approve is a paid mutator transaction binding the contract method 0x095ea7b3.
 20823  //
 20824  // Solidity: function approve(address to, uint256 tokenId) returns()
 20825  func (_ERC721 *ERC721TransactorSession) Approve(to common.Address, tokenId *big.Int) (*types.Transaction, error) {
 20826  	return _ERC721.Contract.Approve(&_ERC721.TransactOpts, to, tokenId)
 20827  }
 20828  
 20829  // SafeTransferFrom is a paid mutator transaction binding the contract method 0x42842e0e.
 20830  //
 20831  // Solidity: function safeTransferFrom(address from, address to, uint256 tokenId) returns()
 20832  func (_ERC721 *ERC721Transactor) SafeTransferFrom(opts *bind.TransactOpts, from common.Address, to common.Address, tokenId *big.Int) (*types.Transaction, error) {
 20833  	return _ERC721.contract.Transact(opts, "safeTransferFrom", from, to, tokenId)
 20834  }
 20835  
 20836  // SafeTransferFrom is a paid mutator transaction binding the contract method 0x42842e0e.
 20837  //
 20838  // Solidity: function safeTransferFrom(address from, address to, uint256 tokenId) returns()
 20839  func (_ERC721 *ERC721Session) SafeTransferFrom(from common.Address, to common.Address, tokenId *big.Int) (*types.Transaction, error) {
 20840  	return _ERC721.Contract.SafeTransferFrom(&_ERC721.TransactOpts, from, to, tokenId)
 20841  }
 20842  
 20843  // SafeTransferFrom is a paid mutator transaction binding the contract method 0x42842e0e.
 20844  //
 20845  // Solidity: function safeTransferFrom(address from, address to, uint256 tokenId) returns()
 20846  func (_ERC721 *ERC721TransactorSession) SafeTransferFrom(from common.Address, to common.Address, tokenId *big.Int) (*types.Transaction, error) {
 20847  	return _ERC721.Contract.SafeTransferFrom(&_ERC721.TransactOpts, from, to, tokenId)
 20848  }
 20849  
 20850  // SafeTransferFrom0 is a paid mutator transaction binding the contract method 0xb88d4fde.
 20851  //
 20852  // Solidity: function safeTransferFrom(address from, address to, uint256 tokenId, bytes _data) returns()
 20853  func (_ERC721 *ERC721Transactor) SafeTransferFrom0(opts *bind.TransactOpts, from common.Address, to common.Address, tokenId *big.Int, _data []byte) (*types.Transaction, error) {
 20854  	return _ERC721.contract.Transact(opts, "safeTransferFrom0", from, to, tokenId, _data)
 20855  }
 20856  
 20857  // SafeTransferFrom0 is a paid mutator transaction binding the contract method 0xb88d4fde.
 20858  //
 20859  // Solidity: function safeTransferFrom(address from, address to, uint256 tokenId, bytes _data) returns()
 20860  func (_ERC721 *ERC721Session) SafeTransferFrom0(from common.Address, to common.Address, tokenId *big.Int, _data []byte) (*types.Transaction, error) {
 20861  	return _ERC721.Contract.SafeTransferFrom0(&_ERC721.TransactOpts, from, to, tokenId, _data)
 20862  }
 20863  
 20864  // SafeTransferFrom0 is a paid mutator transaction binding the contract method 0xb88d4fde.
 20865  //
 20866  // Solidity: function safeTransferFrom(address from, address to, uint256 tokenId, bytes _data) returns()
 20867  func (_ERC721 *ERC721TransactorSession) SafeTransferFrom0(from common.Address, to common.Address, tokenId *big.Int, _data []byte) (*types.Transaction, error) {
 20868  	return _ERC721.Contract.SafeTransferFrom0(&_ERC721.TransactOpts, from, to, tokenId, _data)
 20869  }
 20870  
 20871  // SetApprovalForAll is a paid mutator transaction binding the contract method 0xa22cb465.
 20872  //
 20873  // Solidity: function setApprovalForAll(address to, bool approved) returns()
 20874  func (_ERC721 *ERC721Transactor) SetApprovalForAll(opts *bind.TransactOpts, to common.Address, approved bool) (*types.Transaction, error) {
 20875  	return _ERC721.contract.Transact(opts, "setApprovalForAll", to, approved)
 20876  }
 20877  
 20878  // SetApprovalForAll is a paid mutator transaction binding the contract method 0xa22cb465.
 20879  //
 20880  // Solidity: function setApprovalForAll(address to, bool approved) returns()
 20881  func (_ERC721 *ERC721Session) SetApprovalForAll(to common.Address, approved bool) (*types.Transaction, error) {
 20882  	return _ERC721.Contract.SetApprovalForAll(&_ERC721.TransactOpts, to, approved)
 20883  }
 20884  
 20885  // SetApprovalForAll is a paid mutator transaction binding the contract method 0xa22cb465.
 20886  //
 20887  // Solidity: function setApprovalForAll(address to, bool approved) returns()
 20888  func (_ERC721 *ERC721TransactorSession) SetApprovalForAll(to common.Address, approved bool) (*types.Transaction, error) {
 20889  	return _ERC721.Contract.SetApprovalForAll(&_ERC721.TransactOpts, to, approved)
 20890  }
 20891  
 20892  // TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd.
 20893  //
 20894  // Solidity: function transferFrom(address from, address to, uint256 tokenId) returns()
 20895  func (_ERC721 *ERC721Transactor) TransferFrom(opts *bind.TransactOpts, from common.Address, to common.Address, tokenId *big.Int) (*types.Transaction, error) {
 20896  	return _ERC721.contract.Transact(opts, "transferFrom", from, to, tokenId)
 20897  }
 20898  
 20899  // TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd.
 20900  //
 20901  // Solidity: function transferFrom(address from, address to, uint256 tokenId) returns()
 20902  func (_ERC721 *ERC721Session) TransferFrom(from common.Address, to common.Address, tokenId *big.Int) (*types.Transaction, error) {
 20903  	return _ERC721.Contract.TransferFrom(&_ERC721.TransactOpts, from, to, tokenId)
 20904  }
 20905  
 20906  // TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd.
 20907  //
 20908  // Solidity: function transferFrom(address from, address to, uint256 tokenId) returns()
 20909  func (_ERC721 *ERC721TransactorSession) TransferFrom(from common.Address, to common.Address, tokenId *big.Int) (*types.Transaction, error) {
 20910  	return _ERC721.Contract.TransferFrom(&_ERC721.TransactOpts, from, to, tokenId)
 20911  }
 20912  
 20913  // ERC721ApprovalIterator is returned from FilterApproval and is used to iterate over the raw logs and unpacked data for Approval events raised by the ERC721 contract.
 20914  type ERC721ApprovalIterator struct {
 20915  	Event *ERC721Approval // Event containing the contract specifics and raw log
 20916  
 20917  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 20918  	event    string              // Event name to use for unpacking event data
 20919  
 20920  	logs chan types.Log      // Log channel receiving the found contract events
 20921  	sub  klaytn.Subscription // Subscription for errors, completion and termination
 20922  	done bool                // Whether the subscription completed delivering logs
 20923  	fail error               // Occurred error to stop iteration
 20924  }
 20925  
 20926  // Next advances the iterator to the subsequent event, returning whether there
 20927  // are any more events found. In case of a retrieval or parsing error, false is
 20928  // returned and Error() can be queried for the exact failure.
 20929  func (it *ERC721ApprovalIterator) Next() bool {
 20930  	// If the iterator failed, stop iterating
 20931  	if it.fail != nil {
 20932  		return false
 20933  	}
 20934  	// If the iterator completed, deliver directly whatever's available
 20935  	if it.done {
 20936  		select {
 20937  		case log := <-it.logs:
 20938  			it.Event = new(ERC721Approval)
 20939  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 20940  				it.fail = err
 20941  				return false
 20942  			}
 20943  			it.Event.Raw = log
 20944  			return true
 20945  
 20946  		default:
 20947  			return false
 20948  		}
 20949  	}
 20950  	// Iterator still in progress, wait for either a data or an error event
 20951  	select {
 20952  	case log := <-it.logs:
 20953  		it.Event = new(ERC721Approval)
 20954  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 20955  			it.fail = err
 20956  			return false
 20957  		}
 20958  		it.Event.Raw = log
 20959  		return true
 20960  
 20961  	case err := <-it.sub.Err():
 20962  		it.done = true
 20963  		it.fail = err
 20964  		return it.Next()
 20965  	}
 20966  }
 20967  
 20968  // Error returns any retrieval or parsing error occurred during filtering.
 20969  func (it *ERC721ApprovalIterator) Error() error {
 20970  	return it.fail
 20971  }
 20972  
 20973  // Close terminates the iteration process, releasing any pending underlying
 20974  // resources.
 20975  func (it *ERC721ApprovalIterator) Close() error {
 20976  	it.sub.Unsubscribe()
 20977  	return nil
 20978  }
 20979  
 20980  // ERC721Approval represents a Approval event raised by the ERC721 contract.
 20981  type ERC721Approval struct {
 20982  	Owner    common.Address
 20983  	Approved common.Address
 20984  	TokenId  *big.Int
 20985  	Raw      types.Log // Blockchain specific contextual infos
 20986  }
 20987  
 20988  // FilterApproval is a free log retrieval operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925.
 20989  //
 20990  // Solidity: event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId)
 20991  func (_ERC721 *ERC721Filterer) FilterApproval(opts *bind.FilterOpts, owner []common.Address, approved []common.Address, tokenId []*big.Int) (*ERC721ApprovalIterator, error) {
 20992  
 20993  	var ownerRule []interface{}
 20994  	for _, ownerItem := range owner {
 20995  		ownerRule = append(ownerRule, ownerItem)
 20996  	}
 20997  	var approvedRule []interface{}
 20998  	for _, approvedItem := range approved {
 20999  		approvedRule = append(approvedRule, approvedItem)
 21000  	}
 21001  	var tokenIdRule []interface{}
 21002  	for _, tokenIdItem := range tokenId {
 21003  		tokenIdRule = append(tokenIdRule, tokenIdItem)
 21004  	}
 21005  
 21006  	logs, sub, err := _ERC721.contract.FilterLogs(opts, "Approval", ownerRule, approvedRule, tokenIdRule)
 21007  	if err != nil {
 21008  		return nil, err
 21009  	}
 21010  	return &ERC721ApprovalIterator{contract: _ERC721.contract, event: "Approval", logs: logs, sub: sub}, nil
 21011  }
 21012  
 21013  // WatchApproval is a free log subscription operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925.
 21014  //
 21015  // Solidity: event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId)
 21016  func (_ERC721 *ERC721Filterer) WatchApproval(opts *bind.WatchOpts, sink chan<- *ERC721Approval, owner []common.Address, approved []common.Address, tokenId []*big.Int) (event.Subscription, error) {
 21017  
 21018  	var ownerRule []interface{}
 21019  	for _, ownerItem := range owner {
 21020  		ownerRule = append(ownerRule, ownerItem)
 21021  	}
 21022  	var approvedRule []interface{}
 21023  	for _, approvedItem := range approved {
 21024  		approvedRule = append(approvedRule, approvedItem)
 21025  	}
 21026  	var tokenIdRule []interface{}
 21027  	for _, tokenIdItem := range tokenId {
 21028  		tokenIdRule = append(tokenIdRule, tokenIdItem)
 21029  	}
 21030  
 21031  	logs, sub, err := _ERC721.contract.WatchLogs(opts, "Approval", ownerRule, approvedRule, tokenIdRule)
 21032  	if err != nil {
 21033  		return nil, err
 21034  	}
 21035  	return event.NewSubscription(func(quit <-chan struct{}) error {
 21036  		defer sub.Unsubscribe()
 21037  		for {
 21038  			select {
 21039  			case log := <-logs:
 21040  				// New log arrived, parse the event and forward to the user
 21041  				event := new(ERC721Approval)
 21042  				if err := _ERC721.contract.UnpackLog(event, "Approval", log); err != nil {
 21043  					return err
 21044  				}
 21045  				event.Raw = log
 21046  
 21047  				select {
 21048  				case sink <- event:
 21049  				case err := <-sub.Err():
 21050  					return err
 21051  				case <-quit:
 21052  					return nil
 21053  				}
 21054  			case err := <-sub.Err():
 21055  				return err
 21056  			case <-quit:
 21057  				return nil
 21058  			}
 21059  		}
 21060  	}), nil
 21061  }
 21062  
 21063  // ParseApproval is a log parse operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925.
 21064  //
 21065  // Solidity: event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId)
 21066  func (_ERC721 *ERC721Filterer) ParseApproval(log types.Log) (*ERC721Approval, error) {
 21067  	event := new(ERC721Approval)
 21068  	if err := _ERC721.contract.UnpackLog(event, "Approval", log); err != nil {
 21069  		return nil, err
 21070  	}
 21071  	return event, nil
 21072  }
 21073  
 21074  // ERC721ApprovalForAllIterator is returned from FilterApprovalForAll and is used to iterate over the raw logs and unpacked data for ApprovalForAll events raised by the ERC721 contract.
 21075  type ERC721ApprovalForAllIterator struct {
 21076  	Event *ERC721ApprovalForAll // Event containing the contract specifics and raw log
 21077  
 21078  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 21079  	event    string              // Event name to use for unpacking event data
 21080  
 21081  	logs chan types.Log      // Log channel receiving the found contract events
 21082  	sub  klaytn.Subscription // Subscription for errors, completion and termination
 21083  	done bool                // Whether the subscription completed delivering logs
 21084  	fail error               // Occurred error to stop iteration
 21085  }
 21086  
 21087  // Next advances the iterator to the subsequent event, returning whether there
 21088  // are any more events found. In case of a retrieval or parsing error, false is
 21089  // returned and Error() can be queried for the exact failure.
 21090  func (it *ERC721ApprovalForAllIterator) Next() bool {
 21091  	// If the iterator failed, stop iterating
 21092  	if it.fail != nil {
 21093  		return false
 21094  	}
 21095  	// If the iterator completed, deliver directly whatever's available
 21096  	if it.done {
 21097  		select {
 21098  		case log := <-it.logs:
 21099  			it.Event = new(ERC721ApprovalForAll)
 21100  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 21101  				it.fail = err
 21102  				return false
 21103  			}
 21104  			it.Event.Raw = log
 21105  			return true
 21106  
 21107  		default:
 21108  			return false
 21109  		}
 21110  	}
 21111  	// Iterator still in progress, wait for either a data or an error event
 21112  	select {
 21113  	case log := <-it.logs:
 21114  		it.Event = new(ERC721ApprovalForAll)
 21115  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 21116  			it.fail = err
 21117  			return false
 21118  		}
 21119  		it.Event.Raw = log
 21120  		return true
 21121  
 21122  	case err := <-it.sub.Err():
 21123  		it.done = true
 21124  		it.fail = err
 21125  		return it.Next()
 21126  	}
 21127  }
 21128  
 21129  // Error returns any retrieval or parsing error occurred during filtering.
 21130  func (it *ERC721ApprovalForAllIterator) Error() error {
 21131  	return it.fail
 21132  }
 21133  
 21134  // Close terminates the iteration process, releasing any pending underlying
 21135  // resources.
 21136  func (it *ERC721ApprovalForAllIterator) Close() error {
 21137  	it.sub.Unsubscribe()
 21138  	return nil
 21139  }
 21140  
 21141  // ERC721ApprovalForAll represents a ApprovalForAll event raised by the ERC721 contract.
 21142  type ERC721ApprovalForAll struct {
 21143  	Owner    common.Address
 21144  	Operator common.Address
 21145  	Approved bool
 21146  	Raw      types.Log // Blockchain specific contextual infos
 21147  }
 21148  
 21149  // FilterApprovalForAll is a free log retrieval operation binding the contract event 0x17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31.
 21150  //
 21151  // Solidity: event ApprovalForAll(address indexed owner, address indexed operator, bool approved)
 21152  func (_ERC721 *ERC721Filterer) FilterApprovalForAll(opts *bind.FilterOpts, owner []common.Address, operator []common.Address) (*ERC721ApprovalForAllIterator, error) {
 21153  
 21154  	var ownerRule []interface{}
 21155  	for _, ownerItem := range owner {
 21156  		ownerRule = append(ownerRule, ownerItem)
 21157  	}
 21158  	var operatorRule []interface{}
 21159  	for _, operatorItem := range operator {
 21160  		operatorRule = append(operatorRule, operatorItem)
 21161  	}
 21162  
 21163  	logs, sub, err := _ERC721.contract.FilterLogs(opts, "ApprovalForAll", ownerRule, operatorRule)
 21164  	if err != nil {
 21165  		return nil, err
 21166  	}
 21167  	return &ERC721ApprovalForAllIterator{contract: _ERC721.contract, event: "ApprovalForAll", logs: logs, sub: sub}, nil
 21168  }
 21169  
 21170  // WatchApprovalForAll is a free log subscription operation binding the contract event 0x17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31.
 21171  //
 21172  // Solidity: event ApprovalForAll(address indexed owner, address indexed operator, bool approved)
 21173  func (_ERC721 *ERC721Filterer) WatchApprovalForAll(opts *bind.WatchOpts, sink chan<- *ERC721ApprovalForAll, owner []common.Address, operator []common.Address) (event.Subscription, error) {
 21174  
 21175  	var ownerRule []interface{}
 21176  	for _, ownerItem := range owner {
 21177  		ownerRule = append(ownerRule, ownerItem)
 21178  	}
 21179  	var operatorRule []interface{}
 21180  	for _, operatorItem := range operator {
 21181  		operatorRule = append(operatorRule, operatorItem)
 21182  	}
 21183  
 21184  	logs, sub, err := _ERC721.contract.WatchLogs(opts, "ApprovalForAll", ownerRule, operatorRule)
 21185  	if err != nil {
 21186  		return nil, err
 21187  	}
 21188  	return event.NewSubscription(func(quit <-chan struct{}) error {
 21189  		defer sub.Unsubscribe()
 21190  		for {
 21191  			select {
 21192  			case log := <-logs:
 21193  				// New log arrived, parse the event and forward to the user
 21194  				event := new(ERC721ApprovalForAll)
 21195  				if err := _ERC721.contract.UnpackLog(event, "ApprovalForAll", log); err != nil {
 21196  					return err
 21197  				}
 21198  				event.Raw = log
 21199  
 21200  				select {
 21201  				case sink <- event:
 21202  				case err := <-sub.Err():
 21203  					return err
 21204  				case <-quit:
 21205  					return nil
 21206  				}
 21207  			case err := <-sub.Err():
 21208  				return err
 21209  			case <-quit:
 21210  				return nil
 21211  			}
 21212  		}
 21213  	}), nil
 21214  }
 21215  
 21216  // ParseApprovalForAll is a log parse operation binding the contract event 0x17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31.
 21217  //
 21218  // Solidity: event ApprovalForAll(address indexed owner, address indexed operator, bool approved)
 21219  func (_ERC721 *ERC721Filterer) ParseApprovalForAll(log types.Log) (*ERC721ApprovalForAll, error) {
 21220  	event := new(ERC721ApprovalForAll)
 21221  	if err := _ERC721.contract.UnpackLog(event, "ApprovalForAll", log); err != nil {
 21222  		return nil, err
 21223  	}
 21224  	return event, nil
 21225  }
 21226  
 21227  // ERC721TransferIterator is returned from FilterTransfer and is used to iterate over the raw logs and unpacked data for Transfer events raised by the ERC721 contract.
 21228  type ERC721TransferIterator struct {
 21229  	Event *ERC721Transfer // Event containing the contract specifics and raw log
 21230  
 21231  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 21232  	event    string              // Event name to use for unpacking event data
 21233  
 21234  	logs chan types.Log      // Log channel receiving the found contract events
 21235  	sub  klaytn.Subscription // Subscription for errors, completion and termination
 21236  	done bool                // Whether the subscription completed delivering logs
 21237  	fail error               // Occurred error to stop iteration
 21238  }
 21239  
 21240  // Next advances the iterator to the subsequent event, returning whether there
 21241  // are any more events found. In case of a retrieval or parsing error, false is
 21242  // returned and Error() can be queried for the exact failure.
 21243  func (it *ERC721TransferIterator) Next() bool {
 21244  	// If the iterator failed, stop iterating
 21245  	if it.fail != nil {
 21246  		return false
 21247  	}
 21248  	// If the iterator completed, deliver directly whatever's available
 21249  	if it.done {
 21250  		select {
 21251  		case log := <-it.logs:
 21252  			it.Event = new(ERC721Transfer)
 21253  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 21254  				it.fail = err
 21255  				return false
 21256  			}
 21257  			it.Event.Raw = log
 21258  			return true
 21259  
 21260  		default:
 21261  			return false
 21262  		}
 21263  	}
 21264  	// Iterator still in progress, wait for either a data or an error event
 21265  	select {
 21266  	case log := <-it.logs:
 21267  		it.Event = new(ERC721Transfer)
 21268  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 21269  			it.fail = err
 21270  			return false
 21271  		}
 21272  		it.Event.Raw = log
 21273  		return true
 21274  
 21275  	case err := <-it.sub.Err():
 21276  		it.done = true
 21277  		it.fail = err
 21278  		return it.Next()
 21279  	}
 21280  }
 21281  
 21282  // Error returns any retrieval or parsing error occurred during filtering.
 21283  func (it *ERC721TransferIterator) Error() error {
 21284  	return it.fail
 21285  }
 21286  
 21287  // Close terminates the iteration process, releasing any pending underlying
 21288  // resources.
 21289  func (it *ERC721TransferIterator) Close() error {
 21290  	it.sub.Unsubscribe()
 21291  	return nil
 21292  }
 21293  
 21294  // ERC721Transfer represents a Transfer event raised by the ERC721 contract.
 21295  type ERC721Transfer struct {
 21296  	From    common.Address
 21297  	To      common.Address
 21298  	TokenId *big.Int
 21299  	Raw     types.Log // Blockchain specific contextual infos
 21300  }
 21301  
 21302  // FilterTransfer is a free log retrieval operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef.
 21303  //
 21304  // Solidity: event Transfer(address indexed from, address indexed to, uint256 indexed tokenId)
 21305  func (_ERC721 *ERC721Filterer) FilterTransfer(opts *bind.FilterOpts, from []common.Address, to []common.Address, tokenId []*big.Int) (*ERC721TransferIterator, error) {
 21306  
 21307  	var fromRule []interface{}
 21308  	for _, fromItem := range from {
 21309  		fromRule = append(fromRule, fromItem)
 21310  	}
 21311  	var toRule []interface{}
 21312  	for _, toItem := range to {
 21313  		toRule = append(toRule, toItem)
 21314  	}
 21315  	var tokenIdRule []interface{}
 21316  	for _, tokenIdItem := range tokenId {
 21317  		tokenIdRule = append(tokenIdRule, tokenIdItem)
 21318  	}
 21319  
 21320  	logs, sub, err := _ERC721.contract.FilterLogs(opts, "Transfer", fromRule, toRule, tokenIdRule)
 21321  	if err != nil {
 21322  		return nil, err
 21323  	}
 21324  	return &ERC721TransferIterator{contract: _ERC721.contract, event: "Transfer", logs: logs, sub: sub}, nil
 21325  }
 21326  
 21327  // WatchTransfer is a free log subscription operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef.
 21328  //
 21329  // Solidity: event Transfer(address indexed from, address indexed to, uint256 indexed tokenId)
 21330  func (_ERC721 *ERC721Filterer) WatchTransfer(opts *bind.WatchOpts, sink chan<- *ERC721Transfer, from []common.Address, to []common.Address, tokenId []*big.Int) (event.Subscription, error) {
 21331  
 21332  	var fromRule []interface{}
 21333  	for _, fromItem := range from {
 21334  		fromRule = append(fromRule, fromItem)
 21335  	}
 21336  	var toRule []interface{}
 21337  	for _, toItem := range to {
 21338  		toRule = append(toRule, toItem)
 21339  	}
 21340  	var tokenIdRule []interface{}
 21341  	for _, tokenIdItem := range tokenId {
 21342  		tokenIdRule = append(tokenIdRule, tokenIdItem)
 21343  	}
 21344  
 21345  	logs, sub, err := _ERC721.contract.WatchLogs(opts, "Transfer", fromRule, toRule, tokenIdRule)
 21346  	if err != nil {
 21347  		return nil, err
 21348  	}
 21349  	return event.NewSubscription(func(quit <-chan struct{}) error {
 21350  		defer sub.Unsubscribe()
 21351  		for {
 21352  			select {
 21353  			case log := <-logs:
 21354  				// New log arrived, parse the event and forward to the user
 21355  				event := new(ERC721Transfer)
 21356  				if err := _ERC721.contract.UnpackLog(event, "Transfer", log); err != nil {
 21357  					return err
 21358  				}
 21359  				event.Raw = log
 21360  
 21361  				select {
 21362  				case sink <- event:
 21363  				case err := <-sub.Err():
 21364  					return err
 21365  				case <-quit:
 21366  					return nil
 21367  				}
 21368  			case err := <-sub.Err():
 21369  				return err
 21370  			case <-quit:
 21371  				return nil
 21372  			}
 21373  		}
 21374  	}), nil
 21375  }
 21376  
 21377  // ParseTransfer is a log parse operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef.
 21378  //
 21379  // Solidity: event Transfer(address indexed from, address indexed to, uint256 indexed tokenId)
 21380  func (_ERC721 *ERC721Filterer) ParseTransfer(log types.Log) (*ERC721Transfer, error) {
 21381  	event := new(ERC721Transfer)
 21382  	if err := _ERC721.contract.UnpackLog(event, "Transfer", log); err != nil {
 21383  		return nil, err
 21384  	}
 21385  	return event, nil
 21386  }
 21387  
 21388  // ERC721BurnableMetaData contains all meta data concerning the ERC721Burnable contract.
 21389  var ERC721BurnableMetaData = &bind.MetaData{
 21390  	ABI: "[{\"constant\":true,\"inputs\":[{\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"to\",\"type\":\"address\"},{\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"from\",\"type\":\"address\"},{\"name\":\"to\",\"type\":\"address\"},{\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"from\",\"type\":\"address\"},{\"name\":\"to\",\"type\":\"address\"},{\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"to\",\"type\":\"address\"},{\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"from\",\"type\":\"address\"},{\"name\":\"to\",\"type\":\"address\"},{\"name\":\"tokenId\",\"type\":\"uint256\"},{\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"owner\",\"type\":\"address\"},{\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"}]",
 21391  	Sigs: map[string]string{
 21392  		"095ea7b3": "approve(address,uint256)",
 21393  		"70a08231": "balanceOf(address)",
 21394  		"42966c68": "burn(uint256)",
 21395  		"081812fc": "getApproved(uint256)",
 21396  		"e985e9c5": "isApprovedForAll(address,address)",
 21397  		"6352211e": "ownerOf(uint256)",
 21398  		"42842e0e": "safeTransferFrom(address,address,uint256)",
 21399  		"b88d4fde": "safeTransferFrom(address,address,uint256,bytes)",
 21400  		"a22cb465": "setApprovalForAll(address,bool)",
 21401  		"01ffc9a7": "supportsInterface(bytes4)",
 21402  		"23b872dd": "transferFrom(address,address,uint256)",
 21403  	},
 21404  	Bin: "0x608060405261001a6301ffc9a760e01b61003560201b60201c565b6100306380ac58cd60e01b61003560201b60201c565b610103565b7fffffffff0000000000000000000000000000000000000000000000000000000080821614156100c657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f4552433136353a20696e76616c696420696e7465726661636520696400000000604482015290519081900360640190fd5b7fffffffff00000000000000000000000000000000000000000000000000000000166000908152602081905260409020805460ff19166001179055565b610eff806101126000396000f3fe608060405234801561001057600080fd5b50600436106100a95760003560e01c806342966c681161007157806342966c68146101bc5780636352211e146101d957806370a08231146101f6578063a22cb4651461022e578063b88d4fde1461025c578063e985e9c514610322576100a9565b806301ffc9a7146100ae578063081812fc146100e9578063095ea7b31461012257806323b872dd1461015057806342842e0e14610186575b600080fd5b6100d5600480360360208110156100c457600080fd5b50356001600160e01b031916610350565b604080519115158252519081900360200190f35b610106600480360360208110156100ff57600080fd5b503561036f565b604080516001600160a01b039092168252519081900360200190f35b61014e6004803603604081101561013857600080fd5b506001600160a01b0381351690602001356103d4565b005b61014e6004803603606081101561016657600080fd5b506001600160a01b038135811691602081013590911690604001356104eb565b61014e6004803603606081101561019c57600080fd5b506001600160a01b03813581169160208101359091169060400135610543565b61014e600480360360208110156101d257600080fd5b503561055e565b610106600480360360208110156101ef57600080fd5b50356105b2565b61021c6004803603602081101561020c57600080fd5b50356001600160a01b031661060f565b60408051918252519081900360200190f35b61014e6004803603604081101561024457600080fd5b506001600160a01b038135169060200135151561067a565b61014e6004803603608081101561027257600080fd5b6001600160a01b038235811692602081013590911691604082013591908101906080810160608201356401000000008111156102ad57600080fd5b8201836020820111156102bf57600080fd5b803590602001918460018302840111640100000000831117156102e157600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610749945050505050565b6100d56004803603604081101561033857600080fd5b506001600160a01b03813581169160200135166107a4565b6001600160e01b03191660009081526020819052604090205460ff1690565b600061037a826107d2565b6103b857604051600160e51b62461bcd02815260040180806020018281038252602c815260200180610dd8602c913960400191505060405180910390fd5b506000908152600260205260409020546001600160a01b031690565b60006103df826105b2565b9050806001600160a01b0316836001600160a01b0316141561043557604051600160e51b62461bcd028152600401808060200182810382526021815260200180610e2d6021913960400191505060405180910390fd5b336001600160a01b0382161480610451575061045181336107a4565b61048f57604051600160e51b62461bcd028152600401808060200182810382526038815260200180610d4d6038913960400191505060405180910390fd5b60008281526002602052604080822080546001600160a01b0319166001600160a01b0387811691821790925591518593918516917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a4505050565b6104f533826107ef565b61053357604051600160e51b62461bcd028152600401808060200182810382526031815260200180610e4e6031913960400191505060405180910390fd5b61053e838383610896565b505050565b61053e83838360405180602001604052806000815250610749565b61056833826107ef565b6105a657604051600160e51b62461bcd028152600401808060200182810382526030815260200180610ea46030913960400191505060405180910390fd5b6105af816109e0565b50565b6000818152600160205260408120546001600160a01b03168061060957604051600160e51b62461bcd028152600401808060200182810382526029815260200180610daf6029913960400191505060405180910390fd5b92915050565b60006001600160a01b03821661065957604051600160e51b62461bcd02815260040180806020018281038252602a815260200180610d85602a913960400191505060405180910390fd5b6001600160a01b0382166000908152600360205260409020610609906109f2565b6001600160a01b0382163314156106db5760408051600160e51b62461bcd02815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c657200000000000000604482015290519081900360640190fd5b3360008181526004602090815260408083206001600160a01b03871680855290835292819020805460ff1916861515908117909155815190815290519293927f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31929181900390910190a35050565b6107548484846104eb565b610760848484846109f6565b61079e57604051600160e51b62461bcd028152600401808060200182810382526032815260200180610ccb6032913960400191505060405180910390fd5b50505050565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205460ff1690565b6000908152600160205260409020546001600160a01b0316151590565b60006107fa826107d2565b61083857604051600160e51b62461bcd02815260040180806020018281038252602c815260200180610d21602c913960400191505060405180910390fd5b6000610843836105b2565b9050806001600160a01b0316846001600160a01b0316148061087e5750836001600160a01b03166108738461036f565b6001600160a01b0316145b8061088e575061088e81856107a4565b949350505050565b826001600160a01b03166108a9826105b2565b6001600160a01b0316146108f157604051600160e51b62461bcd028152600401808060200182810382526029815260200180610e046029913960400191505060405180910390fd5b6001600160a01b03821661093957604051600160e51b62461bcd028152600401808060200182810382526024815260200180610cfd6024913960400191505060405180910390fd5b61094281610b2f565b6001600160a01b038316600090815260036020526040902061096390610b6a565b6001600160a01b038216600090815260036020526040902061098490610b81565b60008181526001602052604080822080546001600160a01b0319166001600160a01b0386811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b6105af6109ec826105b2565b82610b8a565b5490565b6000610a0a846001600160a01b0316610c64565b610a165750600161088e565b604051600160e11b630a85bd0102815233600482018181526001600160a01b03888116602485015260448401879052608060648501908152865160848601528651600095928a169463150b7a029490938c938b938b939260a4019060208501908083838e5b83811015610a93578181015183820152602001610a7b565b50505050905090810190601f168015610ac05780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b158015610ae257600080fd5b505af1158015610af6573d6000803e3d6000fd5b505050506040513d6020811015610b0c57600080fd5b50516001600160e01b031916600160e11b630a85bd010214915050949350505050565b6000818152600260205260409020546001600160a01b0316156105af57600090815260026020526040902080546001600160a01b0319169055565b8054610b7d90600163ffffffff610c6a16565b9055565b80546001019055565b816001600160a01b0316610b9d826105b2565b6001600160a01b031614610be557604051600160e51b62461bcd028152600401808060200182810382526025815260200180610e7f6025913960400191505060405180910390fd5b610bee81610b2f565b6001600160a01b0382166000908152600360205260409020610c0f90610b6a565b60008181526001602052604080822080546001600160a01b0319169055518291906001600160a01b038516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908390a45050565b3b151590565b600082821115610cc45760408051600160e51b62461bcd02815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b5090039056fe4552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e7465724552433732313a207472616e7366657220746f20746865207a65726f20616464726573734552433732313a206f70657261746f7220717565727920666f72206e6f6e6578697374656e7420746f6b656e4552433732313a20617070726f76652063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f76656420666f7220616c6c4552433732313a2062616c616e636520717565727920666f7220746865207a65726f20616464726573734552433732313a206f776e657220717565727920666f72206e6f6e6578697374656e7420746f6b656e4552433732313a20617070726f76656420717565727920666f72206e6f6e6578697374656e7420746f6b656e4552433732313a207472616e73666572206f6620746f6b656e2074686174206973206e6f74206f776e4552433732313a20617070726f76616c20746f2063757272656e74206f776e65724552433732313a207472616e736665722063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f7665644552433732313a206275726e206f6620746f6b656e2074686174206973206e6f74206f776e4552433732314275726e61626c653a2063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f766564a165627a7a723058200b2831a1feaad2f1c210200377a7ea891524c8e08250cec47ef805ccf70f5f8c0029",
 21405  }
 21406  
 21407  // ERC721BurnableABI is the input ABI used to generate the binding from.
 21408  // Deprecated: Use ERC721BurnableMetaData.ABI instead.
 21409  var ERC721BurnableABI = ERC721BurnableMetaData.ABI
 21410  
 21411  // ERC721BurnableBinRuntime is the compiled bytecode used for adding genesis block without deploying code.
 21412  const ERC721BurnableBinRuntime = `608060405234801561001057600080fd5b50600436106100a95760003560e01c806342966c681161007157806342966c68146101bc5780636352211e146101d957806370a08231146101f6578063a22cb4651461022e578063b88d4fde1461025c578063e985e9c514610322576100a9565b806301ffc9a7146100ae578063081812fc146100e9578063095ea7b31461012257806323b872dd1461015057806342842e0e14610186575b600080fd5b6100d5600480360360208110156100c457600080fd5b50356001600160e01b031916610350565b604080519115158252519081900360200190f35b610106600480360360208110156100ff57600080fd5b503561036f565b604080516001600160a01b039092168252519081900360200190f35b61014e6004803603604081101561013857600080fd5b506001600160a01b0381351690602001356103d4565b005b61014e6004803603606081101561016657600080fd5b506001600160a01b038135811691602081013590911690604001356104eb565b61014e6004803603606081101561019c57600080fd5b506001600160a01b03813581169160208101359091169060400135610543565b61014e600480360360208110156101d257600080fd5b503561055e565b610106600480360360208110156101ef57600080fd5b50356105b2565b61021c6004803603602081101561020c57600080fd5b50356001600160a01b031661060f565b60408051918252519081900360200190f35b61014e6004803603604081101561024457600080fd5b506001600160a01b038135169060200135151561067a565b61014e6004803603608081101561027257600080fd5b6001600160a01b038235811692602081013590911691604082013591908101906080810160608201356401000000008111156102ad57600080fd5b8201836020820111156102bf57600080fd5b803590602001918460018302840111640100000000831117156102e157600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610749945050505050565b6100d56004803603604081101561033857600080fd5b506001600160a01b03813581169160200135166107a4565b6001600160e01b03191660009081526020819052604090205460ff1690565b600061037a826107d2565b6103b857604051600160e51b62461bcd02815260040180806020018281038252602c815260200180610dd8602c913960400191505060405180910390fd5b506000908152600260205260409020546001600160a01b031690565b60006103df826105b2565b9050806001600160a01b0316836001600160a01b0316141561043557604051600160e51b62461bcd028152600401808060200182810382526021815260200180610e2d6021913960400191505060405180910390fd5b336001600160a01b0382161480610451575061045181336107a4565b61048f57604051600160e51b62461bcd028152600401808060200182810382526038815260200180610d4d6038913960400191505060405180910390fd5b60008281526002602052604080822080546001600160a01b0319166001600160a01b0387811691821790925591518593918516917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a4505050565b6104f533826107ef565b61053357604051600160e51b62461bcd028152600401808060200182810382526031815260200180610e4e6031913960400191505060405180910390fd5b61053e838383610896565b505050565b61053e83838360405180602001604052806000815250610749565b61056833826107ef565b6105a657604051600160e51b62461bcd028152600401808060200182810382526030815260200180610ea46030913960400191505060405180910390fd5b6105af816109e0565b50565b6000818152600160205260408120546001600160a01b03168061060957604051600160e51b62461bcd028152600401808060200182810382526029815260200180610daf6029913960400191505060405180910390fd5b92915050565b60006001600160a01b03821661065957604051600160e51b62461bcd02815260040180806020018281038252602a815260200180610d85602a913960400191505060405180910390fd5b6001600160a01b0382166000908152600360205260409020610609906109f2565b6001600160a01b0382163314156106db5760408051600160e51b62461bcd02815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c657200000000000000604482015290519081900360640190fd5b3360008181526004602090815260408083206001600160a01b03871680855290835292819020805460ff1916861515908117909155815190815290519293927f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31929181900390910190a35050565b6107548484846104eb565b610760848484846109f6565b61079e57604051600160e51b62461bcd028152600401808060200182810382526032815260200180610ccb6032913960400191505060405180910390fd5b50505050565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205460ff1690565b6000908152600160205260409020546001600160a01b0316151590565b60006107fa826107d2565b61083857604051600160e51b62461bcd02815260040180806020018281038252602c815260200180610d21602c913960400191505060405180910390fd5b6000610843836105b2565b9050806001600160a01b0316846001600160a01b0316148061087e5750836001600160a01b03166108738461036f565b6001600160a01b0316145b8061088e575061088e81856107a4565b949350505050565b826001600160a01b03166108a9826105b2565b6001600160a01b0316146108f157604051600160e51b62461bcd028152600401808060200182810382526029815260200180610e046029913960400191505060405180910390fd5b6001600160a01b03821661093957604051600160e51b62461bcd028152600401808060200182810382526024815260200180610cfd6024913960400191505060405180910390fd5b61094281610b2f565b6001600160a01b038316600090815260036020526040902061096390610b6a565b6001600160a01b038216600090815260036020526040902061098490610b81565b60008181526001602052604080822080546001600160a01b0319166001600160a01b0386811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b6105af6109ec826105b2565b82610b8a565b5490565b6000610a0a846001600160a01b0316610c64565b610a165750600161088e565b604051600160e11b630a85bd0102815233600482018181526001600160a01b03888116602485015260448401879052608060648501908152865160848601528651600095928a169463150b7a029490938c938b938b939260a4019060208501908083838e5b83811015610a93578181015183820152602001610a7b565b50505050905090810190601f168015610ac05780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b158015610ae257600080fd5b505af1158015610af6573d6000803e3d6000fd5b505050506040513d6020811015610b0c57600080fd5b50516001600160e01b031916600160e11b630a85bd010214915050949350505050565b6000818152600260205260409020546001600160a01b0316156105af57600090815260026020526040902080546001600160a01b0319169055565b8054610b7d90600163ffffffff610c6a16565b9055565b80546001019055565b816001600160a01b0316610b9d826105b2565b6001600160a01b031614610be557604051600160e51b62461bcd028152600401808060200182810382526025815260200180610e7f6025913960400191505060405180910390fd5b610bee81610b2f565b6001600160a01b0382166000908152600360205260409020610c0f90610b6a565b60008181526001602052604080822080546001600160a01b0319169055518291906001600160a01b038516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908390a45050565b3b151590565b600082821115610cc45760408051600160e51b62461bcd02815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b5090039056fe4552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e7465724552433732313a207472616e7366657220746f20746865207a65726f20616464726573734552433732313a206f70657261746f7220717565727920666f72206e6f6e6578697374656e7420746f6b656e4552433732313a20617070726f76652063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f76656420666f7220616c6c4552433732313a2062616c616e636520717565727920666f7220746865207a65726f20616464726573734552433732313a206f776e657220717565727920666f72206e6f6e6578697374656e7420746f6b656e4552433732313a20617070726f76656420717565727920666f72206e6f6e6578697374656e7420746f6b656e4552433732313a207472616e73666572206f6620746f6b656e2074686174206973206e6f74206f776e4552433732313a20617070726f76616c20746f2063757272656e74206f776e65724552433732313a207472616e736665722063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f7665644552433732313a206275726e206f6620746f6b656e2074686174206973206e6f74206f776e4552433732314275726e61626c653a2063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f766564a165627a7a723058200b2831a1feaad2f1c210200377a7ea891524c8e08250cec47ef805ccf70f5f8c0029`
 21413  
 21414  // ERC721BurnableFuncSigs maps the 4-byte function signature to its string representation.
 21415  // Deprecated: Use ERC721BurnableMetaData.Sigs instead.
 21416  var ERC721BurnableFuncSigs = ERC721BurnableMetaData.Sigs
 21417  
 21418  // ERC721BurnableBin is the compiled bytecode used for deploying new contracts.
 21419  // Deprecated: Use ERC721BurnableMetaData.Bin instead.
 21420  var ERC721BurnableBin = ERC721BurnableMetaData.Bin
 21421  
 21422  // DeployERC721Burnable deploys a new Klaytn contract, binding an instance of ERC721Burnable to it.
 21423  func DeployERC721Burnable(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *types.Transaction, *ERC721Burnable, error) {
 21424  	parsed, err := ERC721BurnableMetaData.GetAbi()
 21425  	if err != nil {
 21426  		return common.Address{}, nil, nil, err
 21427  	}
 21428  	if parsed == nil {
 21429  		return common.Address{}, nil, nil, errors.New("GetABI returned nil")
 21430  	}
 21431  
 21432  	address, tx, contract, err := bind.DeployContract(auth, *parsed, common.FromHex(ERC721BurnableBin), backend)
 21433  	if err != nil {
 21434  		return common.Address{}, nil, nil, err
 21435  	}
 21436  	return address, tx, &ERC721Burnable{ERC721BurnableCaller: ERC721BurnableCaller{contract: contract}, ERC721BurnableTransactor: ERC721BurnableTransactor{contract: contract}, ERC721BurnableFilterer: ERC721BurnableFilterer{contract: contract}}, nil
 21437  }
 21438  
 21439  // ERC721Burnable is an auto generated Go binding around a Klaytn contract.
 21440  type ERC721Burnable struct {
 21441  	ERC721BurnableCaller     // Read-only binding to the contract
 21442  	ERC721BurnableTransactor // Write-only binding to the contract
 21443  	ERC721BurnableFilterer   // Log filterer for contract events
 21444  }
 21445  
 21446  // ERC721BurnableCaller is an auto generated read-only Go binding around a Klaytn contract.
 21447  type ERC721BurnableCaller struct {
 21448  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 21449  }
 21450  
 21451  // ERC721BurnableTransactor is an auto generated write-only Go binding around a Klaytn contract.
 21452  type ERC721BurnableTransactor struct {
 21453  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 21454  }
 21455  
 21456  // ERC721BurnableFilterer is an auto generated log filtering Go binding around a Klaytn contract events.
 21457  type ERC721BurnableFilterer struct {
 21458  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 21459  }
 21460  
 21461  // ERC721BurnableSession is an auto generated Go binding around a Klaytn contract,
 21462  // with pre-set call and transact options.
 21463  type ERC721BurnableSession struct {
 21464  	Contract     *ERC721Burnable   // Generic contract binding to set the session for
 21465  	CallOpts     bind.CallOpts     // Call options to use throughout this session
 21466  	TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
 21467  }
 21468  
 21469  // ERC721BurnableCallerSession is an auto generated read-only Go binding around a Klaytn contract,
 21470  // with pre-set call options.
 21471  type ERC721BurnableCallerSession struct {
 21472  	Contract *ERC721BurnableCaller // Generic contract caller binding to set the session for
 21473  	CallOpts bind.CallOpts         // Call options to use throughout this session
 21474  }
 21475  
 21476  // ERC721BurnableTransactorSession is an auto generated write-only Go binding around a Klaytn contract,
 21477  // with pre-set transact options.
 21478  type ERC721BurnableTransactorSession struct {
 21479  	Contract     *ERC721BurnableTransactor // Generic contract transactor binding to set the session for
 21480  	TransactOpts bind.TransactOpts         // Transaction auth options to use throughout this session
 21481  }
 21482  
 21483  // ERC721BurnableRaw is an auto generated low-level Go binding around a Klaytn contract.
 21484  type ERC721BurnableRaw struct {
 21485  	Contract *ERC721Burnable // Generic contract binding to access the raw methods on
 21486  }
 21487  
 21488  // ERC721BurnableCallerRaw is an auto generated low-level read-only Go binding around a Klaytn contract.
 21489  type ERC721BurnableCallerRaw struct {
 21490  	Contract *ERC721BurnableCaller // Generic read-only contract binding to access the raw methods on
 21491  }
 21492  
 21493  // ERC721BurnableTransactorRaw is an auto generated low-level write-only Go binding around a Klaytn contract.
 21494  type ERC721BurnableTransactorRaw struct {
 21495  	Contract *ERC721BurnableTransactor // Generic write-only contract binding to access the raw methods on
 21496  }
 21497  
 21498  // NewERC721Burnable creates a new instance of ERC721Burnable, bound to a specific deployed contract.
 21499  func NewERC721Burnable(address common.Address, backend bind.ContractBackend) (*ERC721Burnable, error) {
 21500  	contract, err := bindERC721Burnable(address, backend, backend, backend)
 21501  	if err != nil {
 21502  		return nil, err
 21503  	}
 21504  	return &ERC721Burnable{ERC721BurnableCaller: ERC721BurnableCaller{contract: contract}, ERC721BurnableTransactor: ERC721BurnableTransactor{contract: contract}, ERC721BurnableFilterer: ERC721BurnableFilterer{contract: contract}}, nil
 21505  }
 21506  
 21507  // NewERC721BurnableCaller creates a new read-only instance of ERC721Burnable, bound to a specific deployed contract.
 21508  func NewERC721BurnableCaller(address common.Address, caller bind.ContractCaller) (*ERC721BurnableCaller, error) {
 21509  	contract, err := bindERC721Burnable(address, caller, nil, nil)
 21510  	if err != nil {
 21511  		return nil, err
 21512  	}
 21513  	return &ERC721BurnableCaller{contract: contract}, nil
 21514  }
 21515  
 21516  // NewERC721BurnableTransactor creates a new write-only instance of ERC721Burnable, bound to a specific deployed contract.
 21517  func NewERC721BurnableTransactor(address common.Address, transactor bind.ContractTransactor) (*ERC721BurnableTransactor, error) {
 21518  	contract, err := bindERC721Burnable(address, nil, transactor, nil)
 21519  	if err != nil {
 21520  		return nil, err
 21521  	}
 21522  	return &ERC721BurnableTransactor{contract: contract}, nil
 21523  }
 21524  
 21525  // NewERC721BurnableFilterer creates a new log filterer instance of ERC721Burnable, bound to a specific deployed contract.
 21526  func NewERC721BurnableFilterer(address common.Address, filterer bind.ContractFilterer) (*ERC721BurnableFilterer, error) {
 21527  	contract, err := bindERC721Burnable(address, nil, nil, filterer)
 21528  	if err != nil {
 21529  		return nil, err
 21530  	}
 21531  	return &ERC721BurnableFilterer{contract: contract}, nil
 21532  }
 21533  
 21534  // bindERC721Burnable binds a generic wrapper to an already deployed contract.
 21535  func bindERC721Burnable(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
 21536  	parsed, err := ERC721BurnableMetaData.GetAbi()
 21537  	if err != nil {
 21538  		return nil, err
 21539  	}
 21540  	return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil
 21541  }
 21542  
 21543  // Call invokes the (constant) contract method with params as input values and
 21544  // sets the output to result. The result type might be a single field for simple
 21545  // returns, a slice of interfaces for anonymous returns and a struct for named
 21546  // returns.
 21547  func (_ERC721Burnable *ERC721BurnableRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
 21548  	return _ERC721Burnable.Contract.ERC721BurnableCaller.contract.Call(opts, result, method, params...)
 21549  }
 21550  
 21551  // Transfer initiates a plain transaction to move funds to the contract, calling
 21552  // its default method if one is available.
 21553  func (_ERC721Burnable *ERC721BurnableRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
 21554  	return _ERC721Burnable.Contract.ERC721BurnableTransactor.contract.Transfer(opts)
 21555  }
 21556  
 21557  // Transact invokes the (paid) contract method with params as input values.
 21558  func (_ERC721Burnable *ERC721BurnableRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
 21559  	return _ERC721Burnable.Contract.ERC721BurnableTransactor.contract.Transact(opts, method, params...)
 21560  }
 21561  
 21562  // Call invokes the (constant) contract method with params as input values and
 21563  // sets the output to result. The result type might be a single field for simple
 21564  // returns, a slice of interfaces for anonymous returns and a struct for named
 21565  // returns.
 21566  func (_ERC721Burnable *ERC721BurnableCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
 21567  	return _ERC721Burnable.Contract.contract.Call(opts, result, method, params...)
 21568  }
 21569  
 21570  // Transfer initiates a plain transaction to move funds to the contract, calling
 21571  // its default method if one is available.
 21572  func (_ERC721Burnable *ERC721BurnableTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
 21573  	return _ERC721Burnable.Contract.contract.Transfer(opts)
 21574  }
 21575  
 21576  // Transact invokes the (paid) contract method with params as input values.
 21577  func (_ERC721Burnable *ERC721BurnableTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
 21578  	return _ERC721Burnable.Contract.contract.Transact(opts, method, params...)
 21579  }
 21580  
 21581  // BalanceOf is a free data retrieval call binding the contract method 0x70a08231.
 21582  //
 21583  // Solidity: function balanceOf(address owner) view returns(uint256)
 21584  func (_ERC721Burnable *ERC721BurnableCaller) BalanceOf(opts *bind.CallOpts, owner common.Address) (*big.Int, error) {
 21585  	var out []interface{}
 21586  	err := _ERC721Burnable.contract.Call(opts, &out, "balanceOf", owner)
 21587  
 21588  	if err != nil {
 21589  		return *new(*big.Int), err
 21590  	}
 21591  
 21592  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
 21593  
 21594  	return out0, err
 21595  
 21596  }
 21597  
 21598  // BalanceOf is a free data retrieval call binding the contract method 0x70a08231.
 21599  //
 21600  // Solidity: function balanceOf(address owner) view returns(uint256)
 21601  func (_ERC721Burnable *ERC721BurnableSession) BalanceOf(owner common.Address) (*big.Int, error) {
 21602  	return _ERC721Burnable.Contract.BalanceOf(&_ERC721Burnable.CallOpts, owner)
 21603  }
 21604  
 21605  // BalanceOf is a free data retrieval call binding the contract method 0x70a08231.
 21606  //
 21607  // Solidity: function balanceOf(address owner) view returns(uint256)
 21608  func (_ERC721Burnable *ERC721BurnableCallerSession) BalanceOf(owner common.Address) (*big.Int, error) {
 21609  	return _ERC721Burnable.Contract.BalanceOf(&_ERC721Burnable.CallOpts, owner)
 21610  }
 21611  
 21612  // GetApproved is a free data retrieval call binding the contract method 0x081812fc.
 21613  //
 21614  // Solidity: function getApproved(uint256 tokenId) view returns(address)
 21615  func (_ERC721Burnable *ERC721BurnableCaller) GetApproved(opts *bind.CallOpts, tokenId *big.Int) (common.Address, error) {
 21616  	var out []interface{}
 21617  	err := _ERC721Burnable.contract.Call(opts, &out, "getApproved", tokenId)
 21618  
 21619  	if err != nil {
 21620  		return *new(common.Address), err
 21621  	}
 21622  
 21623  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
 21624  
 21625  	return out0, err
 21626  
 21627  }
 21628  
 21629  // GetApproved is a free data retrieval call binding the contract method 0x081812fc.
 21630  //
 21631  // Solidity: function getApproved(uint256 tokenId) view returns(address)
 21632  func (_ERC721Burnable *ERC721BurnableSession) GetApproved(tokenId *big.Int) (common.Address, error) {
 21633  	return _ERC721Burnable.Contract.GetApproved(&_ERC721Burnable.CallOpts, tokenId)
 21634  }
 21635  
 21636  // GetApproved is a free data retrieval call binding the contract method 0x081812fc.
 21637  //
 21638  // Solidity: function getApproved(uint256 tokenId) view returns(address)
 21639  func (_ERC721Burnable *ERC721BurnableCallerSession) GetApproved(tokenId *big.Int) (common.Address, error) {
 21640  	return _ERC721Burnable.Contract.GetApproved(&_ERC721Burnable.CallOpts, tokenId)
 21641  }
 21642  
 21643  // IsApprovedForAll is a free data retrieval call binding the contract method 0xe985e9c5.
 21644  //
 21645  // Solidity: function isApprovedForAll(address owner, address operator) view returns(bool)
 21646  func (_ERC721Burnable *ERC721BurnableCaller) IsApprovedForAll(opts *bind.CallOpts, owner common.Address, operator common.Address) (bool, error) {
 21647  	var out []interface{}
 21648  	err := _ERC721Burnable.contract.Call(opts, &out, "isApprovedForAll", owner, operator)
 21649  
 21650  	if err != nil {
 21651  		return *new(bool), err
 21652  	}
 21653  
 21654  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
 21655  
 21656  	return out0, err
 21657  
 21658  }
 21659  
 21660  // IsApprovedForAll is a free data retrieval call binding the contract method 0xe985e9c5.
 21661  //
 21662  // Solidity: function isApprovedForAll(address owner, address operator) view returns(bool)
 21663  func (_ERC721Burnable *ERC721BurnableSession) IsApprovedForAll(owner common.Address, operator common.Address) (bool, error) {
 21664  	return _ERC721Burnable.Contract.IsApprovedForAll(&_ERC721Burnable.CallOpts, owner, operator)
 21665  }
 21666  
 21667  // IsApprovedForAll is a free data retrieval call binding the contract method 0xe985e9c5.
 21668  //
 21669  // Solidity: function isApprovedForAll(address owner, address operator) view returns(bool)
 21670  func (_ERC721Burnable *ERC721BurnableCallerSession) IsApprovedForAll(owner common.Address, operator common.Address) (bool, error) {
 21671  	return _ERC721Burnable.Contract.IsApprovedForAll(&_ERC721Burnable.CallOpts, owner, operator)
 21672  }
 21673  
 21674  // OwnerOf is a free data retrieval call binding the contract method 0x6352211e.
 21675  //
 21676  // Solidity: function ownerOf(uint256 tokenId) view returns(address)
 21677  func (_ERC721Burnable *ERC721BurnableCaller) OwnerOf(opts *bind.CallOpts, tokenId *big.Int) (common.Address, error) {
 21678  	var out []interface{}
 21679  	err := _ERC721Burnable.contract.Call(opts, &out, "ownerOf", tokenId)
 21680  
 21681  	if err != nil {
 21682  		return *new(common.Address), err
 21683  	}
 21684  
 21685  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
 21686  
 21687  	return out0, err
 21688  
 21689  }
 21690  
 21691  // OwnerOf is a free data retrieval call binding the contract method 0x6352211e.
 21692  //
 21693  // Solidity: function ownerOf(uint256 tokenId) view returns(address)
 21694  func (_ERC721Burnable *ERC721BurnableSession) OwnerOf(tokenId *big.Int) (common.Address, error) {
 21695  	return _ERC721Burnable.Contract.OwnerOf(&_ERC721Burnable.CallOpts, tokenId)
 21696  }
 21697  
 21698  // OwnerOf is a free data retrieval call binding the contract method 0x6352211e.
 21699  //
 21700  // Solidity: function ownerOf(uint256 tokenId) view returns(address)
 21701  func (_ERC721Burnable *ERC721BurnableCallerSession) OwnerOf(tokenId *big.Int) (common.Address, error) {
 21702  	return _ERC721Burnable.Contract.OwnerOf(&_ERC721Burnable.CallOpts, tokenId)
 21703  }
 21704  
 21705  // SupportsInterface is a free data retrieval call binding the contract method 0x01ffc9a7.
 21706  //
 21707  // Solidity: function supportsInterface(bytes4 interfaceId) view returns(bool)
 21708  func (_ERC721Burnable *ERC721BurnableCaller) SupportsInterface(opts *bind.CallOpts, interfaceId [4]byte) (bool, error) {
 21709  	var out []interface{}
 21710  	err := _ERC721Burnable.contract.Call(opts, &out, "supportsInterface", interfaceId)
 21711  
 21712  	if err != nil {
 21713  		return *new(bool), err
 21714  	}
 21715  
 21716  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
 21717  
 21718  	return out0, err
 21719  
 21720  }
 21721  
 21722  // SupportsInterface is a free data retrieval call binding the contract method 0x01ffc9a7.
 21723  //
 21724  // Solidity: function supportsInterface(bytes4 interfaceId) view returns(bool)
 21725  func (_ERC721Burnable *ERC721BurnableSession) SupportsInterface(interfaceId [4]byte) (bool, error) {
 21726  	return _ERC721Burnable.Contract.SupportsInterface(&_ERC721Burnable.CallOpts, interfaceId)
 21727  }
 21728  
 21729  // SupportsInterface is a free data retrieval call binding the contract method 0x01ffc9a7.
 21730  //
 21731  // Solidity: function supportsInterface(bytes4 interfaceId) view returns(bool)
 21732  func (_ERC721Burnable *ERC721BurnableCallerSession) SupportsInterface(interfaceId [4]byte) (bool, error) {
 21733  	return _ERC721Burnable.Contract.SupportsInterface(&_ERC721Burnable.CallOpts, interfaceId)
 21734  }
 21735  
 21736  // Approve is a paid mutator transaction binding the contract method 0x095ea7b3.
 21737  //
 21738  // Solidity: function approve(address to, uint256 tokenId) returns()
 21739  func (_ERC721Burnable *ERC721BurnableTransactor) Approve(opts *bind.TransactOpts, to common.Address, tokenId *big.Int) (*types.Transaction, error) {
 21740  	return _ERC721Burnable.contract.Transact(opts, "approve", to, tokenId)
 21741  }
 21742  
 21743  // Approve is a paid mutator transaction binding the contract method 0x095ea7b3.
 21744  //
 21745  // Solidity: function approve(address to, uint256 tokenId) returns()
 21746  func (_ERC721Burnable *ERC721BurnableSession) Approve(to common.Address, tokenId *big.Int) (*types.Transaction, error) {
 21747  	return _ERC721Burnable.Contract.Approve(&_ERC721Burnable.TransactOpts, to, tokenId)
 21748  }
 21749  
 21750  // Approve is a paid mutator transaction binding the contract method 0x095ea7b3.
 21751  //
 21752  // Solidity: function approve(address to, uint256 tokenId) returns()
 21753  func (_ERC721Burnable *ERC721BurnableTransactorSession) Approve(to common.Address, tokenId *big.Int) (*types.Transaction, error) {
 21754  	return _ERC721Burnable.Contract.Approve(&_ERC721Burnable.TransactOpts, to, tokenId)
 21755  }
 21756  
 21757  // Burn is a paid mutator transaction binding the contract method 0x42966c68.
 21758  //
 21759  // Solidity: function burn(uint256 tokenId) returns()
 21760  func (_ERC721Burnable *ERC721BurnableTransactor) Burn(opts *bind.TransactOpts, tokenId *big.Int) (*types.Transaction, error) {
 21761  	return _ERC721Burnable.contract.Transact(opts, "burn", tokenId)
 21762  }
 21763  
 21764  // Burn is a paid mutator transaction binding the contract method 0x42966c68.
 21765  //
 21766  // Solidity: function burn(uint256 tokenId) returns()
 21767  func (_ERC721Burnable *ERC721BurnableSession) Burn(tokenId *big.Int) (*types.Transaction, error) {
 21768  	return _ERC721Burnable.Contract.Burn(&_ERC721Burnable.TransactOpts, tokenId)
 21769  }
 21770  
 21771  // Burn is a paid mutator transaction binding the contract method 0x42966c68.
 21772  //
 21773  // Solidity: function burn(uint256 tokenId) returns()
 21774  func (_ERC721Burnable *ERC721BurnableTransactorSession) Burn(tokenId *big.Int) (*types.Transaction, error) {
 21775  	return _ERC721Burnable.Contract.Burn(&_ERC721Burnable.TransactOpts, tokenId)
 21776  }
 21777  
 21778  // SafeTransferFrom is a paid mutator transaction binding the contract method 0x42842e0e.
 21779  //
 21780  // Solidity: function safeTransferFrom(address from, address to, uint256 tokenId) returns()
 21781  func (_ERC721Burnable *ERC721BurnableTransactor) SafeTransferFrom(opts *bind.TransactOpts, from common.Address, to common.Address, tokenId *big.Int) (*types.Transaction, error) {
 21782  	return _ERC721Burnable.contract.Transact(opts, "safeTransferFrom", from, to, tokenId)
 21783  }
 21784  
 21785  // SafeTransferFrom is a paid mutator transaction binding the contract method 0x42842e0e.
 21786  //
 21787  // Solidity: function safeTransferFrom(address from, address to, uint256 tokenId) returns()
 21788  func (_ERC721Burnable *ERC721BurnableSession) SafeTransferFrom(from common.Address, to common.Address, tokenId *big.Int) (*types.Transaction, error) {
 21789  	return _ERC721Burnable.Contract.SafeTransferFrom(&_ERC721Burnable.TransactOpts, from, to, tokenId)
 21790  }
 21791  
 21792  // SafeTransferFrom is a paid mutator transaction binding the contract method 0x42842e0e.
 21793  //
 21794  // Solidity: function safeTransferFrom(address from, address to, uint256 tokenId) returns()
 21795  func (_ERC721Burnable *ERC721BurnableTransactorSession) SafeTransferFrom(from common.Address, to common.Address, tokenId *big.Int) (*types.Transaction, error) {
 21796  	return _ERC721Burnable.Contract.SafeTransferFrom(&_ERC721Burnable.TransactOpts, from, to, tokenId)
 21797  }
 21798  
 21799  // SafeTransferFrom0 is a paid mutator transaction binding the contract method 0xb88d4fde.
 21800  //
 21801  // Solidity: function safeTransferFrom(address from, address to, uint256 tokenId, bytes _data) returns()
 21802  func (_ERC721Burnable *ERC721BurnableTransactor) SafeTransferFrom0(opts *bind.TransactOpts, from common.Address, to common.Address, tokenId *big.Int, _data []byte) (*types.Transaction, error) {
 21803  	return _ERC721Burnable.contract.Transact(opts, "safeTransferFrom0", from, to, tokenId, _data)
 21804  }
 21805  
 21806  // SafeTransferFrom0 is a paid mutator transaction binding the contract method 0xb88d4fde.
 21807  //
 21808  // Solidity: function safeTransferFrom(address from, address to, uint256 tokenId, bytes _data) returns()
 21809  func (_ERC721Burnable *ERC721BurnableSession) SafeTransferFrom0(from common.Address, to common.Address, tokenId *big.Int, _data []byte) (*types.Transaction, error) {
 21810  	return _ERC721Burnable.Contract.SafeTransferFrom0(&_ERC721Burnable.TransactOpts, from, to, tokenId, _data)
 21811  }
 21812  
 21813  // SafeTransferFrom0 is a paid mutator transaction binding the contract method 0xb88d4fde.
 21814  //
 21815  // Solidity: function safeTransferFrom(address from, address to, uint256 tokenId, bytes _data) returns()
 21816  func (_ERC721Burnable *ERC721BurnableTransactorSession) SafeTransferFrom0(from common.Address, to common.Address, tokenId *big.Int, _data []byte) (*types.Transaction, error) {
 21817  	return _ERC721Burnable.Contract.SafeTransferFrom0(&_ERC721Burnable.TransactOpts, from, to, tokenId, _data)
 21818  }
 21819  
 21820  // SetApprovalForAll is a paid mutator transaction binding the contract method 0xa22cb465.
 21821  //
 21822  // Solidity: function setApprovalForAll(address to, bool approved) returns()
 21823  func (_ERC721Burnable *ERC721BurnableTransactor) SetApprovalForAll(opts *bind.TransactOpts, to common.Address, approved bool) (*types.Transaction, error) {
 21824  	return _ERC721Burnable.contract.Transact(opts, "setApprovalForAll", to, approved)
 21825  }
 21826  
 21827  // SetApprovalForAll is a paid mutator transaction binding the contract method 0xa22cb465.
 21828  //
 21829  // Solidity: function setApprovalForAll(address to, bool approved) returns()
 21830  func (_ERC721Burnable *ERC721BurnableSession) SetApprovalForAll(to common.Address, approved bool) (*types.Transaction, error) {
 21831  	return _ERC721Burnable.Contract.SetApprovalForAll(&_ERC721Burnable.TransactOpts, to, approved)
 21832  }
 21833  
 21834  // SetApprovalForAll is a paid mutator transaction binding the contract method 0xa22cb465.
 21835  //
 21836  // Solidity: function setApprovalForAll(address to, bool approved) returns()
 21837  func (_ERC721Burnable *ERC721BurnableTransactorSession) SetApprovalForAll(to common.Address, approved bool) (*types.Transaction, error) {
 21838  	return _ERC721Burnable.Contract.SetApprovalForAll(&_ERC721Burnable.TransactOpts, to, approved)
 21839  }
 21840  
 21841  // TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd.
 21842  //
 21843  // Solidity: function transferFrom(address from, address to, uint256 tokenId) returns()
 21844  func (_ERC721Burnable *ERC721BurnableTransactor) TransferFrom(opts *bind.TransactOpts, from common.Address, to common.Address, tokenId *big.Int) (*types.Transaction, error) {
 21845  	return _ERC721Burnable.contract.Transact(opts, "transferFrom", from, to, tokenId)
 21846  }
 21847  
 21848  // TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd.
 21849  //
 21850  // Solidity: function transferFrom(address from, address to, uint256 tokenId) returns()
 21851  func (_ERC721Burnable *ERC721BurnableSession) TransferFrom(from common.Address, to common.Address, tokenId *big.Int) (*types.Transaction, error) {
 21852  	return _ERC721Burnable.Contract.TransferFrom(&_ERC721Burnable.TransactOpts, from, to, tokenId)
 21853  }
 21854  
 21855  // TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd.
 21856  //
 21857  // Solidity: function transferFrom(address from, address to, uint256 tokenId) returns()
 21858  func (_ERC721Burnable *ERC721BurnableTransactorSession) TransferFrom(from common.Address, to common.Address, tokenId *big.Int) (*types.Transaction, error) {
 21859  	return _ERC721Burnable.Contract.TransferFrom(&_ERC721Burnable.TransactOpts, from, to, tokenId)
 21860  }
 21861  
 21862  // ERC721BurnableApprovalIterator is returned from FilterApproval and is used to iterate over the raw logs and unpacked data for Approval events raised by the ERC721Burnable contract.
 21863  type ERC721BurnableApprovalIterator struct {
 21864  	Event *ERC721BurnableApproval // Event containing the contract specifics and raw log
 21865  
 21866  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 21867  	event    string              // Event name to use for unpacking event data
 21868  
 21869  	logs chan types.Log      // Log channel receiving the found contract events
 21870  	sub  klaytn.Subscription // Subscription for errors, completion and termination
 21871  	done bool                // Whether the subscription completed delivering logs
 21872  	fail error               // Occurred error to stop iteration
 21873  }
 21874  
 21875  // Next advances the iterator to the subsequent event, returning whether there
 21876  // are any more events found. In case of a retrieval or parsing error, false is
 21877  // returned and Error() can be queried for the exact failure.
 21878  func (it *ERC721BurnableApprovalIterator) Next() bool {
 21879  	// If the iterator failed, stop iterating
 21880  	if it.fail != nil {
 21881  		return false
 21882  	}
 21883  	// If the iterator completed, deliver directly whatever's available
 21884  	if it.done {
 21885  		select {
 21886  		case log := <-it.logs:
 21887  			it.Event = new(ERC721BurnableApproval)
 21888  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 21889  				it.fail = err
 21890  				return false
 21891  			}
 21892  			it.Event.Raw = log
 21893  			return true
 21894  
 21895  		default:
 21896  			return false
 21897  		}
 21898  	}
 21899  	// Iterator still in progress, wait for either a data or an error event
 21900  	select {
 21901  	case log := <-it.logs:
 21902  		it.Event = new(ERC721BurnableApproval)
 21903  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 21904  			it.fail = err
 21905  			return false
 21906  		}
 21907  		it.Event.Raw = log
 21908  		return true
 21909  
 21910  	case err := <-it.sub.Err():
 21911  		it.done = true
 21912  		it.fail = err
 21913  		return it.Next()
 21914  	}
 21915  }
 21916  
 21917  // Error returns any retrieval or parsing error occurred during filtering.
 21918  func (it *ERC721BurnableApprovalIterator) Error() error {
 21919  	return it.fail
 21920  }
 21921  
 21922  // Close terminates the iteration process, releasing any pending underlying
 21923  // resources.
 21924  func (it *ERC721BurnableApprovalIterator) Close() error {
 21925  	it.sub.Unsubscribe()
 21926  	return nil
 21927  }
 21928  
 21929  // ERC721BurnableApproval represents a Approval event raised by the ERC721Burnable contract.
 21930  type ERC721BurnableApproval struct {
 21931  	Owner    common.Address
 21932  	Approved common.Address
 21933  	TokenId  *big.Int
 21934  	Raw      types.Log // Blockchain specific contextual infos
 21935  }
 21936  
 21937  // FilterApproval is a free log retrieval operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925.
 21938  //
 21939  // Solidity: event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId)
 21940  func (_ERC721Burnable *ERC721BurnableFilterer) FilterApproval(opts *bind.FilterOpts, owner []common.Address, approved []common.Address, tokenId []*big.Int) (*ERC721BurnableApprovalIterator, error) {
 21941  
 21942  	var ownerRule []interface{}
 21943  	for _, ownerItem := range owner {
 21944  		ownerRule = append(ownerRule, ownerItem)
 21945  	}
 21946  	var approvedRule []interface{}
 21947  	for _, approvedItem := range approved {
 21948  		approvedRule = append(approvedRule, approvedItem)
 21949  	}
 21950  	var tokenIdRule []interface{}
 21951  	for _, tokenIdItem := range tokenId {
 21952  		tokenIdRule = append(tokenIdRule, tokenIdItem)
 21953  	}
 21954  
 21955  	logs, sub, err := _ERC721Burnable.contract.FilterLogs(opts, "Approval", ownerRule, approvedRule, tokenIdRule)
 21956  	if err != nil {
 21957  		return nil, err
 21958  	}
 21959  	return &ERC721BurnableApprovalIterator{contract: _ERC721Burnable.contract, event: "Approval", logs: logs, sub: sub}, nil
 21960  }
 21961  
 21962  // WatchApproval is a free log subscription operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925.
 21963  //
 21964  // Solidity: event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId)
 21965  func (_ERC721Burnable *ERC721BurnableFilterer) WatchApproval(opts *bind.WatchOpts, sink chan<- *ERC721BurnableApproval, owner []common.Address, approved []common.Address, tokenId []*big.Int) (event.Subscription, error) {
 21966  
 21967  	var ownerRule []interface{}
 21968  	for _, ownerItem := range owner {
 21969  		ownerRule = append(ownerRule, ownerItem)
 21970  	}
 21971  	var approvedRule []interface{}
 21972  	for _, approvedItem := range approved {
 21973  		approvedRule = append(approvedRule, approvedItem)
 21974  	}
 21975  	var tokenIdRule []interface{}
 21976  	for _, tokenIdItem := range tokenId {
 21977  		tokenIdRule = append(tokenIdRule, tokenIdItem)
 21978  	}
 21979  
 21980  	logs, sub, err := _ERC721Burnable.contract.WatchLogs(opts, "Approval", ownerRule, approvedRule, tokenIdRule)
 21981  	if err != nil {
 21982  		return nil, err
 21983  	}
 21984  	return event.NewSubscription(func(quit <-chan struct{}) error {
 21985  		defer sub.Unsubscribe()
 21986  		for {
 21987  			select {
 21988  			case log := <-logs:
 21989  				// New log arrived, parse the event and forward to the user
 21990  				event := new(ERC721BurnableApproval)
 21991  				if err := _ERC721Burnable.contract.UnpackLog(event, "Approval", log); err != nil {
 21992  					return err
 21993  				}
 21994  				event.Raw = log
 21995  
 21996  				select {
 21997  				case sink <- event:
 21998  				case err := <-sub.Err():
 21999  					return err
 22000  				case <-quit:
 22001  					return nil
 22002  				}
 22003  			case err := <-sub.Err():
 22004  				return err
 22005  			case <-quit:
 22006  				return nil
 22007  			}
 22008  		}
 22009  	}), nil
 22010  }
 22011  
 22012  // ParseApproval is a log parse operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925.
 22013  //
 22014  // Solidity: event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId)
 22015  func (_ERC721Burnable *ERC721BurnableFilterer) ParseApproval(log types.Log) (*ERC721BurnableApproval, error) {
 22016  	event := new(ERC721BurnableApproval)
 22017  	if err := _ERC721Burnable.contract.UnpackLog(event, "Approval", log); err != nil {
 22018  		return nil, err
 22019  	}
 22020  	return event, nil
 22021  }
 22022  
 22023  // ERC721BurnableApprovalForAllIterator is returned from FilterApprovalForAll and is used to iterate over the raw logs and unpacked data for ApprovalForAll events raised by the ERC721Burnable contract.
 22024  type ERC721BurnableApprovalForAllIterator struct {
 22025  	Event *ERC721BurnableApprovalForAll // Event containing the contract specifics and raw log
 22026  
 22027  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 22028  	event    string              // Event name to use for unpacking event data
 22029  
 22030  	logs chan types.Log      // Log channel receiving the found contract events
 22031  	sub  klaytn.Subscription // Subscription for errors, completion and termination
 22032  	done bool                // Whether the subscription completed delivering logs
 22033  	fail error               // Occurred error to stop iteration
 22034  }
 22035  
 22036  // Next advances the iterator to the subsequent event, returning whether there
 22037  // are any more events found. In case of a retrieval or parsing error, false is
 22038  // returned and Error() can be queried for the exact failure.
 22039  func (it *ERC721BurnableApprovalForAllIterator) Next() bool {
 22040  	// If the iterator failed, stop iterating
 22041  	if it.fail != nil {
 22042  		return false
 22043  	}
 22044  	// If the iterator completed, deliver directly whatever's available
 22045  	if it.done {
 22046  		select {
 22047  		case log := <-it.logs:
 22048  			it.Event = new(ERC721BurnableApprovalForAll)
 22049  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 22050  				it.fail = err
 22051  				return false
 22052  			}
 22053  			it.Event.Raw = log
 22054  			return true
 22055  
 22056  		default:
 22057  			return false
 22058  		}
 22059  	}
 22060  	// Iterator still in progress, wait for either a data or an error event
 22061  	select {
 22062  	case log := <-it.logs:
 22063  		it.Event = new(ERC721BurnableApprovalForAll)
 22064  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 22065  			it.fail = err
 22066  			return false
 22067  		}
 22068  		it.Event.Raw = log
 22069  		return true
 22070  
 22071  	case err := <-it.sub.Err():
 22072  		it.done = true
 22073  		it.fail = err
 22074  		return it.Next()
 22075  	}
 22076  }
 22077  
 22078  // Error returns any retrieval or parsing error occurred during filtering.
 22079  func (it *ERC721BurnableApprovalForAllIterator) Error() error {
 22080  	return it.fail
 22081  }
 22082  
 22083  // Close terminates the iteration process, releasing any pending underlying
 22084  // resources.
 22085  func (it *ERC721BurnableApprovalForAllIterator) Close() error {
 22086  	it.sub.Unsubscribe()
 22087  	return nil
 22088  }
 22089  
 22090  // ERC721BurnableApprovalForAll represents a ApprovalForAll event raised by the ERC721Burnable contract.
 22091  type ERC721BurnableApprovalForAll struct {
 22092  	Owner    common.Address
 22093  	Operator common.Address
 22094  	Approved bool
 22095  	Raw      types.Log // Blockchain specific contextual infos
 22096  }
 22097  
 22098  // FilterApprovalForAll is a free log retrieval operation binding the contract event 0x17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31.
 22099  //
 22100  // Solidity: event ApprovalForAll(address indexed owner, address indexed operator, bool approved)
 22101  func (_ERC721Burnable *ERC721BurnableFilterer) FilterApprovalForAll(opts *bind.FilterOpts, owner []common.Address, operator []common.Address) (*ERC721BurnableApprovalForAllIterator, error) {
 22102  
 22103  	var ownerRule []interface{}
 22104  	for _, ownerItem := range owner {
 22105  		ownerRule = append(ownerRule, ownerItem)
 22106  	}
 22107  	var operatorRule []interface{}
 22108  	for _, operatorItem := range operator {
 22109  		operatorRule = append(operatorRule, operatorItem)
 22110  	}
 22111  
 22112  	logs, sub, err := _ERC721Burnable.contract.FilterLogs(opts, "ApprovalForAll", ownerRule, operatorRule)
 22113  	if err != nil {
 22114  		return nil, err
 22115  	}
 22116  	return &ERC721BurnableApprovalForAllIterator{contract: _ERC721Burnable.contract, event: "ApprovalForAll", logs: logs, sub: sub}, nil
 22117  }
 22118  
 22119  // WatchApprovalForAll is a free log subscription operation binding the contract event 0x17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31.
 22120  //
 22121  // Solidity: event ApprovalForAll(address indexed owner, address indexed operator, bool approved)
 22122  func (_ERC721Burnable *ERC721BurnableFilterer) WatchApprovalForAll(opts *bind.WatchOpts, sink chan<- *ERC721BurnableApprovalForAll, owner []common.Address, operator []common.Address) (event.Subscription, error) {
 22123  
 22124  	var ownerRule []interface{}
 22125  	for _, ownerItem := range owner {
 22126  		ownerRule = append(ownerRule, ownerItem)
 22127  	}
 22128  	var operatorRule []interface{}
 22129  	for _, operatorItem := range operator {
 22130  		operatorRule = append(operatorRule, operatorItem)
 22131  	}
 22132  
 22133  	logs, sub, err := _ERC721Burnable.contract.WatchLogs(opts, "ApprovalForAll", ownerRule, operatorRule)
 22134  	if err != nil {
 22135  		return nil, err
 22136  	}
 22137  	return event.NewSubscription(func(quit <-chan struct{}) error {
 22138  		defer sub.Unsubscribe()
 22139  		for {
 22140  			select {
 22141  			case log := <-logs:
 22142  				// New log arrived, parse the event and forward to the user
 22143  				event := new(ERC721BurnableApprovalForAll)
 22144  				if err := _ERC721Burnable.contract.UnpackLog(event, "ApprovalForAll", log); err != nil {
 22145  					return err
 22146  				}
 22147  				event.Raw = log
 22148  
 22149  				select {
 22150  				case sink <- event:
 22151  				case err := <-sub.Err():
 22152  					return err
 22153  				case <-quit:
 22154  					return nil
 22155  				}
 22156  			case err := <-sub.Err():
 22157  				return err
 22158  			case <-quit:
 22159  				return nil
 22160  			}
 22161  		}
 22162  	}), nil
 22163  }
 22164  
 22165  // ParseApprovalForAll is a log parse operation binding the contract event 0x17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31.
 22166  //
 22167  // Solidity: event ApprovalForAll(address indexed owner, address indexed operator, bool approved)
 22168  func (_ERC721Burnable *ERC721BurnableFilterer) ParseApprovalForAll(log types.Log) (*ERC721BurnableApprovalForAll, error) {
 22169  	event := new(ERC721BurnableApprovalForAll)
 22170  	if err := _ERC721Burnable.contract.UnpackLog(event, "ApprovalForAll", log); err != nil {
 22171  		return nil, err
 22172  	}
 22173  	return event, nil
 22174  }
 22175  
 22176  // ERC721BurnableTransferIterator is returned from FilterTransfer and is used to iterate over the raw logs and unpacked data for Transfer events raised by the ERC721Burnable contract.
 22177  type ERC721BurnableTransferIterator struct {
 22178  	Event *ERC721BurnableTransfer // Event containing the contract specifics and raw log
 22179  
 22180  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 22181  	event    string              // Event name to use for unpacking event data
 22182  
 22183  	logs chan types.Log      // Log channel receiving the found contract events
 22184  	sub  klaytn.Subscription // Subscription for errors, completion and termination
 22185  	done bool                // Whether the subscription completed delivering logs
 22186  	fail error               // Occurred error to stop iteration
 22187  }
 22188  
 22189  // Next advances the iterator to the subsequent event, returning whether there
 22190  // are any more events found. In case of a retrieval or parsing error, false is
 22191  // returned and Error() can be queried for the exact failure.
 22192  func (it *ERC721BurnableTransferIterator) Next() bool {
 22193  	// If the iterator failed, stop iterating
 22194  	if it.fail != nil {
 22195  		return false
 22196  	}
 22197  	// If the iterator completed, deliver directly whatever's available
 22198  	if it.done {
 22199  		select {
 22200  		case log := <-it.logs:
 22201  			it.Event = new(ERC721BurnableTransfer)
 22202  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 22203  				it.fail = err
 22204  				return false
 22205  			}
 22206  			it.Event.Raw = log
 22207  			return true
 22208  
 22209  		default:
 22210  			return false
 22211  		}
 22212  	}
 22213  	// Iterator still in progress, wait for either a data or an error event
 22214  	select {
 22215  	case log := <-it.logs:
 22216  		it.Event = new(ERC721BurnableTransfer)
 22217  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 22218  			it.fail = err
 22219  			return false
 22220  		}
 22221  		it.Event.Raw = log
 22222  		return true
 22223  
 22224  	case err := <-it.sub.Err():
 22225  		it.done = true
 22226  		it.fail = err
 22227  		return it.Next()
 22228  	}
 22229  }
 22230  
 22231  // Error returns any retrieval or parsing error occurred during filtering.
 22232  func (it *ERC721BurnableTransferIterator) Error() error {
 22233  	return it.fail
 22234  }
 22235  
 22236  // Close terminates the iteration process, releasing any pending underlying
 22237  // resources.
 22238  func (it *ERC721BurnableTransferIterator) Close() error {
 22239  	it.sub.Unsubscribe()
 22240  	return nil
 22241  }
 22242  
 22243  // ERC721BurnableTransfer represents a Transfer event raised by the ERC721Burnable contract.
 22244  type ERC721BurnableTransfer struct {
 22245  	From    common.Address
 22246  	To      common.Address
 22247  	TokenId *big.Int
 22248  	Raw     types.Log // Blockchain specific contextual infos
 22249  }
 22250  
 22251  // FilterTransfer is a free log retrieval operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef.
 22252  //
 22253  // Solidity: event Transfer(address indexed from, address indexed to, uint256 indexed tokenId)
 22254  func (_ERC721Burnable *ERC721BurnableFilterer) FilterTransfer(opts *bind.FilterOpts, from []common.Address, to []common.Address, tokenId []*big.Int) (*ERC721BurnableTransferIterator, error) {
 22255  
 22256  	var fromRule []interface{}
 22257  	for _, fromItem := range from {
 22258  		fromRule = append(fromRule, fromItem)
 22259  	}
 22260  	var toRule []interface{}
 22261  	for _, toItem := range to {
 22262  		toRule = append(toRule, toItem)
 22263  	}
 22264  	var tokenIdRule []interface{}
 22265  	for _, tokenIdItem := range tokenId {
 22266  		tokenIdRule = append(tokenIdRule, tokenIdItem)
 22267  	}
 22268  
 22269  	logs, sub, err := _ERC721Burnable.contract.FilterLogs(opts, "Transfer", fromRule, toRule, tokenIdRule)
 22270  	if err != nil {
 22271  		return nil, err
 22272  	}
 22273  	return &ERC721BurnableTransferIterator{contract: _ERC721Burnable.contract, event: "Transfer", logs: logs, sub: sub}, nil
 22274  }
 22275  
 22276  // WatchTransfer is a free log subscription operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef.
 22277  //
 22278  // Solidity: event Transfer(address indexed from, address indexed to, uint256 indexed tokenId)
 22279  func (_ERC721Burnable *ERC721BurnableFilterer) WatchTransfer(opts *bind.WatchOpts, sink chan<- *ERC721BurnableTransfer, from []common.Address, to []common.Address, tokenId []*big.Int) (event.Subscription, error) {
 22280  
 22281  	var fromRule []interface{}
 22282  	for _, fromItem := range from {
 22283  		fromRule = append(fromRule, fromItem)
 22284  	}
 22285  	var toRule []interface{}
 22286  	for _, toItem := range to {
 22287  		toRule = append(toRule, toItem)
 22288  	}
 22289  	var tokenIdRule []interface{}
 22290  	for _, tokenIdItem := range tokenId {
 22291  		tokenIdRule = append(tokenIdRule, tokenIdItem)
 22292  	}
 22293  
 22294  	logs, sub, err := _ERC721Burnable.contract.WatchLogs(opts, "Transfer", fromRule, toRule, tokenIdRule)
 22295  	if err != nil {
 22296  		return nil, err
 22297  	}
 22298  	return event.NewSubscription(func(quit <-chan struct{}) error {
 22299  		defer sub.Unsubscribe()
 22300  		for {
 22301  			select {
 22302  			case log := <-logs:
 22303  				// New log arrived, parse the event and forward to the user
 22304  				event := new(ERC721BurnableTransfer)
 22305  				if err := _ERC721Burnable.contract.UnpackLog(event, "Transfer", log); err != nil {
 22306  					return err
 22307  				}
 22308  				event.Raw = log
 22309  
 22310  				select {
 22311  				case sink <- event:
 22312  				case err := <-sub.Err():
 22313  					return err
 22314  				case <-quit:
 22315  					return nil
 22316  				}
 22317  			case err := <-sub.Err():
 22318  				return err
 22319  			case <-quit:
 22320  				return nil
 22321  			}
 22322  		}
 22323  	}), nil
 22324  }
 22325  
 22326  // ParseTransfer is a log parse operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef.
 22327  //
 22328  // Solidity: event Transfer(address indexed from, address indexed to, uint256 indexed tokenId)
 22329  func (_ERC721Burnable *ERC721BurnableFilterer) ParseTransfer(log types.Log) (*ERC721BurnableTransfer, error) {
 22330  	event := new(ERC721BurnableTransfer)
 22331  	if err := _ERC721Burnable.contract.UnpackLog(event, "Transfer", log); err != nil {
 22332  		return nil, err
 22333  	}
 22334  	return event, nil
 22335  }
 22336  
 22337  // ERC721MetadataMetaData contains all meta data concerning the ERC721Metadata contract.
 22338  var ERC721MetadataMetaData = &bind.MetaData{
 22339  	ABI: "[{\"constant\":true,\"inputs\":[{\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"to\",\"type\":\"address\"},{\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"from\",\"type\":\"address\"},{\"name\":\"to\",\"type\":\"address\"},{\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"from\",\"type\":\"address\"},{\"name\":\"to\",\"type\":\"address\"},{\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"to\",\"type\":\"address\"},{\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"from\",\"type\":\"address\"},{\"name\":\"to\",\"type\":\"address\"},{\"name\":\"tokenId\",\"type\":\"uint256\"},{\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"owner\",\"type\":\"address\"},{\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"name\":\"name\",\"type\":\"string\"},{\"name\":\"symbol\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"}]",
 22340  	Sigs: map[string]string{
 22341  		"095ea7b3": "approve(address,uint256)",
 22342  		"70a08231": "balanceOf(address)",
 22343  		"081812fc": "getApproved(uint256)",
 22344  		"e985e9c5": "isApprovedForAll(address,address)",
 22345  		"06fdde03": "name()",
 22346  		"6352211e": "ownerOf(uint256)",
 22347  		"42842e0e": "safeTransferFrom(address,address,uint256)",
 22348  		"b88d4fde": "safeTransferFrom(address,address,uint256,bytes)",
 22349  		"a22cb465": "setApprovalForAll(address,bool)",
 22350  		"01ffc9a7": "supportsInterface(bytes4)",
 22351  		"95d89b41": "symbol()",
 22352  		"c87b56dd": "tokenURI(uint256)",
 22353  		"23b872dd": "transferFrom(address,address,uint256)",
 22354  	},
 22355  	Bin: "0x60806040523480156200001157600080fd5b50604051620012f8380380620012f8833981018060405260408110156200003757600080fd5b8101908080516401000000008111156200005057600080fd5b820160208101848111156200006457600080fd5b81516401000000008111828201871017156200007f57600080fd5b505092919060200180516401000000008111156200009c57600080fd5b82016020810184811115620000b057600080fd5b8151640100000000811182820187101715620000cb57600080fd5b5050929190505050620000eb6301ffc9a760e01b6200014f60201b60201c565b620001036380ac58cd60e01b6200014f60201b60201c565b8151620001189060059060208501906200021e565b5080516200012e9060069060208401906200021e565b5062000147635b5e139f60e01b6200014f60201b60201c565b5050620002c3565b7fffffffff000000000000000000000000000000000000000000000000000000008082161415620001e157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f4552433136353a20696e76616c696420696e7465726661636520696400000000604482015290519081900360640190fd5b7fffffffff00000000000000000000000000000000000000000000000000000000166000908152602081905260409020805460ff19166001179055565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200026157805160ff191683800117855562000291565b8280016001018555821562000291579182015b828111156200029157825182559160200191906001019062000274565b506200029f929150620002a3565b5090565b620002c091905b808211156200029f5760008155600101620002aa565b90565b61102580620002d36000396000f3fe608060405234801561001057600080fd5b50600436106100cf5760003560e01c80636352211e1161008c578063a22cb46511610066578063a22cb465146102bc578063b88d4fde146102ea578063c87b56dd146103b0578063e985e9c5146103cd576100cf565b80636352211e1461025f57806370a082311461027c57806395d89b41146102b4576100cf565b806301ffc9a7146100d457806306fdde031461010f578063081812fc1461018c578063095ea7b3146101c557806323b872dd146101f357806342842e0e14610229575b600080fd5b6100fb600480360360208110156100ea57600080fd5b50356001600160e01b0319166103fb565b604080519115158252519081900360200190f35b61011761041a565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610151578181015183820152602001610139565b50505050905090810190601f16801561017e5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101a9600480360360208110156101a257600080fd5b50356104b0565b604080516001600160a01b039092168252519081900360200190f35b6101f1600480360360408110156101db57600080fd5b506001600160a01b038135169060200135610515565b005b6101f16004803603606081101561020957600080fd5b506001600160a01b0381358116916020810135909116906040013561062c565b6101f16004803603606081101561023f57600080fd5b506001600160a01b03813581169160208101359091169060400135610684565b6101a96004803603602081101561027557600080fd5b503561069f565b6102a26004803603602081101561029257600080fd5b50356001600160a01b03166106fc565b60408051918252519081900360200190f35b610117610767565b6101f1600480360360408110156102d257600080fd5b506001600160a01b03813516906020013515156107c8565b6101f16004803603608081101561030057600080fd5b6001600160a01b0382358116926020810135909116916040820135919081019060808101606082013564010000000081111561033b57600080fd5b82018360208201111561034d57600080fd5b8035906020019184600183028401116401000000008311171561036f57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610897945050505050565b610117600480360360208110156103c657600080fd5b50356108f2565b6100fb600480360360408110156103e357600080fd5b506001600160a01b03813581169160200135166109da565b6001600160e01b03191660009081526020819052604090205460ff1690565b60058054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156104a65780601f1061047b576101008083540402835291602001916104a6565b820191906000526020600020905b81548152906001019060200180831161048957829003601f168201915b5050505050905090565b60006104bb82610a08565b6104f957604051600160e51b62461bcd02815260040180806020018281038252602c815260200180610f24602c913960400191505060405180910390fd5b506000908152600260205260409020546001600160a01b031690565b60006105208261069f565b9050806001600160a01b0316836001600160a01b0316141561057657604051600160e51b62461bcd028152600401808060200182810382526021815260200180610fa86021913960400191505060405180910390fd5b336001600160a01b0382161480610592575061059281336109da565b6105d057604051600160e51b62461bcd028152600401808060200182810382526038815260200180610e996038913960400191505060405180910390fd5b60008281526002602052604080822080546001600160a01b0319166001600160a01b0387811691821790925591518593918516917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a4505050565b6106363382610a25565b61067457604051600160e51b62461bcd028152600401808060200182810382526031815260200180610fc96031913960400191505060405180910390fd5b61067f838383610acc565b505050565b61067f83838360405180602001604052806000815250610897565b6000818152600160205260408120546001600160a01b0316806106f657604051600160e51b62461bcd028152600401808060200182810382526029815260200180610efb6029913960400191505060405180910390fd5b92915050565b60006001600160a01b03821661074657604051600160e51b62461bcd02815260040180806020018281038252602a815260200180610ed1602a913960400191505060405180910390fd5b6001600160a01b03821660009081526003602052604090206106f690610c16565b60068054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156104a65780601f1061047b576101008083540402835291602001916104a6565b6001600160a01b0382163314156108295760408051600160e51b62461bcd02815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c657200000000000000604482015290519081900360640190fd5b3360008181526004602090815260408083206001600160a01b03871680855290835292819020805460ff1916861515908117909155815190815290519293927f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31929181900390910190a35050565b6108a284848461062c565b6108ae84848484610c1a565b6108ec57604051600160e51b62461bcd028152600401808060200182810382526032815260200180610e176032913960400191505060405180910390fd5b50505050565b60606108fd82610a08565b61093b57604051600160e51b62461bcd02815260040180806020018281038252602f815260200180610f79602f913960400191505060405180910390fd5b60008281526007602090815260409182902080548351601f6002600019610100600186161502019093169290920491820184900484028101840190945280845290918301828280156109ce5780601f106109a3576101008083540402835291602001916109ce565b820191906000526020600020905b8154815290600101906020018083116109b157829003601f168201915b50505050509050919050565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205460ff1690565b6000908152600160205260409020546001600160a01b0316151590565b6000610a3082610a08565b610a6e57604051600160e51b62461bcd02815260040180806020018281038252602c815260200180610e6d602c913960400191505060405180910390fd5b6000610a798361069f565b9050806001600160a01b0316846001600160a01b03161480610ab45750836001600160a01b0316610aa9846104b0565b6001600160a01b0316145b80610ac45750610ac481856109da565b949350505050565b826001600160a01b0316610adf8261069f565b6001600160a01b031614610b2757604051600160e51b62461bcd028152600401808060200182810382526029815260200180610f506029913960400191505060405180910390fd5b6001600160a01b038216610b6f57604051600160e51b62461bcd028152600401808060200182810382526024815260200180610e496024913960400191505060405180910390fd5b610b7881610d53565b6001600160a01b0383166000908152600360205260409020610b9990610d90565b6001600160a01b0382166000908152600360205260409020610bba90610da7565b60008181526001602052604080822080546001600160a01b0319166001600160a01b0386811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b5490565b6000610c2e846001600160a01b0316610db0565b610c3a57506001610ac4565b604051600160e11b630a85bd0102815233600482018181526001600160a01b03888116602485015260448401879052608060648501908152865160848601528651600095928a169463150b7a029490938c938b938b939260a4019060208501908083838e5b83811015610cb7578181015183820152602001610c9f565b50505050905090810190601f168015610ce45780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b158015610d0657600080fd5b505af1158015610d1a573d6000803e3d6000fd5b505050506040513d6020811015610d3057600080fd5b50516001600160e01b031916600160e11b630a85bd010214915050949350505050565b6000818152600260205260409020546001600160a01b031615610d8d57600081815260026020526040902080546001600160a01b03191690555b50565b8054610da390600163ffffffff610db616565b9055565b80546001019055565b3b151590565b600082821115610e105760408051600160e51b62461bcd02815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b5090039056fe4552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e7465724552433732313a207472616e7366657220746f20746865207a65726f20616464726573734552433732313a206f70657261746f7220717565727920666f72206e6f6e6578697374656e7420746f6b656e4552433732313a20617070726f76652063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f76656420666f7220616c6c4552433732313a2062616c616e636520717565727920666f7220746865207a65726f20616464726573734552433732313a206f776e657220717565727920666f72206e6f6e6578697374656e7420746f6b656e4552433732313a20617070726f76656420717565727920666f72206e6f6e6578697374656e7420746f6b656e4552433732313a207472616e73666572206f6620746f6b656e2074686174206973206e6f74206f776e4552433732314d657461646174613a2055524920717565727920666f72206e6f6e6578697374656e7420746f6b656e4552433732313a20617070726f76616c20746f2063757272656e74206f776e65724552433732313a207472616e736665722063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f766564a165627a7a723058209631ba5ee0489ecf58b1ed6edf174b73a3e5afd9e09cd92d7c38448a275e41090029",
 22356  }
 22357  
 22358  // ERC721MetadataABI is the input ABI used to generate the binding from.
 22359  // Deprecated: Use ERC721MetadataMetaData.ABI instead.
 22360  var ERC721MetadataABI = ERC721MetadataMetaData.ABI
 22361  
 22362  // ERC721MetadataBinRuntime is the compiled bytecode used for adding genesis block without deploying code.
 22363  const ERC721MetadataBinRuntime = `608060405234801561001057600080fd5b50600436106100cf5760003560e01c80636352211e1161008c578063a22cb46511610066578063a22cb465146102bc578063b88d4fde146102ea578063c87b56dd146103b0578063e985e9c5146103cd576100cf565b80636352211e1461025f57806370a082311461027c57806395d89b41146102b4576100cf565b806301ffc9a7146100d457806306fdde031461010f578063081812fc1461018c578063095ea7b3146101c557806323b872dd146101f357806342842e0e14610229575b600080fd5b6100fb600480360360208110156100ea57600080fd5b50356001600160e01b0319166103fb565b604080519115158252519081900360200190f35b61011761041a565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610151578181015183820152602001610139565b50505050905090810190601f16801561017e5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101a9600480360360208110156101a257600080fd5b50356104b0565b604080516001600160a01b039092168252519081900360200190f35b6101f1600480360360408110156101db57600080fd5b506001600160a01b038135169060200135610515565b005b6101f16004803603606081101561020957600080fd5b506001600160a01b0381358116916020810135909116906040013561062c565b6101f16004803603606081101561023f57600080fd5b506001600160a01b03813581169160208101359091169060400135610684565b6101a96004803603602081101561027557600080fd5b503561069f565b6102a26004803603602081101561029257600080fd5b50356001600160a01b03166106fc565b60408051918252519081900360200190f35b610117610767565b6101f1600480360360408110156102d257600080fd5b506001600160a01b03813516906020013515156107c8565b6101f16004803603608081101561030057600080fd5b6001600160a01b0382358116926020810135909116916040820135919081019060808101606082013564010000000081111561033b57600080fd5b82018360208201111561034d57600080fd5b8035906020019184600183028401116401000000008311171561036f57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610897945050505050565b610117600480360360208110156103c657600080fd5b50356108f2565b6100fb600480360360408110156103e357600080fd5b506001600160a01b03813581169160200135166109da565b6001600160e01b03191660009081526020819052604090205460ff1690565b60058054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156104a65780601f1061047b576101008083540402835291602001916104a6565b820191906000526020600020905b81548152906001019060200180831161048957829003601f168201915b5050505050905090565b60006104bb82610a08565b6104f957604051600160e51b62461bcd02815260040180806020018281038252602c815260200180610f24602c913960400191505060405180910390fd5b506000908152600260205260409020546001600160a01b031690565b60006105208261069f565b9050806001600160a01b0316836001600160a01b0316141561057657604051600160e51b62461bcd028152600401808060200182810382526021815260200180610fa86021913960400191505060405180910390fd5b336001600160a01b0382161480610592575061059281336109da565b6105d057604051600160e51b62461bcd028152600401808060200182810382526038815260200180610e996038913960400191505060405180910390fd5b60008281526002602052604080822080546001600160a01b0319166001600160a01b0387811691821790925591518593918516917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a4505050565b6106363382610a25565b61067457604051600160e51b62461bcd028152600401808060200182810382526031815260200180610fc96031913960400191505060405180910390fd5b61067f838383610acc565b505050565b61067f83838360405180602001604052806000815250610897565b6000818152600160205260408120546001600160a01b0316806106f657604051600160e51b62461bcd028152600401808060200182810382526029815260200180610efb6029913960400191505060405180910390fd5b92915050565b60006001600160a01b03821661074657604051600160e51b62461bcd02815260040180806020018281038252602a815260200180610ed1602a913960400191505060405180910390fd5b6001600160a01b03821660009081526003602052604090206106f690610c16565b60068054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156104a65780601f1061047b576101008083540402835291602001916104a6565b6001600160a01b0382163314156108295760408051600160e51b62461bcd02815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c657200000000000000604482015290519081900360640190fd5b3360008181526004602090815260408083206001600160a01b03871680855290835292819020805460ff1916861515908117909155815190815290519293927f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31929181900390910190a35050565b6108a284848461062c565b6108ae84848484610c1a565b6108ec57604051600160e51b62461bcd028152600401808060200182810382526032815260200180610e176032913960400191505060405180910390fd5b50505050565b60606108fd82610a08565b61093b57604051600160e51b62461bcd02815260040180806020018281038252602f815260200180610f79602f913960400191505060405180910390fd5b60008281526007602090815260409182902080548351601f6002600019610100600186161502019093169290920491820184900484028101840190945280845290918301828280156109ce5780601f106109a3576101008083540402835291602001916109ce565b820191906000526020600020905b8154815290600101906020018083116109b157829003601f168201915b50505050509050919050565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205460ff1690565b6000908152600160205260409020546001600160a01b0316151590565b6000610a3082610a08565b610a6e57604051600160e51b62461bcd02815260040180806020018281038252602c815260200180610e6d602c913960400191505060405180910390fd5b6000610a798361069f565b9050806001600160a01b0316846001600160a01b03161480610ab45750836001600160a01b0316610aa9846104b0565b6001600160a01b0316145b80610ac45750610ac481856109da565b949350505050565b826001600160a01b0316610adf8261069f565b6001600160a01b031614610b2757604051600160e51b62461bcd028152600401808060200182810382526029815260200180610f506029913960400191505060405180910390fd5b6001600160a01b038216610b6f57604051600160e51b62461bcd028152600401808060200182810382526024815260200180610e496024913960400191505060405180910390fd5b610b7881610d53565b6001600160a01b0383166000908152600360205260409020610b9990610d90565b6001600160a01b0382166000908152600360205260409020610bba90610da7565b60008181526001602052604080822080546001600160a01b0319166001600160a01b0386811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b5490565b6000610c2e846001600160a01b0316610db0565b610c3a57506001610ac4565b604051600160e11b630a85bd0102815233600482018181526001600160a01b03888116602485015260448401879052608060648501908152865160848601528651600095928a169463150b7a029490938c938b938b939260a4019060208501908083838e5b83811015610cb7578181015183820152602001610c9f565b50505050905090810190601f168015610ce45780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b158015610d0657600080fd5b505af1158015610d1a573d6000803e3d6000fd5b505050506040513d6020811015610d3057600080fd5b50516001600160e01b031916600160e11b630a85bd010214915050949350505050565b6000818152600260205260409020546001600160a01b031615610d8d57600081815260026020526040902080546001600160a01b03191690555b50565b8054610da390600163ffffffff610db616565b9055565b80546001019055565b3b151590565b600082821115610e105760408051600160e51b62461bcd02815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b5090039056fe4552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e7465724552433732313a207472616e7366657220746f20746865207a65726f20616464726573734552433732313a206f70657261746f7220717565727920666f72206e6f6e6578697374656e7420746f6b656e4552433732313a20617070726f76652063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f76656420666f7220616c6c4552433732313a2062616c616e636520717565727920666f7220746865207a65726f20616464726573734552433732313a206f776e657220717565727920666f72206e6f6e6578697374656e7420746f6b656e4552433732313a20617070726f76656420717565727920666f72206e6f6e6578697374656e7420746f6b656e4552433732313a207472616e73666572206f6620746f6b656e2074686174206973206e6f74206f776e4552433732314d657461646174613a2055524920717565727920666f72206e6f6e6578697374656e7420746f6b656e4552433732313a20617070726f76616c20746f2063757272656e74206f776e65724552433732313a207472616e736665722063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f766564a165627a7a723058209631ba5ee0489ecf58b1ed6edf174b73a3e5afd9e09cd92d7c38448a275e41090029`
 22364  
 22365  // ERC721MetadataFuncSigs maps the 4-byte function signature to its string representation.
 22366  // Deprecated: Use ERC721MetadataMetaData.Sigs instead.
 22367  var ERC721MetadataFuncSigs = ERC721MetadataMetaData.Sigs
 22368  
 22369  // ERC721MetadataBin is the compiled bytecode used for deploying new contracts.
 22370  // Deprecated: Use ERC721MetadataMetaData.Bin instead.
 22371  var ERC721MetadataBin = ERC721MetadataMetaData.Bin
 22372  
 22373  // DeployERC721Metadata deploys a new Klaytn contract, binding an instance of ERC721Metadata to it.
 22374  func DeployERC721Metadata(auth *bind.TransactOpts, backend bind.ContractBackend, name string, symbol string) (common.Address, *types.Transaction, *ERC721Metadata, error) {
 22375  	parsed, err := ERC721MetadataMetaData.GetAbi()
 22376  	if err != nil {
 22377  		return common.Address{}, nil, nil, err
 22378  	}
 22379  	if parsed == nil {
 22380  		return common.Address{}, nil, nil, errors.New("GetABI returned nil")
 22381  	}
 22382  
 22383  	address, tx, contract, err := bind.DeployContract(auth, *parsed, common.FromHex(ERC721MetadataBin), backend, name, symbol)
 22384  	if err != nil {
 22385  		return common.Address{}, nil, nil, err
 22386  	}
 22387  	return address, tx, &ERC721Metadata{ERC721MetadataCaller: ERC721MetadataCaller{contract: contract}, ERC721MetadataTransactor: ERC721MetadataTransactor{contract: contract}, ERC721MetadataFilterer: ERC721MetadataFilterer{contract: contract}}, nil
 22388  }
 22389  
 22390  // ERC721Metadata is an auto generated Go binding around a Klaytn contract.
 22391  type ERC721Metadata struct {
 22392  	ERC721MetadataCaller     // Read-only binding to the contract
 22393  	ERC721MetadataTransactor // Write-only binding to the contract
 22394  	ERC721MetadataFilterer   // Log filterer for contract events
 22395  }
 22396  
 22397  // ERC721MetadataCaller is an auto generated read-only Go binding around a Klaytn contract.
 22398  type ERC721MetadataCaller struct {
 22399  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 22400  }
 22401  
 22402  // ERC721MetadataTransactor is an auto generated write-only Go binding around a Klaytn contract.
 22403  type ERC721MetadataTransactor struct {
 22404  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 22405  }
 22406  
 22407  // ERC721MetadataFilterer is an auto generated log filtering Go binding around a Klaytn contract events.
 22408  type ERC721MetadataFilterer struct {
 22409  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 22410  }
 22411  
 22412  // ERC721MetadataSession is an auto generated Go binding around a Klaytn contract,
 22413  // with pre-set call and transact options.
 22414  type ERC721MetadataSession struct {
 22415  	Contract     *ERC721Metadata   // Generic contract binding to set the session for
 22416  	CallOpts     bind.CallOpts     // Call options to use throughout this session
 22417  	TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
 22418  }
 22419  
 22420  // ERC721MetadataCallerSession is an auto generated read-only Go binding around a Klaytn contract,
 22421  // with pre-set call options.
 22422  type ERC721MetadataCallerSession struct {
 22423  	Contract *ERC721MetadataCaller // Generic contract caller binding to set the session for
 22424  	CallOpts bind.CallOpts         // Call options to use throughout this session
 22425  }
 22426  
 22427  // ERC721MetadataTransactorSession is an auto generated write-only Go binding around a Klaytn contract,
 22428  // with pre-set transact options.
 22429  type ERC721MetadataTransactorSession struct {
 22430  	Contract     *ERC721MetadataTransactor // Generic contract transactor binding to set the session for
 22431  	TransactOpts bind.TransactOpts         // Transaction auth options to use throughout this session
 22432  }
 22433  
 22434  // ERC721MetadataRaw is an auto generated low-level Go binding around a Klaytn contract.
 22435  type ERC721MetadataRaw struct {
 22436  	Contract *ERC721Metadata // Generic contract binding to access the raw methods on
 22437  }
 22438  
 22439  // ERC721MetadataCallerRaw is an auto generated low-level read-only Go binding around a Klaytn contract.
 22440  type ERC721MetadataCallerRaw struct {
 22441  	Contract *ERC721MetadataCaller // Generic read-only contract binding to access the raw methods on
 22442  }
 22443  
 22444  // ERC721MetadataTransactorRaw is an auto generated low-level write-only Go binding around a Klaytn contract.
 22445  type ERC721MetadataTransactorRaw struct {
 22446  	Contract *ERC721MetadataTransactor // Generic write-only contract binding to access the raw methods on
 22447  }
 22448  
 22449  // NewERC721Metadata creates a new instance of ERC721Metadata, bound to a specific deployed contract.
 22450  func NewERC721Metadata(address common.Address, backend bind.ContractBackend) (*ERC721Metadata, error) {
 22451  	contract, err := bindERC721Metadata(address, backend, backend, backend)
 22452  	if err != nil {
 22453  		return nil, err
 22454  	}
 22455  	return &ERC721Metadata{ERC721MetadataCaller: ERC721MetadataCaller{contract: contract}, ERC721MetadataTransactor: ERC721MetadataTransactor{contract: contract}, ERC721MetadataFilterer: ERC721MetadataFilterer{contract: contract}}, nil
 22456  }
 22457  
 22458  // NewERC721MetadataCaller creates a new read-only instance of ERC721Metadata, bound to a specific deployed contract.
 22459  func NewERC721MetadataCaller(address common.Address, caller bind.ContractCaller) (*ERC721MetadataCaller, error) {
 22460  	contract, err := bindERC721Metadata(address, caller, nil, nil)
 22461  	if err != nil {
 22462  		return nil, err
 22463  	}
 22464  	return &ERC721MetadataCaller{contract: contract}, nil
 22465  }
 22466  
 22467  // NewERC721MetadataTransactor creates a new write-only instance of ERC721Metadata, bound to a specific deployed contract.
 22468  func NewERC721MetadataTransactor(address common.Address, transactor bind.ContractTransactor) (*ERC721MetadataTransactor, error) {
 22469  	contract, err := bindERC721Metadata(address, nil, transactor, nil)
 22470  	if err != nil {
 22471  		return nil, err
 22472  	}
 22473  	return &ERC721MetadataTransactor{contract: contract}, nil
 22474  }
 22475  
 22476  // NewERC721MetadataFilterer creates a new log filterer instance of ERC721Metadata, bound to a specific deployed contract.
 22477  func NewERC721MetadataFilterer(address common.Address, filterer bind.ContractFilterer) (*ERC721MetadataFilterer, error) {
 22478  	contract, err := bindERC721Metadata(address, nil, nil, filterer)
 22479  	if err != nil {
 22480  		return nil, err
 22481  	}
 22482  	return &ERC721MetadataFilterer{contract: contract}, nil
 22483  }
 22484  
 22485  // bindERC721Metadata binds a generic wrapper to an already deployed contract.
 22486  func bindERC721Metadata(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
 22487  	parsed, err := ERC721MetadataMetaData.GetAbi()
 22488  	if err != nil {
 22489  		return nil, err
 22490  	}
 22491  	return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil
 22492  }
 22493  
 22494  // Call invokes the (constant) contract method with params as input values and
 22495  // sets the output to result. The result type might be a single field for simple
 22496  // returns, a slice of interfaces for anonymous returns and a struct for named
 22497  // returns.
 22498  func (_ERC721Metadata *ERC721MetadataRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
 22499  	return _ERC721Metadata.Contract.ERC721MetadataCaller.contract.Call(opts, result, method, params...)
 22500  }
 22501  
 22502  // Transfer initiates a plain transaction to move funds to the contract, calling
 22503  // its default method if one is available.
 22504  func (_ERC721Metadata *ERC721MetadataRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
 22505  	return _ERC721Metadata.Contract.ERC721MetadataTransactor.contract.Transfer(opts)
 22506  }
 22507  
 22508  // Transact invokes the (paid) contract method with params as input values.
 22509  func (_ERC721Metadata *ERC721MetadataRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
 22510  	return _ERC721Metadata.Contract.ERC721MetadataTransactor.contract.Transact(opts, method, params...)
 22511  }
 22512  
 22513  // Call invokes the (constant) contract method with params as input values and
 22514  // sets the output to result. The result type might be a single field for simple
 22515  // returns, a slice of interfaces for anonymous returns and a struct for named
 22516  // returns.
 22517  func (_ERC721Metadata *ERC721MetadataCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
 22518  	return _ERC721Metadata.Contract.contract.Call(opts, result, method, params...)
 22519  }
 22520  
 22521  // Transfer initiates a plain transaction to move funds to the contract, calling
 22522  // its default method if one is available.
 22523  func (_ERC721Metadata *ERC721MetadataTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
 22524  	return _ERC721Metadata.Contract.contract.Transfer(opts)
 22525  }
 22526  
 22527  // Transact invokes the (paid) contract method with params as input values.
 22528  func (_ERC721Metadata *ERC721MetadataTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
 22529  	return _ERC721Metadata.Contract.contract.Transact(opts, method, params...)
 22530  }
 22531  
 22532  // BalanceOf is a free data retrieval call binding the contract method 0x70a08231.
 22533  //
 22534  // Solidity: function balanceOf(address owner) view returns(uint256)
 22535  func (_ERC721Metadata *ERC721MetadataCaller) BalanceOf(opts *bind.CallOpts, owner common.Address) (*big.Int, error) {
 22536  	var out []interface{}
 22537  	err := _ERC721Metadata.contract.Call(opts, &out, "balanceOf", owner)
 22538  
 22539  	if err != nil {
 22540  		return *new(*big.Int), err
 22541  	}
 22542  
 22543  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
 22544  
 22545  	return out0, err
 22546  
 22547  }
 22548  
 22549  // BalanceOf is a free data retrieval call binding the contract method 0x70a08231.
 22550  //
 22551  // Solidity: function balanceOf(address owner) view returns(uint256)
 22552  func (_ERC721Metadata *ERC721MetadataSession) BalanceOf(owner common.Address) (*big.Int, error) {
 22553  	return _ERC721Metadata.Contract.BalanceOf(&_ERC721Metadata.CallOpts, owner)
 22554  }
 22555  
 22556  // BalanceOf is a free data retrieval call binding the contract method 0x70a08231.
 22557  //
 22558  // Solidity: function balanceOf(address owner) view returns(uint256)
 22559  func (_ERC721Metadata *ERC721MetadataCallerSession) BalanceOf(owner common.Address) (*big.Int, error) {
 22560  	return _ERC721Metadata.Contract.BalanceOf(&_ERC721Metadata.CallOpts, owner)
 22561  }
 22562  
 22563  // GetApproved is a free data retrieval call binding the contract method 0x081812fc.
 22564  //
 22565  // Solidity: function getApproved(uint256 tokenId) view returns(address)
 22566  func (_ERC721Metadata *ERC721MetadataCaller) GetApproved(opts *bind.CallOpts, tokenId *big.Int) (common.Address, error) {
 22567  	var out []interface{}
 22568  	err := _ERC721Metadata.contract.Call(opts, &out, "getApproved", tokenId)
 22569  
 22570  	if err != nil {
 22571  		return *new(common.Address), err
 22572  	}
 22573  
 22574  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
 22575  
 22576  	return out0, err
 22577  
 22578  }
 22579  
 22580  // GetApproved is a free data retrieval call binding the contract method 0x081812fc.
 22581  //
 22582  // Solidity: function getApproved(uint256 tokenId) view returns(address)
 22583  func (_ERC721Metadata *ERC721MetadataSession) GetApproved(tokenId *big.Int) (common.Address, error) {
 22584  	return _ERC721Metadata.Contract.GetApproved(&_ERC721Metadata.CallOpts, tokenId)
 22585  }
 22586  
 22587  // GetApproved is a free data retrieval call binding the contract method 0x081812fc.
 22588  //
 22589  // Solidity: function getApproved(uint256 tokenId) view returns(address)
 22590  func (_ERC721Metadata *ERC721MetadataCallerSession) GetApproved(tokenId *big.Int) (common.Address, error) {
 22591  	return _ERC721Metadata.Contract.GetApproved(&_ERC721Metadata.CallOpts, tokenId)
 22592  }
 22593  
 22594  // IsApprovedForAll is a free data retrieval call binding the contract method 0xe985e9c5.
 22595  //
 22596  // Solidity: function isApprovedForAll(address owner, address operator) view returns(bool)
 22597  func (_ERC721Metadata *ERC721MetadataCaller) IsApprovedForAll(opts *bind.CallOpts, owner common.Address, operator common.Address) (bool, error) {
 22598  	var out []interface{}
 22599  	err := _ERC721Metadata.contract.Call(opts, &out, "isApprovedForAll", owner, operator)
 22600  
 22601  	if err != nil {
 22602  		return *new(bool), err
 22603  	}
 22604  
 22605  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
 22606  
 22607  	return out0, err
 22608  
 22609  }
 22610  
 22611  // IsApprovedForAll is a free data retrieval call binding the contract method 0xe985e9c5.
 22612  //
 22613  // Solidity: function isApprovedForAll(address owner, address operator) view returns(bool)
 22614  func (_ERC721Metadata *ERC721MetadataSession) IsApprovedForAll(owner common.Address, operator common.Address) (bool, error) {
 22615  	return _ERC721Metadata.Contract.IsApprovedForAll(&_ERC721Metadata.CallOpts, owner, operator)
 22616  }
 22617  
 22618  // IsApprovedForAll is a free data retrieval call binding the contract method 0xe985e9c5.
 22619  //
 22620  // Solidity: function isApprovedForAll(address owner, address operator) view returns(bool)
 22621  func (_ERC721Metadata *ERC721MetadataCallerSession) IsApprovedForAll(owner common.Address, operator common.Address) (bool, error) {
 22622  	return _ERC721Metadata.Contract.IsApprovedForAll(&_ERC721Metadata.CallOpts, owner, operator)
 22623  }
 22624  
 22625  // Name is a free data retrieval call binding the contract method 0x06fdde03.
 22626  //
 22627  // Solidity: function name() view returns(string)
 22628  func (_ERC721Metadata *ERC721MetadataCaller) Name(opts *bind.CallOpts) (string, error) {
 22629  	var out []interface{}
 22630  	err := _ERC721Metadata.contract.Call(opts, &out, "name")
 22631  
 22632  	if err != nil {
 22633  		return *new(string), err
 22634  	}
 22635  
 22636  	out0 := *abi.ConvertType(out[0], new(string)).(*string)
 22637  
 22638  	return out0, err
 22639  
 22640  }
 22641  
 22642  // Name is a free data retrieval call binding the contract method 0x06fdde03.
 22643  //
 22644  // Solidity: function name() view returns(string)
 22645  func (_ERC721Metadata *ERC721MetadataSession) Name() (string, error) {
 22646  	return _ERC721Metadata.Contract.Name(&_ERC721Metadata.CallOpts)
 22647  }
 22648  
 22649  // Name is a free data retrieval call binding the contract method 0x06fdde03.
 22650  //
 22651  // Solidity: function name() view returns(string)
 22652  func (_ERC721Metadata *ERC721MetadataCallerSession) Name() (string, error) {
 22653  	return _ERC721Metadata.Contract.Name(&_ERC721Metadata.CallOpts)
 22654  }
 22655  
 22656  // OwnerOf is a free data retrieval call binding the contract method 0x6352211e.
 22657  //
 22658  // Solidity: function ownerOf(uint256 tokenId) view returns(address)
 22659  func (_ERC721Metadata *ERC721MetadataCaller) OwnerOf(opts *bind.CallOpts, tokenId *big.Int) (common.Address, error) {
 22660  	var out []interface{}
 22661  	err := _ERC721Metadata.contract.Call(opts, &out, "ownerOf", tokenId)
 22662  
 22663  	if err != nil {
 22664  		return *new(common.Address), err
 22665  	}
 22666  
 22667  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
 22668  
 22669  	return out0, err
 22670  
 22671  }
 22672  
 22673  // OwnerOf is a free data retrieval call binding the contract method 0x6352211e.
 22674  //
 22675  // Solidity: function ownerOf(uint256 tokenId) view returns(address)
 22676  func (_ERC721Metadata *ERC721MetadataSession) OwnerOf(tokenId *big.Int) (common.Address, error) {
 22677  	return _ERC721Metadata.Contract.OwnerOf(&_ERC721Metadata.CallOpts, tokenId)
 22678  }
 22679  
 22680  // OwnerOf is a free data retrieval call binding the contract method 0x6352211e.
 22681  //
 22682  // Solidity: function ownerOf(uint256 tokenId) view returns(address)
 22683  func (_ERC721Metadata *ERC721MetadataCallerSession) OwnerOf(tokenId *big.Int) (common.Address, error) {
 22684  	return _ERC721Metadata.Contract.OwnerOf(&_ERC721Metadata.CallOpts, tokenId)
 22685  }
 22686  
 22687  // SupportsInterface is a free data retrieval call binding the contract method 0x01ffc9a7.
 22688  //
 22689  // Solidity: function supportsInterface(bytes4 interfaceId) view returns(bool)
 22690  func (_ERC721Metadata *ERC721MetadataCaller) SupportsInterface(opts *bind.CallOpts, interfaceId [4]byte) (bool, error) {
 22691  	var out []interface{}
 22692  	err := _ERC721Metadata.contract.Call(opts, &out, "supportsInterface", interfaceId)
 22693  
 22694  	if err != nil {
 22695  		return *new(bool), err
 22696  	}
 22697  
 22698  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
 22699  
 22700  	return out0, err
 22701  
 22702  }
 22703  
 22704  // SupportsInterface is a free data retrieval call binding the contract method 0x01ffc9a7.
 22705  //
 22706  // Solidity: function supportsInterface(bytes4 interfaceId) view returns(bool)
 22707  func (_ERC721Metadata *ERC721MetadataSession) SupportsInterface(interfaceId [4]byte) (bool, error) {
 22708  	return _ERC721Metadata.Contract.SupportsInterface(&_ERC721Metadata.CallOpts, interfaceId)
 22709  }
 22710  
 22711  // SupportsInterface is a free data retrieval call binding the contract method 0x01ffc9a7.
 22712  //
 22713  // Solidity: function supportsInterface(bytes4 interfaceId) view returns(bool)
 22714  func (_ERC721Metadata *ERC721MetadataCallerSession) SupportsInterface(interfaceId [4]byte) (bool, error) {
 22715  	return _ERC721Metadata.Contract.SupportsInterface(&_ERC721Metadata.CallOpts, interfaceId)
 22716  }
 22717  
 22718  // Symbol is a free data retrieval call binding the contract method 0x95d89b41.
 22719  //
 22720  // Solidity: function symbol() view returns(string)
 22721  func (_ERC721Metadata *ERC721MetadataCaller) Symbol(opts *bind.CallOpts) (string, error) {
 22722  	var out []interface{}
 22723  	err := _ERC721Metadata.contract.Call(opts, &out, "symbol")
 22724  
 22725  	if err != nil {
 22726  		return *new(string), err
 22727  	}
 22728  
 22729  	out0 := *abi.ConvertType(out[0], new(string)).(*string)
 22730  
 22731  	return out0, err
 22732  
 22733  }
 22734  
 22735  // Symbol is a free data retrieval call binding the contract method 0x95d89b41.
 22736  //
 22737  // Solidity: function symbol() view returns(string)
 22738  func (_ERC721Metadata *ERC721MetadataSession) Symbol() (string, error) {
 22739  	return _ERC721Metadata.Contract.Symbol(&_ERC721Metadata.CallOpts)
 22740  }
 22741  
 22742  // Symbol is a free data retrieval call binding the contract method 0x95d89b41.
 22743  //
 22744  // Solidity: function symbol() view returns(string)
 22745  func (_ERC721Metadata *ERC721MetadataCallerSession) Symbol() (string, error) {
 22746  	return _ERC721Metadata.Contract.Symbol(&_ERC721Metadata.CallOpts)
 22747  }
 22748  
 22749  // TokenURI is a free data retrieval call binding the contract method 0xc87b56dd.
 22750  //
 22751  // Solidity: function tokenURI(uint256 tokenId) view returns(string)
 22752  func (_ERC721Metadata *ERC721MetadataCaller) TokenURI(opts *bind.CallOpts, tokenId *big.Int) (string, error) {
 22753  	var out []interface{}
 22754  	err := _ERC721Metadata.contract.Call(opts, &out, "tokenURI", tokenId)
 22755  
 22756  	if err != nil {
 22757  		return *new(string), err
 22758  	}
 22759  
 22760  	out0 := *abi.ConvertType(out[0], new(string)).(*string)
 22761  
 22762  	return out0, err
 22763  
 22764  }
 22765  
 22766  // TokenURI is a free data retrieval call binding the contract method 0xc87b56dd.
 22767  //
 22768  // Solidity: function tokenURI(uint256 tokenId) view returns(string)
 22769  func (_ERC721Metadata *ERC721MetadataSession) TokenURI(tokenId *big.Int) (string, error) {
 22770  	return _ERC721Metadata.Contract.TokenURI(&_ERC721Metadata.CallOpts, tokenId)
 22771  }
 22772  
 22773  // TokenURI is a free data retrieval call binding the contract method 0xc87b56dd.
 22774  //
 22775  // Solidity: function tokenURI(uint256 tokenId) view returns(string)
 22776  func (_ERC721Metadata *ERC721MetadataCallerSession) TokenURI(tokenId *big.Int) (string, error) {
 22777  	return _ERC721Metadata.Contract.TokenURI(&_ERC721Metadata.CallOpts, tokenId)
 22778  }
 22779  
 22780  // Approve is a paid mutator transaction binding the contract method 0x095ea7b3.
 22781  //
 22782  // Solidity: function approve(address to, uint256 tokenId) returns()
 22783  func (_ERC721Metadata *ERC721MetadataTransactor) Approve(opts *bind.TransactOpts, to common.Address, tokenId *big.Int) (*types.Transaction, error) {
 22784  	return _ERC721Metadata.contract.Transact(opts, "approve", to, tokenId)
 22785  }
 22786  
 22787  // Approve is a paid mutator transaction binding the contract method 0x095ea7b3.
 22788  //
 22789  // Solidity: function approve(address to, uint256 tokenId) returns()
 22790  func (_ERC721Metadata *ERC721MetadataSession) Approve(to common.Address, tokenId *big.Int) (*types.Transaction, error) {
 22791  	return _ERC721Metadata.Contract.Approve(&_ERC721Metadata.TransactOpts, to, tokenId)
 22792  }
 22793  
 22794  // Approve is a paid mutator transaction binding the contract method 0x095ea7b3.
 22795  //
 22796  // Solidity: function approve(address to, uint256 tokenId) returns()
 22797  func (_ERC721Metadata *ERC721MetadataTransactorSession) Approve(to common.Address, tokenId *big.Int) (*types.Transaction, error) {
 22798  	return _ERC721Metadata.Contract.Approve(&_ERC721Metadata.TransactOpts, to, tokenId)
 22799  }
 22800  
 22801  // SafeTransferFrom is a paid mutator transaction binding the contract method 0x42842e0e.
 22802  //
 22803  // Solidity: function safeTransferFrom(address from, address to, uint256 tokenId) returns()
 22804  func (_ERC721Metadata *ERC721MetadataTransactor) SafeTransferFrom(opts *bind.TransactOpts, from common.Address, to common.Address, tokenId *big.Int) (*types.Transaction, error) {
 22805  	return _ERC721Metadata.contract.Transact(opts, "safeTransferFrom", from, to, tokenId)
 22806  }
 22807  
 22808  // SafeTransferFrom is a paid mutator transaction binding the contract method 0x42842e0e.
 22809  //
 22810  // Solidity: function safeTransferFrom(address from, address to, uint256 tokenId) returns()
 22811  func (_ERC721Metadata *ERC721MetadataSession) SafeTransferFrom(from common.Address, to common.Address, tokenId *big.Int) (*types.Transaction, error) {
 22812  	return _ERC721Metadata.Contract.SafeTransferFrom(&_ERC721Metadata.TransactOpts, from, to, tokenId)
 22813  }
 22814  
 22815  // SafeTransferFrom is a paid mutator transaction binding the contract method 0x42842e0e.
 22816  //
 22817  // Solidity: function safeTransferFrom(address from, address to, uint256 tokenId) returns()
 22818  func (_ERC721Metadata *ERC721MetadataTransactorSession) SafeTransferFrom(from common.Address, to common.Address, tokenId *big.Int) (*types.Transaction, error) {
 22819  	return _ERC721Metadata.Contract.SafeTransferFrom(&_ERC721Metadata.TransactOpts, from, to, tokenId)
 22820  }
 22821  
 22822  // SafeTransferFrom0 is a paid mutator transaction binding the contract method 0xb88d4fde.
 22823  //
 22824  // Solidity: function safeTransferFrom(address from, address to, uint256 tokenId, bytes _data) returns()
 22825  func (_ERC721Metadata *ERC721MetadataTransactor) SafeTransferFrom0(opts *bind.TransactOpts, from common.Address, to common.Address, tokenId *big.Int, _data []byte) (*types.Transaction, error) {
 22826  	return _ERC721Metadata.contract.Transact(opts, "safeTransferFrom0", from, to, tokenId, _data)
 22827  }
 22828  
 22829  // SafeTransferFrom0 is a paid mutator transaction binding the contract method 0xb88d4fde.
 22830  //
 22831  // Solidity: function safeTransferFrom(address from, address to, uint256 tokenId, bytes _data) returns()
 22832  func (_ERC721Metadata *ERC721MetadataSession) SafeTransferFrom0(from common.Address, to common.Address, tokenId *big.Int, _data []byte) (*types.Transaction, error) {
 22833  	return _ERC721Metadata.Contract.SafeTransferFrom0(&_ERC721Metadata.TransactOpts, from, to, tokenId, _data)
 22834  }
 22835  
 22836  // SafeTransferFrom0 is a paid mutator transaction binding the contract method 0xb88d4fde.
 22837  //
 22838  // Solidity: function safeTransferFrom(address from, address to, uint256 tokenId, bytes _data) returns()
 22839  func (_ERC721Metadata *ERC721MetadataTransactorSession) SafeTransferFrom0(from common.Address, to common.Address, tokenId *big.Int, _data []byte) (*types.Transaction, error) {
 22840  	return _ERC721Metadata.Contract.SafeTransferFrom0(&_ERC721Metadata.TransactOpts, from, to, tokenId, _data)
 22841  }
 22842  
 22843  // SetApprovalForAll is a paid mutator transaction binding the contract method 0xa22cb465.
 22844  //
 22845  // Solidity: function setApprovalForAll(address to, bool approved) returns()
 22846  func (_ERC721Metadata *ERC721MetadataTransactor) SetApprovalForAll(opts *bind.TransactOpts, to common.Address, approved bool) (*types.Transaction, error) {
 22847  	return _ERC721Metadata.contract.Transact(opts, "setApprovalForAll", to, approved)
 22848  }
 22849  
 22850  // SetApprovalForAll is a paid mutator transaction binding the contract method 0xa22cb465.
 22851  //
 22852  // Solidity: function setApprovalForAll(address to, bool approved) returns()
 22853  func (_ERC721Metadata *ERC721MetadataSession) SetApprovalForAll(to common.Address, approved bool) (*types.Transaction, error) {
 22854  	return _ERC721Metadata.Contract.SetApprovalForAll(&_ERC721Metadata.TransactOpts, to, approved)
 22855  }
 22856  
 22857  // SetApprovalForAll is a paid mutator transaction binding the contract method 0xa22cb465.
 22858  //
 22859  // Solidity: function setApprovalForAll(address to, bool approved) returns()
 22860  func (_ERC721Metadata *ERC721MetadataTransactorSession) SetApprovalForAll(to common.Address, approved bool) (*types.Transaction, error) {
 22861  	return _ERC721Metadata.Contract.SetApprovalForAll(&_ERC721Metadata.TransactOpts, to, approved)
 22862  }
 22863  
 22864  // TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd.
 22865  //
 22866  // Solidity: function transferFrom(address from, address to, uint256 tokenId) returns()
 22867  func (_ERC721Metadata *ERC721MetadataTransactor) TransferFrom(opts *bind.TransactOpts, from common.Address, to common.Address, tokenId *big.Int) (*types.Transaction, error) {
 22868  	return _ERC721Metadata.contract.Transact(opts, "transferFrom", from, to, tokenId)
 22869  }
 22870  
 22871  // TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd.
 22872  //
 22873  // Solidity: function transferFrom(address from, address to, uint256 tokenId) returns()
 22874  func (_ERC721Metadata *ERC721MetadataSession) TransferFrom(from common.Address, to common.Address, tokenId *big.Int) (*types.Transaction, error) {
 22875  	return _ERC721Metadata.Contract.TransferFrom(&_ERC721Metadata.TransactOpts, from, to, tokenId)
 22876  }
 22877  
 22878  // TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd.
 22879  //
 22880  // Solidity: function transferFrom(address from, address to, uint256 tokenId) returns()
 22881  func (_ERC721Metadata *ERC721MetadataTransactorSession) TransferFrom(from common.Address, to common.Address, tokenId *big.Int) (*types.Transaction, error) {
 22882  	return _ERC721Metadata.Contract.TransferFrom(&_ERC721Metadata.TransactOpts, from, to, tokenId)
 22883  }
 22884  
 22885  // ERC721MetadataApprovalIterator is returned from FilterApproval and is used to iterate over the raw logs and unpacked data for Approval events raised by the ERC721Metadata contract.
 22886  type ERC721MetadataApprovalIterator struct {
 22887  	Event *ERC721MetadataApproval // Event containing the contract specifics and raw log
 22888  
 22889  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 22890  	event    string              // Event name to use for unpacking event data
 22891  
 22892  	logs chan types.Log      // Log channel receiving the found contract events
 22893  	sub  klaytn.Subscription // Subscription for errors, completion and termination
 22894  	done bool                // Whether the subscription completed delivering logs
 22895  	fail error               // Occurred error to stop iteration
 22896  }
 22897  
 22898  // Next advances the iterator to the subsequent event, returning whether there
 22899  // are any more events found. In case of a retrieval or parsing error, false is
 22900  // returned and Error() can be queried for the exact failure.
 22901  func (it *ERC721MetadataApprovalIterator) Next() bool {
 22902  	// If the iterator failed, stop iterating
 22903  	if it.fail != nil {
 22904  		return false
 22905  	}
 22906  	// If the iterator completed, deliver directly whatever's available
 22907  	if it.done {
 22908  		select {
 22909  		case log := <-it.logs:
 22910  			it.Event = new(ERC721MetadataApproval)
 22911  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 22912  				it.fail = err
 22913  				return false
 22914  			}
 22915  			it.Event.Raw = log
 22916  			return true
 22917  
 22918  		default:
 22919  			return false
 22920  		}
 22921  	}
 22922  	// Iterator still in progress, wait for either a data or an error event
 22923  	select {
 22924  	case log := <-it.logs:
 22925  		it.Event = new(ERC721MetadataApproval)
 22926  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 22927  			it.fail = err
 22928  			return false
 22929  		}
 22930  		it.Event.Raw = log
 22931  		return true
 22932  
 22933  	case err := <-it.sub.Err():
 22934  		it.done = true
 22935  		it.fail = err
 22936  		return it.Next()
 22937  	}
 22938  }
 22939  
 22940  // Error returns any retrieval or parsing error occurred during filtering.
 22941  func (it *ERC721MetadataApprovalIterator) Error() error {
 22942  	return it.fail
 22943  }
 22944  
 22945  // Close terminates the iteration process, releasing any pending underlying
 22946  // resources.
 22947  func (it *ERC721MetadataApprovalIterator) Close() error {
 22948  	it.sub.Unsubscribe()
 22949  	return nil
 22950  }
 22951  
 22952  // ERC721MetadataApproval represents a Approval event raised by the ERC721Metadata contract.
 22953  type ERC721MetadataApproval struct {
 22954  	Owner    common.Address
 22955  	Approved common.Address
 22956  	TokenId  *big.Int
 22957  	Raw      types.Log // Blockchain specific contextual infos
 22958  }
 22959  
 22960  // FilterApproval is a free log retrieval operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925.
 22961  //
 22962  // Solidity: event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId)
 22963  func (_ERC721Metadata *ERC721MetadataFilterer) FilterApproval(opts *bind.FilterOpts, owner []common.Address, approved []common.Address, tokenId []*big.Int) (*ERC721MetadataApprovalIterator, error) {
 22964  
 22965  	var ownerRule []interface{}
 22966  	for _, ownerItem := range owner {
 22967  		ownerRule = append(ownerRule, ownerItem)
 22968  	}
 22969  	var approvedRule []interface{}
 22970  	for _, approvedItem := range approved {
 22971  		approvedRule = append(approvedRule, approvedItem)
 22972  	}
 22973  	var tokenIdRule []interface{}
 22974  	for _, tokenIdItem := range tokenId {
 22975  		tokenIdRule = append(tokenIdRule, tokenIdItem)
 22976  	}
 22977  
 22978  	logs, sub, err := _ERC721Metadata.contract.FilterLogs(opts, "Approval", ownerRule, approvedRule, tokenIdRule)
 22979  	if err != nil {
 22980  		return nil, err
 22981  	}
 22982  	return &ERC721MetadataApprovalIterator{contract: _ERC721Metadata.contract, event: "Approval", logs: logs, sub: sub}, nil
 22983  }
 22984  
 22985  // WatchApproval is a free log subscription operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925.
 22986  //
 22987  // Solidity: event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId)
 22988  func (_ERC721Metadata *ERC721MetadataFilterer) WatchApproval(opts *bind.WatchOpts, sink chan<- *ERC721MetadataApproval, owner []common.Address, approved []common.Address, tokenId []*big.Int) (event.Subscription, error) {
 22989  
 22990  	var ownerRule []interface{}
 22991  	for _, ownerItem := range owner {
 22992  		ownerRule = append(ownerRule, ownerItem)
 22993  	}
 22994  	var approvedRule []interface{}
 22995  	for _, approvedItem := range approved {
 22996  		approvedRule = append(approvedRule, approvedItem)
 22997  	}
 22998  	var tokenIdRule []interface{}
 22999  	for _, tokenIdItem := range tokenId {
 23000  		tokenIdRule = append(tokenIdRule, tokenIdItem)
 23001  	}
 23002  
 23003  	logs, sub, err := _ERC721Metadata.contract.WatchLogs(opts, "Approval", ownerRule, approvedRule, tokenIdRule)
 23004  	if err != nil {
 23005  		return nil, err
 23006  	}
 23007  	return event.NewSubscription(func(quit <-chan struct{}) error {
 23008  		defer sub.Unsubscribe()
 23009  		for {
 23010  			select {
 23011  			case log := <-logs:
 23012  				// New log arrived, parse the event and forward to the user
 23013  				event := new(ERC721MetadataApproval)
 23014  				if err := _ERC721Metadata.contract.UnpackLog(event, "Approval", log); err != nil {
 23015  					return err
 23016  				}
 23017  				event.Raw = log
 23018  
 23019  				select {
 23020  				case sink <- event:
 23021  				case err := <-sub.Err():
 23022  					return err
 23023  				case <-quit:
 23024  					return nil
 23025  				}
 23026  			case err := <-sub.Err():
 23027  				return err
 23028  			case <-quit:
 23029  				return nil
 23030  			}
 23031  		}
 23032  	}), nil
 23033  }
 23034  
 23035  // ParseApproval is a log parse operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925.
 23036  //
 23037  // Solidity: event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId)
 23038  func (_ERC721Metadata *ERC721MetadataFilterer) ParseApproval(log types.Log) (*ERC721MetadataApproval, error) {
 23039  	event := new(ERC721MetadataApproval)
 23040  	if err := _ERC721Metadata.contract.UnpackLog(event, "Approval", log); err != nil {
 23041  		return nil, err
 23042  	}
 23043  	return event, nil
 23044  }
 23045  
 23046  // ERC721MetadataApprovalForAllIterator is returned from FilterApprovalForAll and is used to iterate over the raw logs and unpacked data for ApprovalForAll events raised by the ERC721Metadata contract.
 23047  type ERC721MetadataApprovalForAllIterator struct {
 23048  	Event *ERC721MetadataApprovalForAll // Event containing the contract specifics and raw log
 23049  
 23050  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 23051  	event    string              // Event name to use for unpacking event data
 23052  
 23053  	logs chan types.Log      // Log channel receiving the found contract events
 23054  	sub  klaytn.Subscription // Subscription for errors, completion and termination
 23055  	done bool                // Whether the subscription completed delivering logs
 23056  	fail error               // Occurred error to stop iteration
 23057  }
 23058  
 23059  // Next advances the iterator to the subsequent event, returning whether there
 23060  // are any more events found. In case of a retrieval or parsing error, false is
 23061  // returned and Error() can be queried for the exact failure.
 23062  func (it *ERC721MetadataApprovalForAllIterator) Next() bool {
 23063  	// If the iterator failed, stop iterating
 23064  	if it.fail != nil {
 23065  		return false
 23066  	}
 23067  	// If the iterator completed, deliver directly whatever's available
 23068  	if it.done {
 23069  		select {
 23070  		case log := <-it.logs:
 23071  			it.Event = new(ERC721MetadataApprovalForAll)
 23072  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 23073  				it.fail = err
 23074  				return false
 23075  			}
 23076  			it.Event.Raw = log
 23077  			return true
 23078  
 23079  		default:
 23080  			return false
 23081  		}
 23082  	}
 23083  	// Iterator still in progress, wait for either a data or an error event
 23084  	select {
 23085  	case log := <-it.logs:
 23086  		it.Event = new(ERC721MetadataApprovalForAll)
 23087  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 23088  			it.fail = err
 23089  			return false
 23090  		}
 23091  		it.Event.Raw = log
 23092  		return true
 23093  
 23094  	case err := <-it.sub.Err():
 23095  		it.done = true
 23096  		it.fail = err
 23097  		return it.Next()
 23098  	}
 23099  }
 23100  
 23101  // Error returns any retrieval or parsing error occurred during filtering.
 23102  func (it *ERC721MetadataApprovalForAllIterator) Error() error {
 23103  	return it.fail
 23104  }
 23105  
 23106  // Close terminates the iteration process, releasing any pending underlying
 23107  // resources.
 23108  func (it *ERC721MetadataApprovalForAllIterator) Close() error {
 23109  	it.sub.Unsubscribe()
 23110  	return nil
 23111  }
 23112  
 23113  // ERC721MetadataApprovalForAll represents a ApprovalForAll event raised by the ERC721Metadata contract.
 23114  type ERC721MetadataApprovalForAll struct {
 23115  	Owner    common.Address
 23116  	Operator common.Address
 23117  	Approved bool
 23118  	Raw      types.Log // Blockchain specific contextual infos
 23119  }
 23120  
 23121  // FilterApprovalForAll is a free log retrieval operation binding the contract event 0x17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31.
 23122  //
 23123  // Solidity: event ApprovalForAll(address indexed owner, address indexed operator, bool approved)
 23124  func (_ERC721Metadata *ERC721MetadataFilterer) FilterApprovalForAll(opts *bind.FilterOpts, owner []common.Address, operator []common.Address) (*ERC721MetadataApprovalForAllIterator, error) {
 23125  
 23126  	var ownerRule []interface{}
 23127  	for _, ownerItem := range owner {
 23128  		ownerRule = append(ownerRule, ownerItem)
 23129  	}
 23130  	var operatorRule []interface{}
 23131  	for _, operatorItem := range operator {
 23132  		operatorRule = append(operatorRule, operatorItem)
 23133  	}
 23134  
 23135  	logs, sub, err := _ERC721Metadata.contract.FilterLogs(opts, "ApprovalForAll", ownerRule, operatorRule)
 23136  	if err != nil {
 23137  		return nil, err
 23138  	}
 23139  	return &ERC721MetadataApprovalForAllIterator{contract: _ERC721Metadata.contract, event: "ApprovalForAll", logs: logs, sub: sub}, nil
 23140  }
 23141  
 23142  // WatchApprovalForAll is a free log subscription operation binding the contract event 0x17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31.
 23143  //
 23144  // Solidity: event ApprovalForAll(address indexed owner, address indexed operator, bool approved)
 23145  func (_ERC721Metadata *ERC721MetadataFilterer) WatchApprovalForAll(opts *bind.WatchOpts, sink chan<- *ERC721MetadataApprovalForAll, owner []common.Address, operator []common.Address) (event.Subscription, error) {
 23146  
 23147  	var ownerRule []interface{}
 23148  	for _, ownerItem := range owner {
 23149  		ownerRule = append(ownerRule, ownerItem)
 23150  	}
 23151  	var operatorRule []interface{}
 23152  	for _, operatorItem := range operator {
 23153  		operatorRule = append(operatorRule, operatorItem)
 23154  	}
 23155  
 23156  	logs, sub, err := _ERC721Metadata.contract.WatchLogs(opts, "ApprovalForAll", ownerRule, operatorRule)
 23157  	if err != nil {
 23158  		return nil, err
 23159  	}
 23160  	return event.NewSubscription(func(quit <-chan struct{}) error {
 23161  		defer sub.Unsubscribe()
 23162  		for {
 23163  			select {
 23164  			case log := <-logs:
 23165  				// New log arrived, parse the event and forward to the user
 23166  				event := new(ERC721MetadataApprovalForAll)
 23167  				if err := _ERC721Metadata.contract.UnpackLog(event, "ApprovalForAll", log); err != nil {
 23168  					return err
 23169  				}
 23170  				event.Raw = log
 23171  
 23172  				select {
 23173  				case sink <- event:
 23174  				case err := <-sub.Err():
 23175  					return err
 23176  				case <-quit:
 23177  					return nil
 23178  				}
 23179  			case err := <-sub.Err():
 23180  				return err
 23181  			case <-quit:
 23182  				return nil
 23183  			}
 23184  		}
 23185  	}), nil
 23186  }
 23187  
 23188  // ParseApprovalForAll is a log parse operation binding the contract event 0x17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31.
 23189  //
 23190  // Solidity: event ApprovalForAll(address indexed owner, address indexed operator, bool approved)
 23191  func (_ERC721Metadata *ERC721MetadataFilterer) ParseApprovalForAll(log types.Log) (*ERC721MetadataApprovalForAll, error) {
 23192  	event := new(ERC721MetadataApprovalForAll)
 23193  	if err := _ERC721Metadata.contract.UnpackLog(event, "ApprovalForAll", log); err != nil {
 23194  		return nil, err
 23195  	}
 23196  	return event, nil
 23197  }
 23198  
 23199  // ERC721MetadataTransferIterator is returned from FilterTransfer and is used to iterate over the raw logs and unpacked data for Transfer events raised by the ERC721Metadata contract.
 23200  type ERC721MetadataTransferIterator struct {
 23201  	Event *ERC721MetadataTransfer // Event containing the contract specifics and raw log
 23202  
 23203  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 23204  	event    string              // Event name to use for unpacking event data
 23205  
 23206  	logs chan types.Log      // Log channel receiving the found contract events
 23207  	sub  klaytn.Subscription // Subscription for errors, completion and termination
 23208  	done bool                // Whether the subscription completed delivering logs
 23209  	fail error               // Occurred error to stop iteration
 23210  }
 23211  
 23212  // Next advances the iterator to the subsequent event, returning whether there
 23213  // are any more events found. In case of a retrieval or parsing error, false is
 23214  // returned and Error() can be queried for the exact failure.
 23215  func (it *ERC721MetadataTransferIterator) Next() bool {
 23216  	// If the iterator failed, stop iterating
 23217  	if it.fail != nil {
 23218  		return false
 23219  	}
 23220  	// If the iterator completed, deliver directly whatever's available
 23221  	if it.done {
 23222  		select {
 23223  		case log := <-it.logs:
 23224  			it.Event = new(ERC721MetadataTransfer)
 23225  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 23226  				it.fail = err
 23227  				return false
 23228  			}
 23229  			it.Event.Raw = log
 23230  			return true
 23231  
 23232  		default:
 23233  			return false
 23234  		}
 23235  	}
 23236  	// Iterator still in progress, wait for either a data or an error event
 23237  	select {
 23238  	case log := <-it.logs:
 23239  		it.Event = new(ERC721MetadataTransfer)
 23240  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 23241  			it.fail = err
 23242  			return false
 23243  		}
 23244  		it.Event.Raw = log
 23245  		return true
 23246  
 23247  	case err := <-it.sub.Err():
 23248  		it.done = true
 23249  		it.fail = err
 23250  		return it.Next()
 23251  	}
 23252  }
 23253  
 23254  // Error returns any retrieval or parsing error occurred during filtering.
 23255  func (it *ERC721MetadataTransferIterator) Error() error {
 23256  	return it.fail
 23257  }
 23258  
 23259  // Close terminates the iteration process, releasing any pending underlying
 23260  // resources.
 23261  func (it *ERC721MetadataTransferIterator) Close() error {
 23262  	it.sub.Unsubscribe()
 23263  	return nil
 23264  }
 23265  
 23266  // ERC721MetadataTransfer represents a Transfer event raised by the ERC721Metadata contract.
 23267  type ERC721MetadataTransfer struct {
 23268  	From    common.Address
 23269  	To      common.Address
 23270  	TokenId *big.Int
 23271  	Raw     types.Log // Blockchain specific contextual infos
 23272  }
 23273  
 23274  // FilterTransfer is a free log retrieval operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef.
 23275  //
 23276  // Solidity: event Transfer(address indexed from, address indexed to, uint256 indexed tokenId)
 23277  func (_ERC721Metadata *ERC721MetadataFilterer) FilterTransfer(opts *bind.FilterOpts, from []common.Address, to []common.Address, tokenId []*big.Int) (*ERC721MetadataTransferIterator, error) {
 23278  
 23279  	var fromRule []interface{}
 23280  	for _, fromItem := range from {
 23281  		fromRule = append(fromRule, fromItem)
 23282  	}
 23283  	var toRule []interface{}
 23284  	for _, toItem := range to {
 23285  		toRule = append(toRule, toItem)
 23286  	}
 23287  	var tokenIdRule []interface{}
 23288  	for _, tokenIdItem := range tokenId {
 23289  		tokenIdRule = append(tokenIdRule, tokenIdItem)
 23290  	}
 23291  
 23292  	logs, sub, err := _ERC721Metadata.contract.FilterLogs(opts, "Transfer", fromRule, toRule, tokenIdRule)
 23293  	if err != nil {
 23294  		return nil, err
 23295  	}
 23296  	return &ERC721MetadataTransferIterator{contract: _ERC721Metadata.contract, event: "Transfer", logs: logs, sub: sub}, nil
 23297  }
 23298  
 23299  // WatchTransfer is a free log subscription operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef.
 23300  //
 23301  // Solidity: event Transfer(address indexed from, address indexed to, uint256 indexed tokenId)
 23302  func (_ERC721Metadata *ERC721MetadataFilterer) WatchTransfer(opts *bind.WatchOpts, sink chan<- *ERC721MetadataTransfer, from []common.Address, to []common.Address, tokenId []*big.Int) (event.Subscription, error) {
 23303  
 23304  	var fromRule []interface{}
 23305  	for _, fromItem := range from {
 23306  		fromRule = append(fromRule, fromItem)
 23307  	}
 23308  	var toRule []interface{}
 23309  	for _, toItem := range to {
 23310  		toRule = append(toRule, toItem)
 23311  	}
 23312  	var tokenIdRule []interface{}
 23313  	for _, tokenIdItem := range tokenId {
 23314  		tokenIdRule = append(tokenIdRule, tokenIdItem)
 23315  	}
 23316  
 23317  	logs, sub, err := _ERC721Metadata.contract.WatchLogs(opts, "Transfer", fromRule, toRule, tokenIdRule)
 23318  	if err != nil {
 23319  		return nil, err
 23320  	}
 23321  	return event.NewSubscription(func(quit <-chan struct{}) error {
 23322  		defer sub.Unsubscribe()
 23323  		for {
 23324  			select {
 23325  			case log := <-logs:
 23326  				// New log arrived, parse the event and forward to the user
 23327  				event := new(ERC721MetadataTransfer)
 23328  				if err := _ERC721Metadata.contract.UnpackLog(event, "Transfer", log); err != nil {
 23329  					return err
 23330  				}
 23331  				event.Raw = log
 23332  
 23333  				select {
 23334  				case sink <- event:
 23335  				case err := <-sub.Err():
 23336  					return err
 23337  				case <-quit:
 23338  					return nil
 23339  				}
 23340  			case err := <-sub.Err():
 23341  				return err
 23342  			case <-quit:
 23343  				return nil
 23344  			}
 23345  		}
 23346  	}), nil
 23347  }
 23348  
 23349  // ParseTransfer is a log parse operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef.
 23350  //
 23351  // Solidity: event Transfer(address indexed from, address indexed to, uint256 indexed tokenId)
 23352  func (_ERC721Metadata *ERC721MetadataFilterer) ParseTransfer(log types.Log) (*ERC721MetadataTransfer, error) {
 23353  	event := new(ERC721MetadataTransfer)
 23354  	if err := _ERC721Metadata.contract.UnpackLog(event, "Transfer", log); err != nil {
 23355  		return nil, err
 23356  	}
 23357  	return event, nil
 23358  }
 23359  
 23360  // ERC721MetadataMintableMetaData contains all meta data concerning the ERC721MetadataMintable contract.
 23361  var ERC721MetadataMintableMetaData = &bind.MetaData{
 23362  	ABI: "[{\"constant\":true,\"inputs\":[{\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"to\",\"type\":\"address\"},{\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"from\",\"type\":\"address\"},{\"name\":\"to\",\"type\":\"address\"},{\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"from\",\"type\":\"address\"},{\"name\":\"to\",\"type\":\"address\"},{\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"to\",\"type\":\"address\"},{\"name\":\"tokenId\",\"type\":\"uint256\"},{\"name\":\"tokenURI\",\"type\":\"string\"}],\"name\":\"mintWithTokenURI\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"account\",\"type\":\"address\"}],\"name\":\"addMinter\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"renounceMinter\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"to\",\"type\":\"address\"},{\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"account\",\"type\":\"address\"}],\"name\":\"isMinter\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"from\",\"type\":\"address\"},{\"name\":\"to\",\"type\":\"address\"},{\"name\":\"tokenId\",\"type\":\"uint256\"},{\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"owner\",\"type\":\"address\"},{\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"account\",\"type\":\"address\"}],\"name\":\"MinterAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"account\",\"type\":\"address\"}],\"name\":\"MinterRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"}]",
 23363  	Sigs: map[string]string{
 23364  		"983b2d56": "addMinter(address)",
 23365  		"095ea7b3": "approve(address,uint256)",
 23366  		"70a08231": "balanceOf(address)",
 23367  		"081812fc": "getApproved(uint256)",
 23368  		"e985e9c5": "isApprovedForAll(address,address)",
 23369  		"aa271e1a": "isMinter(address)",
 23370  		"50bb4e7f": "mintWithTokenURI(address,uint256,string)",
 23371  		"06fdde03": "name()",
 23372  		"6352211e": "ownerOf(uint256)",
 23373  		"98650275": "renounceMinter()",
 23374  		"42842e0e": "safeTransferFrom(address,address,uint256)",
 23375  		"b88d4fde": "safeTransferFrom(address,address,uint256,bytes)",
 23376  		"a22cb465": "setApprovalForAll(address,bool)",
 23377  		"01ffc9a7": "supportsInterface(bytes4)",
 23378  		"95d89b41": "symbol()",
 23379  		"c87b56dd": "tokenURI(uint256)",
 23380  		"23b872dd": "transferFrom(address,address,uint256)",
 23381  	},
 23382  }
 23383  
 23384  // ERC721MetadataMintableABI is the input ABI used to generate the binding from.
 23385  // Deprecated: Use ERC721MetadataMintableMetaData.ABI instead.
 23386  var ERC721MetadataMintableABI = ERC721MetadataMintableMetaData.ABI
 23387  
 23388  // ERC721MetadataMintableBinRuntime is the compiled bytecode used for adding genesis block without deploying code.
 23389  const ERC721MetadataMintableBinRuntime = ``
 23390  
 23391  // ERC721MetadataMintableFuncSigs maps the 4-byte function signature to its string representation.
 23392  // Deprecated: Use ERC721MetadataMintableMetaData.Sigs instead.
 23393  var ERC721MetadataMintableFuncSigs = ERC721MetadataMintableMetaData.Sigs
 23394  
 23395  // ERC721MetadataMintable is an auto generated Go binding around a Klaytn contract.
 23396  type ERC721MetadataMintable struct {
 23397  	ERC721MetadataMintableCaller     // Read-only binding to the contract
 23398  	ERC721MetadataMintableTransactor // Write-only binding to the contract
 23399  	ERC721MetadataMintableFilterer   // Log filterer for contract events
 23400  }
 23401  
 23402  // ERC721MetadataMintableCaller is an auto generated read-only Go binding around a Klaytn contract.
 23403  type ERC721MetadataMintableCaller struct {
 23404  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 23405  }
 23406  
 23407  // ERC721MetadataMintableTransactor is an auto generated write-only Go binding around a Klaytn contract.
 23408  type ERC721MetadataMintableTransactor struct {
 23409  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 23410  }
 23411  
 23412  // ERC721MetadataMintableFilterer is an auto generated log filtering Go binding around a Klaytn contract events.
 23413  type ERC721MetadataMintableFilterer struct {
 23414  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 23415  }
 23416  
 23417  // ERC721MetadataMintableSession is an auto generated Go binding around a Klaytn contract,
 23418  // with pre-set call and transact options.
 23419  type ERC721MetadataMintableSession struct {
 23420  	Contract     *ERC721MetadataMintable // Generic contract binding to set the session for
 23421  	CallOpts     bind.CallOpts           // Call options to use throughout this session
 23422  	TransactOpts bind.TransactOpts       // Transaction auth options to use throughout this session
 23423  }
 23424  
 23425  // ERC721MetadataMintableCallerSession is an auto generated read-only Go binding around a Klaytn contract,
 23426  // with pre-set call options.
 23427  type ERC721MetadataMintableCallerSession struct {
 23428  	Contract *ERC721MetadataMintableCaller // Generic contract caller binding to set the session for
 23429  	CallOpts bind.CallOpts                 // Call options to use throughout this session
 23430  }
 23431  
 23432  // ERC721MetadataMintableTransactorSession is an auto generated write-only Go binding around a Klaytn contract,
 23433  // with pre-set transact options.
 23434  type ERC721MetadataMintableTransactorSession struct {
 23435  	Contract     *ERC721MetadataMintableTransactor // Generic contract transactor binding to set the session for
 23436  	TransactOpts bind.TransactOpts                 // Transaction auth options to use throughout this session
 23437  }
 23438  
 23439  // ERC721MetadataMintableRaw is an auto generated low-level Go binding around a Klaytn contract.
 23440  type ERC721MetadataMintableRaw struct {
 23441  	Contract *ERC721MetadataMintable // Generic contract binding to access the raw methods on
 23442  }
 23443  
 23444  // ERC721MetadataMintableCallerRaw is an auto generated low-level read-only Go binding around a Klaytn contract.
 23445  type ERC721MetadataMintableCallerRaw struct {
 23446  	Contract *ERC721MetadataMintableCaller // Generic read-only contract binding to access the raw methods on
 23447  }
 23448  
 23449  // ERC721MetadataMintableTransactorRaw is an auto generated low-level write-only Go binding around a Klaytn contract.
 23450  type ERC721MetadataMintableTransactorRaw struct {
 23451  	Contract *ERC721MetadataMintableTransactor // Generic write-only contract binding to access the raw methods on
 23452  }
 23453  
 23454  // NewERC721MetadataMintable creates a new instance of ERC721MetadataMintable, bound to a specific deployed contract.
 23455  func NewERC721MetadataMintable(address common.Address, backend bind.ContractBackend) (*ERC721MetadataMintable, error) {
 23456  	contract, err := bindERC721MetadataMintable(address, backend, backend, backend)
 23457  	if err != nil {
 23458  		return nil, err
 23459  	}
 23460  	return &ERC721MetadataMintable{ERC721MetadataMintableCaller: ERC721MetadataMintableCaller{contract: contract}, ERC721MetadataMintableTransactor: ERC721MetadataMintableTransactor{contract: contract}, ERC721MetadataMintableFilterer: ERC721MetadataMintableFilterer{contract: contract}}, nil
 23461  }
 23462  
 23463  // NewERC721MetadataMintableCaller creates a new read-only instance of ERC721MetadataMintable, bound to a specific deployed contract.
 23464  func NewERC721MetadataMintableCaller(address common.Address, caller bind.ContractCaller) (*ERC721MetadataMintableCaller, error) {
 23465  	contract, err := bindERC721MetadataMintable(address, caller, nil, nil)
 23466  	if err != nil {
 23467  		return nil, err
 23468  	}
 23469  	return &ERC721MetadataMintableCaller{contract: contract}, nil
 23470  }
 23471  
 23472  // NewERC721MetadataMintableTransactor creates a new write-only instance of ERC721MetadataMintable, bound to a specific deployed contract.
 23473  func NewERC721MetadataMintableTransactor(address common.Address, transactor bind.ContractTransactor) (*ERC721MetadataMintableTransactor, error) {
 23474  	contract, err := bindERC721MetadataMintable(address, nil, transactor, nil)
 23475  	if err != nil {
 23476  		return nil, err
 23477  	}
 23478  	return &ERC721MetadataMintableTransactor{contract: contract}, nil
 23479  }
 23480  
 23481  // NewERC721MetadataMintableFilterer creates a new log filterer instance of ERC721MetadataMintable, bound to a specific deployed contract.
 23482  func NewERC721MetadataMintableFilterer(address common.Address, filterer bind.ContractFilterer) (*ERC721MetadataMintableFilterer, error) {
 23483  	contract, err := bindERC721MetadataMintable(address, nil, nil, filterer)
 23484  	if err != nil {
 23485  		return nil, err
 23486  	}
 23487  	return &ERC721MetadataMintableFilterer{contract: contract}, nil
 23488  }
 23489  
 23490  // bindERC721MetadataMintable binds a generic wrapper to an already deployed contract.
 23491  func bindERC721MetadataMintable(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
 23492  	parsed, err := ERC721MetadataMintableMetaData.GetAbi()
 23493  	if err != nil {
 23494  		return nil, err
 23495  	}
 23496  	return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil
 23497  }
 23498  
 23499  // Call invokes the (constant) contract method with params as input values and
 23500  // sets the output to result. The result type might be a single field for simple
 23501  // returns, a slice of interfaces for anonymous returns and a struct for named
 23502  // returns.
 23503  func (_ERC721MetadataMintable *ERC721MetadataMintableRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
 23504  	return _ERC721MetadataMintable.Contract.ERC721MetadataMintableCaller.contract.Call(opts, result, method, params...)
 23505  }
 23506  
 23507  // Transfer initiates a plain transaction to move funds to the contract, calling
 23508  // its default method if one is available.
 23509  func (_ERC721MetadataMintable *ERC721MetadataMintableRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
 23510  	return _ERC721MetadataMintable.Contract.ERC721MetadataMintableTransactor.contract.Transfer(opts)
 23511  }
 23512  
 23513  // Transact invokes the (paid) contract method with params as input values.
 23514  func (_ERC721MetadataMintable *ERC721MetadataMintableRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
 23515  	return _ERC721MetadataMintable.Contract.ERC721MetadataMintableTransactor.contract.Transact(opts, method, params...)
 23516  }
 23517  
 23518  // Call invokes the (constant) contract method with params as input values and
 23519  // sets the output to result. The result type might be a single field for simple
 23520  // returns, a slice of interfaces for anonymous returns and a struct for named
 23521  // returns.
 23522  func (_ERC721MetadataMintable *ERC721MetadataMintableCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
 23523  	return _ERC721MetadataMintable.Contract.contract.Call(opts, result, method, params...)
 23524  }
 23525  
 23526  // Transfer initiates a plain transaction to move funds to the contract, calling
 23527  // its default method if one is available.
 23528  func (_ERC721MetadataMintable *ERC721MetadataMintableTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
 23529  	return _ERC721MetadataMintable.Contract.contract.Transfer(opts)
 23530  }
 23531  
 23532  // Transact invokes the (paid) contract method with params as input values.
 23533  func (_ERC721MetadataMintable *ERC721MetadataMintableTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
 23534  	return _ERC721MetadataMintable.Contract.contract.Transact(opts, method, params...)
 23535  }
 23536  
 23537  // BalanceOf is a free data retrieval call binding the contract method 0x70a08231.
 23538  //
 23539  // Solidity: function balanceOf(address owner) view returns(uint256)
 23540  func (_ERC721MetadataMintable *ERC721MetadataMintableCaller) BalanceOf(opts *bind.CallOpts, owner common.Address) (*big.Int, error) {
 23541  	var out []interface{}
 23542  	err := _ERC721MetadataMintable.contract.Call(opts, &out, "balanceOf", owner)
 23543  
 23544  	if err != nil {
 23545  		return *new(*big.Int), err
 23546  	}
 23547  
 23548  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
 23549  
 23550  	return out0, err
 23551  
 23552  }
 23553  
 23554  // BalanceOf is a free data retrieval call binding the contract method 0x70a08231.
 23555  //
 23556  // Solidity: function balanceOf(address owner) view returns(uint256)
 23557  func (_ERC721MetadataMintable *ERC721MetadataMintableSession) BalanceOf(owner common.Address) (*big.Int, error) {
 23558  	return _ERC721MetadataMintable.Contract.BalanceOf(&_ERC721MetadataMintable.CallOpts, owner)
 23559  }
 23560  
 23561  // BalanceOf is a free data retrieval call binding the contract method 0x70a08231.
 23562  //
 23563  // Solidity: function balanceOf(address owner) view returns(uint256)
 23564  func (_ERC721MetadataMintable *ERC721MetadataMintableCallerSession) BalanceOf(owner common.Address) (*big.Int, error) {
 23565  	return _ERC721MetadataMintable.Contract.BalanceOf(&_ERC721MetadataMintable.CallOpts, owner)
 23566  }
 23567  
 23568  // GetApproved is a free data retrieval call binding the contract method 0x081812fc.
 23569  //
 23570  // Solidity: function getApproved(uint256 tokenId) view returns(address)
 23571  func (_ERC721MetadataMintable *ERC721MetadataMintableCaller) GetApproved(opts *bind.CallOpts, tokenId *big.Int) (common.Address, error) {
 23572  	var out []interface{}
 23573  	err := _ERC721MetadataMintable.contract.Call(opts, &out, "getApproved", tokenId)
 23574  
 23575  	if err != nil {
 23576  		return *new(common.Address), err
 23577  	}
 23578  
 23579  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
 23580  
 23581  	return out0, err
 23582  
 23583  }
 23584  
 23585  // GetApproved is a free data retrieval call binding the contract method 0x081812fc.
 23586  //
 23587  // Solidity: function getApproved(uint256 tokenId) view returns(address)
 23588  func (_ERC721MetadataMintable *ERC721MetadataMintableSession) GetApproved(tokenId *big.Int) (common.Address, error) {
 23589  	return _ERC721MetadataMintable.Contract.GetApproved(&_ERC721MetadataMintable.CallOpts, tokenId)
 23590  }
 23591  
 23592  // GetApproved is a free data retrieval call binding the contract method 0x081812fc.
 23593  //
 23594  // Solidity: function getApproved(uint256 tokenId) view returns(address)
 23595  func (_ERC721MetadataMintable *ERC721MetadataMintableCallerSession) GetApproved(tokenId *big.Int) (common.Address, error) {
 23596  	return _ERC721MetadataMintable.Contract.GetApproved(&_ERC721MetadataMintable.CallOpts, tokenId)
 23597  }
 23598  
 23599  // IsApprovedForAll is a free data retrieval call binding the contract method 0xe985e9c5.
 23600  //
 23601  // Solidity: function isApprovedForAll(address owner, address operator) view returns(bool)
 23602  func (_ERC721MetadataMintable *ERC721MetadataMintableCaller) IsApprovedForAll(opts *bind.CallOpts, owner common.Address, operator common.Address) (bool, error) {
 23603  	var out []interface{}
 23604  	err := _ERC721MetadataMintable.contract.Call(opts, &out, "isApprovedForAll", owner, operator)
 23605  
 23606  	if err != nil {
 23607  		return *new(bool), err
 23608  	}
 23609  
 23610  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
 23611  
 23612  	return out0, err
 23613  
 23614  }
 23615  
 23616  // IsApprovedForAll is a free data retrieval call binding the contract method 0xe985e9c5.
 23617  //
 23618  // Solidity: function isApprovedForAll(address owner, address operator) view returns(bool)
 23619  func (_ERC721MetadataMintable *ERC721MetadataMintableSession) IsApprovedForAll(owner common.Address, operator common.Address) (bool, error) {
 23620  	return _ERC721MetadataMintable.Contract.IsApprovedForAll(&_ERC721MetadataMintable.CallOpts, owner, operator)
 23621  }
 23622  
 23623  // IsApprovedForAll is a free data retrieval call binding the contract method 0xe985e9c5.
 23624  //
 23625  // Solidity: function isApprovedForAll(address owner, address operator) view returns(bool)
 23626  func (_ERC721MetadataMintable *ERC721MetadataMintableCallerSession) IsApprovedForAll(owner common.Address, operator common.Address) (bool, error) {
 23627  	return _ERC721MetadataMintable.Contract.IsApprovedForAll(&_ERC721MetadataMintable.CallOpts, owner, operator)
 23628  }
 23629  
 23630  // IsMinter is a free data retrieval call binding the contract method 0xaa271e1a.
 23631  //
 23632  // Solidity: function isMinter(address account) view returns(bool)
 23633  func (_ERC721MetadataMintable *ERC721MetadataMintableCaller) IsMinter(opts *bind.CallOpts, account common.Address) (bool, error) {
 23634  	var out []interface{}
 23635  	err := _ERC721MetadataMintable.contract.Call(opts, &out, "isMinter", account)
 23636  
 23637  	if err != nil {
 23638  		return *new(bool), err
 23639  	}
 23640  
 23641  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
 23642  
 23643  	return out0, err
 23644  
 23645  }
 23646  
 23647  // IsMinter is a free data retrieval call binding the contract method 0xaa271e1a.
 23648  //
 23649  // Solidity: function isMinter(address account) view returns(bool)
 23650  func (_ERC721MetadataMintable *ERC721MetadataMintableSession) IsMinter(account common.Address) (bool, error) {
 23651  	return _ERC721MetadataMintable.Contract.IsMinter(&_ERC721MetadataMintable.CallOpts, account)
 23652  }
 23653  
 23654  // IsMinter is a free data retrieval call binding the contract method 0xaa271e1a.
 23655  //
 23656  // Solidity: function isMinter(address account) view returns(bool)
 23657  func (_ERC721MetadataMintable *ERC721MetadataMintableCallerSession) IsMinter(account common.Address) (bool, error) {
 23658  	return _ERC721MetadataMintable.Contract.IsMinter(&_ERC721MetadataMintable.CallOpts, account)
 23659  }
 23660  
 23661  // Name is a free data retrieval call binding the contract method 0x06fdde03.
 23662  //
 23663  // Solidity: function name() view returns(string)
 23664  func (_ERC721MetadataMintable *ERC721MetadataMintableCaller) Name(opts *bind.CallOpts) (string, error) {
 23665  	var out []interface{}
 23666  	err := _ERC721MetadataMintable.contract.Call(opts, &out, "name")
 23667  
 23668  	if err != nil {
 23669  		return *new(string), err
 23670  	}
 23671  
 23672  	out0 := *abi.ConvertType(out[0], new(string)).(*string)
 23673  
 23674  	return out0, err
 23675  
 23676  }
 23677  
 23678  // Name is a free data retrieval call binding the contract method 0x06fdde03.
 23679  //
 23680  // Solidity: function name() view returns(string)
 23681  func (_ERC721MetadataMintable *ERC721MetadataMintableSession) Name() (string, error) {
 23682  	return _ERC721MetadataMintable.Contract.Name(&_ERC721MetadataMintable.CallOpts)
 23683  }
 23684  
 23685  // Name is a free data retrieval call binding the contract method 0x06fdde03.
 23686  //
 23687  // Solidity: function name() view returns(string)
 23688  func (_ERC721MetadataMintable *ERC721MetadataMintableCallerSession) Name() (string, error) {
 23689  	return _ERC721MetadataMintable.Contract.Name(&_ERC721MetadataMintable.CallOpts)
 23690  }
 23691  
 23692  // OwnerOf is a free data retrieval call binding the contract method 0x6352211e.
 23693  //
 23694  // Solidity: function ownerOf(uint256 tokenId) view returns(address)
 23695  func (_ERC721MetadataMintable *ERC721MetadataMintableCaller) OwnerOf(opts *bind.CallOpts, tokenId *big.Int) (common.Address, error) {
 23696  	var out []interface{}
 23697  	err := _ERC721MetadataMintable.contract.Call(opts, &out, "ownerOf", tokenId)
 23698  
 23699  	if err != nil {
 23700  		return *new(common.Address), err
 23701  	}
 23702  
 23703  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
 23704  
 23705  	return out0, err
 23706  
 23707  }
 23708  
 23709  // OwnerOf is a free data retrieval call binding the contract method 0x6352211e.
 23710  //
 23711  // Solidity: function ownerOf(uint256 tokenId) view returns(address)
 23712  func (_ERC721MetadataMintable *ERC721MetadataMintableSession) OwnerOf(tokenId *big.Int) (common.Address, error) {
 23713  	return _ERC721MetadataMintable.Contract.OwnerOf(&_ERC721MetadataMintable.CallOpts, tokenId)
 23714  }
 23715  
 23716  // OwnerOf is a free data retrieval call binding the contract method 0x6352211e.
 23717  //
 23718  // Solidity: function ownerOf(uint256 tokenId) view returns(address)
 23719  func (_ERC721MetadataMintable *ERC721MetadataMintableCallerSession) OwnerOf(tokenId *big.Int) (common.Address, error) {
 23720  	return _ERC721MetadataMintable.Contract.OwnerOf(&_ERC721MetadataMintable.CallOpts, tokenId)
 23721  }
 23722  
 23723  // SupportsInterface is a free data retrieval call binding the contract method 0x01ffc9a7.
 23724  //
 23725  // Solidity: function supportsInterface(bytes4 interfaceId) view returns(bool)
 23726  func (_ERC721MetadataMintable *ERC721MetadataMintableCaller) SupportsInterface(opts *bind.CallOpts, interfaceId [4]byte) (bool, error) {
 23727  	var out []interface{}
 23728  	err := _ERC721MetadataMintable.contract.Call(opts, &out, "supportsInterface", interfaceId)
 23729  
 23730  	if err != nil {
 23731  		return *new(bool), err
 23732  	}
 23733  
 23734  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
 23735  
 23736  	return out0, err
 23737  
 23738  }
 23739  
 23740  // SupportsInterface is a free data retrieval call binding the contract method 0x01ffc9a7.
 23741  //
 23742  // Solidity: function supportsInterface(bytes4 interfaceId) view returns(bool)
 23743  func (_ERC721MetadataMintable *ERC721MetadataMintableSession) SupportsInterface(interfaceId [4]byte) (bool, error) {
 23744  	return _ERC721MetadataMintable.Contract.SupportsInterface(&_ERC721MetadataMintable.CallOpts, interfaceId)
 23745  }
 23746  
 23747  // SupportsInterface is a free data retrieval call binding the contract method 0x01ffc9a7.
 23748  //
 23749  // Solidity: function supportsInterface(bytes4 interfaceId) view returns(bool)
 23750  func (_ERC721MetadataMintable *ERC721MetadataMintableCallerSession) SupportsInterface(interfaceId [4]byte) (bool, error) {
 23751  	return _ERC721MetadataMintable.Contract.SupportsInterface(&_ERC721MetadataMintable.CallOpts, interfaceId)
 23752  }
 23753  
 23754  // Symbol is a free data retrieval call binding the contract method 0x95d89b41.
 23755  //
 23756  // Solidity: function symbol() view returns(string)
 23757  func (_ERC721MetadataMintable *ERC721MetadataMintableCaller) Symbol(opts *bind.CallOpts) (string, error) {
 23758  	var out []interface{}
 23759  	err := _ERC721MetadataMintable.contract.Call(opts, &out, "symbol")
 23760  
 23761  	if err != nil {
 23762  		return *new(string), err
 23763  	}
 23764  
 23765  	out0 := *abi.ConvertType(out[0], new(string)).(*string)
 23766  
 23767  	return out0, err
 23768  
 23769  }
 23770  
 23771  // Symbol is a free data retrieval call binding the contract method 0x95d89b41.
 23772  //
 23773  // Solidity: function symbol() view returns(string)
 23774  func (_ERC721MetadataMintable *ERC721MetadataMintableSession) Symbol() (string, error) {
 23775  	return _ERC721MetadataMintable.Contract.Symbol(&_ERC721MetadataMintable.CallOpts)
 23776  }
 23777  
 23778  // Symbol is a free data retrieval call binding the contract method 0x95d89b41.
 23779  //
 23780  // Solidity: function symbol() view returns(string)
 23781  func (_ERC721MetadataMintable *ERC721MetadataMintableCallerSession) Symbol() (string, error) {
 23782  	return _ERC721MetadataMintable.Contract.Symbol(&_ERC721MetadataMintable.CallOpts)
 23783  }
 23784  
 23785  // TokenURI is a free data retrieval call binding the contract method 0xc87b56dd.
 23786  //
 23787  // Solidity: function tokenURI(uint256 tokenId) view returns(string)
 23788  func (_ERC721MetadataMintable *ERC721MetadataMintableCaller) TokenURI(opts *bind.CallOpts, tokenId *big.Int) (string, error) {
 23789  	var out []interface{}
 23790  	err := _ERC721MetadataMintable.contract.Call(opts, &out, "tokenURI", tokenId)
 23791  
 23792  	if err != nil {
 23793  		return *new(string), err
 23794  	}
 23795  
 23796  	out0 := *abi.ConvertType(out[0], new(string)).(*string)
 23797  
 23798  	return out0, err
 23799  
 23800  }
 23801  
 23802  // TokenURI is a free data retrieval call binding the contract method 0xc87b56dd.
 23803  //
 23804  // Solidity: function tokenURI(uint256 tokenId) view returns(string)
 23805  func (_ERC721MetadataMintable *ERC721MetadataMintableSession) TokenURI(tokenId *big.Int) (string, error) {
 23806  	return _ERC721MetadataMintable.Contract.TokenURI(&_ERC721MetadataMintable.CallOpts, tokenId)
 23807  }
 23808  
 23809  // TokenURI is a free data retrieval call binding the contract method 0xc87b56dd.
 23810  //
 23811  // Solidity: function tokenURI(uint256 tokenId) view returns(string)
 23812  func (_ERC721MetadataMintable *ERC721MetadataMintableCallerSession) TokenURI(tokenId *big.Int) (string, error) {
 23813  	return _ERC721MetadataMintable.Contract.TokenURI(&_ERC721MetadataMintable.CallOpts, tokenId)
 23814  }
 23815  
 23816  // AddMinter is a paid mutator transaction binding the contract method 0x983b2d56.
 23817  //
 23818  // Solidity: function addMinter(address account) returns()
 23819  func (_ERC721MetadataMintable *ERC721MetadataMintableTransactor) AddMinter(opts *bind.TransactOpts, account common.Address) (*types.Transaction, error) {
 23820  	return _ERC721MetadataMintable.contract.Transact(opts, "addMinter", account)
 23821  }
 23822  
 23823  // AddMinter is a paid mutator transaction binding the contract method 0x983b2d56.
 23824  //
 23825  // Solidity: function addMinter(address account) returns()
 23826  func (_ERC721MetadataMintable *ERC721MetadataMintableSession) AddMinter(account common.Address) (*types.Transaction, error) {
 23827  	return _ERC721MetadataMintable.Contract.AddMinter(&_ERC721MetadataMintable.TransactOpts, account)
 23828  }
 23829  
 23830  // AddMinter is a paid mutator transaction binding the contract method 0x983b2d56.
 23831  //
 23832  // Solidity: function addMinter(address account) returns()
 23833  func (_ERC721MetadataMintable *ERC721MetadataMintableTransactorSession) AddMinter(account common.Address) (*types.Transaction, error) {
 23834  	return _ERC721MetadataMintable.Contract.AddMinter(&_ERC721MetadataMintable.TransactOpts, account)
 23835  }
 23836  
 23837  // Approve is a paid mutator transaction binding the contract method 0x095ea7b3.
 23838  //
 23839  // Solidity: function approve(address to, uint256 tokenId) returns()
 23840  func (_ERC721MetadataMintable *ERC721MetadataMintableTransactor) Approve(opts *bind.TransactOpts, to common.Address, tokenId *big.Int) (*types.Transaction, error) {
 23841  	return _ERC721MetadataMintable.contract.Transact(opts, "approve", to, tokenId)
 23842  }
 23843  
 23844  // Approve is a paid mutator transaction binding the contract method 0x095ea7b3.
 23845  //
 23846  // Solidity: function approve(address to, uint256 tokenId) returns()
 23847  func (_ERC721MetadataMintable *ERC721MetadataMintableSession) Approve(to common.Address, tokenId *big.Int) (*types.Transaction, error) {
 23848  	return _ERC721MetadataMintable.Contract.Approve(&_ERC721MetadataMintable.TransactOpts, to, tokenId)
 23849  }
 23850  
 23851  // Approve is a paid mutator transaction binding the contract method 0x095ea7b3.
 23852  //
 23853  // Solidity: function approve(address to, uint256 tokenId) returns()
 23854  func (_ERC721MetadataMintable *ERC721MetadataMintableTransactorSession) Approve(to common.Address, tokenId *big.Int) (*types.Transaction, error) {
 23855  	return _ERC721MetadataMintable.Contract.Approve(&_ERC721MetadataMintable.TransactOpts, to, tokenId)
 23856  }
 23857  
 23858  // MintWithTokenURI is a paid mutator transaction binding the contract method 0x50bb4e7f.
 23859  //
 23860  // Solidity: function mintWithTokenURI(address to, uint256 tokenId, string tokenURI) returns(bool)
 23861  func (_ERC721MetadataMintable *ERC721MetadataMintableTransactor) MintWithTokenURI(opts *bind.TransactOpts, to common.Address, tokenId *big.Int, tokenURI string) (*types.Transaction, error) {
 23862  	return _ERC721MetadataMintable.contract.Transact(opts, "mintWithTokenURI", to, tokenId, tokenURI)
 23863  }
 23864  
 23865  // MintWithTokenURI is a paid mutator transaction binding the contract method 0x50bb4e7f.
 23866  //
 23867  // Solidity: function mintWithTokenURI(address to, uint256 tokenId, string tokenURI) returns(bool)
 23868  func (_ERC721MetadataMintable *ERC721MetadataMintableSession) MintWithTokenURI(to common.Address, tokenId *big.Int, tokenURI string) (*types.Transaction, error) {
 23869  	return _ERC721MetadataMintable.Contract.MintWithTokenURI(&_ERC721MetadataMintable.TransactOpts, to, tokenId, tokenURI)
 23870  }
 23871  
 23872  // MintWithTokenURI is a paid mutator transaction binding the contract method 0x50bb4e7f.
 23873  //
 23874  // Solidity: function mintWithTokenURI(address to, uint256 tokenId, string tokenURI) returns(bool)
 23875  func (_ERC721MetadataMintable *ERC721MetadataMintableTransactorSession) MintWithTokenURI(to common.Address, tokenId *big.Int, tokenURI string) (*types.Transaction, error) {
 23876  	return _ERC721MetadataMintable.Contract.MintWithTokenURI(&_ERC721MetadataMintable.TransactOpts, to, tokenId, tokenURI)
 23877  }
 23878  
 23879  // RenounceMinter is a paid mutator transaction binding the contract method 0x98650275.
 23880  //
 23881  // Solidity: function renounceMinter() returns()
 23882  func (_ERC721MetadataMintable *ERC721MetadataMintableTransactor) RenounceMinter(opts *bind.TransactOpts) (*types.Transaction, error) {
 23883  	return _ERC721MetadataMintable.contract.Transact(opts, "renounceMinter")
 23884  }
 23885  
 23886  // RenounceMinter is a paid mutator transaction binding the contract method 0x98650275.
 23887  //
 23888  // Solidity: function renounceMinter() returns()
 23889  func (_ERC721MetadataMintable *ERC721MetadataMintableSession) RenounceMinter() (*types.Transaction, error) {
 23890  	return _ERC721MetadataMintable.Contract.RenounceMinter(&_ERC721MetadataMintable.TransactOpts)
 23891  }
 23892  
 23893  // RenounceMinter is a paid mutator transaction binding the contract method 0x98650275.
 23894  //
 23895  // Solidity: function renounceMinter() returns()
 23896  func (_ERC721MetadataMintable *ERC721MetadataMintableTransactorSession) RenounceMinter() (*types.Transaction, error) {
 23897  	return _ERC721MetadataMintable.Contract.RenounceMinter(&_ERC721MetadataMintable.TransactOpts)
 23898  }
 23899  
 23900  // SafeTransferFrom is a paid mutator transaction binding the contract method 0x42842e0e.
 23901  //
 23902  // Solidity: function safeTransferFrom(address from, address to, uint256 tokenId) returns()
 23903  func (_ERC721MetadataMintable *ERC721MetadataMintableTransactor) SafeTransferFrom(opts *bind.TransactOpts, from common.Address, to common.Address, tokenId *big.Int) (*types.Transaction, error) {
 23904  	return _ERC721MetadataMintable.contract.Transact(opts, "safeTransferFrom", from, to, tokenId)
 23905  }
 23906  
 23907  // SafeTransferFrom is a paid mutator transaction binding the contract method 0x42842e0e.
 23908  //
 23909  // Solidity: function safeTransferFrom(address from, address to, uint256 tokenId) returns()
 23910  func (_ERC721MetadataMintable *ERC721MetadataMintableSession) SafeTransferFrom(from common.Address, to common.Address, tokenId *big.Int) (*types.Transaction, error) {
 23911  	return _ERC721MetadataMintable.Contract.SafeTransferFrom(&_ERC721MetadataMintable.TransactOpts, from, to, tokenId)
 23912  }
 23913  
 23914  // SafeTransferFrom is a paid mutator transaction binding the contract method 0x42842e0e.
 23915  //
 23916  // Solidity: function safeTransferFrom(address from, address to, uint256 tokenId) returns()
 23917  func (_ERC721MetadataMintable *ERC721MetadataMintableTransactorSession) SafeTransferFrom(from common.Address, to common.Address, tokenId *big.Int) (*types.Transaction, error) {
 23918  	return _ERC721MetadataMintable.Contract.SafeTransferFrom(&_ERC721MetadataMintable.TransactOpts, from, to, tokenId)
 23919  }
 23920  
 23921  // SafeTransferFrom0 is a paid mutator transaction binding the contract method 0xb88d4fde.
 23922  //
 23923  // Solidity: function safeTransferFrom(address from, address to, uint256 tokenId, bytes _data) returns()
 23924  func (_ERC721MetadataMintable *ERC721MetadataMintableTransactor) SafeTransferFrom0(opts *bind.TransactOpts, from common.Address, to common.Address, tokenId *big.Int, _data []byte) (*types.Transaction, error) {
 23925  	return _ERC721MetadataMintable.contract.Transact(opts, "safeTransferFrom0", from, to, tokenId, _data)
 23926  }
 23927  
 23928  // SafeTransferFrom0 is a paid mutator transaction binding the contract method 0xb88d4fde.
 23929  //
 23930  // Solidity: function safeTransferFrom(address from, address to, uint256 tokenId, bytes _data) returns()
 23931  func (_ERC721MetadataMintable *ERC721MetadataMintableSession) SafeTransferFrom0(from common.Address, to common.Address, tokenId *big.Int, _data []byte) (*types.Transaction, error) {
 23932  	return _ERC721MetadataMintable.Contract.SafeTransferFrom0(&_ERC721MetadataMintable.TransactOpts, from, to, tokenId, _data)
 23933  }
 23934  
 23935  // SafeTransferFrom0 is a paid mutator transaction binding the contract method 0xb88d4fde.
 23936  //
 23937  // Solidity: function safeTransferFrom(address from, address to, uint256 tokenId, bytes _data) returns()
 23938  func (_ERC721MetadataMintable *ERC721MetadataMintableTransactorSession) SafeTransferFrom0(from common.Address, to common.Address, tokenId *big.Int, _data []byte) (*types.Transaction, error) {
 23939  	return _ERC721MetadataMintable.Contract.SafeTransferFrom0(&_ERC721MetadataMintable.TransactOpts, from, to, tokenId, _data)
 23940  }
 23941  
 23942  // SetApprovalForAll is a paid mutator transaction binding the contract method 0xa22cb465.
 23943  //
 23944  // Solidity: function setApprovalForAll(address to, bool approved) returns()
 23945  func (_ERC721MetadataMintable *ERC721MetadataMintableTransactor) SetApprovalForAll(opts *bind.TransactOpts, to common.Address, approved bool) (*types.Transaction, error) {
 23946  	return _ERC721MetadataMintable.contract.Transact(opts, "setApprovalForAll", to, approved)
 23947  }
 23948  
 23949  // SetApprovalForAll is a paid mutator transaction binding the contract method 0xa22cb465.
 23950  //
 23951  // Solidity: function setApprovalForAll(address to, bool approved) returns()
 23952  func (_ERC721MetadataMintable *ERC721MetadataMintableSession) SetApprovalForAll(to common.Address, approved bool) (*types.Transaction, error) {
 23953  	return _ERC721MetadataMintable.Contract.SetApprovalForAll(&_ERC721MetadataMintable.TransactOpts, to, approved)
 23954  }
 23955  
 23956  // SetApprovalForAll is a paid mutator transaction binding the contract method 0xa22cb465.
 23957  //
 23958  // Solidity: function setApprovalForAll(address to, bool approved) returns()
 23959  func (_ERC721MetadataMintable *ERC721MetadataMintableTransactorSession) SetApprovalForAll(to common.Address, approved bool) (*types.Transaction, error) {
 23960  	return _ERC721MetadataMintable.Contract.SetApprovalForAll(&_ERC721MetadataMintable.TransactOpts, to, approved)
 23961  }
 23962  
 23963  // TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd.
 23964  //
 23965  // Solidity: function transferFrom(address from, address to, uint256 tokenId) returns()
 23966  func (_ERC721MetadataMintable *ERC721MetadataMintableTransactor) TransferFrom(opts *bind.TransactOpts, from common.Address, to common.Address, tokenId *big.Int) (*types.Transaction, error) {
 23967  	return _ERC721MetadataMintable.contract.Transact(opts, "transferFrom", from, to, tokenId)
 23968  }
 23969  
 23970  // TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd.
 23971  //
 23972  // Solidity: function transferFrom(address from, address to, uint256 tokenId) returns()
 23973  func (_ERC721MetadataMintable *ERC721MetadataMintableSession) TransferFrom(from common.Address, to common.Address, tokenId *big.Int) (*types.Transaction, error) {
 23974  	return _ERC721MetadataMintable.Contract.TransferFrom(&_ERC721MetadataMintable.TransactOpts, from, to, tokenId)
 23975  }
 23976  
 23977  // TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd.
 23978  //
 23979  // Solidity: function transferFrom(address from, address to, uint256 tokenId) returns()
 23980  func (_ERC721MetadataMintable *ERC721MetadataMintableTransactorSession) TransferFrom(from common.Address, to common.Address, tokenId *big.Int) (*types.Transaction, error) {
 23981  	return _ERC721MetadataMintable.Contract.TransferFrom(&_ERC721MetadataMintable.TransactOpts, from, to, tokenId)
 23982  }
 23983  
 23984  // ERC721MetadataMintableApprovalIterator is returned from FilterApproval and is used to iterate over the raw logs and unpacked data for Approval events raised by the ERC721MetadataMintable contract.
 23985  type ERC721MetadataMintableApprovalIterator struct {
 23986  	Event *ERC721MetadataMintableApproval // Event containing the contract specifics and raw log
 23987  
 23988  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 23989  	event    string              // Event name to use for unpacking event data
 23990  
 23991  	logs chan types.Log      // Log channel receiving the found contract events
 23992  	sub  klaytn.Subscription // Subscription for errors, completion and termination
 23993  	done bool                // Whether the subscription completed delivering logs
 23994  	fail error               // Occurred error to stop iteration
 23995  }
 23996  
 23997  // Next advances the iterator to the subsequent event, returning whether there
 23998  // are any more events found. In case of a retrieval or parsing error, false is
 23999  // returned and Error() can be queried for the exact failure.
 24000  func (it *ERC721MetadataMintableApprovalIterator) Next() bool {
 24001  	// If the iterator failed, stop iterating
 24002  	if it.fail != nil {
 24003  		return false
 24004  	}
 24005  	// If the iterator completed, deliver directly whatever's available
 24006  	if it.done {
 24007  		select {
 24008  		case log := <-it.logs:
 24009  			it.Event = new(ERC721MetadataMintableApproval)
 24010  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 24011  				it.fail = err
 24012  				return false
 24013  			}
 24014  			it.Event.Raw = log
 24015  			return true
 24016  
 24017  		default:
 24018  			return false
 24019  		}
 24020  	}
 24021  	// Iterator still in progress, wait for either a data or an error event
 24022  	select {
 24023  	case log := <-it.logs:
 24024  		it.Event = new(ERC721MetadataMintableApproval)
 24025  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 24026  			it.fail = err
 24027  			return false
 24028  		}
 24029  		it.Event.Raw = log
 24030  		return true
 24031  
 24032  	case err := <-it.sub.Err():
 24033  		it.done = true
 24034  		it.fail = err
 24035  		return it.Next()
 24036  	}
 24037  }
 24038  
 24039  // Error returns any retrieval or parsing error occurred during filtering.
 24040  func (it *ERC721MetadataMintableApprovalIterator) Error() error {
 24041  	return it.fail
 24042  }
 24043  
 24044  // Close terminates the iteration process, releasing any pending underlying
 24045  // resources.
 24046  func (it *ERC721MetadataMintableApprovalIterator) Close() error {
 24047  	it.sub.Unsubscribe()
 24048  	return nil
 24049  }
 24050  
 24051  // ERC721MetadataMintableApproval represents a Approval event raised by the ERC721MetadataMintable contract.
 24052  type ERC721MetadataMintableApproval struct {
 24053  	Owner    common.Address
 24054  	Approved common.Address
 24055  	TokenId  *big.Int
 24056  	Raw      types.Log // Blockchain specific contextual infos
 24057  }
 24058  
 24059  // FilterApproval is a free log retrieval operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925.
 24060  //
 24061  // Solidity: event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId)
 24062  func (_ERC721MetadataMintable *ERC721MetadataMintableFilterer) FilterApproval(opts *bind.FilterOpts, owner []common.Address, approved []common.Address, tokenId []*big.Int) (*ERC721MetadataMintableApprovalIterator, error) {
 24063  
 24064  	var ownerRule []interface{}
 24065  	for _, ownerItem := range owner {
 24066  		ownerRule = append(ownerRule, ownerItem)
 24067  	}
 24068  	var approvedRule []interface{}
 24069  	for _, approvedItem := range approved {
 24070  		approvedRule = append(approvedRule, approvedItem)
 24071  	}
 24072  	var tokenIdRule []interface{}
 24073  	for _, tokenIdItem := range tokenId {
 24074  		tokenIdRule = append(tokenIdRule, tokenIdItem)
 24075  	}
 24076  
 24077  	logs, sub, err := _ERC721MetadataMintable.contract.FilterLogs(opts, "Approval", ownerRule, approvedRule, tokenIdRule)
 24078  	if err != nil {
 24079  		return nil, err
 24080  	}
 24081  	return &ERC721MetadataMintableApprovalIterator{contract: _ERC721MetadataMintable.contract, event: "Approval", logs: logs, sub: sub}, nil
 24082  }
 24083  
 24084  // WatchApproval is a free log subscription operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925.
 24085  //
 24086  // Solidity: event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId)
 24087  func (_ERC721MetadataMintable *ERC721MetadataMintableFilterer) WatchApproval(opts *bind.WatchOpts, sink chan<- *ERC721MetadataMintableApproval, owner []common.Address, approved []common.Address, tokenId []*big.Int) (event.Subscription, error) {
 24088  
 24089  	var ownerRule []interface{}
 24090  	for _, ownerItem := range owner {
 24091  		ownerRule = append(ownerRule, ownerItem)
 24092  	}
 24093  	var approvedRule []interface{}
 24094  	for _, approvedItem := range approved {
 24095  		approvedRule = append(approvedRule, approvedItem)
 24096  	}
 24097  	var tokenIdRule []interface{}
 24098  	for _, tokenIdItem := range tokenId {
 24099  		tokenIdRule = append(tokenIdRule, tokenIdItem)
 24100  	}
 24101  
 24102  	logs, sub, err := _ERC721MetadataMintable.contract.WatchLogs(opts, "Approval", ownerRule, approvedRule, tokenIdRule)
 24103  	if err != nil {
 24104  		return nil, err
 24105  	}
 24106  	return event.NewSubscription(func(quit <-chan struct{}) error {
 24107  		defer sub.Unsubscribe()
 24108  		for {
 24109  			select {
 24110  			case log := <-logs:
 24111  				// New log arrived, parse the event and forward to the user
 24112  				event := new(ERC721MetadataMintableApproval)
 24113  				if err := _ERC721MetadataMintable.contract.UnpackLog(event, "Approval", log); err != nil {
 24114  					return err
 24115  				}
 24116  				event.Raw = log
 24117  
 24118  				select {
 24119  				case sink <- event:
 24120  				case err := <-sub.Err():
 24121  					return err
 24122  				case <-quit:
 24123  					return nil
 24124  				}
 24125  			case err := <-sub.Err():
 24126  				return err
 24127  			case <-quit:
 24128  				return nil
 24129  			}
 24130  		}
 24131  	}), nil
 24132  }
 24133  
 24134  // ParseApproval is a log parse operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925.
 24135  //
 24136  // Solidity: event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId)
 24137  func (_ERC721MetadataMintable *ERC721MetadataMintableFilterer) ParseApproval(log types.Log) (*ERC721MetadataMintableApproval, error) {
 24138  	event := new(ERC721MetadataMintableApproval)
 24139  	if err := _ERC721MetadataMintable.contract.UnpackLog(event, "Approval", log); err != nil {
 24140  		return nil, err
 24141  	}
 24142  	return event, nil
 24143  }
 24144  
 24145  // ERC721MetadataMintableApprovalForAllIterator is returned from FilterApprovalForAll and is used to iterate over the raw logs and unpacked data for ApprovalForAll events raised by the ERC721MetadataMintable contract.
 24146  type ERC721MetadataMintableApprovalForAllIterator struct {
 24147  	Event *ERC721MetadataMintableApprovalForAll // Event containing the contract specifics and raw log
 24148  
 24149  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 24150  	event    string              // Event name to use for unpacking event data
 24151  
 24152  	logs chan types.Log      // Log channel receiving the found contract events
 24153  	sub  klaytn.Subscription // Subscription for errors, completion and termination
 24154  	done bool                // Whether the subscription completed delivering logs
 24155  	fail error               // Occurred error to stop iteration
 24156  }
 24157  
 24158  // Next advances the iterator to the subsequent event, returning whether there
 24159  // are any more events found. In case of a retrieval or parsing error, false is
 24160  // returned and Error() can be queried for the exact failure.
 24161  func (it *ERC721MetadataMintableApprovalForAllIterator) Next() bool {
 24162  	// If the iterator failed, stop iterating
 24163  	if it.fail != nil {
 24164  		return false
 24165  	}
 24166  	// If the iterator completed, deliver directly whatever's available
 24167  	if it.done {
 24168  		select {
 24169  		case log := <-it.logs:
 24170  			it.Event = new(ERC721MetadataMintableApprovalForAll)
 24171  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 24172  				it.fail = err
 24173  				return false
 24174  			}
 24175  			it.Event.Raw = log
 24176  			return true
 24177  
 24178  		default:
 24179  			return false
 24180  		}
 24181  	}
 24182  	// Iterator still in progress, wait for either a data or an error event
 24183  	select {
 24184  	case log := <-it.logs:
 24185  		it.Event = new(ERC721MetadataMintableApprovalForAll)
 24186  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 24187  			it.fail = err
 24188  			return false
 24189  		}
 24190  		it.Event.Raw = log
 24191  		return true
 24192  
 24193  	case err := <-it.sub.Err():
 24194  		it.done = true
 24195  		it.fail = err
 24196  		return it.Next()
 24197  	}
 24198  }
 24199  
 24200  // Error returns any retrieval or parsing error occurred during filtering.
 24201  func (it *ERC721MetadataMintableApprovalForAllIterator) Error() error {
 24202  	return it.fail
 24203  }
 24204  
 24205  // Close terminates the iteration process, releasing any pending underlying
 24206  // resources.
 24207  func (it *ERC721MetadataMintableApprovalForAllIterator) Close() error {
 24208  	it.sub.Unsubscribe()
 24209  	return nil
 24210  }
 24211  
 24212  // ERC721MetadataMintableApprovalForAll represents a ApprovalForAll event raised by the ERC721MetadataMintable contract.
 24213  type ERC721MetadataMintableApprovalForAll struct {
 24214  	Owner    common.Address
 24215  	Operator common.Address
 24216  	Approved bool
 24217  	Raw      types.Log // Blockchain specific contextual infos
 24218  }
 24219  
 24220  // FilterApprovalForAll is a free log retrieval operation binding the contract event 0x17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31.
 24221  //
 24222  // Solidity: event ApprovalForAll(address indexed owner, address indexed operator, bool approved)
 24223  func (_ERC721MetadataMintable *ERC721MetadataMintableFilterer) FilterApprovalForAll(opts *bind.FilterOpts, owner []common.Address, operator []common.Address) (*ERC721MetadataMintableApprovalForAllIterator, error) {
 24224  
 24225  	var ownerRule []interface{}
 24226  	for _, ownerItem := range owner {
 24227  		ownerRule = append(ownerRule, ownerItem)
 24228  	}
 24229  	var operatorRule []interface{}
 24230  	for _, operatorItem := range operator {
 24231  		operatorRule = append(operatorRule, operatorItem)
 24232  	}
 24233  
 24234  	logs, sub, err := _ERC721MetadataMintable.contract.FilterLogs(opts, "ApprovalForAll", ownerRule, operatorRule)
 24235  	if err != nil {
 24236  		return nil, err
 24237  	}
 24238  	return &ERC721MetadataMintableApprovalForAllIterator{contract: _ERC721MetadataMintable.contract, event: "ApprovalForAll", logs: logs, sub: sub}, nil
 24239  }
 24240  
 24241  // WatchApprovalForAll is a free log subscription operation binding the contract event 0x17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31.
 24242  //
 24243  // Solidity: event ApprovalForAll(address indexed owner, address indexed operator, bool approved)
 24244  func (_ERC721MetadataMintable *ERC721MetadataMintableFilterer) WatchApprovalForAll(opts *bind.WatchOpts, sink chan<- *ERC721MetadataMintableApprovalForAll, owner []common.Address, operator []common.Address) (event.Subscription, error) {
 24245  
 24246  	var ownerRule []interface{}
 24247  	for _, ownerItem := range owner {
 24248  		ownerRule = append(ownerRule, ownerItem)
 24249  	}
 24250  	var operatorRule []interface{}
 24251  	for _, operatorItem := range operator {
 24252  		operatorRule = append(operatorRule, operatorItem)
 24253  	}
 24254  
 24255  	logs, sub, err := _ERC721MetadataMintable.contract.WatchLogs(opts, "ApprovalForAll", ownerRule, operatorRule)
 24256  	if err != nil {
 24257  		return nil, err
 24258  	}
 24259  	return event.NewSubscription(func(quit <-chan struct{}) error {
 24260  		defer sub.Unsubscribe()
 24261  		for {
 24262  			select {
 24263  			case log := <-logs:
 24264  				// New log arrived, parse the event and forward to the user
 24265  				event := new(ERC721MetadataMintableApprovalForAll)
 24266  				if err := _ERC721MetadataMintable.contract.UnpackLog(event, "ApprovalForAll", log); err != nil {
 24267  					return err
 24268  				}
 24269  				event.Raw = log
 24270  
 24271  				select {
 24272  				case sink <- event:
 24273  				case err := <-sub.Err():
 24274  					return err
 24275  				case <-quit:
 24276  					return nil
 24277  				}
 24278  			case err := <-sub.Err():
 24279  				return err
 24280  			case <-quit:
 24281  				return nil
 24282  			}
 24283  		}
 24284  	}), nil
 24285  }
 24286  
 24287  // ParseApprovalForAll is a log parse operation binding the contract event 0x17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31.
 24288  //
 24289  // Solidity: event ApprovalForAll(address indexed owner, address indexed operator, bool approved)
 24290  func (_ERC721MetadataMintable *ERC721MetadataMintableFilterer) ParseApprovalForAll(log types.Log) (*ERC721MetadataMintableApprovalForAll, error) {
 24291  	event := new(ERC721MetadataMintableApprovalForAll)
 24292  	if err := _ERC721MetadataMintable.contract.UnpackLog(event, "ApprovalForAll", log); err != nil {
 24293  		return nil, err
 24294  	}
 24295  	return event, nil
 24296  }
 24297  
 24298  // ERC721MetadataMintableMinterAddedIterator is returned from FilterMinterAdded and is used to iterate over the raw logs and unpacked data for MinterAdded events raised by the ERC721MetadataMintable contract.
 24299  type ERC721MetadataMintableMinterAddedIterator struct {
 24300  	Event *ERC721MetadataMintableMinterAdded // Event containing the contract specifics and raw log
 24301  
 24302  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 24303  	event    string              // Event name to use for unpacking event data
 24304  
 24305  	logs chan types.Log      // Log channel receiving the found contract events
 24306  	sub  klaytn.Subscription // Subscription for errors, completion and termination
 24307  	done bool                // Whether the subscription completed delivering logs
 24308  	fail error               // Occurred error to stop iteration
 24309  }
 24310  
 24311  // Next advances the iterator to the subsequent event, returning whether there
 24312  // are any more events found. In case of a retrieval or parsing error, false is
 24313  // returned and Error() can be queried for the exact failure.
 24314  func (it *ERC721MetadataMintableMinterAddedIterator) Next() bool {
 24315  	// If the iterator failed, stop iterating
 24316  	if it.fail != nil {
 24317  		return false
 24318  	}
 24319  	// If the iterator completed, deliver directly whatever's available
 24320  	if it.done {
 24321  		select {
 24322  		case log := <-it.logs:
 24323  			it.Event = new(ERC721MetadataMintableMinterAdded)
 24324  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 24325  				it.fail = err
 24326  				return false
 24327  			}
 24328  			it.Event.Raw = log
 24329  			return true
 24330  
 24331  		default:
 24332  			return false
 24333  		}
 24334  	}
 24335  	// Iterator still in progress, wait for either a data or an error event
 24336  	select {
 24337  	case log := <-it.logs:
 24338  		it.Event = new(ERC721MetadataMintableMinterAdded)
 24339  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 24340  			it.fail = err
 24341  			return false
 24342  		}
 24343  		it.Event.Raw = log
 24344  		return true
 24345  
 24346  	case err := <-it.sub.Err():
 24347  		it.done = true
 24348  		it.fail = err
 24349  		return it.Next()
 24350  	}
 24351  }
 24352  
 24353  // Error returns any retrieval or parsing error occurred during filtering.
 24354  func (it *ERC721MetadataMintableMinterAddedIterator) Error() error {
 24355  	return it.fail
 24356  }
 24357  
 24358  // Close terminates the iteration process, releasing any pending underlying
 24359  // resources.
 24360  func (it *ERC721MetadataMintableMinterAddedIterator) Close() error {
 24361  	it.sub.Unsubscribe()
 24362  	return nil
 24363  }
 24364  
 24365  // ERC721MetadataMintableMinterAdded represents a MinterAdded event raised by the ERC721MetadataMintable contract.
 24366  type ERC721MetadataMintableMinterAdded struct {
 24367  	Account common.Address
 24368  	Raw     types.Log // Blockchain specific contextual infos
 24369  }
 24370  
 24371  // FilterMinterAdded is a free log retrieval operation binding the contract event 0x6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f6.
 24372  //
 24373  // Solidity: event MinterAdded(address indexed account)
 24374  func (_ERC721MetadataMintable *ERC721MetadataMintableFilterer) FilterMinterAdded(opts *bind.FilterOpts, account []common.Address) (*ERC721MetadataMintableMinterAddedIterator, error) {
 24375  
 24376  	var accountRule []interface{}
 24377  	for _, accountItem := range account {
 24378  		accountRule = append(accountRule, accountItem)
 24379  	}
 24380  
 24381  	logs, sub, err := _ERC721MetadataMintable.contract.FilterLogs(opts, "MinterAdded", accountRule)
 24382  	if err != nil {
 24383  		return nil, err
 24384  	}
 24385  	return &ERC721MetadataMintableMinterAddedIterator{contract: _ERC721MetadataMintable.contract, event: "MinterAdded", logs: logs, sub: sub}, nil
 24386  }
 24387  
 24388  // WatchMinterAdded is a free log subscription operation binding the contract event 0x6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f6.
 24389  //
 24390  // Solidity: event MinterAdded(address indexed account)
 24391  func (_ERC721MetadataMintable *ERC721MetadataMintableFilterer) WatchMinterAdded(opts *bind.WatchOpts, sink chan<- *ERC721MetadataMintableMinterAdded, account []common.Address) (event.Subscription, error) {
 24392  
 24393  	var accountRule []interface{}
 24394  	for _, accountItem := range account {
 24395  		accountRule = append(accountRule, accountItem)
 24396  	}
 24397  
 24398  	logs, sub, err := _ERC721MetadataMintable.contract.WatchLogs(opts, "MinterAdded", accountRule)
 24399  	if err != nil {
 24400  		return nil, err
 24401  	}
 24402  	return event.NewSubscription(func(quit <-chan struct{}) error {
 24403  		defer sub.Unsubscribe()
 24404  		for {
 24405  			select {
 24406  			case log := <-logs:
 24407  				// New log arrived, parse the event and forward to the user
 24408  				event := new(ERC721MetadataMintableMinterAdded)
 24409  				if err := _ERC721MetadataMintable.contract.UnpackLog(event, "MinterAdded", log); err != nil {
 24410  					return err
 24411  				}
 24412  				event.Raw = log
 24413  
 24414  				select {
 24415  				case sink <- event:
 24416  				case err := <-sub.Err():
 24417  					return err
 24418  				case <-quit:
 24419  					return nil
 24420  				}
 24421  			case err := <-sub.Err():
 24422  				return err
 24423  			case <-quit:
 24424  				return nil
 24425  			}
 24426  		}
 24427  	}), nil
 24428  }
 24429  
 24430  // ParseMinterAdded is a log parse operation binding the contract event 0x6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f6.
 24431  //
 24432  // Solidity: event MinterAdded(address indexed account)
 24433  func (_ERC721MetadataMintable *ERC721MetadataMintableFilterer) ParseMinterAdded(log types.Log) (*ERC721MetadataMintableMinterAdded, error) {
 24434  	event := new(ERC721MetadataMintableMinterAdded)
 24435  	if err := _ERC721MetadataMintable.contract.UnpackLog(event, "MinterAdded", log); err != nil {
 24436  		return nil, err
 24437  	}
 24438  	return event, nil
 24439  }
 24440  
 24441  // ERC721MetadataMintableMinterRemovedIterator is returned from FilterMinterRemoved and is used to iterate over the raw logs and unpacked data for MinterRemoved events raised by the ERC721MetadataMintable contract.
 24442  type ERC721MetadataMintableMinterRemovedIterator struct {
 24443  	Event *ERC721MetadataMintableMinterRemoved // Event containing the contract specifics and raw log
 24444  
 24445  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 24446  	event    string              // Event name to use for unpacking event data
 24447  
 24448  	logs chan types.Log      // Log channel receiving the found contract events
 24449  	sub  klaytn.Subscription // Subscription for errors, completion and termination
 24450  	done bool                // Whether the subscription completed delivering logs
 24451  	fail error               // Occurred error to stop iteration
 24452  }
 24453  
 24454  // Next advances the iterator to the subsequent event, returning whether there
 24455  // are any more events found. In case of a retrieval or parsing error, false is
 24456  // returned and Error() can be queried for the exact failure.
 24457  func (it *ERC721MetadataMintableMinterRemovedIterator) Next() bool {
 24458  	// If the iterator failed, stop iterating
 24459  	if it.fail != nil {
 24460  		return false
 24461  	}
 24462  	// If the iterator completed, deliver directly whatever's available
 24463  	if it.done {
 24464  		select {
 24465  		case log := <-it.logs:
 24466  			it.Event = new(ERC721MetadataMintableMinterRemoved)
 24467  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 24468  				it.fail = err
 24469  				return false
 24470  			}
 24471  			it.Event.Raw = log
 24472  			return true
 24473  
 24474  		default:
 24475  			return false
 24476  		}
 24477  	}
 24478  	// Iterator still in progress, wait for either a data or an error event
 24479  	select {
 24480  	case log := <-it.logs:
 24481  		it.Event = new(ERC721MetadataMintableMinterRemoved)
 24482  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 24483  			it.fail = err
 24484  			return false
 24485  		}
 24486  		it.Event.Raw = log
 24487  		return true
 24488  
 24489  	case err := <-it.sub.Err():
 24490  		it.done = true
 24491  		it.fail = err
 24492  		return it.Next()
 24493  	}
 24494  }
 24495  
 24496  // Error returns any retrieval or parsing error occurred during filtering.
 24497  func (it *ERC721MetadataMintableMinterRemovedIterator) Error() error {
 24498  	return it.fail
 24499  }
 24500  
 24501  // Close terminates the iteration process, releasing any pending underlying
 24502  // resources.
 24503  func (it *ERC721MetadataMintableMinterRemovedIterator) Close() error {
 24504  	it.sub.Unsubscribe()
 24505  	return nil
 24506  }
 24507  
 24508  // ERC721MetadataMintableMinterRemoved represents a MinterRemoved event raised by the ERC721MetadataMintable contract.
 24509  type ERC721MetadataMintableMinterRemoved struct {
 24510  	Account common.Address
 24511  	Raw     types.Log // Blockchain specific contextual infos
 24512  }
 24513  
 24514  // FilterMinterRemoved is a free log retrieval operation binding the contract event 0xe94479a9f7e1952cc78f2d6baab678adc1b772d936c6583def489e524cb66692.
 24515  //
 24516  // Solidity: event MinterRemoved(address indexed account)
 24517  func (_ERC721MetadataMintable *ERC721MetadataMintableFilterer) FilterMinterRemoved(opts *bind.FilterOpts, account []common.Address) (*ERC721MetadataMintableMinterRemovedIterator, error) {
 24518  
 24519  	var accountRule []interface{}
 24520  	for _, accountItem := range account {
 24521  		accountRule = append(accountRule, accountItem)
 24522  	}
 24523  
 24524  	logs, sub, err := _ERC721MetadataMintable.contract.FilterLogs(opts, "MinterRemoved", accountRule)
 24525  	if err != nil {
 24526  		return nil, err
 24527  	}
 24528  	return &ERC721MetadataMintableMinterRemovedIterator{contract: _ERC721MetadataMintable.contract, event: "MinterRemoved", logs: logs, sub: sub}, nil
 24529  }
 24530  
 24531  // WatchMinterRemoved is a free log subscription operation binding the contract event 0xe94479a9f7e1952cc78f2d6baab678adc1b772d936c6583def489e524cb66692.
 24532  //
 24533  // Solidity: event MinterRemoved(address indexed account)
 24534  func (_ERC721MetadataMintable *ERC721MetadataMintableFilterer) WatchMinterRemoved(opts *bind.WatchOpts, sink chan<- *ERC721MetadataMintableMinterRemoved, account []common.Address) (event.Subscription, error) {
 24535  
 24536  	var accountRule []interface{}
 24537  	for _, accountItem := range account {
 24538  		accountRule = append(accountRule, accountItem)
 24539  	}
 24540  
 24541  	logs, sub, err := _ERC721MetadataMintable.contract.WatchLogs(opts, "MinterRemoved", accountRule)
 24542  	if err != nil {
 24543  		return nil, err
 24544  	}
 24545  	return event.NewSubscription(func(quit <-chan struct{}) error {
 24546  		defer sub.Unsubscribe()
 24547  		for {
 24548  			select {
 24549  			case log := <-logs:
 24550  				// New log arrived, parse the event and forward to the user
 24551  				event := new(ERC721MetadataMintableMinterRemoved)
 24552  				if err := _ERC721MetadataMintable.contract.UnpackLog(event, "MinterRemoved", log); err != nil {
 24553  					return err
 24554  				}
 24555  				event.Raw = log
 24556  
 24557  				select {
 24558  				case sink <- event:
 24559  				case err := <-sub.Err():
 24560  					return err
 24561  				case <-quit:
 24562  					return nil
 24563  				}
 24564  			case err := <-sub.Err():
 24565  				return err
 24566  			case <-quit:
 24567  				return nil
 24568  			}
 24569  		}
 24570  	}), nil
 24571  }
 24572  
 24573  // ParseMinterRemoved is a log parse operation binding the contract event 0xe94479a9f7e1952cc78f2d6baab678adc1b772d936c6583def489e524cb66692.
 24574  //
 24575  // Solidity: event MinterRemoved(address indexed account)
 24576  func (_ERC721MetadataMintable *ERC721MetadataMintableFilterer) ParseMinterRemoved(log types.Log) (*ERC721MetadataMintableMinterRemoved, error) {
 24577  	event := new(ERC721MetadataMintableMinterRemoved)
 24578  	if err := _ERC721MetadataMintable.contract.UnpackLog(event, "MinterRemoved", log); err != nil {
 24579  		return nil, err
 24580  	}
 24581  	return event, nil
 24582  }
 24583  
 24584  // ERC721MetadataMintableTransferIterator is returned from FilterTransfer and is used to iterate over the raw logs and unpacked data for Transfer events raised by the ERC721MetadataMintable contract.
 24585  type ERC721MetadataMintableTransferIterator struct {
 24586  	Event *ERC721MetadataMintableTransfer // Event containing the contract specifics and raw log
 24587  
 24588  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 24589  	event    string              // Event name to use for unpacking event data
 24590  
 24591  	logs chan types.Log      // Log channel receiving the found contract events
 24592  	sub  klaytn.Subscription // Subscription for errors, completion and termination
 24593  	done bool                // Whether the subscription completed delivering logs
 24594  	fail error               // Occurred error to stop iteration
 24595  }
 24596  
 24597  // Next advances the iterator to the subsequent event, returning whether there
 24598  // are any more events found. In case of a retrieval or parsing error, false is
 24599  // returned and Error() can be queried for the exact failure.
 24600  func (it *ERC721MetadataMintableTransferIterator) Next() bool {
 24601  	// If the iterator failed, stop iterating
 24602  	if it.fail != nil {
 24603  		return false
 24604  	}
 24605  	// If the iterator completed, deliver directly whatever's available
 24606  	if it.done {
 24607  		select {
 24608  		case log := <-it.logs:
 24609  			it.Event = new(ERC721MetadataMintableTransfer)
 24610  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 24611  				it.fail = err
 24612  				return false
 24613  			}
 24614  			it.Event.Raw = log
 24615  			return true
 24616  
 24617  		default:
 24618  			return false
 24619  		}
 24620  	}
 24621  	// Iterator still in progress, wait for either a data or an error event
 24622  	select {
 24623  	case log := <-it.logs:
 24624  		it.Event = new(ERC721MetadataMintableTransfer)
 24625  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 24626  			it.fail = err
 24627  			return false
 24628  		}
 24629  		it.Event.Raw = log
 24630  		return true
 24631  
 24632  	case err := <-it.sub.Err():
 24633  		it.done = true
 24634  		it.fail = err
 24635  		return it.Next()
 24636  	}
 24637  }
 24638  
 24639  // Error returns any retrieval or parsing error occurred during filtering.
 24640  func (it *ERC721MetadataMintableTransferIterator) Error() error {
 24641  	return it.fail
 24642  }
 24643  
 24644  // Close terminates the iteration process, releasing any pending underlying
 24645  // resources.
 24646  func (it *ERC721MetadataMintableTransferIterator) Close() error {
 24647  	it.sub.Unsubscribe()
 24648  	return nil
 24649  }
 24650  
 24651  // ERC721MetadataMintableTransfer represents a Transfer event raised by the ERC721MetadataMintable contract.
 24652  type ERC721MetadataMintableTransfer struct {
 24653  	From    common.Address
 24654  	To      common.Address
 24655  	TokenId *big.Int
 24656  	Raw     types.Log // Blockchain specific contextual infos
 24657  }
 24658  
 24659  // FilterTransfer is a free log retrieval operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef.
 24660  //
 24661  // Solidity: event Transfer(address indexed from, address indexed to, uint256 indexed tokenId)
 24662  func (_ERC721MetadataMintable *ERC721MetadataMintableFilterer) FilterTransfer(opts *bind.FilterOpts, from []common.Address, to []common.Address, tokenId []*big.Int) (*ERC721MetadataMintableTransferIterator, error) {
 24663  
 24664  	var fromRule []interface{}
 24665  	for _, fromItem := range from {
 24666  		fromRule = append(fromRule, fromItem)
 24667  	}
 24668  	var toRule []interface{}
 24669  	for _, toItem := range to {
 24670  		toRule = append(toRule, toItem)
 24671  	}
 24672  	var tokenIdRule []interface{}
 24673  	for _, tokenIdItem := range tokenId {
 24674  		tokenIdRule = append(tokenIdRule, tokenIdItem)
 24675  	}
 24676  
 24677  	logs, sub, err := _ERC721MetadataMintable.contract.FilterLogs(opts, "Transfer", fromRule, toRule, tokenIdRule)
 24678  	if err != nil {
 24679  		return nil, err
 24680  	}
 24681  	return &ERC721MetadataMintableTransferIterator{contract: _ERC721MetadataMintable.contract, event: "Transfer", logs: logs, sub: sub}, nil
 24682  }
 24683  
 24684  // WatchTransfer is a free log subscription operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef.
 24685  //
 24686  // Solidity: event Transfer(address indexed from, address indexed to, uint256 indexed tokenId)
 24687  func (_ERC721MetadataMintable *ERC721MetadataMintableFilterer) WatchTransfer(opts *bind.WatchOpts, sink chan<- *ERC721MetadataMintableTransfer, from []common.Address, to []common.Address, tokenId []*big.Int) (event.Subscription, error) {
 24688  
 24689  	var fromRule []interface{}
 24690  	for _, fromItem := range from {
 24691  		fromRule = append(fromRule, fromItem)
 24692  	}
 24693  	var toRule []interface{}
 24694  	for _, toItem := range to {
 24695  		toRule = append(toRule, toItem)
 24696  	}
 24697  	var tokenIdRule []interface{}
 24698  	for _, tokenIdItem := range tokenId {
 24699  		tokenIdRule = append(tokenIdRule, tokenIdItem)
 24700  	}
 24701  
 24702  	logs, sub, err := _ERC721MetadataMintable.contract.WatchLogs(opts, "Transfer", fromRule, toRule, tokenIdRule)
 24703  	if err != nil {
 24704  		return nil, err
 24705  	}
 24706  	return event.NewSubscription(func(quit <-chan struct{}) error {
 24707  		defer sub.Unsubscribe()
 24708  		for {
 24709  			select {
 24710  			case log := <-logs:
 24711  				// New log arrived, parse the event and forward to the user
 24712  				event := new(ERC721MetadataMintableTransfer)
 24713  				if err := _ERC721MetadataMintable.contract.UnpackLog(event, "Transfer", log); err != nil {
 24714  					return err
 24715  				}
 24716  				event.Raw = log
 24717  
 24718  				select {
 24719  				case sink <- event:
 24720  				case err := <-sub.Err():
 24721  					return err
 24722  				case <-quit:
 24723  					return nil
 24724  				}
 24725  			case err := <-sub.Err():
 24726  				return err
 24727  			case <-quit:
 24728  				return nil
 24729  			}
 24730  		}
 24731  	}), nil
 24732  }
 24733  
 24734  // ParseTransfer is a log parse operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef.
 24735  //
 24736  // Solidity: event Transfer(address indexed from, address indexed to, uint256 indexed tokenId)
 24737  func (_ERC721MetadataMintable *ERC721MetadataMintableFilterer) ParseTransfer(log types.Log) (*ERC721MetadataMintableTransfer, error) {
 24738  	event := new(ERC721MetadataMintableTransfer)
 24739  	if err := _ERC721MetadataMintable.contract.UnpackLog(event, "Transfer", log); err != nil {
 24740  		return nil, err
 24741  	}
 24742  	return event, nil
 24743  }
 24744  
 24745  // IERC165MetaData contains all meta data concerning the IERC165 contract.
 24746  var IERC165MetaData = &bind.MetaData{
 24747  	ABI: "[{\"constant\":true,\"inputs\":[{\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"}]",
 24748  	Sigs: map[string]string{
 24749  		"01ffc9a7": "supportsInterface(bytes4)",
 24750  	},
 24751  }
 24752  
 24753  // IERC165ABI is the input ABI used to generate the binding from.
 24754  // Deprecated: Use IERC165MetaData.ABI instead.
 24755  var IERC165ABI = IERC165MetaData.ABI
 24756  
 24757  // IERC165BinRuntime is the compiled bytecode used for adding genesis block without deploying code.
 24758  const IERC165BinRuntime = ``
 24759  
 24760  // IERC165FuncSigs maps the 4-byte function signature to its string representation.
 24761  // Deprecated: Use IERC165MetaData.Sigs instead.
 24762  var IERC165FuncSigs = IERC165MetaData.Sigs
 24763  
 24764  // IERC165 is an auto generated Go binding around a Klaytn contract.
 24765  type IERC165 struct {
 24766  	IERC165Caller     // Read-only binding to the contract
 24767  	IERC165Transactor // Write-only binding to the contract
 24768  	IERC165Filterer   // Log filterer for contract events
 24769  }
 24770  
 24771  // IERC165Caller is an auto generated read-only Go binding around a Klaytn contract.
 24772  type IERC165Caller struct {
 24773  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 24774  }
 24775  
 24776  // IERC165Transactor is an auto generated write-only Go binding around a Klaytn contract.
 24777  type IERC165Transactor struct {
 24778  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 24779  }
 24780  
 24781  // IERC165Filterer is an auto generated log filtering Go binding around a Klaytn contract events.
 24782  type IERC165Filterer struct {
 24783  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 24784  }
 24785  
 24786  // IERC165Session is an auto generated Go binding around a Klaytn contract,
 24787  // with pre-set call and transact options.
 24788  type IERC165Session struct {
 24789  	Contract     *IERC165          // Generic contract binding to set the session for
 24790  	CallOpts     bind.CallOpts     // Call options to use throughout this session
 24791  	TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
 24792  }
 24793  
 24794  // IERC165CallerSession is an auto generated read-only Go binding around a Klaytn contract,
 24795  // with pre-set call options.
 24796  type IERC165CallerSession struct {
 24797  	Contract *IERC165Caller // Generic contract caller binding to set the session for
 24798  	CallOpts bind.CallOpts  // Call options to use throughout this session
 24799  }
 24800  
 24801  // IERC165TransactorSession is an auto generated write-only Go binding around a Klaytn contract,
 24802  // with pre-set transact options.
 24803  type IERC165TransactorSession struct {
 24804  	Contract     *IERC165Transactor // Generic contract transactor binding to set the session for
 24805  	TransactOpts bind.TransactOpts  // Transaction auth options to use throughout this session
 24806  }
 24807  
 24808  // IERC165Raw is an auto generated low-level Go binding around a Klaytn contract.
 24809  type IERC165Raw struct {
 24810  	Contract *IERC165 // Generic contract binding to access the raw methods on
 24811  }
 24812  
 24813  // IERC165CallerRaw is an auto generated low-level read-only Go binding around a Klaytn contract.
 24814  type IERC165CallerRaw struct {
 24815  	Contract *IERC165Caller // Generic read-only contract binding to access the raw methods on
 24816  }
 24817  
 24818  // IERC165TransactorRaw is an auto generated low-level write-only Go binding around a Klaytn contract.
 24819  type IERC165TransactorRaw struct {
 24820  	Contract *IERC165Transactor // Generic write-only contract binding to access the raw methods on
 24821  }
 24822  
 24823  // NewIERC165 creates a new instance of IERC165, bound to a specific deployed contract.
 24824  func NewIERC165(address common.Address, backend bind.ContractBackend) (*IERC165, error) {
 24825  	contract, err := bindIERC165(address, backend, backend, backend)
 24826  	if err != nil {
 24827  		return nil, err
 24828  	}
 24829  	return &IERC165{IERC165Caller: IERC165Caller{contract: contract}, IERC165Transactor: IERC165Transactor{contract: contract}, IERC165Filterer: IERC165Filterer{contract: contract}}, nil
 24830  }
 24831  
 24832  // NewIERC165Caller creates a new read-only instance of IERC165, bound to a specific deployed contract.
 24833  func NewIERC165Caller(address common.Address, caller bind.ContractCaller) (*IERC165Caller, error) {
 24834  	contract, err := bindIERC165(address, caller, nil, nil)
 24835  	if err != nil {
 24836  		return nil, err
 24837  	}
 24838  	return &IERC165Caller{contract: contract}, nil
 24839  }
 24840  
 24841  // NewIERC165Transactor creates a new write-only instance of IERC165, bound to a specific deployed contract.
 24842  func NewIERC165Transactor(address common.Address, transactor bind.ContractTransactor) (*IERC165Transactor, error) {
 24843  	contract, err := bindIERC165(address, nil, transactor, nil)
 24844  	if err != nil {
 24845  		return nil, err
 24846  	}
 24847  	return &IERC165Transactor{contract: contract}, nil
 24848  }
 24849  
 24850  // NewIERC165Filterer creates a new log filterer instance of IERC165, bound to a specific deployed contract.
 24851  func NewIERC165Filterer(address common.Address, filterer bind.ContractFilterer) (*IERC165Filterer, error) {
 24852  	contract, err := bindIERC165(address, nil, nil, filterer)
 24853  	if err != nil {
 24854  		return nil, err
 24855  	}
 24856  	return &IERC165Filterer{contract: contract}, nil
 24857  }
 24858  
 24859  // bindIERC165 binds a generic wrapper to an already deployed contract.
 24860  func bindIERC165(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
 24861  	parsed, err := IERC165MetaData.GetAbi()
 24862  	if err != nil {
 24863  		return nil, err
 24864  	}
 24865  	return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil
 24866  }
 24867  
 24868  // Call invokes the (constant) contract method with params as input values and
 24869  // sets the output to result. The result type might be a single field for simple
 24870  // returns, a slice of interfaces for anonymous returns and a struct for named
 24871  // returns.
 24872  func (_IERC165 *IERC165Raw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
 24873  	return _IERC165.Contract.IERC165Caller.contract.Call(opts, result, method, params...)
 24874  }
 24875  
 24876  // Transfer initiates a plain transaction to move funds to the contract, calling
 24877  // its default method if one is available.
 24878  func (_IERC165 *IERC165Raw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
 24879  	return _IERC165.Contract.IERC165Transactor.contract.Transfer(opts)
 24880  }
 24881  
 24882  // Transact invokes the (paid) contract method with params as input values.
 24883  func (_IERC165 *IERC165Raw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
 24884  	return _IERC165.Contract.IERC165Transactor.contract.Transact(opts, method, params...)
 24885  }
 24886  
 24887  // Call invokes the (constant) contract method with params as input values and
 24888  // sets the output to result. The result type might be a single field for simple
 24889  // returns, a slice of interfaces for anonymous returns and a struct for named
 24890  // returns.
 24891  func (_IERC165 *IERC165CallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
 24892  	return _IERC165.Contract.contract.Call(opts, result, method, params...)
 24893  }
 24894  
 24895  // Transfer initiates a plain transaction to move funds to the contract, calling
 24896  // its default method if one is available.
 24897  func (_IERC165 *IERC165TransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
 24898  	return _IERC165.Contract.contract.Transfer(opts)
 24899  }
 24900  
 24901  // Transact invokes the (paid) contract method with params as input values.
 24902  func (_IERC165 *IERC165TransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
 24903  	return _IERC165.Contract.contract.Transact(opts, method, params...)
 24904  }
 24905  
 24906  // SupportsInterface is a free data retrieval call binding the contract method 0x01ffc9a7.
 24907  //
 24908  // Solidity: function supportsInterface(bytes4 interfaceId) view returns(bool)
 24909  func (_IERC165 *IERC165Caller) SupportsInterface(opts *bind.CallOpts, interfaceId [4]byte) (bool, error) {
 24910  	var out []interface{}
 24911  	err := _IERC165.contract.Call(opts, &out, "supportsInterface", interfaceId)
 24912  
 24913  	if err != nil {
 24914  		return *new(bool), err
 24915  	}
 24916  
 24917  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
 24918  
 24919  	return out0, err
 24920  
 24921  }
 24922  
 24923  // SupportsInterface is a free data retrieval call binding the contract method 0x01ffc9a7.
 24924  //
 24925  // Solidity: function supportsInterface(bytes4 interfaceId) view returns(bool)
 24926  func (_IERC165 *IERC165Session) SupportsInterface(interfaceId [4]byte) (bool, error) {
 24927  	return _IERC165.Contract.SupportsInterface(&_IERC165.CallOpts, interfaceId)
 24928  }
 24929  
 24930  // SupportsInterface is a free data retrieval call binding the contract method 0x01ffc9a7.
 24931  //
 24932  // Solidity: function supportsInterface(bytes4 interfaceId) view returns(bool)
 24933  func (_IERC165 *IERC165CallerSession) SupportsInterface(interfaceId [4]byte) (bool, error) {
 24934  	return _IERC165.Contract.SupportsInterface(&_IERC165.CallOpts, interfaceId)
 24935  }
 24936  
 24937  // IERC20MetaData contains all meta data concerning the IERC20 contract.
 24938  var IERC20MetaData = &bind.MetaData{
 24939  	ABI: "[{\"constant\":false,\"inputs\":[{\"name\":\"spender\",\"type\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"sender\",\"type\":\"address\"},{\"name\":\"recipient\",\"type\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"recipient\",\"type\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"owner\",\"type\":\"address\"},{\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"}]",
 24940  	Sigs: map[string]string{
 24941  		"dd62ed3e": "allowance(address,address)",
 24942  		"095ea7b3": "approve(address,uint256)",
 24943  		"70a08231": "balanceOf(address)",
 24944  		"18160ddd": "totalSupply()",
 24945  		"a9059cbb": "transfer(address,uint256)",
 24946  		"23b872dd": "transferFrom(address,address,uint256)",
 24947  	},
 24948  }
 24949  
 24950  // IERC20ABI is the input ABI used to generate the binding from.
 24951  // Deprecated: Use IERC20MetaData.ABI instead.
 24952  var IERC20ABI = IERC20MetaData.ABI
 24953  
 24954  // IERC20BinRuntime is the compiled bytecode used for adding genesis block without deploying code.
 24955  const IERC20BinRuntime = ``
 24956  
 24957  // IERC20FuncSigs maps the 4-byte function signature to its string representation.
 24958  // Deprecated: Use IERC20MetaData.Sigs instead.
 24959  var IERC20FuncSigs = IERC20MetaData.Sigs
 24960  
 24961  // IERC20 is an auto generated Go binding around a Klaytn contract.
 24962  type IERC20 struct {
 24963  	IERC20Caller     // Read-only binding to the contract
 24964  	IERC20Transactor // Write-only binding to the contract
 24965  	IERC20Filterer   // Log filterer for contract events
 24966  }
 24967  
 24968  // IERC20Caller is an auto generated read-only Go binding around a Klaytn contract.
 24969  type IERC20Caller struct {
 24970  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 24971  }
 24972  
 24973  // IERC20Transactor is an auto generated write-only Go binding around a Klaytn contract.
 24974  type IERC20Transactor struct {
 24975  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 24976  }
 24977  
 24978  // IERC20Filterer is an auto generated log filtering Go binding around a Klaytn contract events.
 24979  type IERC20Filterer struct {
 24980  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 24981  }
 24982  
 24983  // IERC20Session is an auto generated Go binding around a Klaytn contract,
 24984  // with pre-set call and transact options.
 24985  type IERC20Session struct {
 24986  	Contract     *IERC20           // Generic contract binding to set the session for
 24987  	CallOpts     bind.CallOpts     // Call options to use throughout this session
 24988  	TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
 24989  }
 24990  
 24991  // IERC20CallerSession is an auto generated read-only Go binding around a Klaytn contract,
 24992  // with pre-set call options.
 24993  type IERC20CallerSession struct {
 24994  	Contract *IERC20Caller // Generic contract caller binding to set the session for
 24995  	CallOpts bind.CallOpts // Call options to use throughout this session
 24996  }
 24997  
 24998  // IERC20TransactorSession is an auto generated write-only Go binding around a Klaytn contract,
 24999  // with pre-set transact options.
 25000  type IERC20TransactorSession struct {
 25001  	Contract     *IERC20Transactor // Generic contract transactor binding to set the session for
 25002  	TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
 25003  }
 25004  
 25005  // IERC20Raw is an auto generated low-level Go binding around a Klaytn contract.
 25006  type IERC20Raw struct {
 25007  	Contract *IERC20 // Generic contract binding to access the raw methods on
 25008  }
 25009  
 25010  // IERC20CallerRaw is an auto generated low-level read-only Go binding around a Klaytn contract.
 25011  type IERC20CallerRaw struct {
 25012  	Contract *IERC20Caller // Generic read-only contract binding to access the raw methods on
 25013  }
 25014  
 25015  // IERC20TransactorRaw is an auto generated low-level write-only Go binding around a Klaytn contract.
 25016  type IERC20TransactorRaw struct {
 25017  	Contract *IERC20Transactor // Generic write-only contract binding to access the raw methods on
 25018  }
 25019  
 25020  // NewIERC20 creates a new instance of IERC20, bound to a specific deployed contract.
 25021  func NewIERC20(address common.Address, backend bind.ContractBackend) (*IERC20, error) {
 25022  	contract, err := bindIERC20(address, backend, backend, backend)
 25023  	if err != nil {
 25024  		return nil, err
 25025  	}
 25026  	return &IERC20{IERC20Caller: IERC20Caller{contract: contract}, IERC20Transactor: IERC20Transactor{contract: contract}, IERC20Filterer: IERC20Filterer{contract: contract}}, nil
 25027  }
 25028  
 25029  // NewIERC20Caller creates a new read-only instance of IERC20, bound to a specific deployed contract.
 25030  func NewIERC20Caller(address common.Address, caller bind.ContractCaller) (*IERC20Caller, error) {
 25031  	contract, err := bindIERC20(address, caller, nil, nil)
 25032  	if err != nil {
 25033  		return nil, err
 25034  	}
 25035  	return &IERC20Caller{contract: contract}, nil
 25036  }
 25037  
 25038  // NewIERC20Transactor creates a new write-only instance of IERC20, bound to a specific deployed contract.
 25039  func NewIERC20Transactor(address common.Address, transactor bind.ContractTransactor) (*IERC20Transactor, error) {
 25040  	contract, err := bindIERC20(address, nil, transactor, nil)
 25041  	if err != nil {
 25042  		return nil, err
 25043  	}
 25044  	return &IERC20Transactor{contract: contract}, nil
 25045  }
 25046  
 25047  // NewIERC20Filterer creates a new log filterer instance of IERC20, bound to a specific deployed contract.
 25048  func NewIERC20Filterer(address common.Address, filterer bind.ContractFilterer) (*IERC20Filterer, error) {
 25049  	contract, err := bindIERC20(address, nil, nil, filterer)
 25050  	if err != nil {
 25051  		return nil, err
 25052  	}
 25053  	return &IERC20Filterer{contract: contract}, nil
 25054  }
 25055  
 25056  // bindIERC20 binds a generic wrapper to an already deployed contract.
 25057  func bindIERC20(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
 25058  	parsed, err := IERC20MetaData.GetAbi()
 25059  	if err != nil {
 25060  		return nil, err
 25061  	}
 25062  	return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil
 25063  }
 25064  
 25065  // Call invokes the (constant) contract method with params as input values and
 25066  // sets the output to result. The result type might be a single field for simple
 25067  // returns, a slice of interfaces for anonymous returns and a struct for named
 25068  // returns.
 25069  func (_IERC20 *IERC20Raw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
 25070  	return _IERC20.Contract.IERC20Caller.contract.Call(opts, result, method, params...)
 25071  }
 25072  
 25073  // Transfer initiates a plain transaction to move funds to the contract, calling
 25074  // its default method if one is available.
 25075  func (_IERC20 *IERC20Raw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
 25076  	return _IERC20.Contract.IERC20Transactor.contract.Transfer(opts)
 25077  }
 25078  
 25079  // Transact invokes the (paid) contract method with params as input values.
 25080  func (_IERC20 *IERC20Raw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
 25081  	return _IERC20.Contract.IERC20Transactor.contract.Transact(opts, method, params...)
 25082  }
 25083  
 25084  // Call invokes the (constant) contract method with params as input values and
 25085  // sets the output to result. The result type might be a single field for simple
 25086  // returns, a slice of interfaces for anonymous returns and a struct for named
 25087  // returns.
 25088  func (_IERC20 *IERC20CallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
 25089  	return _IERC20.Contract.contract.Call(opts, result, method, params...)
 25090  }
 25091  
 25092  // Transfer initiates a plain transaction to move funds to the contract, calling
 25093  // its default method if one is available.
 25094  func (_IERC20 *IERC20TransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
 25095  	return _IERC20.Contract.contract.Transfer(opts)
 25096  }
 25097  
 25098  // Transact invokes the (paid) contract method with params as input values.
 25099  func (_IERC20 *IERC20TransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
 25100  	return _IERC20.Contract.contract.Transact(opts, method, params...)
 25101  }
 25102  
 25103  // Allowance is a free data retrieval call binding the contract method 0xdd62ed3e.
 25104  //
 25105  // Solidity: function allowance(address owner, address spender) view returns(uint256)
 25106  func (_IERC20 *IERC20Caller) Allowance(opts *bind.CallOpts, owner common.Address, spender common.Address) (*big.Int, error) {
 25107  	var out []interface{}
 25108  	err := _IERC20.contract.Call(opts, &out, "allowance", owner, spender)
 25109  
 25110  	if err != nil {
 25111  		return *new(*big.Int), err
 25112  	}
 25113  
 25114  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
 25115  
 25116  	return out0, err
 25117  
 25118  }
 25119  
 25120  // Allowance is a free data retrieval call binding the contract method 0xdd62ed3e.
 25121  //
 25122  // Solidity: function allowance(address owner, address spender) view returns(uint256)
 25123  func (_IERC20 *IERC20Session) Allowance(owner common.Address, spender common.Address) (*big.Int, error) {
 25124  	return _IERC20.Contract.Allowance(&_IERC20.CallOpts, owner, spender)
 25125  }
 25126  
 25127  // Allowance is a free data retrieval call binding the contract method 0xdd62ed3e.
 25128  //
 25129  // Solidity: function allowance(address owner, address spender) view returns(uint256)
 25130  func (_IERC20 *IERC20CallerSession) Allowance(owner common.Address, spender common.Address) (*big.Int, error) {
 25131  	return _IERC20.Contract.Allowance(&_IERC20.CallOpts, owner, spender)
 25132  }
 25133  
 25134  // BalanceOf is a free data retrieval call binding the contract method 0x70a08231.
 25135  //
 25136  // Solidity: function balanceOf(address account) view returns(uint256)
 25137  func (_IERC20 *IERC20Caller) BalanceOf(opts *bind.CallOpts, account common.Address) (*big.Int, error) {
 25138  	var out []interface{}
 25139  	err := _IERC20.contract.Call(opts, &out, "balanceOf", account)
 25140  
 25141  	if err != nil {
 25142  		return *new(*big.Int), err
 25143  	}
 25144  
 25145  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
 25146  
 25147  	return out0, err
 25148  
 25149  }
 25150  
 25151  // BalanceOf is a free data retrieval call binding the contract method 0x70a08231.
 25152  //
 25153  // Solidity: function balanceOf(address account) view returns(uint256)
 25154  func (_IERC20 *IERC20Session) BalanceOf(account common.Address) (*big.Int, error) {
 25155  	return _IERC20.Contract.BalanceOf(&_IERC20.CallOpts, account)
 25156  }
 25157  
 25158  // BalanceOf is a free data retrieval call binding the contract method 0x70a08231.
 25159  //
 25160  // Solidity: function balanceOf(address account) view returns(uint256)
 25161  func (_IERC20 *IERC20CallerSession) BalanceOf(account common.Address) (*big.Int, error) {
 25162  	return _IERC20.Contract.BalanceOf(&_IERC20.CallOpts, account)
 25163  }
 25164  
 25165  // TotalSupply is a free data retrieval call binding the contract method 0x18160ddd.
 25166  //
 25167  // Solidity: function totalSupply() view returns(uint256)
 25168  func (_IERC20 *IERC20Caller) TotalSupply(opts *bind.CallOpts) (*big.Int, error) {
 25169  	var out []interface{}
 25170  	err := _IERC20.contract.Call(opts, &out, "totalSupply")
 25171  
 25172  	if err != nil {
 25173  		return *new(*big.Int), err
 25174  	}
 25175  
 25176  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
 25177  
 25178  	return out0, err
 25179  
 25180  }
 25181  
 25182  // TotalSupply is a free data retrieval call binding the contract method 0x18160ddd.
 25183  //
 25184  // Solidity: function totalSupply() view returns(uint256)
 25185  func (_IERC20 *IERC20Session) TotalSupply() (*big.Int, error) {
 25186  	return _IERC20.Contract.TotalSupply(&_IERC20.CallOpts)
 25187  }
 25188  
 25189  // TotalSupply is a free data retrieval call binding the contract method 0x18160ddd.
 25190  //
 25191  // Solidity: function totalSupply() view returns(uint256)
 25192  func (_IERC20 *IERC20CallerSession) TotalSupply() (*big.Int, error) {
 25193  	return _IERC20.Contract.TotalSupply(&_IERC20.CallOpts)
 25194  }
 25195  
 25196  // Approve is a paid mutator transaction binding the contract method 0x095ea7b3.
 25197  //
 25198  // Solidity: function approve(address spender, uint256 amount) returns(bool)
 25199  func (_IERC20 *IERC20Transactor) Approve(opts *bind.TransactOpts, spender common.Address, amount *big.Int) (*types.Transaction, error) {
 25200  	return _IERC20.contract.Transact(opts, "approve", spender, amount)
 25201  }
 25202  
 25203  // Approve is a paid mutator transaction binding the contract method 0x095ea7b3.
 25204  //
 25205  // Solidity: function approve(address spender, uint256 amount) returns(bool)
 25206  func (_IERC20 *IERC20Session) Approve(spender common.Address, amount *big.Int) (*types.Transaction, error) {
 25207  	return _IERC20.Contract.Approve(&_IERC20.TransactOpts, spender, amount)
 25208  }
 25209  
 25210  // Approve is a paid mutator transaction binding the contract method 0x095ea7b3.
 25211  //
 25212  // Solidity: function approve(address spender, uint256 amount) returns(bool)
 25213  func (_IERC20 *IERC20TransactorSession) Approve(spender common.Address, amount *big.Int) (*types.Transaction, error) {
 25214  	return _IERC20.Contract.Approve(&_IERC20.TransactOpts, spender, amount)
 25215  }
 25216  
 25217  // Transfer is a paid mutator transaction binding the contract method 0xa9059cbb.
 25218  //
 25219  // Solidity: function transfer(address recipient, uint256 amount) returns(bool)
 25220  func (_IERC20 *IERC20Transactor) Transfer(opts *bind.TransactOpts, recipient common.Address, amount *big.Int) (*types.Transaction, error) {
 25221  	return _IERC20.contract.Transact(opts, "transfer", recipient, amount)
 25222  }
 25223  
 25224  // Transfer is a paid mutator transaction binding the contract method 0xa9059cbb.
 25225  //
 25226  // Solidity: function transfer(address recipient, uint256 amount) returns(bool)
 25227  func (_IERC20 *IERC20Session) Transfer(recipient common.Address, amount *big.Int) (*types.Transaction, error) {
 25228  	return _IERC20.Contract.Transfer(&_IERC20.TransactOpts, recipient, amount)
 25229  }
 25230  
 25231  // Transfer is a paid mutator transaction binding the contract method 0xa9059cbb.
 25232  //
 25233  // Solidity: function transfer(address recipient, uint256 amount) returns(bool)
 25234  func (_IERC20 *IERC20TransactorSession) Transfer(recipient common.Address, amount *big.Int) (*types.Transaction, error) {
 25235  	return _IERC20.Contract.Transfer(&_IERC20.TransactOpts, recipient, amount)
 25236  }
 25237  
 25238  // TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd.
 25239  //
 25240  // Solidity: function transferFrom(address sender, address recipient, uint256 amount) returns(bool)
 25241  func (_IERC20 *IERC20Transactor) TransferFrom(opts *bind.TransactOpts, sender common.Address, recipient common.Address, amount *big.Int) (*types.Transaction, error) {
 25242  	return _IERC20.contract.Transact(opts, "transferFrom", sender, recipient, amount)
 25243  }
 25244  
 25245  // TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd.
 25246  //
 25247  // Solidity: function transferFrom(address sender, address recipient, uint256 amount) returns(bool)
 25248  func (_IERC20 *IERC20Session) TransferFrom(sender common.Address, recipient common.Address, amount *big.Int) (*types.Transaction, error) {
 25249  	return _IERC20.Contract.TransferFrom(&_IERC20.TransactOpts, sender, recipient, amount)
 25250  }
 25251  
 25252  // TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd.
 25253  //
 25254  // Solidity: function transferFrom(address sender, address recipient, uint256 amount) returns(bool)
 25255  func (_IERC20 *IERC20TransactorSession) TransferFrom(sender common.Address, recipient common.Address, amount *big.Int) (*types.Transaction, error) {
 25256  	return _IERC20.Contract.TransferFrom(&_IERC20.TransactOpts, sender, recipient, amount)
 25257  }
 25258  
 25259  // IERC20ApprovalIterator is returned from FilterApproval and is used to iterate over the raw logs and unpacked data for Approval events raised by the IERC20 contract.
 25260  type IERC20ApprovalIterator struct {
 25261  	Event *IERC20Approval // Event containing the contract specifics and raw log
 25262  
 25263  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 25264  	event    string              // Event name to use for unpacking event data
 25265  
 25266  	logs chan types.Log      // Log channel receiving the found contract events
 25267  	sub  klaytn.Subscription // Subscription for errors, completion and termination
 25268  	done bool                // Whether the subscription completed delivering logs
 25269  	fail error               // Occurred error to stop iteration
 25270  }
 25271  
 25272  // Next advances the iterator to the subsequent event, returning whether there
 25273  // are any more events found. In case of a retrieval or parsing error, false is
 25274  // returned and Error() can be queried for the exact failure.
 25275  func (it *IERC20ApprovalIterator) Next() bool {
 25276  	// If the iterator failed, stop iterating
 25277  	if it.fail != nil {
 25278  		return false
 25279  	}
 25280  	// If the iterator completed, deliver directly whatever's available
 25281  	if it.done {
 25282  		select {
 25283  		case log := <-it.logs:
 25284  			it.Event = new(IERC20Approval)
 25285  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 25286  				it.fail = err
 25287  				return false
 25288  			}
 25289  			it.Event.Raw = log
 25290  			return true
 25291  
 25292  		default:
 25293  			return false
 25294  		}
 25295  	}
 25296  	// Iterator still in progress, wait for either a data or an error event
 25297  	select {
 25298  	case log := <-it.logs:
 25299  		it.Event = new(IERC20Approval)
 25300  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 25301  			it.fail = err
 25302  			return false
 25303  		}
 25304  		it.Event.Raw = log
 25305  		return true
 25306  
 25307  	case err := <-it.sub.Err():
 25308  		it.done = true
 25309  		it.fail = err
 25310  		return it.Next()
 25311  	}
 25312  }
 25313  
 25314  // Error returns any retrieval or parsing error occurred during filtering.
 25315  func (it *IERC20ApprovalIterator) Error() error {
 25316  	return it.fail
 25317  }
 25318  
 25319  // Close terminates the iteration process, releasing any pending underlying
 25320  // resources.
 25321  func (it *IERC20ApprovalIterator) Close() error {
 25322  	it.sub.Unsubscribe()
 25323  	return nil
 25324  }
 25325  
 25326  // IERC20Approval represents a Approval event raised by the IERC20 contract.
 25327  type IERC20Approval struct {
 25328  	Owner   common.Address
 25329  	Spender common.Address
 25330  	Value   *big.Int
 25331  	Raw     types.Log // Blockchain specific contextual infos
 25332  }
 25333  
 25334  // FilterApproval is a free log retrieval operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925.
 25335  //
 25336  // Solidity: event Approval(address indexed owner, address indexed spender, uint256 value)
 25337  func (_IERC20 *IERC20Filterer) FilterApproval(opts *bind.FilterOpts, owner []common.Address, spender []common.Address) (*IERC20ApprovalIterator, error) {
 25338  
 25339  	var ownerRule []interface{}
 25340  	for _, ownerItem := range owner {
 25341  		ownerRule = append(ownerRule, ownerItem)
 25342  	}
 25343  	var spenderRule []interface{}
 25344  	for _, spenderItem := range spender {
 25345  		spenderRule = append(spenderRule, spenderItem)
 25346  	}
 25347  
 25348  	logs, sub, err := _IERC20.contract.FilterLogs(opts, "Approval", ownerRule, spenderRule)
 25349  	if err != nil {
 25350  		return nil, err
 25351  	}
 25352  	return &IERC20ApprovalIterator{contract: _IERC20.contract, event: "Approval", logs: logs, sub: sub}, nil
 25353  }
 25354  
 25355  // WatchApproval is a free log subscription operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925.
 25356  //
 25357  // Solidity: event Approval(address indexed owner, address indexed spender, uint256 value)
 25358  func (_IERC20 *IERC20Filterer) WatchApproval(opts *bind.WatchOpts, sink chan<- *IERC20Approval, owner []common.Address, spender []common.Address) (event.Subscription, error) {
 25359  
 25360  	var ownerRule []interface{}
 25361  	for _, ownerItem := range owner {
 25362  		ownerRule = append(ownerRule, ownerItem)
 25363  	}
 25364  	var spenderRule []interface{}
 25365  	for _, spenderItem := range spender {
 25366  		spenderRule = append(spenderRule, spenderItem)
 25367  	}
 25368  
 25369  	logs, sub, err := _IERC20.contract.WatchLogs(opts, "Approval", ownerRule, spenderRule)
 25370  	if err != nil {
 25371  		return nil, err
 25372  	}
 25373  	return event.NewSubscription(func(quit <-chan struct{}) error {
 25374  		defer sub.Unsubscribe()
 25375  		for {
 25376  			select {
 25377  			case log := <-logs:
 25378  				// New log arrived, parse the event and forward to the user
 25379  				event := new(IERC20Approval)
 25380  				if err := _IERC20.contract.UnpackLog(event, "Approval", log); err != nil {
 25381  					return err
 25382  				}
 25383  				event.Raw = log
 25384  
 25385  				select {
 25386  				case sink <- event:
 25387  				case err := <-sub.Err():
 25388  					return err
 25389  				case <-quit:
 25390  					return nil
 25391  				}
 25392  			case err := <-sub.Err():
 25393  				return err
 25394  			case <-quit:
 25395  				return nil
 25396  			}
 25397  		}
 25398  	}), nil
 25399  }
 25400  
 25401  // ParseApproval is a log parse operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925.
 25402  //
 25403  // Solidity: event Approval(address indexed owner, address indexed spender, uint256 value)
 25404  func (_IERC20 *IERC20Filterer) ParseApproval(log types.Log) (*IERC20Approval, error) {
 25405  	event := new(IERC20Approval)
 25406  	if err := _IERC20.contract.UnpackLog(event, "Approval", log); err != nil {
 25407  		return nil, err
 25408  	}
 25409  	return event, nil
 25410  }
 25411  
 25412  // IERC20TransferIterator is returned from FilterTransfer and is used to iterate over the raw logs and unpacked data for Transfer events raised by the IERC20 contract.
 25413  type IERC20TransferIterator struct {
 25414  	Event *IERC20Transfer // Event containing the contract specifics and raw log
 25415  
 25416  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 25417  	event    string              // Event name to use for unpacking event data
 25418  
 25419  	logs chan types.Log      // Log channel receiving the found contract events
 25420  	sub  klaytn.Subscription // Subscription for errors, completion and termination
 25421  	done bool                // Whether the subscription completed delivering logs
 25422  	fail error               // Occurred error to stop iteration
 25423  }
 25424  
 25425  // Next advances the iterator to the subsequent event, returning whether there
 25426  // are any more events found. In case of a retrieval or parsing error, false is
 25427  // returned and Error() can be queried for the exact failure.
 25428  func (it *IERC20TransferIterator) Next() bool {
 25429  	// If the iterator failed, stop iterating
 25430  	if it.fail != nil {
 25431  		return false
 25432  	}
 25433  	// If the iterator completed, deliver directly whatever's available
 25434  	if it.done {
 25435  		select {
 25436  		case log := <-it.logs:
 25437  			it.Event = new(IERC20Transfer)
 25438  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 25439  				it.fail = err
 25440  				return false
 25441  			}
 25442  			it.Event.Raw = log
 25443  			return true
 25444  
 25445  		default:
 25446  			return false
 25447  		}
 25448  	}
 25449  	// Iterator still in progress, wait for either a data or an error event
 25450  	select {
 25451  	case log := <-it.logs:
 25452  		it.Event = new(IERC20Transfer)
 25453  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 25454  			it.fail = err
 25455  			return false
 25456  		}
 25457  		it.Event.Raw = log
 25458  		return true
 25459  
 25460  	case err := <-it.sub.Err():
 25461  		it.done = true
 25462  		it.fail = err
 25463  		return it.Next()
 25464  	}
 25465  }
 25466  
 25467  // Error returns any retrieval or parsing error occurred during filtering.
 25468  func (it *IERC20TransferIterator) Error() error {
 25469  	return it.fail
 25470  }
 25471  
 25472  // Close terminates the iteration process, releasing any pending underlying
 25473  // resources.
 25474  func (it *IERC20TransferIterator) Close() error {
 25475  	it.sub.Unsubscribe()
 25476  	return nil
 25477  }
 25478  
 25479  // IERC20Transfer represents a Transfer event raised by the IERC20 contract.
 25480  type IERC20Transfer struct {
 25481  	From  common.Address
 25482  	To    common.Address
 25483  	Value *big.Int
 25484  	Raw   types.Log // Blockchain specific contextual infos
 25485  }
 25486  
 25487  // FilterTransfer is a free log retrieval operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef.
 25488  //
 25489  // Solidity: event Transfer(address indexed from, address indexed to, uint256 value)
 25490  func (_IERC20 *IERC20Filterer) FilterTransfer(opts *bind.FilterOpts, from []common.Address, to []common.Address) (*IERC20TransferIterator, error) {
 25491  
 25492  	var fromRule []interface{}
 25493  	for _, fromItem := range from {
 25494  		fromRule = append(fromRule, fromItem)
 25495  	}
 25496  	var toRule []interface{}
 25497  	for _, toItem := range to {
 25498  		toRule = append(toRule, toItem)
 25499  	}
 25500  
 25501  	logs, sub, err := _IERC20.contract.FilterLogs(opts, "Transfer", fromRule, toRule)
 25502  	if err != nil {
 25503  		return nil, err
 25504  	}
 25505  	return &IERC20TransferIterator{contract: _IERC20.contract, event: "Transfer", logs: logs, sub: sub}, nil
 25506  }
 25507  
 25508  // WatchTransfer is a free log subscription operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef.
 25509  //
 25510  // Solidity: event Transfer(address indexed from, address indexed to, uint256 value)
 25511  func (_IERC20 *IERC20Filterer) WatchTransfer(opts *bind.WatchOpts, sink chan<- *IERC20Transfer, from []common.Address, to []common.Address) (event.Subscription, error) {
 25512  
 25513  	var fromRule []interface{}
 25514  	for _, fromItem := range from {
 25515  		fromRule = append(fromRule, fromItem)
 25516  	}
 25517  	var toRule []interface{}
 25518  	for _, toItem := range to {
 25519  		toRule = append(toRule, toItem)
 25520  	}
 25521  
 25522  	logs, sub, err := _IERC20.contract.WatchLogs(opts, "Transfer", fromRule, toRule)
 25523  	if err != nil {
 25524  		return nil, err
 25525  	}
 25526  	return event.NewSubscription(func(quit <-chan struct{}) error {
 25527  		defer sub.Unsubscribe()
 25528  		for {
 25529  			select {
 25530  			case log := <-logs:
 25531  				// New log arrived, parse the event and forward to the user
 25532  				event := new(IERC20Transfer)
 25533  				if err := _IERC20.contract.UnpackLog(event, "Transfer", log); err != nil {
 25534  					return err
 25535  				}
 25536  				event.Raw = log
 25537  
 25538  				select {
 25539  				case sink <- event:
 25540  				case err := <-sub.Err():
 25541  					return err
 25542  				case <-quit:
 25543  					return nil
 25544  				}
 25545  			case err := <-sub.Err():
 25546  				return err
 25547  			case <-quit:
 25548  				return nil
 25549  			}
 25550  		}
 25551  	}), nil
 25552  }
 25553  
 25554  // ParseTransfer is a log parse operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef.
 25555  //
 25556  // Solidity: event Transfer(address indexed from, address indexed to, uint256 value)
 25557  func (_IERC20 *IERC20Filterer) ParseTransfer(log types.Log) (*IERC20Transfer, error) {
 25558  	event := new(IERC20Transfer)
 25559  	if err := _IERC20.contract.UnpackLog(event, "Transfer", log); err != nil {
 25560  		return nil, err
 25561  	}
 25562  	return event, nil
 25563  }
 25564  
 25565  // IERC20BridgeReceiverMetaData contains all meta data concerning the IERC20BridgeReceiver contract.
 25566  var IERC20BridgeReceiverMetaData = &bind.MetaData{
 25567  	ABI: "[{\"constant\":false,\"inputs\":[{\"name\":\"_from\",\"type\":\"address\"},{\"name\":\"_to\",\"type\":\"address\"},{\"name\":\"_amount\",\"type\":\"uint256\"},{\"name\":\"_feeLimit\",\"type\":\"uint256\"},{\"name\":\"_extraData\",\"type\":\"bytes\"}],\"name\":\"onERC20Received\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]",
 25568  	Sigs: map[string]string{
 25569  		"f1656e53": "onERC20Received(address,address,uint256,uint256,bytes)",
 25570  	},
 25571  }
 25572  
 25573  // IERC20BridgeReceiverABI is the input ABI used to generate the binding from.
 25574  // Deprecated: Use IERC20BridgeReceiverMetaData.ABI instead.
 25575  var IERC20BridgeReceiverABI = IERC20BridgeReceiverMetaData.ABI
 25576  
 25577  // IERC20BridgeReceiverBinRuntime is the compiled bytecode used for adding genesis block without deploying code.
 25578  const IERC20BridgeReceiverBinRuntime = ``
 25579  
 25580  // IERC20BridgeReceiverFuncSigs maps the 4-byte function signature to its string representation.
 25581  // Deprecated: Use IERC20BridgeReceiverMetaData.Sigs instead.
 25582  var IERC20BridgeReceiverFuncSigs = IERC20BridgeReceiverMetaData.Sigs
 25583  
 25584  // IERC20BridgeReceiver is an auto generated Go binding around a Klaytn contract.
 25585  type IERC20BridgeReceiver struct {
 25586  	IERC20BridgeReceiverCaller     // Read-only binding to the contract
 25587  	IERC20BridgeReceiverTransactor // Write-only binding to the contract
 25588  	IERC20BridgeReceiverFilterer   // Log filterer for contract events
 25589  }
 25590  
 25591  // IERC20BridgeReceiverCaller is an auto generated read-only Go binding around a Klaytn contract.
 25592  type IERC20BridgeReceiverCaller struct {
 25593  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 25594  }
 25595  
 25596  // IERC20BridgeReceiverTransactor is an auto generated write-only Go binding around a Klaytn contract.
 25597  type IERC20BridgeReceiverTransactor struct {
 25598  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 25599  }
 25600  
 25601  // IERC20BridgeReceiverFilterer is an auto generated log filtering Go binding around a Klaytn contract events.
 25602  type IERC20BridgeReceiverFilterer struct {
 25603  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 25604  }
 25605  
 25606  // IERC20BridgeReceiverSession is an auto generated Go binding around a Klaytn contract,
 25607  // with pre-set call and transact options.
 25608  type IERC20BridgeReceiverSession struct {
 25609  	Contract     *IERC20BridgeReceiver // Generic contract binding to set the session for
 25610  	CallOpts     bind.CallOpts         // Call options to use throughout this session
 25611  	TransactOpts bind.TransactOpts     // Transaction auth options to use throughout this session
 25612  }
 25613  
 25614  // IERC20BridgeReceiverCallerSession is an auto generated read-only Go binding around a Klaytn contract,
 25615  // with pre-set call options.
 25616  type IERC20BridgeReceiverCallerSession struct {
 25617  	Contract *IERC20BridgeReceiverCaller // Generic contract caller binding to set the session for
 25618  	CallOpts bind.CallOpts               // Call options to use throughout this session
 25619  }
 25620  
 25621  // IERC20BridgeReceiverTransactorSession is an auto generated write-only Go binding around a Klaytn contract,
 25622  // with pre-set transact options.
 25623  type IERC20BridgeReceiverTransactorSession struct {
 25624  	Contract     *IERC20BridgeReceiverTransactor // Generic contract transactor binding to set the session for
 25625  	TransactOpts bind.TransactOpts               // Transaction auth options to use throughout this session
 25626  }
 25627  
 25628  // IERC20BridgeReceiverRaw is an auto generated low-level Go binding around a Klaytn contract.
 25629  type IERC20BridgeReceiverRaw struct {
 25630  	Contract *IERC20BridgeReceiver // Generic contract binding to access the raw methods on
 25631  }
 25632  
 25633  // IERC20BridgeReceiverCallerRaw is an auto generated low-level read-only Go binding around a Klaytn contract.
 25634  type IERC20BridgeReceiverCallerRaw struct {
 25635  	Contract *IERC20BridgeReceiverCaller // Generic read-only contract binding to access the raw methods on
 25636  }
 25637  
 25638  // IERC20BridgeReceiverTransactorRaw is an auto generated low-level write-only Go binding around a Klaytn contract.
 25639  type IERC20BridgeReceiverTransactorRaw struct {
 25640  	Contract *IERC20BridgeReceiverTransactor // Generic write-only contract binding to access the raw methods on
 25641  }
 25642  
 25643  // NewIERC20BridgeReceiver creates a new instance of IERC20BridgeReceiver, bound to a specific deployed contract.
 25644  func NewIERC20BridgeReceiver(address common.Address, backend bind.ContractBackend) (*IERC20BridgeReceiver, error) {
 25645  	contract, err := bindIERC20BridgeReceiver(address, backend, backend, backend)
 25646  	if err != nil {
 25647  		return nil, err
 25648  	}
 25649  	return &IERC20BridgeReceiver{IERC20BridgeReceiverCaller: IERC20BridgeReceiverCaller{contract: contract}, IERC20BridgeReceiverTransactor: IERC20BridgeReceiverTransactor{contract: contract}, IERC20BridgeReceiverFilterer: IERC20BridgeReceiverFilterer{contract: contract}}, nil
 25650  }
 25651  
 25652  // NewIERC20BridgeReceiverCaller creates a new read-only instance of IERC20BridgeReceiver, bound to a specific deployed contract.
 25653  func NewIERC20BridgeReceiverCaller(address common.Address, caller bind.ContractCaller) (*IERC20BridgeReceiverCaller, error) {
 25654  	contract, err := bindIERC20BridgeReceiver(address, caller, nil, nil)
 25655  	if err != nil {
 25656  		return nil, err
 25657  	}
 25658  	return &IERC20BridgeReceiverCaller{contract: contract}, nil
 25659  }
 25660  
 25661  // NewIERC20BridgeReceiverTransactor creates a new write-only instance of IERC20BridgeReceiver, bound to a specific deployed contract.
 25662  func NewIERC20BridgeReceiverTransactor(address common.Address, transactor bind.ContractTransactor) (*IERC20BridgeReceiverTransactor, error) {
 25663  	contract, err := bindIERC20BridgeReceiver(address, nil, transactor, nil)
 25664  	if err != nil {
 25665  		return nil, err
 25666  	}
 25667  	return &IERC20BridgeReceiverTransactor{contract: contract}, nil
 25668  }
 25669  
 25670  // NewIERC20BridgeReceiverFilterer creates a new log filterer instance of IERC20BridgeReceiver, bound to a specific deployed contract.
 25671  func NewIERC20BridgeReceiverFilterer(address common.Address, filterer bind.ContractFilterer) (*IERC20BridgeReceiverFilterer, error) {
 25672  	contract, err := bindIERC20BridgeReceiver(address, nil, nil, filterer)
 25673  	if err != nil {
 25674  		return nil, err
 25675  	}
 25676  	return &IERC20BridgeReceiverFilterer{contract: contract}, nil
 25677  }
 25678  
 25679  // bindIERC20BridgeReceiver binds a generic wrapper to an already deployed contract.
 25680  func bindIERC20BridgeReceiver(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
 25681  	parsed, err := IERC20BridgeReceiverMetaData.GetAbi()
 25682  	if err != nil {
 25683  		return nil, err
 25684  	}
 25685  	return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil
 25686  }
 25687  
 25688  // Call invokes the (constant) contract method with params as input values and
 25689  // sets the output to result. The result type might be a single field for simple
 25690  // returns, a slice of interfaces for anonymous returns and a struct for named
 25691  // returns.
 25692  func (_IERC20BridgeReceiver *IERC20BridgeReceiverRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
 25693  	return _IERC20BridgeReceiver.Contract.IERC20BridgeReceiverCaller.contract.Call(opts, result, method, params...)
 25694  }
 25695  
 25696  // Transfer initiates a plain transaction to move funds to the contract, calling
 25697  // its default method if one is available.
 25698  func (_IERC20BridgeReceiver *IERC20BridgeReceiverRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
 25699  	return _IERC20BridgeReceiver.Contract.IERC20BridgeReceiverTransactor.contract.Transfer(opts)
 25700  }
 25701  
 25702  // Transact invokes the (paid) contract method with params as input values.
 25703  func (_IERC20BridgeReceiver *IERC20BridgeReceiverRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
 25704  	return _IERC20BridgeReceiver.Contract.IERC20BridgeReceiverTransactor.contract.Transact(opts, method, params...)
 25705  }
 25706  
 25707  // Call invokes the (constant) contract method with params as input values and
 25708  // sets the output to result. The result type might be a single field for simple
 25709  // returns, a slice of interfaces for anonymous returns and a struct for named
 25710  // returns.
 25711  func (_IERC20BridgeReceiver *IERC20BridgeReceiverCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
 25712  	return _IERC20BridgeReceiver.Contract.contract.Call(opts, result, method, params...)
 25713  }
 25714  
 25715  // Transfer initiates a plain transaction to move funds to the contract, calling
 25716  // its default method if one is available.
 25717  func (_IERC20BridgeReceiver *IERC20BridgeReceiverTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
 25718  	return _IERC20BridgeReceiver.Contract.contract.Transfer(opts)
 25719  }
 25720  
 25721  // Transact invokes the (paid) contract method with params as input values.
 25722  func (_IERC20BridgeReceiver *IERC20BridgeReceiverTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
 25723  	return _IERC20BridgeReceiver.Contract.contract.Transact(opts, method, params...)
 25724  }
 25725  
 25726  // OnERC20Received is a paid mutator transaction binding the contract method 0xf1656e53.
 25727  //
 25728  // Solidity: function onERC20Received(address _from, address _to, uint256 _amount, uint256 _feeLimit, bytes _extraData) returns()
 25729  func (_IERC20BridgeReceiver *IERC20BridgeReceiverTransactor) OnERC20Received(opts *bind.TransactOpts, _from common.Address, _to common.Address, _amount *big.Int, _feeLimit *big.Int, _extraData []byte) (*types.Transaction, error) {
 25730  	return _IERC20BridgeReceiver.contract.Transact(opts, "onERC20Received", _from, _to, _amount, _feeLimit, _extraData)
 25731  }
 25732  
 25733  // OnERC20Received is a paid mutator transaction binding the contract method 0xf1656e53.
 25734  //
 25735  // Solidity: function onERC20Received(address _from, address _to, uint256 _amount, uint256 _feeLimit, bytes _extraData) returns()
 25736  func (_IERC20BridgeReceiver *IERC20BridgeReceiverSession) OnERC20Received(_from common.Address, _to common.Address, _amount *big.Int, _feeLimit *big.Int, _extraData []byte) (*types.Transaction, error) {
 25737  	return _IERC20BridgeReceiver.Contract.OnERC20Received(&_IERC20BridgeReceiver.TransactOpts, _from, _to, _amount, _feeLimit, _extraData)
 25738  }
 25739  
 25740  // OnERC20Received is a paid mutator transaction binding the contract method 0xf1656e53.
 25741  //
 25742  // Solidity: function onERC20Received(address _from, address _to, uint256 _amount, uint256 _feeLimit, bytes _extraData) returns()
 25743  func (_IERC20BridgeReceiver *IERC20BridgeReceiverTransactorSession) OnERC20Received(_from common.Address, _to common.Address, _amount *big.Int, _feeLimit *big.Int, _extraData []byte) (*types.Transaction, error) {
 25744  	return _IERC20BridgeReceiver.Contract.OnERC20Received(&_IERC20BridgeReceiver.TransactOpts, _from, _to, _amount, _feeLimit, _extraData)
 25745  }
 25746  
 25747  // IERC721MetaData contains all meta data concerning the IERC721 contract.
 25748  var IERC721MetaData = &bind.MetaData{
 25749  	ABI: "[{\"constant\":true,\"inputs\":[{\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"name\":\"operator\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"to\",\"type\":\"address\"},{\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"from\",\"type\":\"address\"},{\"name\":\"to\",\"type\":\"address\"},{\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"from\",\"type\":\"address\"},{\"name\":\"to\",\"type\":\"address\"},{\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"name\":\"owner\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"name\":\"balance\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"operator\",\"type\":\"address\"},{\"name\":\"_approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"from\",\"type\":\"address\"},{\"name\":\"to\",\"type\":\"address\"},{\"name\":\"tokenId\",\"type\":\"uint256\"},{\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"owner\",\"type\":\"address\"},{\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"}]",
 25750  	Sigs: map[string]string{
 25751  		"095ea7b3": "approve(address,uint256)",
 25752  		"70a08231": "balanceOf(address)",
 25753  		"081812fc": "getApproved(uint256)",
 25754  		"e985e9c5": "isApprovedForAll(address,address)",
 25755  		"6352211e": "ownerOf(uint256)",
 25756  		"42842e0e": "safeTransferFrom(address,address,uint256)",
 25757  		"b88d4fde": "safeTransferFrom(address,address,uint256,bytes)",
 25758  		"a22cb465": "setApprovalForAll(address,bool)",
 25759  		"01ffc9a7": "supportsInterface(bytes4)",
 25760  		"23b872dd": "transferFrom(address,address,uint256)",
 25761  	},
 25762  }
 25763  
 25764  // IERC721ABI is the input ABI used to generate the binding from.
 25765  // Deprecated: Use IERC721MetaData.ABI instead.
 25766  var IERC721ABI = IERC721MetaData.ABI
 25767  
 25768  // IERC721BinRuntime is the compiled bytecode used for adding genesis block without deploying code.
 25769  const IERC721BinRuntime = ``
 25770  
 25771  // IERC721FuncSigs maps the 4-byte function signature to its string representation.
 25772  // Deprecated: Use IERC721MetaData.Sigs instead.
 25773  var IERC721FuncSigs = IERC721MetaData.Sigs
 25774  
 25775  // IERC721 is an auto generated Go binding around a Klaytn contract.
 25776  type IERC721 struct {
 25777  	IERC721Caller     // Read-only binding to the contract
 25778  	IERC721Transactor // Write-only binding to the contract
 25779  	IERC721Filterer   // Log filterer for contract events
 25780  }
 25781  
 25782  // IERC721Caller is an auto generated read-only Go binding around a Klaytn contract.
 25783  type IERC721Caller struct {
 25784  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 25785  }
 25786  
 25787  // IERC721Transactor is an auto generated write-only Go binding around a Klaytn contract.
 25788  type IERC721Transactor struct {
 25789  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 25790  }
 25791  
 25792  // IERC721Filterer is an auto generated log filtering Go binding around a Klaytn contract events.
 25793  type IERC721Filterer struct {
 25794  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 25795  }
 25796  
 25797  // IERC721Session is an auto generated Go binding around a Klaytn contract,
 25798  // with pre-set call and transact options.
 25799  type IERC721Session struct {
 25800  	Contract     *IERC721          // Generic contract binding to set the session for
 25801  	CallOpts     bind.CallOpts     // Call options to use throughout this session
 25802  	TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
 25803  }
 25804  
 25805  // IERC721CallerSession is an auto generated read-only Go binding around a Klaytn contract,
 25806  // with pre-set call options.
 25807  type IERC721CallerSession struct {
 25808  	Contract *IERC721Caller // Generic contract caller binding to set the session for
 25809  	CallOpts bind.CallOpts  // Call options to use throughout this session
 25810  }
 25811  
 25812  // IERC721TransactorSession is an auto generated write-only Go binding around a Klaytn contract,
 25813  // with pre-set transact options.
 25814  type IERC721TransactorSession struct {
 25815  	Contract     *IERC721Transactor // Generic contract transactor binding to set the session for
 25816  	TransactOpts bind.TransactOpts  // Transaction auth options to use throughout this session
 25817  }
 25818  
 25819  // IERC721Raw is an auto generated low-level Go binding around a Klaytn contract.
 25820  type IERC721Raw struct {
 25821  	Contract *IERC721 // Generic contract binding to access the raw methods on
 25822  }
 25823  
 25824  // IERC721CallerRaw is an auto generated low-level read-only Go binding around a Klaytn contract.
 25825  type IERC721CallerRaw struct {
 25826  	Contract *IERC721Caller // Generic read-only contract binding to access the raw methods on
 25827  }
 25828  
 25829  // IERC721TransactorRaw is an auto generated low-level write-only Go binding around a Klaytn contract.
 25830  type IERC721TransactorRaw struct {
 25831  	Contract *IERC721Transactor // Generic write-only contract binding to access the raw methods on
 25832  }
 25833  
 25834  // NewIERC721 creates a new instance of IERC721, bound to a specific deployed contract.
 25835  func NewIERC721(address common.Address, backend bind.ContractBackend) (*IERC721, error) {
 25836  	contract, err := bindIERC721(address, backend, backend, backend)
 25837  	if err != nil {
 25838  		return nil, err
 25839  	}
 25840  	return &IERC721{IERC721Caller: IERC721Caller{contract: contract}, IERC721Transactor: IERC721Transactor{contract: contract}, IERC721Filterer: IERC721Filterer{contract: contract}}, nil
 25841  }
 25842  
 25843  // NewIERC721Caller creates a new read-only instance of IERC721, bound to a specific deployed contract.
 25844  func NewIERC721Caller(address common.Address, caller bind.ContractCaller) (*IERC721Caller, error) {
 25845  	contract, err := bindIERC721(address, caller, nil, nil)
 25846  	if err != nil {
 25847  		return nil, err
 25848  	}
 25849  	return &IERC721Caller{contract: contract}, nil
 25850  }
 25851  
 25852  // NewIERC721Transactor creates a new write-only instance of IERC721, bound to a specific deployed contract.
 25853  func NewIERC721Transactor(address common.Address, transactor bind.ContractTransactor) (*IERC721Transactor, error) {
 25854  	contract, err := bindIERC721(address, nil, transactor, nil)
 25855  	if err != nil {
 25856  		return nil, err
 25857  	}
 25858  	return &IERC721Transactor{contract: contract}, nil
 25859  }
 25860  
 25861  // NewIERC721Filterer creates a new log filterer instance of IERC721, bound to a specific deployed contract.
 25862  func NewIERC721Filterer(address common.Address, filterer bind.ContractFilterer) (*IERC721Filterer, error) {
 25863  	contract, err := bindIERC721(address, nil, nil, filterer)
 25864  	if err != nil {
 25865  		return nil, err
 25866  	}
 25867  	return &IERC721Filterer{contract: contract}, nil
 25868  }
 25869  
 25870  // bindIERC721 binds a generic wrapper to an already deployed contract.
 25871  func bindIERC721(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
 25872  	parsed, err := IERC721MetaData.GetAbi()
 25873  	if err != nil {
 25874  		return nil, err
 25875  	}
 25876  	return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil
 25877  }
 25878  
 25879  // Call invokes the (constant) contract method with params as input values and
 25880  // sets the output to result. The result type might be a single field for simple
 25881  // returns, a slice of interfaces for anonymous returns and a struct for named
 25882  // returns.
 25883  func (_IERC721 *IERC721Raw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
 25884  	return _IERC721.Contract.IERC721Caller.contract.Call(opts, result, method, params...)
 25885  }
 25886  
 25887  // Transfer initiates a plain transaction to move funds to the contract, calling
 25888  // its default method if one is available.
 25889  func (_IERC721 *IERC721Raw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
 25890  	return _IERC721.Contract.IERC721Transactor.contract.Transfer(opts)
 25891  }
 25892  
 25893  // Transact invokes the (paid) contract method with params as input values.
 25894  func (_IERC721 *IERC721Raw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
 25895  	return _IERC721.Contract.IERC721Transactor.contract.Transact(opts, method, params...)
 25896  }
 25897  
 25898  // Call invokes the (constant) contract method with params as input values and
 25899  // sets the output to result. The result type might be a single field for simple
 25900  // returns, a slice of interfaces for anonymous returns and a struct for named
 25901  // returns.
 25902  func (_IERC721 *IERC721CallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
 25903  	return _IERC721.Contract.contract.Call(opts, result, method, params...)
 25904  }
 25905  
 25906  // Transfer initiates a plain transaction to move funds to the contract, calling
 25907  // its default method if one is available.
 25908  func (_IERC721 *IERC721TransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
 25909  	return _IERC721.Contract.contract.Transfer(opts)
 25910  }
 25911  
 25912  // Transact invokes the (paid) contract method with params as input values.
 25913  func (_IERC721 *IERC721TransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
 25914  	return _IERC721.Contract.contract.Transact(opts, method, params...)
 25915  }
 25916  
 25917  // BalanceOf is a free data retrieval call binding the contract method 0x70a08231.
 25918  //
 25919  // Solidity: function balanceOf(address owner) view returns(uint256 balance)
 25920  func (_IERC721 *IERC721Caller) BalanceOf(opts *bind.CallOpts, owner common.Address) (*big.Int, error) {
 25921  	var out []interface{}
 25922  	err := _IERC721.contract.Call(opts, &out, "balanceOf", owner)
 25923  
 25924  	if err != nil {
 25925  		return *new(*big.Int), err
 25926  	}
 25927  
 25928  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
 25929  
 25930  	return out0, err
 25931  
 25932  }
 25933  
 25934  // BalanceOf is a free data retrieval call binding the contract method 0x70a08231.
 25935  //
 25936  // Solidity: function balanceOf(address owner) view returns(uint256 balance)
 25937  func (_IERC721 *IERC721Session) BalanceOf(owner common.Address) (*big.Int, error) {
 25938  	return _IERC721.Contract.BalanceOf(&_IERC721.CallOpts, owner)
 25939  }
 25940  
 25941  // BalanceOf is a free data retrieval call binding the contract method 0x70a08231.
 25942  //
 25943  // Solidity: function balanceOf(address owner) view returns(uint256 balance)
 25944  func (_IERC721 *IERC721CallerSession) BalanceOf(owner common.Address) (*big.Int, error) {
 25945  	return _IERC721.Contract.BalanceOf(&_IERC721.CallOpts, owner)
 25946  }
 25947  
 25948  // GetApproved is a free data retrieval call binding the contract method 0x081812fc.
 25949  //
 25950  // Solidity: function getApproved(uint256 tokenId) view returns(address operator)
 25951  func (_IERC721 *IERC721Caller) GetApproved(opts *bind.CallOpts, tokenId *big.Int) (common.Address, error) {
 25952  	var out []interface{}
 25953  	err := _IERC721.contract.Call(opts, &out, "getApproved", tokenId)
 25954  
 25955  	if err != nil {
 25956  		return *new(common.Address), err
 25957  	}
 25958  
 25959  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
 25960  
 25961  	return out0, err
 25962  
 25963  }
 25964  
 25965  // GetApproved is a free data retrieval call binding the contract method 0x081812fc.
 25966  //
 25967  // Solidity: function getApproved(uint256 tokenId) view returns(address operator)
 25968  func (_IERC721 *IERC721Session) GetApproved(tokenId *big.Int) (common.Address, error) {
 25969  	return _IERC721.Contract.GetApproved(&_IERC721.CallOpts, tokenId)
 25970  }
 25971  
 25972  // GetApproved is a free data retrieval call binding the contract method 0x081812fc.
 25973  //
 25974  // Solidity: function getApproved(uint256 tokenId) view returns(address operator)
 25975  func (_IERC721 *IERC721CallerSession) GetApproved(tokenId *big.Int) (common.Address, error) {
 25976  	return _IERC721.Contract.GetApproved(&_IERC721.CallOpts, tokenId)
 25977  }
 25978  
 25979  // IsApprovedForAll is a free data retrieval call binding the contract method 0xe985e9c5.
 25980  //
 25981  // Solidity: function isApprovedForAll(address owner, address operator) view returns(bool)
 25982  func (_IERC721 *IERC721Caller) IsApprovedForAll(opts *bind.CallOpts, owner common.Address, operator common.Address) (bool, error) {
 25983  	var out []interface{}
 25984  	err := _IERC721.contract.Call(opts, &out, "isApprovedForAll", owner, operator)
 25985  
 25986  	if err != nil {
 25987  		return *new(bool), err
 25988  	}
 25989  
 25990  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
 25991  
 25992  	return out0, err
 25993  
 25994  }
 25995  
 25996  // IsApprovedForAll is a free data retrieval call binding the contract method 0xe985e9c5.
 25997  //
 25998  // Solidity: function isApprovedForAll(address owner, address operator) view returns(bool)
 25999  func (_IERC721 *IERC721Session) IsApprovedForAll(owner common.Address, operator common.Address) (bool, error) {
 26000  	return _IERC721.Contract.IsApprovedForAll(&_IERC721.CallOpts, owner, operator)
 26001  }
 26002  
 26003  // IsApprovedForAll is a free data retrieval call binding the contract method 0xe985e9c5.
 26004  //
 26005  // Solidity: function isApprovedForAll(address owner, address operator) view returns(bool)
 26006  func (_IERC721 *IERC721CallerSession) IsApprovedForAll(owner common.Address, operator common.Address) (bool, error) {
 26007  	return _IERC721.Contract.IsApprovedForAll(&_IERC721.CallOpts, owner, operator)
 26008  }
 26009  
 26010  // OwnerOf is a free data retrieval call binding the contract method 0x6352211e.
 26011  //
 26012  // Solidity: function ownerOf(uint256 tokenId) view returns(address owner)
 26013  func (_IERC721 *IERC721Caller) OwnerOf(opts *bind.CallOpts, tokenId *big.Int) (common.Address, error) {
 26014  	var out []interface{}
 26015  	err := _IERC721.contract.Call(opts, &out, "ownerOf", tokenId)
 26016  
 26017  	if err != nil {
 26018  		return *new(common.Address), err
 26019  	}
 26020  
 26021  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
 26022  
 26023  	return out0, err
 26024  
 26025  }
 26026  
 26027  // OwnerOf is a free data retrieval call binding the contract method 0x6352211e.
 26028  //
 26029  // Solidity: function ownerOf(uint256 tokenId) view returns(address owner)
 26030  func (_IERC721 *IERC721Session) OwnerOf(tokenId *big.Int) (common.Address, error) {
 26031  	return _IERC721.Contract.OwnerOf(&_IERC721.CallOpts, tokenId)
 26032  }
 26033  
 26034  // OwnerOf is a free data retrieval call binding the contract method 0x6352211e.
 26035  //
 26036  // Solidity: function ownerOf(uint256 tokenId) view returns(address owner)
 26037  func (_IERC721 *IERC721CallerSession) OwnerOf(tokenId *big.Int) (common.Address, error) {
 26038  	return _IERC721.Contract.OwnerOf(&_IERC721.CallOpts, tokenId)
 26039  }
 26040  
 26041  // SupportsInterface is a free data retrieval call binding the contract method 0x01ffc9a7.
 26042  //
 26043  // Solidity: function supportsInterface(bytes4 interfaceId) view returns(bool)
 26044  func (_IERC721 *IERC721Caller) SupportsInterface(opts *bind.CallOpts, interfaceId [4]byte) (bool, error) {
 26045  	var out []interface{}
 26046  	err := _IERC721.contract.Call(opts, &out, "supportsInterface", interfaceId)
 26047  
 26048  	if err != nil {
 26049  		return *new(bool), err
 26050  	}
 26051  
 26052  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
 26053  
 26054  	return out0, err
 26055  
 26056  }
 26057  
 26058  // SupportsInterface is a free data retrieval call binding the contract method 0x01ffc9a7.
 26059  //
 26060  // Solidity: function supportsInterface(bytes4 interfaceId) view returns(bool)
 26061  func (_IERC721 *IERC721Session) SupportsInterface(interfaceId [4]byte) (bool, error) {
 26062  	return _IERC721.Contract.SupportsInterface(&_IERC721.CallOpts, interfaceId)
 26063  }
 26064  
 26065  // SupportsInterface is a free data retrieval call binding the contract method 0x01ffc9a7.
 26066  //
 26067  // Solidity: function supportsInterface(bytes4 interfaceId) view returns(bool)
 26068  func (_IERC721 *IERC721CallerSession) SupportsInterface(interfaceId [4]byte) (bool, error) {
 26069  	return _IERC721.Contract.SupportsInterface(&_IERC721.CallOpts, interfaceId)
 26070  }
 26071  
 26072  // Approve is a paid mutator transaction binding the contract method 0x095ea7b3.
 26073  //
 26074  // Solidity: function approve(address to, uint256 tokenId) returns()
 26075  func (_IERC721 *IERC721Transactor) Approve(opts *bind.TransactOpts, to common.Address, tokenId *big.Int) (*types.Transaction, error) {
 26076  	return _IERC721.contract.Transact(opts, "approve", to, tokenId)
 26077  }
 26078  
 26079  // Approve is a paid mutator transaction binding the contract method 0x095ea7b3.
 26080  //
 26081  // Solidity: function approve(address to, uint256 tokenId) returns()
 26082  func (_IERC721 *IERC721Session) Approve(to common.Address, tokenId *big.Int) (*types.Transaction, error) {
 26083  	return _IERC721.Contract.Approve(&_IERC721.TransactOpts, to, tokenId)
 26084  }
 26085  
 26086  // Approve is a paid mutator transaction binding the contract method 0x095ea7b3.
 26087  //
 26088  // Solidity: function approve(address to, uint256 tokenId) returns()
 26089  func (_IERC721 *IERC721TransactorSession) Approve(to common.Address, tokenId *big.Int) (*types.Transaction, error) {
 26090  	return _IERC721.Contract.Approve(&_IERC721.TransactOpts, to, tokenId)
 26091  }
 26092  
 26093  // SafeTransferFrom is a paid mutator transaction binding the contract method 0x42842e0e.
 26094  //
 26095  // Solidity: function safeTransferFrom(address from, address to, uint256 tokenId) returns()
 26096  func (_IERC721 *IERC721Transactor) SafeTransferFrom(opts *bind.TransactOpts, from common.Address, to common.Address, tokenId *big.Int) (*types.Transaction, error) {
 26097  	return _IERC721.contract.Transact(opts, "safeTransferFrom", from, to, tokenId)
 26098  }
 26099  
 26100  // SafeTransferFrom is a paid mutator transaction binding the contract method 0x42842e0e.
 26101  //
 26102  // Solidity: function safeTransferFrom(address from, address to, uint256 tokenId) returns()
 26103  func (_IERC721 *IERC721Session) SafeTransferFrom(from common.Address, to common.Address, tokenId *big.Int) (*types.Transaction, error) {
 26104  	return _IERC721.Contract.SafeTransferFrom(&_IERC721.TransactOpts, from, to, tokenId)
 26105  }
 26106  
 26107  // SafeTransferFrom is a paid mutator transaction binding the contract method 0x42842e0e.
 26108  //
 26109  // Solidity: function safeTransferFrom(address from, address to, uint256 tokenId) returns()
 26110  func (_IERC721 *IERC721TransactorSession) SafeTransferFrom(from common.Address, to common.Address, tokenId *big.Int) (*types.Transaction, error) {
 26111  	return _IERC721.Contract.SafeTransferFrom(&_IERC721.TransactOpts, from, to, tokenId)
 26112  }
 26113  
 26114  // SafeTransferFrom0 is a paid mutator transaction binding the contract method 0xb88d4fde.
 26115  //
 26116  // Solidity: function safeTransferFrom(address from, address to, uint256 tokenId, bytes data) returns()
 26117  func (_IERC721 *IERC721Transactor) SafeTransferFrom0(opts *bind.TransactOpts, from common.Address, to common.Address, tokenId *big.Int, data []byte) (*types.Transaction, error) {
 26118  	return _IERC721.contract.Transact(opts, "safeTransferFrom0", from, to, tokenId, data)
 26119  }
 26120  
 26121  // SafeTransferFrom0 is a paid mutator transaction binding the contract method 0xb88d4fde.
 26122  //
 26123  // Solidity: function safeTransferFrom(address from, address to, uint256 tokenId, bytes data) returns()
 26124  func (_IERC721 *IERC721Session) SafeTransferFrom0(from common.Address, to common.Address, tokenId *big.Int, data []byte) (*types.Transaction, error) {
 26125  	return _IERC721.Contract.SafeTransferFrom0(&_IERC721.TransactOpts, from, to, tokenId, data)
 26126  }
 26127  
 26128  // SafeTransferFrom0 is a paid mutator transaction binding the contract method 0xb88d4fde.
 26129  //
 26130  // Solidity: function safeTransferFrom(address from, address to, uint256 tokenId, bytes data) returns()
 26131  func (_IERC721 *IERC721TransactorSession) SafeTransferFrom0(from common.Address, to common.Address, tokenId *big.Int, data []byte) (*types.Transaction, error) {
 26132  	return _IERC721.Contract.SafeTransferFrom0(&_IERC721.TransactOpts, from, to, tokenId, data)
 26133  }
 26134  
 26135  // SetApprovalForAll is a paid mutator transaction binding the contract method 0xa22cb465.
 26136  //
 26137  // Solidity: function setApprovalForAll(address operator, bool _approved) returns()
 26138  func (_IERC721 *IERC721Transactor) SetApprovalForAll(opts *bind.TransactOpts, operator common.Address, _approved bool) (*types.Transaction, error) {
 26139  	return _IERC721.contract.Transact(opts, "setApprovalForAll", operator, _approved)
 26140  }
 26141  
 26142  // SetApprovalForAll is a paid mutator transaction binding the contract method 0xa22cb465.
 26143  //
 26144  // Solidity: function setApprovalForAll(address operator, bool _approved) returns()
 26145  func (_IERC721 *IERC721Session) SetApprovalForAll(operator common.Address, _approved bool) (*types.Transaction, error) {
 26146  	return _IERC721.Contract.SetApprovalForAll(&_IERC721.TransactOpts, operator, _approved)
 26147  }
 26148  
 26149  // SetApprovalForAll is a paid mutator transaction binding the contract method 0xa22cb465.
 26150  //
 26151  // Solidity: function setApprovalForAll(address operator, bool _approved) returns()
 26152  func (_IERC721 *IERC721TransactorSession) SetApprovalForAll(operator common.Address, _approved bool) (*types.Transaction, error) {
 26153  	return _IERC721.Contract.SetApprovalForAll(&_IERC721.TransactOpts, operator, _approved)
 26154  }
 26155  
 26156  // TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd.
 26157  //
 26158  // Solidity: function transferFrom(address from, address to, uint256 tokenId) returns()
 26159  func (_IERC721 *IERC721Transactor) TransferFrom(opts *bind.TransactOpts, from common.Address, to common.Address, tokenId *big.Int) (*types.Transaction, error) {
 26160  	return _IERC721.contract.Transact(opts, "transferFrom", from, to, tokenId)
 26161  }
 26162  
 26163  // TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd.
 26164  //
 26165  // Solidity: function transferFrom(address from, address to, uint256 tokenId) returns()
 26166  func (_IERC721 *IERC721Session) TransferFrom(from common.Address, to common.Address, tokenId *big.Int) (*types.Transaction, error) {
 26167  	return _IERC721.Contract.TransferFrom(&_IERC721.TransactOpts, from, to, tokenId)
 26168  }
 26169  
 26170  // TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd.
 26171  //
 26172  // Solidity: function transferFrom(address from, address to, uint256 tokenId) returns()
 26173  func (_IERC721 *IERC721TransactorSession) TransferFrom(from common.Address, to common.Address, tokenId *big.Int) (*types.Transaction, error) {
 26174  	return _IERC721.Contract.TransferFrom(&_IERC721.TransactOpts, from, to, tokenId)
 26175  }
 26176  
 26177  // IERC721ApprovalIterator is returned from FilterApproval and is used to iterate over the raw logs and unpacked data for Approval events raised by the IERC721 contract.
 26178  type IERC721ApprovalIterator struct {
 26179  	Event *IERC721Approval // Event containing the contract specifics and raw log
 26180  
 26181  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 26182  	event    string              // Event name to use for unpacking event data
 26183  
 26184  	logs chan types.Log      // Log channel receiving the found contract events
 26185  	sub  klaytn.Subscription // Subscription for errors, completion and termination
 26186  	done bool                // Whether the subscription completed delivering logs
 26187  	fail error               // Occurred error to stop iteration
 26188  }
 26189  
 26190  // Next advances the iterator to the subsequent event, returning whether there
 26191  // are any more events found. In case of a retrieval or parsing error, false is
 26192  // returned and Error() can be queried for the exact failure.
 26193  func (it *IERC721ApprovalIterator) Next() bool {
 26194  	// If the iterator failed, stop iterating
 26195  	if it.fail != nil {
 26196  		return false
 26197  	}
 26198  	// If the iterator completed, deliver directly whatever's available
 26199  	if it.done {
 26200  		select {
 26201  		case log := <-it.logs:
 26202  			it.Event = new(IERC721Approval)
 26203  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 26204  				it.fail = err
 26205  				return false
 26206  			}
 26207  			it.Event.Raw = log
 26208  			return true
 26209  
 26210  		default:
 26211  			return false
 26212  		}
 26213  	}
 26214  	// Iterator still in progress, wait for either a data or an error event
 26215  	select {
 26216  	case log := <-it.logs:
 26217  		it.Event = new(IERC721Approval)
 26218  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 26219  			it.fail = err
 26220  			return false
 26221  		}
 26222  		it.Event.Raw = log
 26223  		return true
 26224  
 26225  	case err := <-it.sub.Err():
 26226  		it.done = true
 26227  		it.fail = err
 26228  		return it.Next()
 26229  	}
 26230  }
 26231  
 26232  // Error returns any retrieval or parsing error occurred during filtering.
 26233  func (it *IERC721ApprovalIterator) Error() error {
 26234  	return it.fail
 26235  }
 26236  
 26237  // Close terminates the iteration process, releasing any pending underlying
 26238  // resources.
 26239  func (it *IERC721ApprovalIterator) Close() error {
 26240  	it.sub.Unsubscribe()
 26241  	return nil
 26242  }
 26243  
 26244  // IERC721Approval represents a Approval event raised by the IERC721 contract.
 26245  type IERC721Approval struct {
 26246  	Owner    common.Address
 26247  	Approved common.Address
 26248  	TokenId  *big.Int
 26249  	Raw      types.Log // Blockchain specific contextual infos
 26250  }
 26251  
 26252  // FilterApproval is a free log retrieval operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925.
 26253  //
 26254  // Solidity: event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId)
 26255  func (_IERC721 *IERC721Filterer) FilterApproval(opts *bind.FilterOpts, owner []common.Address, approved []common.Address, tokenId []*big.Int) (*IERC721ApprovalIterator, error) {
 26256  
 26257  	var ownerRule []interface{}
 26258  	for _, ownerItem := range owner {
 26259  		ownerRule = append(ownerRule, ownerItem)
 26260  	}
 26261  	var approvedRule []interface{}
 26262  	for _, approvedItem := range approved {
 26263  		approvedRule = append(approvedRule, approvedItem)
 26264  	}
 26265  	var tokenIdRule []interface{}
 26266  	for _, tokenIdItem := range tokenId {
 26267  		tokenIdRule = append(tokenIdRule, tokenIdItem)
 26268  	}
 26269  
 26270  	logs, sub, err := _IERC721.contract.FilterLogs(opts, "Approval", ownerRule, approvedRule, tokenIdRule)
 26271  	if err != nil {
 26272  		return nil, err
 26273  	}
 26274  	return &IERC721ApprovalIterator{contract: _IERC721.contract, event: "Approval", logs: logs, sub: sub}, nil
 26275  }
 26276  
 26277  // WatchApproval is a free log subscription operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925.
 26278  //
 26279  // Solidity: event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId)
 26280  func (_IERC721 *IERC721Filterer) WatchApproval(opts *bind.WatchOpts, sink chan<- *IERC721Approval, owner []common.Address, approved []common.Address, tokenId []*big.Int) (event.Subscription, error) {
 26281  
 26282  	var ownerRule []interface{}
 26283  	for _, ownerItem := range owner {
 26284  		ownerRule = append(ownerRule, ownerItem)
 26285  	}
 26286  	var approvedRule []interface{}
 26287  	for _, approvedItem := range approved {
 26288  		approvedRule = append(approvedRule, approvedItem)
 26289  	}
 26290  	var tokenIdRule []interface{}
 26291  	for _, tokenIdItem := range tokenId {
 26292  		tokenIdRule = append(tokenIdRule, tokenIdItem)
 26293  	}
 26294  
 26295  	logs, sub, err := _IERC721.contract.WatchLogs(opts, "Approval", ownerRule, approvedRule, tokenIdRule)
 26296  	if err != nil {
 26297  		return nil, err
 26298  	}
 26299  	return event.NewSubscription(func(quit <-chan struct{}) error {
 26300  		defer sub.Unsubscribe()
 26301  		for {
 26302  			select {
 26303  			case log := <-logs:
 26304  				// New log arrived, parse the event and forward to the user
 26305  				event := new(IERC721Approval)
 26306  				if err := _IERC721.contract.UnpackLog(event, "Approval", log); err != nil {
 26307  					return err
 26308  				}
 26309  				event.Raw = log
 26310  
 26311  				select {
 26312  				case sink <- event:
 26313  				case err := <-sub.Err():
 26314  					return err
 26315  				case <-quit:
 26316  					return nil
 26317  				}
 26318  			case err := <-sub.Err():
 26319  				return err
 26320  			case <-quit:
 26321  				return nil
 26322  			}
 26323  		}
 26324  	}), nil
 26325  }
 26326  
 26327  // ParseApproval is a log parse operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925.
 26328  //
 26329  // Solidity: event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId)
 26330  func (_IERC721 *IERC721Filterer) ParseApproval(log types.Log) (*IERC721Approval, error) {
 26331  	event := new(IERC721Approval)
 26332  	if err := _IERC721.contract.UnpackLog(event, "Approval", log); err != nil {
 26333  		return nil, err
 26334  	}
 26335  	return event, nil
 26336  }
 26337  
 26338  // IERC721ApprovalForAllIterator is returned from FilterApprovalForAll and is used to iterate over the raw logs and unpacked data for ApprovalForAll events raised by the IERC721 contract.
 26339  type IERC721ApprovalForAllIterator struct {
 26340  	Event *IERC721ApprovalForAll // Event containing the contract specifics and raw log
 26341  
 26342  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 26343  	event    string              // Event name to use for unpacking event data
 26344  
 26345  	logs chan types.Log      // Log channel receiving the found contract events
 26346  	sub  klaytn.Subscription // Subscription for errors, completion and termination
 26347  	done bool                // Whether the subscription completed delivering logs
 26348  	fail error               // Occurred error to stop iteration
 26349  }
 26350  
 26351  // Next advances the iterator to the subsequent event, returning whether there
 26352  // are any more events found. In case of a retrieval or parsing error, false is
 26353  // returned and Error() can be queried for the exact failure.
 26354  func (it *IERC721ApprovalForAllIterator) Next() bool {
 26355  	// If the iterator failed, stop iterating
 26356  	if it.fail != nil {
 26357  		return false
 26358  	}
 26359  	// If the iterator completed, deliver directly whatever's available
 26360  	if it.done {
 26361  		select {
 26362  		case log := <-it.logs:
 26363  			it.Event = new(IERC721ApprovalForAll)
 26364  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 26365  				it.fail = err
 26366  				return false
 26367  			}
 26368  			it.Event.Raw = log
 26369  			return true
 26370  
 26371  		default:
 26372  			return false
 26373  		}
 26374  	}
 26375  	// Iterator still in progress, wait for either a data or an error event
 26376  	select {
 26377  	case log := <-it.logs:
 26378  		it.Event = new(IERC721ApprovalForAll)
 26379  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 26380  			it.fail = err
 26381  			return false
 26382  		}
 26383  		it.Event.Raw = log
 26384  		return true
 26385  
 26386  	case err := <-it.sub.Err():
 26387  		it.done = true
 26388  		it.fail = err
 26389  		return it.Next()
 26390  	}
 26391  }
 26392  
 26393  // Error returns any retrieval or parsing error occurred during filtering.
 26394  func (it *IERC721ApprovalForAllIterator) Error() error {
 26395  	return it.fail
 26396  }
 26397  
 26398  // Close terminates the iteration process, releasing any pending underlying
 26399  // resources.
 26400  func (it *IERC721ApprovalForAllIterator) Close() error {
 26401  	it.sub.Unsubscribe()
 26402  	return nil
 26403  }
 26404  
 26405  // IERC721ApprovalForAll represents a ApprovalForAll event raised by the IERC721 contract.
 26406  type IERC721ApprovalForAll struct {
 26407  	Owner    common.Address
 26408  	Operator common.Address
 26409  	Approved bool
 26410  	Raw      types.Log // Blockchain specific contextual infos
 26411  }
 26412  
 26413  // FilterApprovalForAll is a free log retrieval operation binding the contract event 0x17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31.
 26414  //
 26415  // Solidity: event ApprovalForAll(address indexed owner, address indexed operator, bool approved)
 26416  func (_IERC721 *IERC721Filterer) FilterApprovalForAll(opts *bind.FilterOpts, owner []common.Address, operator []common.Address) (*IERC721ApprovalForAllIterator, error) {
 26417  
 26418  	var ownerRule []interface{}
 26419  	for _, ownerItem := range owner {
 26420  		ownerRule = append(ownerRule, ownerItem)
 26421  	}
 26422  	var operatorRule []interface{}
 26423  	for _, operatorItem := range operator {
 26424  		operatorRule = append(operatorRule, operatorItem)
 26425  	}
 26426  
 26427  	logs, sub, err := _IERC721.contract.FilterLogs(opts, "ApprovalForAll", ownerRule, operatorRule)
 26428  	if err != nil {
 26429  		return nil, err
 26430  	}
 26431  	return &IERC721ApprovalForAllIterator{contract: _IERC721.contract, event: "ApprovalForAll", logs: logs, sub: sub}, nil
 26432  }
 26433  
 26434  // WatchApprovalForAll is a free log subscription operation binding the contract event 0x17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31.
 26435  //
 26436  // Solidity: event ApprovalForAll(address indexed owner, address indexed operator, bool approved)
 26437  func (_IERC721 *IERC721Filterer) WatchApprovalForAll(opts *bind.WatchOpts, sink chan<- *IERC721ApprovalForAll, owner []common.Address, operator []common.Address) (event.Subscription, error) {
 26438  
 26439  	var ownerRule []interface{}
 26440  	for _, ownerItem := range owner {
 26441  		ownerRule = append(ownerRule, ownerItem)
 26442  	}
 26443  	var operatorRule []interface{}
 26444  	for _, operatorItem := range operator {
 26445  		operatorRule = append(operatorRule, operatorItem)
 26446  	}
 26447  
 26448  	logs, sub, err := _IERC721.contract.WatchLogs(opts, "ApprovalForAll", ownerRule, operatorRule)
 26449  	if err != nil {
 26450  		return nil, err
 26451  	}
 26452  	return event.NewSubscription(func(quit <-chan struct{}) error {
 26453  		defer sub.Unsubscribe()
 26454  		for {
 26455  			select {
 26456  			case log := <-logs:
 26457  				// New log arrived, parse the event and forward to the user
 26458  				event := new(IERC721ApprovalForAll)
 26459  				if err := _IERC721.contract.UnpackLog(event, "ApprovalForAll", log); err != nil {
 26460  					return err
 26461  				}
 26462  				event.Raw = log
 26463  
 26464  				select {
 26465  				case sink <- event:
 26466  				case err := <-sub.Err():
 26467  					return err
 26468  				case <-quit:
 26469  					return nil
 26470  				}
 26471  			case err := <-sub.Err():
 26472  				return err
 26473  			case <-quit:
 26474  				return nil
 26475  			}
 26476  		}
 26477  	}), nil
 26478  }
 26479  
 26480  // ParseApprovalForAll is a log parse operation binding the contract event 0x17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31.
 26481  //
 26482  // Solidity: event ApprovalForAll(address indexed owner, address indexed operator, bool approved)
 26483  func (_IERC721 *IERC721Filterer) ParseApprovalForAll(log types.Log) (*IERC721ApprovalForAll, error) {
 26484  	event := new(IERC721ApprovalForAll)
 26485  	if err := _IERC721.contract.UnpackLog(event, "ApprovalForAll", log); err != nil {
 26486  		return nil, err
 26487  	}
 26488  	return event, nil
 26489  }
 26490  
 26491  // IERC721TransferIterator is returned from FilterTransfer and is used to iterate over the raw logs and unpacked data for Transfer events raised by the IERC721 contract.
 26492  type IERC721TransferIterator struct {
 26493  	Event *IERC721Transfer // Event containing the contract specifics and raw log
 26494  
 26495  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 26496  	event    string              // Event name to use for unpacking event data
 26497  
 26498  	logs chan types.Log      // Log channel receiving the found contract events
 26499  	sub  klaytn.Subscription // Subscription for errors, completion and termination
 26500  	done bool                // Whether the subscription completed delivering logs
 26501  	fail error               // Occurred error to stop iteration
 26502  }
 26503  
 26504  // Next advances the iterator to the subsequent event, returning whether there
 26505  // are any more events found. In case of a retrieval or parsing error, false is
 26506  // returned and Error() can be queried for the exact failure.
 26507  func (it *IERC721TransferIterator) Next() bool {
 26508  	// If the iterator failed, stop iterating
 26509  	if it.fail != nil {
 26510  		return false
 26511  	}
 26512  	// If the iterator completed, deliver directly whatever's available
 26513  	if it.done {
 26514  		select {
 26515  		case log := <-it.logs:
 26516  			it.Event = new(IERC721Transfer)
 26517  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 26518  				it.fail = err
 26519  				return false
 26520  			}
 26521  			it.Event.Raw = log
 26522  			return true
 26523  
 26524  		default:
 26525  			return false
 26526  		}
 26527  	}
 26528  	// Iterator still in progress, wait for either a data or an error event
 26529  	select {
 26530  	case log := <-it.logs:
 26531  		it.Event = new(IERC721Transfer)
 26532  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 26533  			it.fail = err
 26534  			return false
 26535  		}
 26536  		it.Event.Raw = log
 26537  		return true
 26538  
 26539  	case err := <-it.sub.Err():
 26540  		it.done = true
 26541  		it.fail = err
 26542  		return it.Next()
 26543  	}
 26544  }
 26545  
 26546  // Error returns any retrieval or parsing error occurred during filtering.
 26547  func (it *IERC721TransferIterator) Error() error {
 26548  	return it.fail
 26549  }
 26550  
 26551  // Close terminates the iteration process, releasing any pending underlying
 26552  // resources.
 26553  func (it *IERC721TransferIterator) Close() error {
 26554  	it.sub.Unsubscribe()
 26555  	return nil
 26556  }
 26557  
 26558  // IERC721Transfer represents a Transfer event raised by the IERC721 contract.
 26559  type IERC721Transfer struct {
 26560  	From    common.Address
 26561  	To      common.Address
 26562  	TokenId *big.Int
 26563  	Raw     types.Log // Blockchain specific contextual infos
 26564  }
 26565  
 26566  // FilterTransfer is a free log retrieval operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef.
 26567  //
 26568  // Solidity: event Transfer(address indexed from, address indexed to, uint256 indexed tokenId)
 26569  func (_IERC721 *IERC721Filterer) FilterTransfer(opts *bind.FilterOpts, from []common.Address, to []common.Address, tokenId []*big.Int) (*IERC721TransferIterator, error) {
 26570  
 26571  	var fromRule []interface{}
 26572  	for _, fromItem := range from {
 26573  		fromRule = append(fromRule, fromItem)
 26574  	}
 26575  	var toRule []interface{}
 26576  	for _, toItem := range to {
 26577  		toRule = append(toRule, toItem)
 26578  	}
 26579  	var tokenIdRule []interface{}
 26580  	for _, tokenIdItem := range tokenId {
 26581  		tokenIdRule = append(tokenIdRule, tokenIdItem)
 26582  	}
 26583  
 26584  	logs, sub, err := _IERC721.contract.FilterLogs(opts, "Transfer", fromRule, toRule, tokenIdRule)
 26585  	if err != nil {
 26586  		return nil, err
 26587  	}
 26588  	return &IERC721TransferIterator{contract: _IERC721.contract, event: "Transfer", logs: logs, sub: sub}, nil
 26589  }
 26590  
 26591  // WatchTransfer is a free log subscription operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef.
 26592  //
 26593  // Solidity: event Transfer(address indexed from, address indexed to, uint256 indexed tokenId)
 26594  func (_IERC721 *IERC721Filterer) WatchTransfer(opts *bind.WatchOpts, sink chan<- *IERC721Transfer, from []common.Address, to []common.Address, tokenId []*big.Int) (event.Subscription, error) {
 26595  
 26596  	var fromRule []interface{}
 26597  	for _, fromItem := range from {
 26598  		fromRule = append(fromRule, fromItem)
 26599  	}
 26600  	var toRule []interface{}
 26601  	for _, toItem := range to {
 26602  		toRule = append(toRule, toItem)
 26603  	}
 26604  	var tokenIdRule []interface{}
 26605  	for _, tokenIdItem := range tokenId {
 26606  		tokenIdRule = append(tokenIdRule, tokenIdItem)
 26607  	}
 26608  
 26609  	logs, sub, err := _IERC721.contract.WatchLogs(opts, "Transfer", fromRule, toRule, tokenIdRule)
 26610  	if err != nil {
 26611  		return nil, err
 26612  	}
 26613  	return event.NewSubscription(func(quit <-chan struct{}) error {
 26614  		defer sub.Unsubscribe()
 26615  		for {
 26616  			select {
 26617  			case log := <-logs:
 26618  				// New log arrived, parse the event and forward to the user
 26619  				event := new(IERC721Transfer)
 26620  				if err := _IERC721.contract.UnpackLog(event, "Transfer", log); err != nil {
 26621  					return err
 26622  				}
 26623  				event.Raw = log
 26624  
 26625  				select {
 26626  				case sink <- event:
 26627  				case err := <-sub.Err():
 26628  					return err
 26629  				case <-quit:
 26630  					return nil
 26631  				}
 26632  			case err := <-sub.Err():
 26633  				return err
 26634  			case <-quit:
 26635  				return nil
 26636  			}
 26637  		}
 26638  	}), nil
 26639  }
 26640  
 26641  // ParseTransfer is a log parse operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef.
 26642  //
 26643  // Solidity: event Transfer(address indexed from, address indexed to, uint256 indexed tokenId)
 26644  func (_IERC721 *IERC721Filterer) ParseTransfer(log types.Log) (*IERC721Transfer, error) {
 26645  	event := new(IERC721Transfer)
 26646  	if err := _IERC721.contract.UnpackLog(event, "Transfer", log); err != nil {
 26647  		return nil, err
 26648  	}
 26649  	return event, nil
 26650  }
 26651  
 26652  // IERC721BridgeReceiverMetaData contains all meta data concerning the IERC721BridgeReceiver contract.
 26653  var IERC721BridgeReceiverMetaData = &bind.MetaData{
 26654  	ABI: "[{\"constant\":false,\"inputs\":[{\"name\":\"_from\",\"type\":\"address\"},{\"name\":\"_tokenId\",\"type\":\"uint256\"},{\"name\":\"_to\",\"type\":\"address\"},{\"name\":\"_extraData\",\"type\":\"bytes\"}],\"name\":\"onERC721Received\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]",
 26655  	Sigs: map[string]string{
 26656  		"cf0da290": "onERC721Received(address,uint256,address,bytes)",
 26657  	},
 26658  }
 26659  
 26660  // IERC721BridgeReceiverABI is the input ABI used to generate the binding from.
 26661  // Deprecated: Use IERC721BridgeReceiverMetaData.ABI instead.
 26662  var IERC721BridgeReceiverABI = IERC721BridgeReceiverMetaData.ABI
 26663  
 26664  // IERC721BridgeReceiverBinRuntime is the compiled bytecode used for adding genesis block without deploying code.
 26665  const IERC721BridgeReceiverBinRuntime = ``
 26666  
 26667  // IERC721BridgeReceiverFuncSigs maps the 4-byte function signature to its string representation.
 26668  // Deprecated: Use IERC721BridgeReceiverMetaData.Sigs instead.
 26669  var IERC721BridgeReceiverFuncSigs = IERC721BridgeReceiverMetaData.Sigs
 26670  
 26671  // IERC721BridgeReceiver is an auto generated Go binding around a Klaytn contract.
 26672  type IERC721BridgeReceiver struct {
 26673  	IERC721BridgeReceiverCaller     // Read-only binding to the contract
 26674  	IERC721BridgeReceiverTransactor // Write-only binding to the contract
 26675  	IERC721BridgeReceiverFilterer   // Log filterer for contract events
 26676  }
 26677  
 26678  // IERC721BridgeReceiverCaller is an auto generated read-only Go binding around a Klaytn contract.
 26679  type IERC721BridgeReceiverCaller struct {
 26680  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 26681  }
 26682  
 26683  // IERC721BridgeReceiverTransactor is an auto generated write-only Go binding around a Klaytn contract.
 26684  type IERC721BridgeReceiverTransactor struct {
 26685  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 26686  }
 26687  
 26688  // IERC721BridgeReceiverFilterer is an auto generated log filtering Go binding around a Klaytn contract events.
 26689  type IERC721BridgeReceiverFilterer struct {
 26690  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 26691  }
 26692  
 26693  // IERC721BridgeReceiverSession is an auto generated Go binding around a Klaytn contract,
 26694  // with pre-set call and transact options.
 26695  type IERC721BridgeReceiverSession struct {
 26696  	Contract     *IERC721BridgeReceiver // Generic contract binding to set the session for
 26697  	CallOpts     bind.CallOpts          // Call options to use throughout this session
 26698  	TransactOpts bind.TransactOpts      // Transaction auth options to use throughout this session
 26699  }
 26700  
 26701  // IERC721BridgeReceiverCallerSession is an auto generated read-only Go binding around a Klaytn contract,
 26702  // with pre-set call options.
 26703  type IERC721BridgeReceiverCallerSession struct {
 26704  	Contract *IERC721BridgeReceiverCaller // Generic contract caller binding to set the session for
 26705  	CallOpts bind.CallOpts                // Call options to use throughout this session
 26706  }
 26707  
 26708  // IERC721BridgeReceiverTransactorSession is an auto generated write-only Go binding around a Klaytn contract,
 26709  // with pre-set transact options.
 26710  type IERC721BridgeReceiverTransactorSession struct {
 26711  	Contract     *IERC721BridgeReceiverTransactor // Generic contract transactor binding to set the session for
 26712  	TransactOpts bind.TransactOpts                // Transaction auth options to use throughout this session
 26713  }
 26714  
 26715  // IERC721BridgeReceiverRaw is an auto generated low-level Go binding around a Klaytn contract.
 26716  type IERC721BridgeReceiverRaw struct {
 26717  	Contract *IERC721BridgeReceiver // Generic contract binding to access the raw methods on
 26718  }
 26719  
 26720  // IERC721BridgeReceiverCallerRaw is an auto generated low-level read-only Go binding around a Klaytn contract.
 26721  type IERC721BridgeReceiverCallerRaw struct {
 26722  	Contract *IERC721BridgeReceiverCaller // Generic read-only contract binding to access the raw methods on
 26723  }
 26724  
 26725  // IERC721BridgeReceiverTransactorRaw is an auto generated low-level write-only Go binding around a Klaytn contract.
 26726  type IERC721BridgeReceiverTransactorRaw struct {
 26727  	Contract *IERC721BridgeReceiverTransactor // Generic write-only contract binding to access the raw methods on
 26728  }
 26729  
 26730  // NewIERC721BridgeReceiver creates a new instance of IERC721BridgeReceiver, bound to a specific deployed contract.
 26731  func NewIERC721BridgeReceiver(address common.Address, backend bind.ContractBackend) (*IERC721BridgeReceiver, error) {
 26732  	contract, err := bindIERC721BridgeReceiver(address, backend, backend, backend)
 26733  	if err != nil {
 26734  		return nil, err
 26735  	}
 26736  	return &IERC721BridgeReceiver{IERC721BridgeReceiverCaller: IERC721BridgeReceiverCaller{contract: contract}, IERC721BridgeReceiverTransactor: IERC721BridgeReceiverTransactor{contract: contract}, IERC721BridgeReceiverFilterer: IERC721BridgeReceiverFilterer{contract: contract}}, nil
 26737  }
 26738  
 26739  // NewIERC721BridgeReceiverCaller creates a new read-only instance of IERC721BridgeReceiver, bound to a specific deployed contract.
 26740  func NewIERC721BridgeReceiverCaller(address common.Address, caller bind.ContractCaller) (*IERC721BridgeReceiverCaller, error) {
 26741  	contract, err := bindIERC721BridgeReceiver(address, caller, nil, nil)
 26742  	if err != nil {
 26743  		return nil, err
 26744  	}
 26745  	return &IERC721BridgeReceiverCaller{contract: contract}, nil
 26746  }
 26747  
 26748  // NewIERC721BridgeReceiverTransactor creates a new write-only instance of IERC721BridgeReceiver, bound to a specific deployed contract.
 26749  func NewIERC721BridgeReceiverTransactor(address common.Address, transactor bind.ContractTransactor) (*IERC721BridgeReceiverTransactor, error) {
 26750  	contract, err := bindIERC721BridgeReceiver(address, nil, transactor, nil)
 26751  	if err != nil {
 26752  		return nil, err
 26753  	}
 26754  	return &IERC721BridgeReceiverTransactor{contract: contract}, nil
 26755  }
 26756  
 26757  // NewIERC721BridgeReceiverFilterer creates a new log filterer instance of IERC721BridgeReceiver, bound to a specific deployed contract.
 26758  func NewIERC721BridgeReceiverFilterer(address common.Address, filterer bind.ContractFilterer) (*IERC721BridgeReceiverFilterer, error) {
 26759  	contract, err := bindIERC721BridgeReceiver(address, nil, nil, filterer)
 26760  	if err != nil {
 26761  		return nil, err
 26762  	}
 26763  	return &IERC721BridgeReceiverFilterer{contract: contract}, nil
 26764  }
 26765  
 26766  // bindIERC721BridgeReceiver binds a generic wrapper to an already deployed contract.
 26767  func bindIERC721BridgeReceiver(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
 26768  	parsed, err := IERC721BridgeReceiverMetaData.GetAbi()
 26769  	if err != nil {
 26770  		return nil, err
 26771  	}
 26772  	return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil
 26773  }
 26774  
 26775  // Call invokes the (constant) contract method with params as input values and
 26776  // sets the output to result. The result type might be a single field for simple
 26777  // returns, a slice of interfaces for anonymous returns and a struct for named
 26778  // returns.
 26779  func (_IERC721BridgeReceiver *IERC721BridgeReceiverRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
 26780  	return _IERC721BridgeReceiver.Contract.IERC721BridgeReceiverCaller.contract.Call(opts, result, method, params...)
 26781  }
 26782  
 26783  // Transfer initiates a plain transaction to move funds to the contract, calling
 26784  // its default method if one is available.
 26785  func (_IERC721BridgeReceiver *IERC721BridgeReceiverRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
 26786  	return _IERC721BridgeReceiver.Contract.IERC721BridgeReceiverTransactor.contract.Transfer(opts)
 26787  }
 26788  
 26789  // Transact invokes the (paid) contract method with params as input values.
 26790  func (_IERC721BridgeReceiver *IERC721BridgeReceiverRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
 26791  	return _IERC721BridgeReceiver.Contract.IERC721BridgeReceiverTransactor.contract.Transact(opts, method, params...)
 26792  }
 26793  
 26794  // Call invokes the (constant) contract method with params as input values and
 26795  // sets the output to result. The result type might be a single field for simple
 26796  // returns, a slice of interfaces for anonymous returns and a struct for named
 26797  // returns.
 26798  func (_IERC721BridgeReceiver *IERC721BridgeReceiverCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
 26799  	return _IERC721BridgeReceiver.Contract.contract.Call(opts, result, method, params...)
 26800  }
 26801  
 26802  // Transfer initiates a plain transaction to move funds to the contract, calling
 26803  // its default method if one is available.
 26804  func (_IERC721BridgeReceiver *IERC721BridgeReceiverTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
 26805  	return _IERC721BridgeReceiver.Contract.contract.Transfer(opts)
 26806  }
 26807  
 26808  // Transact invokes the (paid) contract method with params as input values.
 26809  func (_IERC721BridgeReceiver *IERC721BridgeReceiverTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
 26810  	return _IERC721BridgeReceiver.Contract.contract.Transact(opts, method, params...)
 26811  }
 26812  
 26813  // OnERC721Received is a paid mutator transaction binding the contract method 0xcf0da290.
 26814  //
 26815  // Solidity: function onERC721Received(address _from, uint256 _tokenId, address _to, bytes _extraData) returns()
 26816  func (_IERC721BridgeReceiver *IERC721BridgeReceiverTransactor) OnERC721Received(opts *bind.TransactOpts, _from common.Address, _tokenId *big.Int, _to common.Address, _extraData []byte) (*types.Transaction, error) {
 26817  	return _IERC721BridgeReceiver.contract.Transact(opts, "onERC721Received", _from, _tokenId, _to, _extraData)
 26818  }
 26819  
 26820  // OnERC721Received is a paid mutator transaction binding the contract method 0xcf0da290.
 26821  //
 26822  // Solidity: function onERC721Received(address _from, uint256 _tokenId, address _to, bytes _extraData) returns()
 26823  func (_IERC721BridgeReceiver *IERC721BridgeReceiverSession) OnERC721Received(_from common.Address, _tokenId *big.Int, _to common.Address, _extraData []byte) (*types.Transaction, error) {
 26824  	return _IERC721BridgeReceiver.Contract.OnERC721Received(&_IERC721BridgeReceiver.TransactOpts, _from, _tokenId, _to, _extraData)
 26825  }
 26826  
 26827  // OnERC721Received is a paid mutator transaction binding the contract method 0xcf0da290.
 26828  //
 26829  // Solidity: function onERC721Received(address _from, uint256 _tokenId, address _to, bytes _extraData) returns()
 26830  func (_IERC721BridgeReceiver *IERC721BridgeReceiverTransactorSession) OnERC721Received(_from common.Address, _tokenId *big.Int, _to common.Address, _extraData []byte) (*types.Transaction, error) {
 26831  	return _IERC721BridgeReceiver.Contract.OnERC721Received(&_IERC721BridgeReceiver.TransactOpts, _from, _tokenId, _to, _extraData)
 26832  }
 26833  
 26834  // IERC721MetadataMetaData contains all meta data concerning the IERC721Metadata contract.
 26835  var IERC721MetadataMetaData = &bind.MetaData{
 26836  	ABI: "[{\"constant\":true,\"inputs\":[{\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"name\":\"operator\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"to\",\"type\":\"address\"},{\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"from\",\"type\":\"address\"},{\"name\":\"to\",\"type\":\"address\"},{\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"from\",\"type\":\"address\"},{\"name\":\"to\",\"type\":\"address\"},{\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"name\":\"owner\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"name\":\"balance\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"operator\",\"type\":\"address\"},{\"name\":\"_approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"from\",\"type\":\"address\"},{\"name\":\"to\",\"type\":\"address\"},{\"name\":\"tokenId\",\"type\":\"uint256\"},{\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"owner\",\"type\":\"address\"},{\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"}]",
 26837  	Sigs: map[string]string{
 26838  		"095ea7b3": "approve(address,uint256)",
 26839  		"70a08231": "balanceOf(address)",
 26840  		"081812fc": "getApproved(uint256)",
 26841  		"e985e9c5": "isApprovedForAll(address,address)",
 26842  		"06fdde03": "name()",
 26843  		"6352211e": "ownerOf(uint256)",
 26844  		"42842e0e": "safeTransferFrom(address,address,uint256)",
 26845  		"b88d4fde": "safeTransferFrom(address,address,uint256,bytes)",
 26846  		"a22cb465": "setApprovalForAll(address,bool)",
 26847  		"01ffc9a7": "supportsInterface(bytes4)",
 26848  		"95d89b41": "symbol()",
 26849  		"c87b56dd": "tokenURI(uint256)",
 26850  		"23b872dd": "transferFrom(address,address,uint256)",
 26851  	},
 26852  }
 26853  
 26854  // IERC721MetadataABI is the input ABI used to generate the binding from.
 26855  // Deprecated: Use IERC721MetadataMetaData.ABI instead.
 26856  var IERC721MetadataABI = IERC721MetadataMetaData.ABI
 26857  
 26858  // IERC721MetadataBinRuntime is the compiled bytecode used for adding genesis block without deploying code.
 26859  const IERC721MetadataBinRuntime = ``
 26860  
 26861  // IERC721MetadataFuncSigs maps the 4-byte function signature to its string representation.
 26862  // Deprecated: Use IERC721MetadataMetaData.Sigs instead.
 26863  var IERC721MetadataFuncSigs = IERC721MetadataMetaData.Sigs
 26864  
 26865  // IERC721Metadata is an auto generated Go binding around a Klaytn contract.
 26866  type IERC721Metadata struct {
 26867  	IERC721MetadataCaller     // Read-only binding to the contract
 26868  	IERC721MetadataTransactor // Write-only binding to the contract
 26869  	IERC721MetadataFilterer   // Log filterer for contract events
 26870  }
 26871  
 26872  // IERC721MetadataCaller is an auto generated read-only Go binding around a Klaytn contract.
 26873  type IERC721MetadataCaller struct {
 26874  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 26875  }
 26876  
 26877  // IERC721MetadataTransactor is an auto generated write-only Go binding around a Klaytn contract.
 26878  type IERC721MetadataTransactor struct {
 26879  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 26880  }
 26881  
 26882  // IERC721MetadataFilterer is an auto generated log filtering Go binding around a Klaytn contract events.
 26883  type IERC721MetadataFilterer struct {
 26884  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 26885  }
 26886  
 26887  // IERC721MetadataSession is an auto generated Go binding around a Klaytn contract,
 26888  // with pre-set call and transact options.
 26889  type IERC721MetadataSession struct {
 26890  	Contract     *IERC721Metadata  // Generic contract binding to set the session for
 26891  	CallOpts     bind.CallOpts     // Call options to use throughout this session
 26892  	TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
 26893  }
 26894  
 26895  // IERC721MetadataCallerSession is an auto generated read-only Go binding around a Klaytn contract,
 26896  // with pre-set call options.
 26897  type IERC721MetadataCallerSession struct {
 26898  	Contract *IERC721MetadataCaller // Generic contract caller binding to set the session for
 26899  	CallOpts bind.CallOpts          // Call options to use throughout this session
 26900  }
 26901  
 26902  // IERC721MetadataTransactorSession is an auto generated write-only Go binding around a Klaytn contract,
 26903  // with pre-set transact options.
 26904  type IERC721MetadataTransactorSession struct {
 26905  	Contract     *IERC721MetadataTransactor // Generic contract transactor binding to set the session for
 26906  	TransactOpts bind.TransactOpts          // Transaction auth options to use throughout this session
 26907  }
 26908  
 26909  // IERC721MetadataRaw is an auto generated low-level Go binding around a Klaytn contract.
 26910  type IERC721MetadataRaw struct {
 26911  	Contract *IERC721Metadata // Generic contract binding to access the raw methods on
 26912  }
 26913  
 26914  // IERC721MetadataCallerRaw is an auto generated low-level read-only Go binding around a Klaytn contract.
 26915  type IERC721MetadataCallerRaw struct {
 26916  	Contract *IERC721MetadataCaller // Generic read-only contract binding to access the raw methods on
 26917  }
 26918  
 26919  // IERC721MetadataTransactorRaw is an auto generated low-level write-only Go binding around a Klaytn contract.
 26920  type IERC721MetadataTransactorRaw struct {
 26921  	Contract *IERC721MetadataTransactor // Generic write-only contract binding to access the raw methods on
 26922  }
 26923  
 26924  // NewIERC721Metadata creates a new instance of IERC721Metadata, bound to a specific deployed contract.
 26925  func NewIERC721Metadata(address common.Address, backend bind.ContractBackend) (*IERC721Metadata, error) {
 26926  	contract, err := bindIERC721Metadata(address, backend, backend, backend)
 26927  	if err != nil {
 26928  		return nil, err
 26929  	}
 26930  	return &IERC721Metadata{IERC721MetadataCaller: IERC721MetadataCaller{contract: contract}, IERC721MetadataTransactor: IERC721MetadataTransactor{contract: contract}, IERC721MetadataFilterer: IERC721MetadataFilterer{contract: contract}}, nil
 26931  }
 26932  
 26933  // NewIERC721MetadataCaller creates a new read-only instance of IERC721Metadata, bound to a specific deployed contract.
 26934  func NewIERC721MetadataCaller(address common.Address, caller bind.ContractCaller) (*IERC721MetadataCaller, error) {
 26935  	contract, err := bindIERC721Metadata(address, caller, nil, nil)
 26936  	if err != nil {
 26937  		return nil, err
 26938  	}
 26939  	return &IERC721MetadataCaller{contract: contract}, nil
 26940  }
 26941  
 26942  // NewIERC721MetadataTransactor creates a new write-only instance of IERC721Metadata, bound to a specific deployed contract.
 26943  func NewIERC721MetadataTransactor(address common.Address, transactor bind.ContractTransactor) (*IERC721MetadataTransactor, error) {
 26944  	contract, err := bindIERC721Metadata(address, nil, transactor, nil)
 26945  	if err != nil {
 26946  		return nil, err
 26947  	}
 26948  	return &IERC721MetadataTransactor{contract: contract}, nil
 26949  }
 26950  
 26951  // NewIERC721MetadataFilterer creates a new log filterer instance of IERC721Metadata, bound to a specific deployed contract.
 26952  func NewIERC721MetadataFilterer(address common.Address, filterer bind.ContractFilterer) (*IERC721MetadataFilterer, error) {
 26953  	contract, err := bindIERC721Metadata(address, nil, nil, filterer)
 26954  	if err != nil {
 26955  		return nil, err
 26956  	}
 26957  	return &IERC721MetadataFilterer{contract: contract}, nil
 26958  }
 26959  
 26960  // bindIERC721Metadata binds a generic wrapper to an already deployed contract.
 26961  func bindIERC721Metadata(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
 26962  	parsed, err := IERC721MetadataMetaData.GetAbi()
 26963  	if err != nil {
 26964  		return nil, err
 26965  	}
 26966  	return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil
 26967  }
 26968  
 26969  // Call invokes the (constant) contract method with params as input values and
 26970  // sets the output to result. The result type might be a single field for simple
 26971  // returns, a slice of interfaces for anonymous returns and a struct for named
 26972  // returns.
 26973  func (_IERC721Metadata *IERC721MetadataRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
 26974  	return _IERC721Metadata.Contract.IERC721MetadataCaller.contract.Call(opts, result, method, params...)
 26975  }
 26976  
 26977  // Transfer initiates a plain transaction to move funds to the contract, calling
 26978  // its default method if one is available.
 26979  func (_IERC721Metadata *IERC721MetadataRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
 26980  	return _IERC721Metadata.Contract.IERC721MetadataTransactor.contract.Transfer(opts)
 26981  }
 26982  
 26983  // Transact invokes the (paid) contract method with params as input values.
 26984  func (_IERC721Metadata *IERC721MetadataRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
 26985  	return _IERC721Metadata.Contract.IERC721MetadataTransactor.contract.Transact(opts, method, params...)
 26986  }
 26987  
 26988  // Call invokes the (constant) contract method with params as input values and
 26989  // sets the output to result. The result type might be a single field for simple
 26990  // returns, a slice of interfaces for anonymous returns and a struct for named
 26991  // returns.
 26992  func (_IERC721Metadata *IERC721MetadataCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
 26993  	return _IERC721Metadata.Contract.contract.Call(opts, result, method, params...)
 26994  }
 26995  
 26996  // Transfer initiates a plain transaction to move funds to the contract, calling
 26997  // its default method if one is available.
 26998  func (_IERC721Metadata *IERC721MetadataTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
 26999  	return _IERC721Metadata.Contract.contract.Transfer(opts)
 27000  }
 27001  
 27002  // Transact invokes the (paid) contract method with params as input values.
 27003  func (_IERC721Metadata *IERC721MetadataTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
 27004  	return _IERC721Metadata.Contract.contract.Transact(opts, method, params...)
 27005  }
 27006  
 27007  // BalanceOf is a free data retrieval call binding the contract method 0x70a08231.
 27008  //
 27009  // Solidity: function balanceOf(address owner) view returns(uint256 balance)
 27010  func (_IERC721Metadata *IERC721MetadataCaller) BalanceOf(opts *bind.CallOpts, owner common.Address) (*big.Int, error) {
 27011  	var out []interface{}
 27012  	err := _IERC721Metadata.contract.Call(opts, &out, "balanceOf", owner)
 27013  
 27014  	if err != nil {
 27015  		return *new(*big.Int), err
 27016  	}
 27017  
 27018  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
 27019  
 27020  	return out0, err
 27021  
 27022  }
 27023  
 27024  // BalanceOf is a free data retrieval call binding the contract method 0x70a08231.
 27025  //
 27026  // Solidity: function balanceOf(address owner) view returns(uint256 balance)
 27027  func (_IERC721Metadata *IERC721MetadataSession) BalanceOf(owner common.Address) (*big.Int, error) {
 27028  	return _IERC721Metadata.Contract.BalanceOf(&_IERC721Metadata.CallOpts, owner)
 27029  }
 27030  
 27031  // BalanceOf is a free data retrieval call binding the contract method 0x70a08231.
 27032  //
 27033  // Solidity: function balanceOf(address owner) view returns(uint256 balance)
 27034  func (_IERC721Metadata *IERC721MetadataCallerSession) BalanceOf(owner common.Address) (*big.Int, error) {
 27035  	return _IERC721Metadata.Contract.BalanceOf(&_IERC721Metadata.CallOpts, owner)
 27036  }
 27037  
 27038  // GetApproved is a free data retrieval call binding the contract method 0x081812fc.
 27039  //
 27040  // Solidity: function getApproved(uint256 tokenId) view returns(address operator)
 27041  func (_IERC721Metadata *IERC721MetadataCaller) GetApproved(opts *bind.CallOpts, tokenId *big.Int) (common.Address, error) {
 27042  	var out []interface{}
 27043  	err := _IERC721Metadata.contract.Call(opts, &out, "getApproved", tokenId)
 27044  
 27045  	if err != nil {
 27046  		return *new(common.Address), err
 27047  	}
 27048  
 27049  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
 27050  
 27051  	return out0, err
 27052  
 27053  }
 27054  
 27055  // GetApproved is a free data retrieval call binding the contract method 0x081812fc.
 27056  //
 27057  // Solidity: function getApproved(uint256 tokenId) view returns(address operator)
 27058  func (_IERC721Metadata *IERC721MetadataSession) GetApproved(tokenId *big.Int) (common.Address, error) {
 27059  	return _IERC721Metadata.Contract.GetApproved(&_IERC721Metadata.CallOpts, tokenId)
 27060  }
 27061  
 27062  // GetApproved is a free data retrieval call binding the contract method 0x081812fc.
 27063  //
 27064  // Solidity: function getApproved(uint256 tokenId) view returns(address operator)
 27065  func (_IERC721Metadata *IERC721MetadataCallerSession) GetApproved(tokenId *big.Int) (common.Address, error) {
 27066  	return _IERC721Metadata.Contract.GetApproved(&_IERC721Metadata.CallOpts, tokenId)
 27067  }
 27068  
 27069  // IsApprovedForAll is a free data retrieval call binding the contract method 0xe985e9c5.
 27070  //
 27071  // Solidity: function isApprovedForAll(address owner, address operator) view returns(bool)
 27072  func (_IERC721Metadata *IERC721MetadataCaller) IsApprovedForAll(opts *bind.CallOpts, owner common.Address, operator common.Address) (bool, error) {
 27073  	var out []interface{}
 27074  	err := _IERC721Metadata.contract.Call(opts, &out, "isApprovedForAll", owner, operator)
 27075  
 27076  	if err != nil {
 27077  		return *new(bool), err
 27078  	}
 27079  
 27080  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
 27081  
 27082  	return out0, err
 27083  
 27084  }
 27085  
 27086  // IsApprovedForAll is a free data retrieval call binding the contract method 0xe985e9c5.
 27087  //
 27088  // Solidity: function isApprovedForAll(address owner, address operator) view returns(bool)
 27089  func (_IERC721Metadata *IERC721MetadataSession) IsApprovedForAll(owner common.Address, operator common.Address) (bool, error) {
 27090  	return _IERC721Metadata.Contract.IsApprovedForAll(&_IERC721Metadata.CallOpts, owner, operator)
 27091  }
 27092  
 27093  // IsApprovedForAll is a free data retrieval call binding the contract method 0xe985e9c5.
 27094  //
 27095  // Solidity: function isApprovedForAll(address owner, address operator) view returns(bool)
 27096  func (_IERC721Metadata *IERC721MetadataCallerSession) IsApprovedForAll(owner common.Address, operator common.Address) (bool, error) {
 27097  	return _IERC721Metadata.Contract.IsApprovedForAll(&_IERC721Metadata.CallOpts, owner, operator)
 27098  }
 27099  
 27100  // Name is a free data retrieval call binding the contract method 0x06fdde03.
 27101  //
 27102  // Solidity: function name() view returns(string)
 27103  func (_IERC721Metadata *IERC721MetadataCaller) Name(opts *bind.CallOpts) (string, error) {
 27104  	var out []interface{}
 27105  	err := _IERC721Metadata.contract.Call(opts, &out, "name")
 27106  
 27107  	if err != nil {
 27108  		return *new(string), err
 27109  	}
 27110  
 27111  	out0 := *abi.ConvertType(out[0], new(string)).(*string)
 27112  
 27113  	return out0, err
 27114  
 27115  }
 27116  
 27117  // Name is a free data retrieval call binding the contract method 0x06fdde03.
 27118  //
 27119  // Solidity: function name() view returns(string)
 27120  func (_IERC721Metadata *IERC721MetadataSession) Name() (string, error) {
 27121  	return _IERC721Metadata.Contract.Name(&_IERC721Metadata.CallOpts)
 27122  }
 27123  
 27124  // Name is a free data retrieval call binding the contract method 0x06fdde03.
 27125  //
 27126  // Solidity: function name() view returns(string)
 27127  func (_IERC721Metadata *IERC721MetadataCallerSession) Name() (string, error) {
 27128  	return _IERC721Metadata.Contract.Name(&_IERC721Metadata.CallOpts)
 27129  }
 27130  
 27131  // OwnerOf is a free data retrieval call binding the contract method 0x6352211e.
 27132  //
 27133  // Solidity: function ownerOf(uint256 tokenId) view returns(address owner)
 27134  func (_IERC721Metadata *IERC721MetadataCaller) OwnerOf(opts *bind.CallOpts, tokenId *big.Int) (common.Address, error) {
 27135  	var out []interface{}
 27136  	err := _IERC721Metadata.contract.Call(opts, &out, "ownerOf", tokenId)
 27137  
 27138  	if err != nil {
 27139  		return *new(common.Address), err
 27140  	}
 27141  
 27142  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
 27143  
 27144  	return out0, err
 27145  
 27146  }
 27147  
 27148  // OwnerOf is a free data retrieval call binding the contract method 0x6352211e.
 27149  //
 27150  // Solidity: function ownerOf(uint256 tokenId) view returns(address owner)
 27151  func (_IERC721Metadata *IERC721MetadataSession) OwnerOf(tokenId *big.Int) (common.Address, error) {
 27152  	return _IERC721Metadata.Contract.OwnerOf(&_IERC721Metadata.CallOpts, tokenId)
 27153  }
 27154  
 27155  // OwnerOf is a free data retrieval call binding the contract method 0x6352211e.
 27156  //
 27157  // Solidity: function ownerOf(uint256 tokenId) view returns(address owner)
 27158  func (_IERC721Metadata *IERC721MetadataCallerSession) OwnerOf(tokenId *big.Int) (common.Address, error) {
 27159  	return _IERC721Metadata.Contract.OwnerOf(&_IERC721Metadata.CallOpts, tokenId)
 27160  }
 27161  
 27162  // SupportsInterface is a free data retrieval call binding the contract method 0x01ffc9a7.
 27163  //
 27164  // Solidity: function supportsInterface(bytes4 interfaceId) view returns(bool)
 27165  func (_IERC721Metadata *IERC721MetadataCaller) SupportsInterface(opts *bind.CallOpts, interfaceId [4]byte) (bool, error) {
 27166  	var out []interface{}
 27167  	err := _IERC721Metadata.contract.Call(opts, &out, "supportsInterface", interfaceId)
 27168  
 27169  	if err != nil {
 27170  		return *new(bool), err
 27171  	}
 27172  
 27173  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
 27174  
 27175  	return out0, err
 27176  
 27177  }
 27178  
 27179  // SupportsInterface is a free data retrieval call binding the contract method 0x01ffc9a7.
 27180  //
 27181  // Solidity: function supportsInterface(bytes4 interfaceId) view returns(bool)
 27182  func (_IERC721Metadata *IERC721MetadataSession) SupportsInterface(interfaceId [4]byte) (bool, error) {
 27183  	return _IERC721Metadata.Contract.SupportsInterface(&_IERC721Metadata.CallOpts, interfaceId)
 27184  }
 27185  
 27186  // SupportsInterface is a free data retrieval call binding the contract method 0x01ffc9a7.
 27187  //
 27188  // Solidity: function supportsInterface(bytes4 interfaceId) view returns(bool)
 27189  func (_IERC721Metadata *IERC721MetadataCallerSession) SupportsInterface(interfaceId [4]byte) (bool, error) {
 27190  	return _IERC721Metadata.Contract.SupportsInterface(&_IERC721Metadata.CallOpts, interfaceId)
 27191  }
 27192  
 27193  // Symbol is a free data retrieval call binding the contract method 0x95d89b41.
 27194  //
 27195  // Solidity: function symbol() view returns(string)
 27196  func (_IERC721Metadata *IERC721MetadataCaller) Symbol(opts *bind.CallOpts) (string, error) {
 27197  	var out []interface{}
 27198  	err := _IERC721Metadata.contract.Call(opts, &out, "symbol")
 27199  
 27200  	if err != nil {
 27201  		return *new(string), err
 27202  	}
 27203  
 27204  	out0 := *abi.ConvertType(out[0], new(string)).(*string)
 27205  
 27206  	return out0, err
 27207  
 27208  }
 27209  
 27210  // Symbol is a free data retrieval call binding the contract method 0x95d89b41.
 27211  //
 27212  // Solidity: function symbol() view returns(string)
 27213  func (_IERC721Metadata *IERC721MetadataSession) Symbol() (string, error) {
 27214  	return _IERC721Metadata.Contract.Symbol(&_IERC721Metadata.CallOpts)
 27215  }
 27216  
 27217  // Symbol is a free data retrieval call binding the contract method 0x95d89b41.
 27218  //
 27219  // Solidity: function symbol() view returns(string)
 27220  func (_IERC721Metadata *IERC721MetadataCallerSession) Symbol() (string, error) {
 27221  	return _IERC721Metadata.Contract.Symbol(&_IERC721Metadata.CallOpts)
 27222  }
 27223  
 27224  // TokenURI is a free data retrieval call binding the contract method 0xc87b56dd.
 27225  //
 27226  // Solidity: function tokenURI(uint256 tokenId) view returns(string)
 27227  func (_IERC721Metadata *IERC721MetadataCaller) TokenURI(opts *bind.CallOpts, tokenId *big.Int) (string, error) {
 27228  	var out []interface{}
 27229  	err := _IERC721Metadata.contract.Call(opts, &out, "tokenURI", tokenId)
 27230  
 27231  	if err != nil {
 27232  		return *new(string), err
 27233  	}
 27234  
 27235  	out0 := *abi.ConvertType(out[0], new(string)).(*string)
 27236  
 27237  	return out0, err
 27238  
 27239  }
 27240  
 27241  // TokenURI is a free data retrieval call binding the contract method 0xc87b56dd.
 27242  //
 27243  // Solidity: function tokenURI(uint256 tokenId) view returns(string)
 27244  func (_IERC721Metadata *IERC721MetadataSession) TokenURI(tokenId *big.Int) (string, error) {
 27245  	return _IERC721Metadata.Contract.TokenURI(&_IERC721Metadata.CallOpts, tokenId)
 27246  }
 27247  
 27248  // TokenURI is a free data retrieval call binding the contract method 0xc87b56dd.
 27249  //
 27250  // Solidity: function tokenURI(uint256 tokenId) view returns(string)
 27251  func (_IERC721Metadata *IERC721MetadataCallerSession) TokenURI(tokenId *big.Int) (string, error) {
 27252  	return _IERC721Metadata.Contract.TokenURI(&_IERC721Metadata.CallOpts, tokenId)
 27253  }
 27254  
 27255  // Approve is a paid mutator transaction binding the contract method 0x095ea7b3.
 27256  //
 27257  // Solidity: function approve(address to, uint256 tokenId) returns()
 27258  func (_IERC721Metadata *IERC721MetadataTransactor) Approve(opts *bind.TransactOpts, to common.Address, tokenId *big.Int) (*types.Transaction, error) {
 27259  	return _IERC721Metadata.contract.Transact(opts, "approve", to, tokenId)
 27260  }
 27261  
 27262  // Approve is a paid mutator transaction binding the contract method 0x095ea7b3.
 27263  //
 27264  // Solidity: function approve(address to, uint256 tokenId) returns()
 27265  func (_IERC721Metadata *IERC721MetadataSession) Approve(to common.Address, tokenId *big.Int) (*types.Transaction, error) {
 27266  	return _IERC721Metadata.Contract.Approve(&_IERC721Metadata.TransactOpts, to, tokenId)
 27267  }
 27268  
 27269  // Approve is a paid mutator transaction binding the contract method 0x095ea7b3.
 27270  //
 27271  // Solidity: function approve(address to, uint256 tokenId) returns()
 27272  func (_IERC721Metadata *IERC721MetadataTransactorSession) Approve(to common.Address, tokenId *big.Int) (*types.Transaction, error) {
 27273  	return _IERC721Metadata.Contract.Approve(&_IERC721Metadata.TransactOpts, to, tokenId)
 27274  }
 27275  
 27276  // SafeTransferFrom is a paid mutator transaction binding the contract method 0x42842e0e.
 27277  //
 27278  // Solidity: function safeTransferFrom(address from, address to, uint256 tokenId) returns()
 27279  func (_IERC721Metadata *IERC721MetadataTransactor) SafeTransferFrom(opts *bind.TransactOpts, from common.Address, to common.Address, tokenId *big.Int) (*types.Transaction, error) {
 27280  	return _IERC721Metadata.contract.Transact(opts, "safeTransferFrom", from, to, tokenId)
 27281  }
 27282  
 27283  // SafeTransferFrom is a paid mutator transaction binding the contract method 0x42842e0e.
 27284  //
 27285  // Solidity: function safeTransferFrom(address from, address to, uint256 tokenId) returns()
 27286  func (_IERC721Metadata *IERC721MetadataSession) SafeTransferFrom(from common.Address, to common.Address, tokenId *big.Int) (*types.Transaction, error) {
 27287  	return _IERC721Metadata.Contract.SafeTransferFrom(&_IERC721Metadata.TransactOpts, from, to, tokenId)
 27288  }
 27289  
 27290  // SafeTransferFrom is a paid mutator transaction binding the contract method 0x42842e0e.
 27291  //
 27292  // Solidity: function safeTransferFrom(address from, address to, uint256 tokenId) returns()
 27293  func (_IERC721Metadata *IERC721MetadataTransactorSession) SafeTransferFrom(from common.Address, to common.Address, tokenId *big.Int) (*types.Transaction, error) {
 27294  	return _IERC721Metadata.Contract.SafeTransferFrom(&_IERC721Metadata.TransactOpts, from, to, tokenId)
 27295  }
 27296  
 27297  // SafeTransferFrom0 is a paid mutator transaction binding the contract method 0xb88d4fde.
 27298  //
 27299  // Solidity: function safeTransferFrom(address from, address to, uint256 tokenId, bytes data) returns()
 27300  func (_IERC721Metadata *IERC721MetadataTransactor) SafeTransferFrom0(opts *bind.TransactOpts, from common.Address, to common.Address, tokenId *big.Int, data []byte) (*types.Transaction, error) {
 27301  	return _IERC721Metadata.contract.Transact(opts, "safeTransferFrom0", from, to, tokenId, data)
 27302  }
 27303  
 27304  // SafeTransferFrom0 is a paid mutator transaction binding the contract method 0xb88d4fde.
 27305  //
 27306  // Solidity: function safeTransferFrom(address from, address to, uint256 tokenId, bytes data) returns()
 27307  func (_IERC721Metadata *IERC721MetadataSession) SafeTransferFrom0(from common.Address, to common.Address, tokenId *big.Int, data []byte) (*types.Transaction, error) {
 27308  	return _IERC721Metadata.Contract.SafeTransferFrom0(&_IERC721Metadata.TransactOpts, from, to, tokenId, data)
 27309  }
 27310  
 27311  // SafeTransferFrom0 is a paid mutator transaction binding the contract method 0xb88d4fde.
 27312  //
 27313  // Solidity: function safeTransferFrom(address from, address to, uint256 tokenId, bytes data) returns()
 27314  func (_IERC721Metadata *IERC721MetadataTransactorSession) SafeTransferFrom0(from common.Address, to common.Address, tokenId *big.Int, data []byte) (*types.Transaction, error) {
 27315  	return _IERC721Metadata.Contract.SafeTransferFrom0(&_IERC721Metadata.TransactOpts, from, to, tokenId, data)
 27316  }
 27317  
 27318  // SetApprovalForAll is a paid mutator transaction binding the contract method 0xa22cb465.
 27319  //
 27320  // Solidity: function setApprovalForAll(address operator, bool _approved) returns()
 27321  func (_IERC721Metadata *IERC721MetadataTransactor) SetApprovalForAll(opts *bind.TransactOpts, operator common.Address, _approved bool) (*types.Transaction, error) {
 27322  	return _IERC721Metadata.contract.Transact(opts, "setApprovalForAll", operator, _approved)
 27323  }
 27324  
 27325  // SetApprovalForAll is a paid mutator transaction binding the contract method 0xa22cb465.
 27326  //
 27327  // Solidity: function setApprovalForAll(address operator, bool _approved) returns()
 27328  func (_IERC721Metadata *IERC721MetadataSession) SetApprovalForAll(operator common.Address, _approved bool) (*types.Transaction, error) {
 27329  	return _IERC721Metadata.Contract.SetApprovalForAll(&_IERC721Metadata.TransactOpts, operator, _approved)
 27330  }
 27331  
 27332  // SetApprovalForAll is a paid mutator transaction binding the contract method 0xa22cb465.
 27333  //
 27334  // Solidity: function setApprovalForAll(address operator, bool _approved) returns()
 27335  func (_IERC721Metadata *IERC721MetadataTransactorSession) SetApprovalForAll(operator common.Address, _approved bool) (*types.Transaction, error) {
 27336  	return _IERC721Metadata.Contract.SetApprovalForAll(&_IERC721Metadata.TransactOpts, operator, _approved)
 27337  }
 27338  
 27339  // TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd.
 27340  //
 27341  // Solidity: function transferFrom(address from, address to, uint256 tokenId) returns()
 27342  func (_IERC721Metadata *IERC721MetadataTransactor) TransferFrom(opts *bind.TransactOpts, from common.Address, to common.Address, tokenId *big.Int) (*types.Transaction, error) {
 27343  	return _IERC721Metadata.contract.Transact(opts, "transferFrom", from, to, tokenId)
 27344  }
 27345  
 27346  // TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd.
 27347  //
 27348  // Solidity: function transferFrom(address from, address to, uint256 tokenId) returns()
 27349  func (_IERC721Metadata *IERC721MetadataSession) TransferFrom(from common.Address, to common.Address, tokenId *big.Int) (*types.Transaction, error) {
 27350  	return _IERC721Metadata.Contract.TransferFrom(&_IERC721Metadata.TransactOpts, from, to, tokenId)
 27351  }
 27352  
 27353  // TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd.
 27354  //
 27355  // Solidity: function transferFrom(address from, address to, uint256 tokenId) returns()
 27356  func (_IERC721Metadata *IERC721MetadataTransactorSession) TransferFrom(from common.Address, to common.Address, tokenId *big.Int) (*types.Transaction, error) {
 27357  	return _IERC721Metadata.Contract.TransferFrom(&_IERC721Metadata.TransactOpts, from, to, tokenId)
 27358  }
 27359  
 27360  // IERC721MetadataApprovalIterator is returned from FilterApproval and is used to iterate over the raw logs and unpacked data for Approval events raised by the IERC721Metadata contract.
 27361  type IERC721MetadataApprovalIterator struct {
 27362  	Event *IERC721MetadataApproval // Event containing the contract specifics and raw log
 27363  
 27364  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 27365  	event    string              // Event name to use for unpacking event data
 27366  
 27367  	logs chan types.Log      // Log channel receiving the found contract events
 27368  	sub  klaytn.Subscription // Subscription for errors, completion and termination
 27369  	done bool                // Whether the subscription completed delivering logs
 27370  	fail error               // Occurred error to stop iteration
 27371  }
 27372  
 27373  // Next advances the iterator to the subsequent event, returning whether there
 27374  // are any more events found. In case of a retrieval or parsing error, false is
 27375  // returned and Error() can be queried for the exact failure.
 27376  func (it *IERC721MetadataApprovalIterator) Next() bool {
 27377  	// If the iterator failed, stop iterating
 27378  	if it.fail != nil {
 27379  		return false
 27380  	}
 27381  	// If the iterator completed, deliver directly whatever's available
 27382  	if it.done {
 27383  		select {
 27384  		case log := <-it.logs:
 27385  			it.Event = new(IERC721MetadataApproval)
 27386  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 27387  				it.fail = err
 27388  				return false
 27389  			}
 27390  			it.Event.Raw = log
 27391  			return true
 27392  
 27393  		default:
 27394  			return false
 27395  		}
 27396  	}
 27397  	// Iterator still in progress, wait for either a data or an error event
 27398  	select {
 27399  	case log := <-it.logs:
 27400  		it.Event = new(IERC721MetadataApproval)
 27401  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 27402  			it.fail = err
 27403  			return false
 27404  		}
 27405  		it.Event.Raw = log
 27406  		return true
 27407  
 27408  	case err := <-it.sub.Err():
 27409  		it.done = true
 27410  		it.fail = err
 27411  		return it.Next()
 27412  	}
 27413  }
 27414  
 27415  // Error returns any retrieval or parsing error occurred during filtering.
 27416  func (it *IERC721MetadataApprovalIterator) Error() error {
 27417  	return it.fail
 27418  }
 27419  
 27420  // Close terminates the iteration process, releasing any pending underlying
 27421  // resources.
 27422  func (it *IERC721MetadataApprovalIterator) Close() error {
 27423  	it.sub.Unsubscribe()
 27424  	return nil
 27425  }
 27426  
 27427  // IERC721MetadataApproval represents a Approval event raised by the IERC721Metadata contract.
 27428  type IERC721MetadataApproval struct {
 27429  	Owner    common.Address
 27430  	Approved common.Address
 27431  	TokenId  *big.Int
 27432  	Raw      types.Log // Blockchain specific contextual infos
 27433  }
 27434  
 27435  // FilterApproval is a free log retrieval operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925.
 27436  //
 27437  // Solidity: event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId)
 27438  func (_IERC721Metadata *IERC721MetadataFilterer) FilterApproval(opts *bind.FilterOpts, owner []common.Address, approved []common.Address, tokenId []*big.Int) (*IERC721MetadataApprovalIterator, error) {
 27439  
 27440  	var ownerRule []interface{}
 27441  	for _, ownerItem := range owner {
 27442  		ownerRule = append(ownerRule, ownerItem)
 27443  	}
 27444  	var approvedRule []interface{}
 27445  	for _, approvedItem := range approved {
 27446  		approvedRule = append(approvedRule, approvedItem)
 27447  	}
 27448  	var tokenIdRule []interface{}
 27449  	for _, tokenIdItem := range tokenId {
 27450  		tokenIdRule = append(tokenIdRule, tokenIdItem)
 27451  	}
 27452  
 27453  	logs, sub, err := _IERC721Metadata.contract.FilterLogs(opts, "Approval", ownerRule, approvedRule, tokenIdRule)
 27454  	if err != nil {
 27455  		return nil, err
 27456  	}
 27457  	return &IERC721MetadataApprovalIterator{contract: _IERC721Metadata.contract, event: "Approval", logs: logs, sub: sub}, nil
 27458  }
 27459  
 27460  // WatchApproval is a free log subscription operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925.
 27461  //
 27462  // Solidity: event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId)
 27463  func (_IERC721Metadata *IERC721MetadataFilterer) WatchApproval(opts *bind.WatchOpts, sink chan<- *IERC721MetadataApproval, owner []common.Address, approved []common.Address, tokenId []*big.Int) (event.Subscription, error) {
 27464  
 27465  	var ownerRule []interface{}
 27466  	for _, ownerItem := range owner {
 27467  		ownerRule = append(ownerRule, ownerItem)
 27468  	}
 27469  	var approvedRule []interface{}
 27470  	for _, approvedItem := range approved {
 27471  		approvedRule = append(approvedRule, approvedItem)
 27472  	}
 27473  	var tokenIdRule []interface{}
 27474  	for _, tokenIdItem := range tokenId {
 27475  		tokenIdRule = append(tokenIdRule, tokenIdItem)
 27476  	}
 27477  
 27478  	logs, sub, err := _IERC721Metadata.contract.WatchLogs(opts, "Approval", ownerRule, approvedRule, tokenIdRule)
 27479  	if err != nil {
 27480  		return nil, err
 27481  	}
 27482  	return event.NewSubscription(func(quit <-chan struct{}) error {
 27483  		defer sub.Unsubscribe()
 27484  		for {
 27485  			select {
 27486  			case log := <-logs:
 27487  				// New log arrived, parse the event and forward to the user
 27488  				event := new(IERC721MetadataApproval)
 27489  				if err := _IERC721Metadata.contract.UnpackLog(event, "Approval", log); err != nil {
 27490  					return err
 27491  				}
 27492  				event.Raw = log
 27493  
 27494  				select {
 27495  				case sink <- event:
 27496  				case err := <-sub.Err():
 27497  					return err
 27498  				case <-quit:
 27499  					return nil
 27500  				}
 27501  			case err := <-sub.Err():
 27502  				return err
 27503  			case <-quit:
 27504  				return nil
 27505  			}
 27506  		}
 27507  	}), nil
 27508  }
 27509  
 27510  // ParseApproval is a log parse operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925.
 27511  //
 27512  // Solidity: event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId)
 27513  func (_IERC721Metadata *IERC721MetadataFilterer) ParseApproval(log types.Log) (*IERC721MetadataApproval, error) {
 27514  	event := new(IERC721MetadataApproval)
 27515  	if err := _IERC721Metadata.contract.UnpackLog(event, "Approval", log); err != nil {
 27516  		return nil, err
 27517  	}
 27518  	return event, nil
 27519  }
 27520  
 27521  // IERC721MetadataApprovalForAllIterator is returned from FilterApprovalForAll and is used to iterate over the raw logs and unpacked data for ApprovalForAll events raised by the IERC721Metadata contract.
 27522  type IERC721MetadataApprovalForAllIterator struct {
 27523  	Event *IERC721MetadataApprovalForAll // Event containing the contract specifics and raw log
 27524  
 27525  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 27526  	event    string              // Event name to use for unpacking event data
 27527  
 27528  	logs chan types.Log      // Log channel receiving the found contract events
 27529  	sub  klaytn.Subscription // Subscription for errors, completion and termination
 27530  	done bool                // Whether the subscription completed delivering logs
 27531  	fail error               // Occurred error to stop iteration
 27532  }
 27533  
 27534  // Next advances the iterator to the subsequent event, returning whether there
 27535  // are any more events found. In case of a retrieval or parsing error, false is
 27536  // returned and Error() can be queried for the exact failure.
 27537  func (it *IERC721MetadataApprovalForAllIterator) Next() bool {
 27538  	// If the iterator failed, stop iterating
 27539  	if it.fail != nil {
 27540  		return false
 27541  	}
 27542  	// If the iterator completed, deliver directly whatever's available
 27543  	if it.done {
 27544  		select {
 27545  		case log := <-it.logs:
 27546  			it.Event = new(IERC721MetadataApprovalForAll)
 27547  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 27548  				it.fail = err
 27549  				return false
 27550  			}
 27551  			it.Event.Raw = log
 27552  			return true
 27553  
 27554  		default:
 27555  			return false
 27556  		}
 27557  	}
 27558  	// Iterator still in progress, wait for either a data or an error event
 27559  	select {
 27560  	case log := <-it.logs:
 27561  		it.Event = new(IERC721MetadataApprovalForAll)
 27562  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 27563  			it.fail = err
 27564  			return false
 27565  		}
 27566  		it.Event.Raw = log
 27567  		return true
 27568  
 27569  	case err := <-it.sub.Err():
 27570  		it.done = true
 27571  		it.fail = err
 27572  		return it.Next()
 27573  	}
 27574  }
 27575  
 27576  // Error returns any retrieval or parsing error occurred during filtering.
 27577  func (it *IERC721MetadataApprovalForAllIterator) Error() error {
 27578  	return it.fail
 27579  }
 27580  
 27581  // Close terminates the iteration process, releasing any pending underlying
 27582  // resources.
 27583  func (it *IERC721MetadataApprovalForAllIterator) Close() error {
 27584  	it.sub.Unsubscribe()
 27585  	return nil
 27586  }
 27587  
 27588  // IERC721MetadataApprovalForAll represents a ApprovalForAll event raised by the IERC721Metadata contract.
 27589  type IERC721MetadataApprovalForAll struct {
 27590  	Owner    common.Address
 27591  	Operator common.Address
 27592  	Approved bool
 27593  	Raw      types.Log // Blockchain specific contextual infos
 27594  }
 27595  
 27596  // FilterApprovalForAll is a free log retrieval operation binding the contract event 0x17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31.
 27597  //
 27598  // Solidity: event ApprovalForAll(address indexed owner, address indexed operator, bool approved)
 27599  func (_IERC721Metadata *IERC721MetadataFilterer) FilterApprovalForAll(opts *bind.FilterOpts, owner []common.Address, operator []common.Address) (*IERC721MetadataApprovalForAllIterator, error) {
 27600  
 27601  	var ownerRule []interface{}
 27602  	for _, ownerItem := range owner {
 27603  		ownerRule = append(ownerRule, ownerItem)
 27604  	}
 27605  	var operatorRule []interface{}
 27606  	for _, operatorItem := range operator {
 27607  		operatorRule = append(operatorRule, operatorItem)
 27608  	}
 27609  
 27610  	logs, sub, err := _IERC721Metadata.contract.FilterLogs(opts, "ApprovalForAll", ownerRule, operatorRule)
 27611  	if err != nil {
 27612  		return nil, err
 27613  	}
 27614  	return &IERC721MetadataApprovalForAllIterator{contract: _IERC721Metadata.contract, event: "ApprovalForAll", logs: logs, sub: sub}, nil
 27615  }
 27616  
 27617  // WatchApprovalForAll is a free log subscription operation binding the contract event 0x17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31.
 27618  //
 27619  // Solidity: event ApprovalForAll(address indexed owner, address indexed operator, bool approved)
 27620  func (_IERC721Metadata *IERC721MetadataFilterer) WatchApprovalForAll(opts *bind.WatchOpts, sink chan<- *IERC721MetadataApprovalForAll, owner []common.Address, operator []common.Address) (event.Subscription, error) {
 27621  
 27622  	var ownerRule []interface{}
 27623  	for _, ownerItem := range owner {
 27624  		ownerRule = append(ownerRule, ownerItem)
 27625  	}
 27626  	var operatorRule []interface{}
 27627  	for _, operatorItem := range operator {
 27628  		operatorRule = append(operatorRule, operatorItem)
 27629  	}
 27630  
 27631  	logs, sub, err := _IERC721Metadata.contract.WatchLogs(opts, "ApprovalForAll", ownerRule, operatorRule)
 27632  	if err != nil {
 27633  		return nil, err
 27634  	}
 27635  	return event.NewSubscription(func(quit <-chan struct{}) error {
 27636  		defer sub.Unsubscribe()
 27637  		for {
 27638  			select {
 27639  			case log := <-logs:
 27640  				// New log arrived, parse the event and forward to the user
 27641  				event := new(IERC721MetadataApprovalForAll)
 27642  				if err := _IERC721Metadata.contract.UnpackLog(event, "ApprovalForAll", log); err != nil {
 27643  					return err
 27644  				}
 27645  				event.Raw = log
 27646  
 27647  				select {
 27648  				case sink <- event:
 27649  				case err := <-sub.Err():
 27650  					return err
 27651  				case <-quit:
 27652  					return nil
 27653  				}
 27654  			case err := <-sub.Err():
 27655  				return err
 27656  			case <-quit:
 27657  				return nil
 27658  			}
 27659  		}
 27660  	}), nil
 27661  }
 27662  
 27663  // ParseApprovalForAll is a log parse operation binding the contract event 0x17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31.
 27664  //
 27665  // Solidity: event ApprovalForAll(address indexed owner, address indexed operator, bool approved)
 27666  func (_IERC721Metadata *IERC721MetadataFilterer) ParseApprovalForAll(log types.Log) (*IERC721MetadataApprovalForAll, error) {
 27667  	event := new(IERC721MetadataApprovalForAll)
 27668  	if err := _IERC721Metadata.contract.UnpackLog(event, "ApprovalForAll", log); err != nil {
 27669  		return nil, err
 27670  	}
 27671  	return event, nil
 27672  }
 27673  
 27674  // IERC721MetadataTransferIterator is returned from FilterTransfer and is used to iterate over the raw logs and unpacked data for Transfer events raised by the IERC721Metadata contract.
 27675  type IERC721MetadataTransferIterator struct {
 27676  	Event *IERC721MetadataTransfer // Event containing the contract specifics and raw log
 27677  
 27678  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 27679  	event    string              // Event name to use for unpacking event data
 27680  
 27681  	logs chan types.Log      // Log channel receiving the found contract events
 27682  	sub  klaytn.Subscription // Subscription for errors, completion and termination
 27683  	done bool                // Whether the subscription completed delivering logs
 27684  	fail error               // Occurred error to stop iteration
 27685  }
 27686  
 27687  // Next advances the iterator to the subsequent event, returning whether there
 27688  // are any more events found. In case of a retrieval or parsing error, false is
 27689  // returned and Error() can be queried for the exact failure.
 27690  func (it *IERC721MetadataTransferIterator) Next() bool {
 27691  	// If the iterator failed, stop iterating
 27692  	if it.fail != nil {
 27693  		return false
 27694  	}
 27695  	// If the iterator completed, deliver directly whatever's available
 27696  	if it.done {
 27697  		select {
 27698  		case log := <-it.logs:
 27699  			it.Event = new(IERC721MetadataTransfer)
 27700  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 27701  				it.fail = err
 27702  				return false
 27703  			}
 27704  			it.Event.Raw = log
 27705  			return true
 27706  
 27707  		default:
 27708  			return false
 27709  		}
 27710  	}
 27711  	// Iterator still in progress, wait for either a data or an error event
 27712  	select {
 27713  	case log := <-it.logs:
 27714  		it.Event = new(IERC721MetadataTransfer)
 27715  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 27716  			it.fail = err
 27717  			return false
 27718  		}
 27719  		it.Event.Raw = log
 27720  		return true
 27721  
 27722  	case err := <-it.sub.Err():
 27723  		it.done = true
 27724  		it.fail = err
 27725  		return it.Next()
 27726  	}
 27727  }
 27728  
 27729  // Error returns any retrieval or parsing error occurred during filtering.
 27730  func (it *IERC721MetadataTransferIterator) Error() error {
 27731  	return it.fail
 27732  }
 27733  
 27734  // Close terminates the iteration process, releasing any pending underlying
 27735  // resources.
 27736  func (it *IERC721MetadataTransferIterator) Close() error {
 27737  	it.sub.Unsubscribe()
 27738  	return nil
 27739  }
 27740  
 27741  // IERC721MetadataTransfer represents a Transfer event raised by the IERC721Metadata contract.
 27742  type IERC721MetadataTransfer struct {
 27743  	From    common.Address
 27744  	To      common.Address
 27745  	TokenId *big.Int
 27746  	Raw     types.Log // Blockchain specific contextual infos
 27747  }
 27748  
 27749  // FilterTransfer is a free log retrieval operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef.
 27750  //
 27751  // Solidity: event Transfer(address indexed from, address indexed to, uint256 indexed tokenId)
 27752  func (_IERC721Metadata *IERC721MetadataFilterer) FilterTransfer(opts *bind.FilterOpts, from []common.Address, to []common.Address, tokenId []*big.Int) (*IERC721MetadataTransferIterator, error) {
 27753  
 27754  	var fromRule []interface{}
 27755  	for _, fromItem := range from {
 27756  		fromRule = append(fromRule, fromItem)
 27757  	}
 27758  	var toRule []interface{}
 27759  	for _, toItem := range to {
 27760  		toRule = append(toRule, toItem)
 27761  	}
 27762  	var tokenIdRule []interface{}
 27763  	for _, tokenIdItem := range tokenId {
 27764  		tokenIdRule = append(tokenIdRule, tokenIdItem)
 27765  	}
 27766  
 27767  	logs, sub, err := _IERC721Metadata.contract.FilterLogs(opts, "Transfer", fromRule, toRule, tokenIdRule)
 27768  	if err != nil {
 27769  		return nil, err
 27770  	}
 27771  	return &IERC721MetadataTransferIterator{contract: _IERC721Metadata.contract, event: "Transfer", logs: logs, sub: sub}, nil
 27772  }
 27773  
 27774  // WatchTransfer is a free log subscription operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef.
 27775  //
 27776  // Solidity: event Transfer(address indexed from, address indexed to, uint256 indexed tokenId)
 27777  func (_IERC721Metadata *IERC721MetadataFilterer) WatchTransfer(opts *bind.WatchOpts, sink chan<- *IERC721MetadataTransfer, from []common.Address, to []common.Address, tokenId []*big.Int) (event.Subscription, error) {
 27778  
 27779  	var fromRule []interface{}
 27780  	for _, fromItem := range from {
 27781  		fromRule = append(fromRule, fromItem)
 27782  	}
 27783  	var toRule []interface{}
 27784  	for _, toItem := range to {
 27785  		toRule = append(toRule, toItem)
 27786  	}
 27787  	var tokenIdRule []interface{}
 27788  	for _, tokenIdItem := range tokenId {
 27789  		tokenIdRule = append(tokenIdRule, tokenIdItem)
 27790  	}
 27791  
 27792  	logs, sub, err := _IERC721Metadata.contract.WatchLogs(opts, "Transfer", fromRule, toRule, tokenIdRule)
 27793  	if err != nil {
 27794  		return nil, err
 27795  	}
 27796  	return event.NewSubscription(func(quit <-chan struct{}) error {
 27797  		defer sub.Unsubscribe()
 27798  		for {
 27799  			select {
 27800  			case log := <-logs:
 27801  				// New log arrived, parse the event and forward to the user
 27802  				event := new(IERC721MetadataTransfer)
 27803  				if err := _IERC721Metadata.contract.UnpackLog(event, "Transfer", log); err != nil {
 27804  					return err
 27805  				}
 27806  				event.Raw = log
 27807  
 27808  				select {
 27809  				case sink <- event:
 27810  				case err := <-sub.Err():
 27811  					return err
 27812  				case <-quit:
 27813  					return nil
 27814  				}
 27815  			case err := <-sub.Err():
 27816  				return err
 27817  			case <-quit:
 27818  				return nil
 27819  			}
 27820  		}
 27821  	}), nil
 27822  }
 27823  
 27824  // ParseTransfer is a log parse operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef.
 27825  //
 27826  // Solidity: event Transfer(address indexed from, address indexed to, uint256 indexed tokenId)
 27827  func (_IERC721Metadata *IERC721MetadataFilterer) ParseTransfer(log types.Log) (*IERC721MetadataTransfer, error) {
 27828  	event := new(IERC721MetadataTransfer)
 27829  	if err := _IERC721Metadata.contract.UnpackLog(event, "Transfer", log); err != nil {
 27830  		return nil, err
 27831  	}
 27832  	return event, nil
 27833  }
 27834  
 27835  // IERC721ReceiverMetaData contains all meta data concerning the IERC721Receiver contract.
 27836  var IERC721ReceiverMetaData = &bind.MetaData{
 27837  	ABI: "[{\"constant\":false,\"inputs\":[{\"name\":\"operator\",\"type\":\"address\"},{\"name\":\"from\",\"type\":\"address\"},{\"name\":\"tokenId\",\"type\":\"uint256\"},{\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"onERC721Received\",\"outputs\":[{\"name\":\"\",\"type\":\"bytes4\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]",
 27838  	Sigs: map[string]string{
 27839  		"150b7a02": "onERC721Received(address,address,uint256,bytes)",
 27840  	},
 27841  }
 27842  
 27843  // IERC721ReceiverABI is the input ABI used to generate the binding from.
 27844  // Deprecated: Use IERC721ReceiverMetaData.ABI instead.
 27845  var IERC721ReceiverABI = IERC721ReceiverMetaData.ABI
 27846  
 27847  // IERC721ReceiverBinRuntime is the compiled bytecode used for adding genesis block without deploying code.
 27848  const IERC721ReceiverBinRuntime = ``
 27849  
 27850  // IERC721ReceiverFuncSigs maps the 4-byte function signature to its string representation.
 27851  // Deprecated: Use IERC721ReceiverMetaData.Sigs instead.
 27852  var IERC721ReceiverFuncSigs = IERC721ReceiverMetaData.Sigs
 27853  
 27854  // IERC721Receiver is an auto generated Go binding around a Klaytn contract.
 27855  type IERC721Receiver struct {
 27856  	IERC721ReceiverCaller     // Read-only binding to the contract
 27857  	IERC721ReceiverTransactor // Write-only binding to the contract
 27858  	IERC721ReceiverFilterer   // Log filterer for contract events
 27859  }
 27860  
 27861  // IERC721ReceiverCaller is an auto generated read-only Go binding around a Klaytn contract.
 27862  type IERC721ReceiverCaller struct {
 27863  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 27864  }
 27865  
 27866  // IERC721ReceiverTransactor is an auto generated write-only Go binding around a Klaytn contract.
 27867  type IERC721ReceiverTransactor struct {
 27868  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 27869  }
 27870  
 27871  // IERC721ReceiverFilterer is an auto generated log filtering Go binding around a Klaytn contract events.
 27872  type IERC721ReceiverFilterer struct {
 27873  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 27874  }
 27875  
 27876  // IERC721ReceiverSession is an auto generated Go binding around a Klaytn contract,
 27877  // with pre-set call and transact options.
 27878  type IERC721ReceiverSession struct {
 27879  	Contract     *IERC721Receiver  // Generic contract binding to set the session for
 27880  	CallOpts     bind.CallOpts     // Call options to use throughout this session
 27881  	TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
 27882  }
 27883  
 27884  // IERC721ReceiverCallerSession is an auto generated read-only Go binding around a Klaytn contract,
 27885  // with pre-set call options.
 27886  type IERC721ReceiverCallerSession struct {
 27887  	Contract *IERC721ReceiverCaller // Generic contract caller binding to set the session for
 27888  	CallOpts bind.CallOpts          // Call options to use throughout this session
 27889  }
 27890  
 27891  // IERC721ReceiverTransactorSession is an auto generated write-only Go binding around a Klaytn contract,
 27892  // with pre-set transact options.
 27893  type IERC721ReceiverTransactorSession struct {
 27894  	Contract     *IERC721ReceiverTransactor // Generic contract transactor binding to set the session for
 27895  	TransactOpts bind.TransactOpts          // Transaction auth options to use throughout this session
 27896  }
 27897  
 27898  // IERC721ReceiverRaw is an auto generated low-level Go binding around a Klaytn contract.
 27899  type IERC721ReceiverRaw struct {
 27900  	Contract *IERC721Receiver // Generic contract binding to access the raw methods on
 27901  }
 27902  
 27903  // IERC721ReceiverCallerRaw is an auto generated low-level read-only Go binding around a Klaytn contract.
 27904  type IERC721ReceiverCallerRaw struct {
 27905  	Contract *IERC721ReceiverCaller // Generic read-only contract binding to access the raw methods on
 27906  }
 27907  
 27908  // IERC721ReceiverTransactorRaw is an auto generated low-level write-only Go binding around a Klaytn contract.
 27909  type IERC721ReceiverTransactorRaw struct {
 27910  	Contract *IERC721ReceiverTransactor // Generic write-only contract binding to access the raw methods on
 27911  }
 27912  
 27913  // NewIERC721Receiver creates a new instance of IERC721Receiver, bound to a specific deployed contract.
 27914  func NewIERC721Receiver(address common.Address, backend bind.ContractBackend) (*IERC721Receiver, error) {
 27915  	contract, err := bindIERC721Receiver(address, backend, backend, backend)
 27916  	if err != nil {
 27917  		return nil, err
 27918  	}
 27919  	return &IERC721Receiver{IERC721ReceiverCaller: IERC721ReceiverCaller{contract: contract}, IERC721ReceiverTransactor: IERC721ReceiverTransactor{contract: contract}, IERC721ReceiverFilterer: IERC721ReceiverFilterer{contract: contract}}, nil
 27920  }
 27921  
 27922  // NewIERC721ReceiverCaller creates a new read-only instance of IERC721Receiver, bound to a specific deployed contract.
 27923  func NewIERC721ReceiverCaller(address common.Address, caller bind.ContractCaller) (*IERC721ReceiverCaller, error) {
 27924  	contract, err := bindIERC721Receiver(address, caller, nil, nil)
 27925  	if err != nil {
 27926  		return nil, err
 27927  	}
 27928  	return &IERC721ReceiverCaller{contract: contract}, nil
 27929  }
 27930  
 27931  // NewIERC721ReceiverTransactor creates a new write-only instance of IERC721Receiver, bound to a specific deployed contract.
 27932  func NewIERC721ReceiverTransactor(address common.Address, transactor bind.ContractTransactor) (*IERC721ReceiverTransactor, error) {
 27933  	contract, err := bindIERC721Receiver(address, nil, transactor, nil)
 27934  	if err != nil {
 27935  		return nil, err
 27936  	}
 27937  	return &IERC721ReceiverTransactor{contract: contract}, nil
 27938  }
 27939  
 27940  // NewIERC721ReceiverFilterer creates a new log filterer instance of IERC721Receiver, bound to a specific deployed contract.
 27941  func NewIERC721ReceiverFilterer(address common.Address, filterer bind.ContractFilterer) (*IERC721ReceiverFilterer, error) {
 27942  	contract, err := bindIERC721Receiver(address, nil, nil, filterer)
 27943  	if err != nil {
 27944  		return nil, err
 27945  	}
 27946  	return &IERC721ReceiverFilterer{contract: contract}, nil
 27947  }
 27948  
 27949  // bindIERC721Receiver binds a generic wrapper to an already deployed contract.
 27950  func bindIERC721Receiver(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
 27951  	parsed, err := IERC721ReceiverMetaData.GetAbi()
 27952  	if err != nil {
 27953  		return nil, err
 27954  	}
 27955  	return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil
 27956  }
 27957  
 27958  // Call invokes the (constant) contract method with params as input values and
 27959  // sets the output to result. The result type might be a single field for simple
 27960  // returns, a slice of interfaces for anonymous returns and a struct for named
 27961  // returns.
 27962  func (_IERC721Receiver *IERC721ReceiverRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
 27963  	return _IERC721Receiver.Contract.IERC721ReceiverCaller.contract.Call(opts, result, method, params...)
 27964  }
 27965  
 27966  // Transfer initiates a plain transaction to move funds to the contract, calling
 27967  // its default method if one is available.
 27968  func (_IERC721Receiver *IERC721ReceiverRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
 27969  	return _IERC721Receiver.Contract.IERC721ReceiverTransactor.contract.Transfer(opts)
 27970  }
 27971  
 27972  // Transact invokes the (paid) contract method with params as input values.
 27973  func (_IERC721Receiver *IERC721ReceiverRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
 27974  	return _IERC721Receiver.Contract.IERC721ReceiverTransactor.contract.Transact(opts, method, params...)
 27975  }
 27976  
 27977  // Call invokes the (constant) contract method with params as input values and
 27978  // sets the output to result. The result type might be a single field for simple
 27979  // returns, a slice of interfaces for anonymous returns and a struct for named
 27980  // returns.
 27981  func (_IERC721Receiver *IERC721ReceiverCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
 27982  	return _IERC721Receiver.Contract.contract.Call(opts, result, method, params...)
 27983  }
 27984  
 27985  // Transfer initiates a plain transaction to move funds to the contract, calling
 27986  // its default method if one is available.
 27987  func (_IERC721Receiver *IERC721ReceiverTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
 27988  	return _IERC721Receiver.Contract.contract.Transfer(opts)
 27989  }
 27990  
 27991  // Transact invokes the (paid) contract method with params as input values.
 27992  func (_IERC721Receiver *IERC721ReceiverTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
 27993  	return _IERC721Receiver.Contract.contract.Transact(opts, method, params...)
 27994  }
 27995  
 27996  // OnERC721Received is a paid mutator transaction binding the contract method 0x150b7a02.
 27997  //
 27998  // Solidity: function onERC721Received(address operator, address from, uint256 tokenId, bytes data) returns(bytes4)
 27999  func (_IERC721Receiver *IERC721ReceiverTransactor) OnERC721Received(opts *bind.TransactOpts, operator common.Address, from common.Address, tokenId *big.Int, data []byte) (*types.Transaction, error) {
 28000  	return _IERC721Receiver.contract.Transact(opts, "onERC721Received", operator, from, tokenId, data)
 28001  }
 28002  
 28003  // OnERC721Received is a paid mutator transaction binding the contract method 0x150b7a02.
 28004  //
 28005  // Solidity: function onERC721Received(address operator, address from, uint256 tokenId, bytes data) returns(bytes4)
 28006  func (_IERC721Receiver *IERC721ReceiverSession) OnERC721Received(operator common.Address, from common.Address, tokenId *big.Int, data []byte) (*types.Transaction, error) {
 28007  	return _IERC721Receiver.Contract.OnERC721Received(&_IERC721Receiver.TransactOpts, operator, from, tokenId, data)
 28008  }
 28009  
 28010  // OnERC721Received is a paid mutator transaction binding the contract method 0x150b7a02.
 28011  //
 28012  // Solidity: function onERC721Received(address operator, address from, uint256 tokenId, bytes data) returns(bytes4)
 28013  func (_IERC721Receiver *IERC721ReceiverTransactorSession) OnERC721Received(operator common.Address, from common.Address, tokenId *big.Int, data []byte) (*types.Transaction, error) {
 28014  	return _IERC721Receiver.Contract.OnERC721Received(&_IERC721Receiver.TransactOpts, operator, from, tokenId, data)
 28015  }
 28016  
 28017  // MinterRoleMetaData contains all meta data concerning the MinterRole contract.
 28018  var MinterRoleMetaData = &bind.MetaData{
 28019  	ABI: "[{\"constant\":false,\"inputs\":[{\"name\":\"account\",\"type\":\"address\"}],\"name\":\"addMinter\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"renounceMinter\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"account\",\"type\":\"address\"}],\"name\":\"isMinter\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"account\",\"type\":\"address\"}],\"name\":\"MinterAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"account\",\"type\":\"address\"}],\"name\":\"MinterRemoved\",\"type\":\"event\"}]",
 28020  	Sigs: map[string]string{
 28021  		"983b2d56": "addMinter(address)",
 28022  		"aa271e1a": "isMinter(address)",
 28023  		"98650275": "renounceMinter()",
 28024  	},
 28025  }
 28026  
 28027  // MinterRoleABI is the input ABI used to generate the binding from.
 28028  // Deprecated: Use MinterRoleMetaData.ABI instead.
 28029  var MinterRoleABI = MinterRoleMetaData.ABI
 28030  
 28031  // MinterRoleBinRuntime is the compiled bytecode used for adding genesis block without deploying code.
 28032  const MinterRoleBinRuntime = ``
 28033  
 28034  // MinterRoleFuncSigs maps the 4-byte function signature to its string representation.
 28035  // Deprecated: Use MinterRoleMetaData.Sigs instead.
 28036  var MinterRoleFuncSigs = MinterRoleMetaData.Sigs
 28037  
 28038  // MinterRole is an auto generated Go binding around a Klaytn contract.
 28039  type MinterRole struct {
 28040  	MinterRoleCaller     // Read-only binding to the contract
 28041  	MinterRoleTransactor // Write-only binding to the contract
 28042  	MinterRoleFilterer   // Log filterer for contract events
 28043  }
 28044  
 28045  // MinterRoleCaller is an auto generated read-only Go binding around a Klaytn contract.
 28046  type MinterRoleCaller struct {
 28047  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 28048  }
 28049  
 28050  // MinterRoleTransactor is an auto generated write-only Go binding around a Klaytn contract.
 28051  type MinterRoleTransactor struct {
 28052  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 28053  }
 28054  
 28055  // MinterRoleFilterer is an auto generated log filtering Go binding around a Klaytn contract events.
 28056  type MinterRoleFilterer struct {
 28057  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 28058  }
 28059  
 28060  // MinterRoleSession is an auto generated Go binding around a Klaytn contract,
 28061  // with pre-set call and transact options.
 28062  type MinterRoleSession struct {
 28063  	Contract     *MinterRole       // Generic contract binding to set the session for
 28064  	CallOpts     bind.CallOpts     // Call options to use throughout this session
 28065  	TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
 28066  }
 28067  
 28068  // MinterRoleCallerSession is an auto generated read-only Go binding around a Klaytn contract,
 28069  // with pre-set call options.
 28070  type MinterRoleCallerSession struct {
 28071  	Contract *MinterRoleCaller // Generic contract caller binding to set the session for
 28072  	CallOpts bind.CallOpts     // Call options to use throughout this session
 28073  }
 28074  
 28075  // MinterRoleTransactorSession is an auto generated write-only Go binding around a Klaytn contract,
 28076  // with pre-set transact options.
 28077  type MinterRoleTransactorSession struct {
 28078  	Contract     *MinterRoleTransactor // Generic contract transactor binding to set the session for
 28079  	TransactOpts bind.TransactOpts     // Transaction auth options to use throughout this session
 28080  }
 28081  
 28082  // MinterRoleRaw is an auto generated low-level Go binding around a Klaytn contract.
 28083  type MinterRoleRaw struct {
 28084  	Contract *MinterRole // Generic contract binding to access the raw methods on
 28085  }
 28086  
 28087  // MinterRoleCallerRaw is an auto generated low-level read-only Go binding around a Klaytn contract.
 28088  type MinterRoleCallerRaw struct {
 28089  	Contract *MinterRoleCaller // Generic read-only contract binding to access the raw methods on
 28090  }
 28091  
 28092  // MinterRoleTransactorRaw is an auto generated low-level write-only Go binding around a Klaytn contract.
 28093  type MinterRoleTransactorRaw struct {
 28094  	Contract *MinterRoleTransactor // Generic write-only contract binding to access the raw methods on
 28095  }
 28096  
 28097  // NewMinterRole creates a new instance of MinterRole, bound to a specific deployed contract.
 28098  func NewMinterRole(address common.Address, backend bind.ContractBackend) (*MinterRole, error) {
 28099  	contract, err := bindMinterRole(address, backend, backend, backend)
 28100  	if err != nil {
 28101  		return nil, err
 28102  	}
 28103  	return &MinterRole{MinterRoleCaller: MinterRoleCaller{contract: contract}, MinterRoleTransactor: MinterRoleTransactor{contract: contract}, MinterRoleFilterer: MinterRoleFilterer{contract: contract}}, nil
 28104  }
 28105  
 28106  // NewMinterRoleCaller creates a new read-only instance of MinterRole, bound to a specific deployed contract.
 28107  func NewMinterRoleCaller(address common.Address, caller bind.ContractCaller) (*MinterRoleCaller, error) {
 28108  	contract, err := bindMinterRole(address, caller, nil, nil)
 28109  	if err != nil {
 28110  		return nil, err
 28111  	}
 28112  	return &MinterRoleCaller{contract: contract}, nil
 28113  }
 28114  
 28115  // NewMinterRoleTransactor creates a new write-only instance of MinterRole, bound to a specific deployed contract.
 28116  func NewMinterRoleTransactor(address common.Address, transactor bind.ContractTransactor) (*MinterRoleTransactor, error) {
 28117  	contract, err := bindMinterRole(address, nil, transactor, nil)
 28118  	if err != nil {
 28119  		return nil, err
 28120  	}
 28121  	return &MinterRoleTransactor{contract: contract}, nil
 28122  }
 28123  
 28124  // NewMinterRoleFilterer creates a new log filterer instance of MinterRole, bound to a specific deployed contract.
 28125  func NewMinterRoleFilterer(address common.Address, filterer bind.ContractFilterer) (*MinterRoleFilterer, error) {
 28126  	contract, err := bindMinterRole(address, nil, nil, filterer)
 28127  	if err != nil {
 28128  		return nil, err
 28129  	}
 28130  	return &MinterRoleFilterer{contract: contract}, nil
 28131  }
 28132  
 28133  // bindMinterRole binds a generic wrapper to an already deployed contract.
 28134  func bindMinterRole(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
 28135  	parsed, err := MinterRoleMetaData.GetAbi()
 28136  	if err != nil {
 28137  		return nil, err
 28138  	}
 28139  	return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil
 28140  }
 28141  
 28142  // Call invokes the (constant) contract method with params as input values and
 28143  // sets the output to result. The result type might be a single field for simple
 28144  // returns, a slice of interfaces for anonymous returns and a struct for named
 28145  // returns.
 28146  func (_MinterRole *MinterRoleRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
 28147  	return _MinterRole.Contract.MinterRoleCaller.contract.Call(opts, result, method, params...)
 28148  }
 28149  
 28150  // Transfer initiates a plain transaction to move funds to the contract, calling
 28151  // its default method if one is available.
 28152  func (_MinterRole *MinterRoleRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
 28153  	return _MinterRole.Contract.MinterRoleTransactor.contract.Transfer(opts)
 28154  }
 28155  
 28156  // Transact invokes the (paid) contract method with params as input values.
 28157  func (_MinterRole *MinterRoleRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
 28158  	return _MinterRole.Contract.MinterRoleTransactor.contract.Transact(opts, method, params...)
 28159  }
 28160  
 28161  // Call invokes the (constant) contract method with params as input values and
 28162  // sets the output to result. The result type might be a single field for simple
 28163  // returns, a slice of interfaces for anonymous returns and a struct for named
 28164  // returns.
 28165  func (_MinterRole *MinterRoleCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
 28166  	return _MinterRole.Contract.contract.Call(opts, result, method, params...)
 28167  }
 28168  
 28169  // Transfer initiates a plain transaction to move funds to the contract, calling
 28170  // its default method if one is available.
 28171  func (_MinterRole *MinterRoleTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
 28172  	return _MinterRole.Contract.contract.Transfer(opts)
 28173  }
 28174  
 28175  // Transact invokes the (paid) contract method with params as input values.
 28176  func (_MinterRole *MinterRoleTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
 28177  	return _MinterRole.Contract.contract.Transact(opts, method, params...)
 28178  }
 28179  
 28180  // IsMinter is a free data retrieval call binding the contract method 0xaa271e1a.
 28181  //
 28182  // Solidity: function isMinter(address account) view returns(bool)
 28183  func (_MinterRole *MinterRoleCaller) IsMinter(opts *bind.CallOpts, account common.Address) (bool, error) {
 28184  	var out []interface{}
 28185  	err := _MinterRole.contract.Call(opts, &out, "isMinter", account)
 28186  
 28187  	if err != nil {
 28188  		return *new(bool), err
 28189  	}
 28190  
 28191  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
 28192  
 28193  	return out0, err
 28194  
 28195  }
 28196  
 28197  // IsMinter is a free data retrieval call binding the contract method 0xaa271e1a.
 28198  //
 28199  // Solidity: function isMinter(address account) view returns(bool)
 28200  func (_MinterRole *MinterRoleSession) IsMinter(account common.Address) (bool, error) {
 28201  	return _MinterRole.Contract.IsMinter(&_MinterRole.CallOpts, account)
 28202  }
 28203  
 28204  // IsMinter is a free data retrieval call binding the contract method 0xaa271e1a.
 28205  //
 28206  // Solidity: function isMinter(address account) view returns(bool)
 28207  func (_MinterRole *MinterRoleCallerSession) IsMinter(account common.Address) (bool, error) {
 28208  	return _MinterRole.Contract.IsMinter(&_MinterRole.CallOpts, account)
 28209  }
 28210  
 28211  // AddMinter is a paid mutator transaction binding the contract method 0x983b2d56.
 28212  //
 28213  // Solidity: function addMinter(address account) returns()
 28214  func (_MinterRole *MinterRoleTransactor) AddMinter(opts *bind.TransactOpts, account common.Address) (*types.Transaction, error) {
 28215  	return _MinterRole.contract.Transact(opts, "addMinter", account)
 28216  }
 28217  
 28218  // AddMinter is a paid mutator transaction binding the contract method 0x983b2d56.
 28219  //
 28220  // Solidity: function addMinter(address account) returns()
 28221  func (_MinterRole *MinterRoleSession) AddMinter(account common.Address) (*types.Transaction, error) {
 28222  	return _MinterRole.Contract.AddMinter(&_MinterRole.TransactOpts, account)
 28223  }
 28224  
 28225  // AddMinter is a paid mutator transaction binding the contract method 0x983b2d56.
 28226  //
 28227  // Solidity: function addMinter(address account) returns()
 28228  func (_MinterRole *MinterRoleTransactorSession) AddMinter(account common.Address) (*types.Transaction, error) {
 28229  	return _MinterRole.Contract.AddMinter(&_MinterRole.TransactOpts, account)
 28230  }
 28231  
 28232  // RenounceMinter is a paid mutator transaction binding the contract method 0x98650275.
 28233  //
 28234  // Solidity: function renounceMinter() returns()
 28235  func (_MinterRole *MinterRoleTransactor) RenounceMinter(opts *bind.TransactOpts) (*types.Transaction, error) {
 28236  	return _MinterRole.contract.Transact(opts, "renounceMinter")
 28237  }
 28238  
 28239  // RenounceMinter is a paid mutator transaction binding the contract method 0x98650275.
 28240  //
 28241  // Solidity: function renounceMinter() returns()
 28242  func (_MinterRole *MinterRoleSession) RenounceMinter() (*types.Transaction, error) {
 28243  	return _MinterRole.Contract.RenounceMinter(&_MinterRole.TransactOpts)
 28244  }
 28245  
 28246  // RenounceMinter is a paid mutator transaction binding the contract method 0x98650275.
 28247  //
 28248  // Solidity: function renounceMinter() returns()
 28249  func (_MinterRole *MinterRoleTransactorSession) RenounceMinter() (*types.Transaction, error) {
 28250  	return _MinterRole.Contract.RenounceMinter(&_MinterRole.TransactOpts)
 28251  }
 28252  
 28253  // MinterRoleMinterAddedIterator is returned from FilterMinterAdded and is used to iterate over the raw logs and unpacked data for MinterAdded events raised by the MinterRole contract.
 28254  type MinterRoleMinterAddedIterator struct {
 28255  	Event *MinterRoleMinterAdded // Event containing the contract specifics and raw log
 28256  
 28257  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 28258  	event    string              // Event name to use for unpacking event data
 28259  
 28260  	logs chan types.Log      // Log channel receiving the found contract events
 28261  	sub  klaytn.Subscription // Subscription for errors, completion and termination
 28262  	done bool                // Whether the subscription completed delivering logs
 28263  	fail error               // Occurred error to stop iteration
 28264  }
 28265  
 28266  // Next advances the iterator to the subsequent event, returning whether there
 28267  // are any more events found. In case of a retrieval or parsing error, false is
 28268  // returned and Error() can be queried for the exact failure.
 28269  func (it *MinterRoleMinterAddedIterator) Next() bool {
 28270  	// If the iterator failed, stop iterating
 28271  	if it.fail != nil {
 28272  		return false
 28273  	}
 28274  	// If the iterator completed, deliver directly whatever's available
 28275  	if it.done {
 28276  		select {
 28277  		case log := <-it.logs:
 28278  			it.Event = new(MinterRoleMinterAdded)
 28279  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 28280  				it.fail = err
 28281  				return false
 28282  			}
 28283  			it.Event.Raw = log
 28284  			return true
 28285  
 28286  		default:
 28287  			return false
 28288  		}
 28289  	}
 28290  	// Iterator still in progress, wait for either a data or an error event
 28291  	select {
 28292  	case log := <-it.logs:
 28293  		it.Event = new(MinterRoleMinterAdded)
 28294  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 28295  			it.fail = err
 28296  			return false
 28297  		}
 28298  		it.Event.Raw = log
 28299  		return true
 28300  
 28301  	case err := <-it.sub.Err():
 28302  		it.done = true
 28303  		it.fail = err
 28304  		return it.Next()
 28305  	}
 28306  }
 28307  
 28308  // Error returns any retrieval or parsing error occurred during filtering.
 28309  func (it *MinterRoleMinterAddedIterator) Error() error {
 28310  	return it.fail
 28311  }
 28312  
 28313  // Close terminates the iteration process, releasing any pending underlying
 28314  // resources.
 28315  func (it *MinterRoleMinterAddedIterator) Close() error {
 28316  	it.sub.Unsubscribe()
 28317  	return nil
 28318  }
 28319  
 28320  // MinterRoleMinterAdded represents a MinterAdded event raised by the MinterRole contract.
 28321  type MinterRoleMinterAdded struct {
 28322  	Account common.Address
 28323  	Raw     types.Log // Blockchain specific contextual infos
 28324  }
 28325  
 28326  // FilterMinterAdded is a free log retrieval operation binding the contract event 0x6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f6.
 28327  //
 28328  // Solidity: event MinterAdded(address indexed account)
 28329  func (_MinterRole *MinterRoleFilterer) FilterMinterAdded(opts *bind.FilterOpts, account []common.Address) (*MinterRoleMinterAddedIterator, error) {
 28330  
 28331  	var accountRule []interface{}
 28332  	for _, accountItem := range account {
 28333  		accountRule = append(accountRule, accountItem)
 28334  	}
 28335  
 28336  	logs, sub, err := _MinterRole.contract.FilterLogs(opts, "MinterAdded", accountRule)
 28337  	if err != nil {
 28338  		return nil, err
 28339  	}
 28340  	return &MinterRoleMinterAddedIterator{contract: _MinterRole.contract, event: "MinterAdded", logs: logs, sub: sub}, nil
 28341  }
 28342  
 28343  // WatchMinterAdded is a free log subscription operation binding the contract event 0x6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f6.
 28344  //
 28345  // Solidity: event MinterAdded(address indexed account)
 28346  func (_MinterRole *MinterRoleFilterer) WatchMinterAdded(opts *bind.WatchOpts, sink chan<- *MinterRoleMinterAdded, account []common.Address) (event.Subscription, error) {
 28347  
 28348  	var accountRule []interface{}
 28349  	for _, accountItem := range account {
 28350  		accountRule = append(accountRule, accountItem)
 28351  	}
 28352  
 28353  	logs, sub, err := _MinterRole.contract.WatchLogs(opts, "MinterAdded", accountRule)
 28354  	if err != nil {
 28355  		return nil, err
 28356  	}
 28357  	return event.NewSubscription(func(quit <-chan struct{}) error {
 28358  		defer sub.Unsubscribe()
 28359  		for {
 28360  			select {
 28361  			case log := <-logs:
 28362  				// New log arrived, parse the event and forward to the user
 28363  				event := new(MinterRoleMinterAdded)
 28364  				if err := _MinterRole.contract.UnpackLog(event, "MinterAdded", log); err != nil {
 28365  					return err
 28366  				}
 28367  				event.Raw = log
 28368  
 28369  				select {
 28370  				case sink <- event:
 28371  				case err := <-sub.Err():
 28372  					return err
 28373  				case <-quit:
 28374  					return nil
 28375  				}
 28376  			case err := <-sub.Err():
 28377  				return err
 28378  			case <-quit:
 28379  				return nil
 28380  			}
 28381  		}
 28382  	}), nil
 28383  }
 28384  
 28385  // ParseMinterAdded is a log parse operation binding the contract event 0x6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f6.
 28386  //
 28387  // Solidity: event MinterAdded(address indexed account)
 28388  func (_MinterRole *MinterRoleFilterer) ParseMinterAdded(log types.Log) (*MinterRoleMinterAdded, error) {
 28389  	event := new(MinterRoleMinterAdded)
 28390  	if err := _MinterRole.contract.UnpackLog(event, "MinterAdded", log); err != nil {
 28391  		return nil, err
 28392  	}
 28393  	return event, nil
 28394  }
 28395  
 28396  // MinterRoleMinterRemovedIterator is returned from FilterMinterRemoved and is used to iterate over the raw logs and unpacked data for MinterRemoved events raised by the MinterRole contract.
 28397  type MinterRoleMinterRemovedIterator struct {
 28398  	Event *MinterRoleMinterRemoved // Event containing the contract specifics and raw log
 28399  
 28400  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 28401  	event    string              // Event name to use for unpacking event data
 28402  
 28403  	logs chan types.Log      // Log channel receiving the found contract events
 28404  	sub  klaytn.Subscription // Subscription for errors, completion and termination
 28405  	done bool                // Whether the subscription completed delivering logs
 28406  	fail error               // Occurred error to stop iteration
 28407  }
 28408  
 28409  // Next advances the iterator to the subsequent event, returning whether there
 28410  // are any more events found. In case of a retrieval or parsing error, false is
 28411  // returned and Error() can be queried for the exact failure.
 28412  func (it *MinterRoleMinterRemovedIterator) Next() bool {
 28413  	// If the iterator failed, stop iterating
 28414  	if it.fail != nil {
 28415  		return false
 28416  	}
 28417  	// If the iterator completed, deliver directly whatever's available
 28418  	if it.done {
 28419  		select {
 28420  		case log := <-it.logs:
 28421  			it.Event = new(MinterRoleMinterRemoved)
 28422  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 28423  				it.fail = err
 28424  				return false
 28425  			}
 28426  			it.Event.Raw = log
 28427  			return true
 28428  
 28429  		default:
 28430  			return false
 28431  		}
 28432  	}
 28433  	// Iterator still in progress, wait for either a data or an error event
 28434  	select {
 28435  	case log := <-it.logs:
 28436  		it.Event = new(MinterRoleMinterRemoved)
 28437  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 28438  			it.fail = err
 28439  			return false
 28440  		}
 28441  		it.Event.Raw = log
 28442  		return true
 28443  
 28444  	case err := <-it.sub.Err():
 28445  		it.done = true
 28446  		it.fail = err
 28447  		return it.Next()
 28448  	}
 28449  }
 28450  
 28451  // Error returns any retrieval or parsing error occurred during filtering.
 28452  func (it *MinterRoleMinterRemovedIterator) Error() error {
 28453  	return it.fail
 28454  }
 28455  
 28456  // Close terminates the iteration process, releasing any pending underlying
 28457  // resources.
 28458  func (it *MinterRoleMinterRemovedIterator) Close() error {
 28459  	it.sub.Unsubscribe()
 28460  	return nil
 28461  }
 28462  
 28463  // MinterRoleMinterRemoved represents a MinterRemoved event raised by the MinterRole contract.
 28464  type MinterRoleMinterRemoved struct {
 28465  	Account common.Address
 28466  	Raw     types.Log // Blockchain specific contextual infos
 28467  }
 28468  
 28469  // FilterMinterRemoved is a free log retrieval operation binding the contract event 0xe94479a9f7e1952cc78f2d6baab678adc1b772d936c6583def489e524cb66692.
 28470  //
 28471  // Solidity: event MinterRemoved(address indexed account)
 28472  func (_MinterRole *MinterRoleFilterer) FilterMinterRemoved(opts *bind.FilterOpts, account []common.Address) (*MinterRoleMinterRemovedIterator, error) {
 28473  
 28474  	var accountRule []interface{}
 28475  	for _, accountItem := range account {
 28476  		accountRule = append(accountRule, accountItem)
 28477  	}
 28478  
 28479  	logs, sub, err := _MinterRole.contract.FilterLogs(opts, "MinterRemoved", accountRule)
 28480  	if err != nil {
 28481  		return nil, err
 28482  	}
 28483  	return &MinterRoleMinterRemovedIterator{contract: _MinterRole.contract, event: "MinterRemoved", logs: logs, sub: sub}, nil
 28484  }
 28485  
 28486  // WatchMinterRemoved is a free log subscription operation binding the contract event 0xe94479a9f7e1952cc78f2d6baab678adc1b772d936c6583def489e524cb66692.
 28487  //
 28488  // Solidity: event MinterRemoved(address indexed account)
 28489  func (_MinterRole *MinterRoleFilterer) WatchMinterRemoved(opts *bind.WatchOpts, sink chan<- *MinterRoleMinterRemoved, account []common.Address) (event.Subscription, error) {
 28490  
 28491  	var accountRule []interface{}
 28492  	for _, accountItem := range account {
 28493  		accountRule = append(accountRule, accountItem)
 28494  	}
 28495  
 28496  	logs, sub, err := _MinterRole.contract.WatchLogs(opts, "MinterRemoved", accountRule)
 28497  	if err != nil {
 28498  		return nil, err
 28499  	}
 28500  	return event.NewSubscription(func(quit <-chan struct{}) error {
 28501  		defer sub.Unsubscribe()
 28502  		for {
 28503  			select {
 28504  			case log := <-logs:
 28505  				// New log arrived, parse the event and forward to the user
 28506  				event := new(MinterRoleMinterRemoved)
 28507  				if err := _MinterRole.contract.UnpackLog(event, "MinterRemoved", log); err != nil {
 28508  					return err
 28509  				}
 28510  				event.Raw = log
 28511  
 28512  				select {
 28513  				case sink <- event:
 28514  				case err := <-sub.Err():
 28515  					return err
 28516  				case <-quit:
 28517  					return nil
 28518  				}
 28519  			case err := <-sub.Err():
 28520  				return err
 28521  			case <-quit:
 28522  				return nil
 28523  			}
 28524  		}
 28525  	}), nil
 28526  }
 28527  
 28528  // ParseMinterRemoved is a log parse operation binding the contract event 0xe94479a9f7e1952cc78f2d6baab678adc1b772d936c6583def489e524cb66692.
 28529  //
 28530  // Solidity: event MinterRemoved(address indexed account)
 28531  func (_MinterRole *MinterRoleFilterer) ParseMinterRemoved(log types.Log) (*MinterRoleMinterRemoved, error) {
 28532  	event := new(MinterRoleMinterRemoved)
 28533  	if err := _MinterRole.contract.UnpackLog(event, "MinterRemoved", log); err != nil {
 28534  		return nil, err
 28535  	}
 28536  	return event, nil
 28537  }
 28538  
 28539  // OwnableMetaData contains all meta data concerning the Ownable contract.
 28540  var OwnableMetaData = &bind.MetaData{
 28541  	ABI: "[{\"constant\":false,\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"isOwner\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"}]",
 28542  	Sigs: map[string]string{
 28543  		"8f32d59b": "isOwner()",
 28544  		"8da5cb5b": "owner()",
 28545  		"715018a6": "renounceOwnership()",
 28546  		"f2fde38b": "transferOwnership(address)",
 28547  	},
 28548  }
 28549  
 28550  // OwnableABI is the input ABI used to generate the binding from.
 28551  // Deprecated: Use OwnableMetaData.ABI instead.
 28552  var OwnableABI = OwnableMetaData.ABI
 28553  
 28554  // OwnableBinRuntime is the compiled bytecode used for adding genesis block without deploying code.
 28555  const OwnableBinRuntime = ``
 28556  
 28557  // OwnableFuncSigs maps the 4-byte function signature to its string representation.
 28558  // Deprecated: Use OwnableMetaData.Sigs instead.
 28559  var OwnableFuncSigs = OwnableMetaData.Sigs
 28560  
 28561  // Ownable is an auto generated Go binding around a Klaytn contract.
 28562  type Ownable struct {
 28563  	OwnableCaller     // Read-only binding to the contract
 28564  	OwnableTransactor // Write-only binding to the contract
 28565  	OwnableFilterer   // Log filterer for contract events
 28566  }
 28567  
 28568  // OwnableCaller is an auto generated read-only Go binding around a Klaytn contract.
 28569  type OwnableCaller struct {
 28570  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 28571  }
 28572  
 28573  // OwnableTransactor is an auto generated write-only Go binding around a Klaytn contract.
 28574  type OwnableTransactor struct {
 28575  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 28576  }
 28577  
 28578  // OwnableFilterer is an auto generated log filtering Go binding around a Klaytn contract events.
 28579  type OwnableFilterer struct {
 28580  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 28581  }
 28582  
 28583  // OwnableSession is an auto generated Go binding around a Klaytn contract,
 28584  // with pre-set call and transact options.
 28585  type OwnableSession struct {
 28586  	Contract     *Ownable          // Generic contract binding to set the session for
 28587  	CallOpts     bind.CallOpts     // Call options to use throughout this session
 28588  	TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
 28589  }
 28590  
 28591  // OwnableCallerSession is an auto generated read-only Go binding around a Klaytn contract,
 28592  // with pre-set call options.
 28593  type OwnableCallerSession struct {
 28594  	Contract *OwnableCaller // Generic contract caller binding to set the session for
 28595  	CallOpts bind.CallOpts  // Call options to use throughout this session
 28596  }
 28597  
 28598  // OwnableTransactorSession is an auto generated write-only Go binding around a Klaytn contract,
 28599  // with pre-set transact options.
 28600  type OwnableTransactorSession struct {
 28601  	Contract     *OwnableTransactor // Generic contract transactor binding to set the session for
 28602  	TransactOpts bind.TransactOpts  // Transaction auth options to use throughout this session
 28603  }
 28604  
 28605  // OwnableRaw is an auto generated low-level Go binding around a Klaytn contract.
 28606  type OwnableRaw struct {
 28607  	Contract *Ownable // Generic contract binding to access the raw methods on
 28608  }
 28609  
 28610  // OwnableCallerRaw is an auto generated low-level read-only Go binding around a Klaytn contract.
 28611  type OwnableCallerRaw struct {
 28612  	Contract *OwnableCaller // Generic read-only contract binding to access the raw methods on
 28613  }
 28614  
 28615  // OwnableTransactorRaw is an auto generated low-level write-only Go binding around a Klaytn contract.
 28616  type OwnableTransactorRaw struct {
 28617  	Contract *OwnableTransactor // Generic write-only contract binding to access the raw methods on
 28618  }
 28619  
 28620  // NewOwnable creates a new instance of Ownable, bound to a specific deployed contract.
 28621  func NewOwnable(address common.Address, backend bind.ContractBackend) (*Ownable, error) {
 28622  	contract, err := bindOwnable(address, backend, backend, backend)
 28623  	if err != nil {
 28624  		return nil, err
 28625  	}
 28626  	return &Ownable{OwnableCaller: OwnableCaller{contract: contract}, OwnableTransactor: OwnableTransactor{contract: contract}, OwnableFilterer: OwnableFilterer{contract: contract}}, nil
 28627  }
 28628  
 28629  // NewOwnableCaller creates a new read-only instance of Ownable, bound to a specific deployed contract.
 28630  func NewOwnableCaller(address common.Address, caller bind.ContractCaller) (*OwnableCaller, error) {
 28631  	contract, err := bindOwnable(address, caller, nil, nil)
 28632  	if err != nil {
 28633  		return nil, err
 28634  	}
 28635  	return &OwnableCaller{contract: contract}, nil
 28636  }
 28637  
 28638  // NewOwnableTransactor creates a new write-only instance of Ownable, bound to a specific deployed contract.
 28639  func NewOwnableTransactor(address common.Address, transactor bind.ContractTransactor) (*OwnableTransactor, error) {
 28640  	contract, err := bindOwnable(address, nil, transactor, nil)
 28641  	if err != nil {
 28642  		return nil, err
 28643  	}
 28644  	return &OwnableTransactor{contract: contract}, nil
 28645  }
 28646  
 28647  // NewOwnableFilterer creates a new log filterer instance of Ownable, bound to a specific deployed contract.
 28648  func NewOwnableFilterer(address common.Address, filterer bind.ContractFilterer) (*OwnableFilterer, error) {
 28649  	contract, err := bindOwnable(address, nil, nil, filterer)
 28650  	if err != nil {
 28651  		return nil, err
 28652  	}
 28653  	return &OwnableFilterer{contract: contract}, nil
 28654  }
 28655  
 28656  // bindOwnable binds a generic wrapper to an already deployed contract.
 28657  func bindOwnable(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
 28658  	parsed, err := OwnableMetaData.GetAbi()
 28659  	if err != nil {
 28660  		return nil, err
 28661  	}
 28662  	return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil
 28663  }
 28664  
 28665  // Call invokes the (constant) contract method with params as input values and
 28666  // sets the output to result. The result type might be a single field for simple
 28667  // returns, a slice of interfaces for anonymous returns and a struct for named
 28668  // returns.
 28669  func (_Ownable *OwnableRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
 28670  	return _Ownable.Contract.OwnableCaller.contract.Call(opts, result, method, params...)
 28671  }
 28672  
 28673  // Transfer initiates a plain transaction to move funds to the contract, calling
 28674  // its default method if one is available.
 28675  func (_Ownable *OwnableRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
 28676  	return _Ownable.Contract.OwnableTransactor.contract.Transfer(opts)
 28677  }
 28678  
 28679  // Transact invokes the (paid) contract method with params as input values.
 28680  func (_Ownable *OwnableRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
 28681  	return _Ownable.Contract.OwnableTransactor.contract.Transact(opts, method, params...)
 28682  }
 28683  
 28684  // Call invokes the (constant) contract method with params as input values and
 28685  // sets the output to result. The result type might be a single field for simple
 28686  // returns, a slice of interfaces for anonymous returns and a struct for named
 28687  // returns.
 28688  func (_Ownable *OwnableCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
 28689  	return _Ownable.Contract.contract.Call(opts, result, method, params...)
 28690  }
 28691  
 28692  // Transfer initiates a plain transaction to move funds to the contract, calling
 28693  // its default method if one is available.
 28694  func (_Ownable *OwnableTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
 28695  	return _Ownable.Contract.contract.Transfer(opts)
 28696  }
 28697  
 28698  // Transact invokes the (paid) contract method with params as input values.
 28699  func (_Ownable *OwnableTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
 28700  	return _Ownable.Contract.contract.Transact(opts, method, params...)
 28701  }
 28702  
 28703  // IsOwner is a free data retrieval call binding the contract method 0x8f32d59b.
 28704  //
 28705  // Solidity: function isOwner() view returns(bool)
 28706  func (_Ownable *OwnableCaller) IsOwner(opts *bind.CallOpts) (bool, error) {
 28707  	var out []interface{}
 28708  	err := _Ownable.contract.Call(opts, &out, "isOwner")
 28709  
 28710  	if err != nil {
 28711  		return *new(bool), err
 28712  	}
 28713  
 28714  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
 28715  
 28716  	return out0, err
 28717  
 28718  }
 28719  
 28720  // IsOwner is a free data retrieval call binding the contract method 0x8f32d59b.
 28721  //
 28722  // Solidity: function isOwner() view returns(bool)
 28723  func (_Ownable *OwnableSession) IsOwner() (bool, error) {
 28724  	return _Ownable.Contract.IsOwner(&_Ownable.CallOpts)
 28725  }
 28726  
 28727  // IsOwner is a free data retrieval call binding the contract method 0x8f32d59b.
 28728  //
 28729  // Solidity: function isOwner() view returns(bool)
 28730  func (_Ownable *OwnableCallerSession) IsOwner() (bool, error) {
 28731  	return _Ownable.Contract.IsOwner(&_Ownable.CallOpts)
 28732  }
 28733  
 28734  // Owner is a free data retrieval call binding the contract method 0x8da5cb5b.
 28735  //
 28736  // Solidity: function owner() view returns(address)
 28737  func (_Ownable *OwnableCaller) Owner(opts *bind.CallOpts) (common.Address, error) {
 28738  	var out []interface{}
 28739  	err := _Ownable.contract.Call(opts, &out, "owner")
 28740  
 28741  	if err != nil {
 28742  		return *new(common.Address), err
 28743  	}
 28744  
 28745  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
 28746  
 28747  	return out0, err
 28748  
 28749  }
 28750  
 28751  // Owner is a free data retrieval call binding the contract method 0x8da5cb5b.
 28752  //
 28753  // Solidity: function owner() view returns(address)
 28754  func (_Ownable *OwnableSession) Owner() (common.Address, error) {
 28755  	return _Ownable.Contract.Owner(&_Ownable.CallOpts)
 28756  }
 28757  
 28758  // Owner is a free data retrieval call binding the contract method 0x8da5cb5b.
 28759  //
 28760  // Solidity: function owner() view returns(address)
 28761  func (_Ownable *OwnableCallerSession) Owner() (common.Address, error) {
 28762  	return _Ownable.Contract.Owner(&_Ownable.CallOpts)
 28763  }
 28764  
 28765  // RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6.
 28766  //
 28767  // Solidity: function renounceOwnership() returns()
 28768  func (_Ownable *OwnableTransactor) RenounceOwnership(opts *bind.TransactOpts) (*types.Transaction, error) {
 28769  	return _Ownable.contract.Transact(opts, "renounceOwnership")
 28770  }
 28771  
 28772  // RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6.
 28773  //
 28774  // Solidity: function renounceOwnership() returns()
 28775  func (_Ownable *OwnableSession) RenounceOwnership() (*types.Transaction, error) {
 28776  	return _Ownable.Contract.RenounceOwnership(&_Ownable.TransactOpts)
 28777  }
 28778  
 28779  // RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6.
 28780  //
 28781  // Solidity: function renounceOwnership() returns()
 28782  func (_Ownable *OwnableTransactorSession) RenounceOwnership() (*types.Transaction, error) {
 28783  	return _Ownable.Contract.RenounceOwnership(&_Ownable.TransactOpts)
 28784  }
 28785  
 28786  // TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b.
 28787  //
 28788  // Solidity: function transferOwnership(address newOwner) returns()
 28789  func (_Ownable *OwnableTransactor) TransferOwnership(opts *bind.TransactOpts, newOwner common.Address) (*types.Transaction, error) {
 28790  	return _Ownable.contract.Transact(opts, "transferOwnership", newOwner)
 28791  }
 28792  
 28793  // TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b.
 28794  //
 28795  // Solidity: function transferOwnership(address newOwner) returns()
 28796  func (_Ownable *OwnableSession) TransferOwnership(newOwner common.Address) (*types.Transaction, error) {
 28797  	return _Ownable.Contract.TransferOwnership(&_Ownable.TransactOpts, newOwner)
 28798  }
 28799  
 28800  // TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b.
 28801  //
 28802  // Solidity: function transferOwnership(address newOwner) returns()
 28803  func (_Ownable *OwnableTransactorSession) TransferOwnership(newOwner common.Address) (*types.Transaction, error) {
 28804  	return _Ownable.Contract.TransferOwnership(&_Ownable.TransactOpts, newOwner)
 28805  }
 28806  
 28807  // OwnableOwnershipTransferredIterator is returned from FilterOwnershipTransferred and is used to iterate over the raw logs and unpacked data for OwnershipTransferred events raised by the Ownable contract.
 28808  type OwnableOwnershipTransferredIterator struct {
 28809  	Event *OwnableOwnershipTransferred // Event containing the contract specifics and raw log
 28810  
 28811  	contract *bind.BoundContract // Generic contract to use for unpacking event data
 28812  	event    string              // Event name to use for unpacking event data
 28813  
 28814  	logs chan types.Log      // Log channel receiving the found contract events
 28815  	sub  klaytn.Subscription // Subscription for errors, completion and termination
 28816  	done bool                // Whether the subscription completed delivering logs
 28817  	fail error               // Occurred error to stop iteration
 28818  }
 28819  
 28820  // Next advances the iterator to the subsequent event, returning whether there
 28821  // are any more events found. In case of a retrieval or parsing error, false is
 28822  // returned and Error() can be queried for the exact failure.
 28823  func (it *OwnableOwnershipTransferredIterator) Next() bool {
 28824  	// If the iterator failed, stop iterating
 28825  	if it.fail != nil {
 28826  		return false
 28827  	}
 28828  	// If the iterator completed, deliver directly whatever's available
 28829  	if it.done {
 28830  		select {
 28831  		case log := <-it.logs:
 28832  			it.Event = new(OwnableOwnershipTransferred)
 28833  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 28834  				it.fail = err
 28835  				return false
 28836  			}
 28837  			it.Event.Raw = log
 28838  			return true
 28839  
 28840  		default:
 28841  			return false
 28842  		}
 28843  	}
 28844  	// Iterator still in progress, wait for either a data or an error event
 28845  	select {
 28846  	case log := <-it.logs:
 28847  		it.Event = new(OwnableOwnershipTransferred)
 28848  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 28849  			it.fail = err
 28850  			return false
 28851  		}
 28852  		it.Event.Raw = log
 28853  		return true
 28854  
 28855  	case err := <-it.sub.Err():
 28856  		it.done = true
 28857  		it.fail = err
 28858  		return it.Next()
 28859  	}
 28860  }
 28861  
 28862  // Error returns any retrieval or parsing error occurred during filtering.
 28863  func (it *OwnableOwnershipTransferredIterator) Error() error {
 28864  	return it.fail
 28865  }
 28866  
 28867  // Close terminates the iteration process, releasing any pending underlying
 28868  // resources.
 28869  func (it *OwnableOwnershipTransferredIterator) Close() error {
 28870  	it.sub.Unsubscribe()
 28871  	return nil
 28872  }
 28873  
 28874  // OwnableOwnershipTransferred represents a OwnershipTransferred event raised by the Ownable contract.
 28875  type OwnableOwnershipTransferred struct {
 28876  	PreviousOwner common.Address
 28877  	NewOwner      common.Address
 28878  	Raw           types.Log // Blockchain specific contextual infos
 28879  }
 28880  
 28881  // FilterOwnershipTransferred is a free log retrieval operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0.
 28882  //
 28883  // Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
 28884  func (_Ownable *OwnableFilterer) FilterOwnershipTransferred(opts *bind.FilterOpts, previousOwner []common.Address, newOwner []common.Address) (*OwnableOwnershipTransferredIterator, error) {
 28885  
 28886  	var previousOwnerRule []interface{}
 28887  	for _, previousOwnerItem := range previousOwner {
 28888  		previousOwnerRule = append(previousOwnerRule, previousOwnerItem)
 28889  	}
 28890  	var newOwnerRule []interface{}
 28891  	for _, newOwnerItem := range newOwner {
 28892  		newOwnerRule = append(newOwnerRule, newOwnerItem)
 28893  	}
 28894  
 28895  	logs, sub, err := _Ownable.contract.FilterLogs(opts, "OwnershipTransferred", previousOwnerRule, newOwnerRule)
 28896  	if err != nil {
 28897  		return nil, err
 28898  	}
 28899  	return &OwnableOwnershipTransferredIterator{contract: _Ownable.contract, event: "OwnershipTransferred", logs: logs, sub: sub}, nil
 28900  }
 28901  
 28902  // WatchOwnershipTransferred is a free log subscription operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0.
 28903  //
 28904  // Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
 28905  func (_Ownable *OwnableFilterer) WatchOwnershipTransferred(opts *bind.WatchOpts, sink chan<- *OwnableOwnershipTransferred, previousOwner []common.Address, newOwner []common.Address) (event.Subscription, error) {
 28906  
 28907  	var previousOwnerRule []interface{}
 28908  	for _, previousOwnerItem := range previousOwner {
 28909  		previousOwnerRule = append(previousOwnerRule, previousOwnerItem)
 28910  	}
 28911  	var newOwnerRule []interface{}
 28912  	for _, newOwnerItem := range newOwner {
 28913  		newOwnerRule = append(newOwnerRule, newOwnerItem)
 28914  	}
 28915  
 28916  	logs, sub, err := _Ownable.contract.WatchLogs(opts, "OwnershipTransferred", previousOwnerRule, newOwnerRule)
 28917  	if err != nil {
 28918  		return nil, err
 28919  	}
 28920  	return event.NewSubscription(func(quit <-chan struct{}) error {
 28921  		defer sub.Unsubscribe()
 28922  		for {
 28923  			select {
 28924  			case log := <-logs:
 28925  				// New log arrived, parse the event and forward to the user
 28926  				event := new(OwnableOwnershipTransferred)
 28927  				if err := _Ownable.contract.UnpackLog(event, "OwnershipTransferred", log); err != nil {
 28928  					return err
 28929  				}
 28930  				event.Raw = log
 28931  
 28932  				select {
 28933  				case sink <- event:
 28934  				case err := <-sub.Err():
 28935  					return err
 28936  				case <-quit:
 28937  					return nil
 28938  				}
 28939  			case err := <-sub.Err():
 28940  				return err
 28941  			case <-quit:
 28942  				return nil
 28943  			}
 28944  		}
 28945  	}), nil
 28946  }
 28947  
 28948  // ParseOwnershipTransferred is a log parse operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0.
 28949  //
 28950  // Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
 28951  func (_Ownable *OwnableFilterer) ParseOwnershipTransferred(log types.Log) (*OwnableOwnershipTransferred, error) {
 28952  	event := new(OwnableOwnershipTransferred)
 28953  	if err := _Ownable.contract.UnpackLog(event, "OwnershipTransferred", log); err != nil {
 28954  		return nil, err
 28955  	}
 28956  	return event, nil
 28957  }
 28958  
 28959  // RolesMetaData contains all meta data concerning the Roles contract.
 28960  var RolesMetaData = &bind.MetaData{
 28961  	ABI: "[]",
 28962  	Bin: "0x604c6023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea165627a7a723058206fdeeec4a4b0b444bd488c924c927184696cea63963686d57a13cf42f3830d840029",
 28963  }
 28964  
 28965  // RolesABI is the input ABI used to generate the binding from.
 28966  // Deprecated: Use RolesMetaData.ABI instead.
 28967  var RolesABI = RolesMetaData.ABI
 28968  
 28969  // RolesBinRuntime is the compiled bytecode used for adding genesis block without deploying code.
 28970  const RolesBinRuntime = `73000000000000000000000000000000000000000030146080604052600080fdfea165627a7a723058206fdeeec4a4b0b444bd488c924c927184696cea63963686d57a13cf42f3830d840029`
 28971  
 28972  // RolesBin is the compiled bytecode used for deploying new contracts.
 28973  // Deprecated: Use RolesMetaData.Bin instead.
 28974  var RolesBin = RolesMetaData.Bin
 28975  
 28976  // DeployRoles deploys a new Klaytn contract, binding an instance of Roles to it.
 28977  func DeployRoles(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *types.Transaction, *Roles, error) {
 28978  	parsed, err := RolesMetaData.GetAbi()
 28979  	if err != nil {
 28980  		return common.Address{}, nil, nil, err
 28981  	}
 28982  	if parsed == nil {
 28983  		return common.Address{}, nil, nil, errors.New("GetABI returned nil")
 28984  	}
 28985  
 28986  	address, tx, contract, err := bind.DeployContract(auth, *parsed, common.FromHex(RolesBin), backend)
 28987  	if err != nil {
 28988  		return common.Address{}, nil, nil, err
 28989  	}
 28990  	return address, tx, &Roles{RolesCaller: RolesCaller{contract: contract}, RolesTransactor: RolesTransactor{contract: contract}, RolesFilterer: RolesFilterer{contract: contract}}, nil
 28991  }
 28992  
 28993  // Roles is an auto generated Go binding around a Klaytn contract.
 28994  type Roles struct {
 28995  	RolesCaller     // Read-only binding to the contract
 28996  	RolesTransactor // Write-only binding to the contract
 28997  	RolesFilterer   // Log filterer for contract events
 28998  }
 28999  
 29000  // RolesCaller is an auto generated read-only Go binding around a Klaytn contract.
 29001  type RolesCaller struct {
 29002  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 29003  }
 29004  
 29005  // RolesTransactor is an auto generated write-only Go binding around a Klaytn contract.
 29006  type RolesTransactor struct {
 29007  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 29008  }
 29009  
 29010  // RolesFilterer is an auto generated log filtering Go binding around a Klaytn contract events.
 29011  type RolesFilterer struct {
 29012  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 29013  }
 29014  
 29015  // RolesSession is an auto generated Go binding around a Klaytn contract,
 29016  // with pre-set call and transact options.
 29017  type RolesSession struct {
 29018  	Contract     *Roles            // Generic contract binding to set the session for
 29019  	CallOpts     bind.CallOpts     // Call options to use throughout this session
 29020  	TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
 29021  }
 29022  
 29023  // RolesCallerSession is an auto generated read-only Go binding around a Klaytn contract,
 29024  // with pre-set call options.
 29025  type RolesCallerSession struct {
 29026  	Contract *RolesCaller  // Generic contract caller binding to set the session for
 29027  	CallOpts bind.CallOpts // Call options to use throughout this session
 29028  }
 29029  
 29030  // RolesTransactorSession is an auto generated write-only Go binding around a Klaytn contract,
 29031  // with pre-set transact options.
 29032  type RolesTransactorSession struct {
 29033  	Contract     *RolesTransactor  // Generic contract transactor binding to set the session for
 29034  	TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
 29035  }
 29036  
 29037  // RolesRaw is an auto generated low-level Go binding around a Klaytn contract.
 29038  type RolesRaw struct {
 29039  	Contract *Roles // Generic contract binding to access the raw methods on
 29040  }
 29041  
 29042  // RolesCallerRaw is an auto generated low-level read-only Go binding around a Klaytn contract.
 29043  type RolesCallerRaw struct {
 29044  	Contract *RolesCaller // Generic read-only contract binding to access the raw methods on
 29045  }
 29046  
 29047  // RolesTransactorRaw is an auto generated low-level write-only Go binding around a Klaytn contract.
 29048  type RolesTransactorRaw struct {
 29049  	Contract *RolesTransactor // Generic write-only contract binding to access the raw methods on
 29050  }
 29051  
 29052  // NewRoles creates a new instance of Roles, bound to a specific deployed contract.
 29053  func NewRoles(address common.Address, backend bind.ContractBackend) (*Roles, error) {
 29054  	contract, err := bindRoles(address, backend, backend, backend)
 29055  	if err != nil {
 29056  		return nil, err
 29057  	}
 29058  	return &Roles{RolesCaller: RolesCaller{contract: contract}, RolesTransactor: RolesTransactor{contract: contract}, RolesFilterer: RolesFilterer{contract: contract}}, nil
 29059  }
 29060  
 29061  // NewRolesCaller creates a new read-only instance of Roles, bound to a specific deployed contract.
 29062  func NewRolesCaller(address common.Address, caller bind.ContractCaller) (*RolesCaller, error) {
 29063  	contract, err := bindRoles(address, caller, nil, nil)
 29064  	if err != nil {
 29065  		return nil, err
 29066  	}
 29067  	return &RolesCaller{contract: contract}, nil
 29068  }
 29069  
 29070  // NewRolesTransactor creates a new write-only instance of Roles, bound to a specific deployed contract.
 29071  func NewRolesTransactor(address common.Address, transactor bind.ContractTransactor) (*RolesTransactor, error) {
 29072  	contract, err := bindRoles(address, nil, transactor, nil)
 29073  	if err != nil {
 29074  		return nil, err
 29075  	}
 29076  	return &RolesTransactor{contract: contract}, nil
 29077  }
 29078  
 29079  // NewRolesFilterer creates a new log filterer instance of Roles, bound to a specific deployed contract.
 29080  func NewRolesFilterer(address common.Address, filterer bind.ContractFilterer) (*RolesFilterer, error) {
 29081  	contract, err := bindRoles(address, nil, nil, filterer)
 29082  	if err != nil {
 29083  		return nil, err
 29084  	}
 29085  	return &RolesFilterer{contract: contract}, nil
 29086  }
 29087  
 29088  // bindRoles binds a generic wrapper to an already deployed contract.
 29089  func bindRoles(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
 29090  	parsed, err := RolesMetaData.GetAbi()
 29091  	if err != nil {
 29092  		return nil, err
 29093  	}
 29094  	return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil
 29095  }
 29096  
 29097  // Call invokes the (constant) contract method with params as input values and
 29098  // sets the output to result. The result type might be a single field for simple
 29099  // returns, a slice of interfaces for anonymous returns and a struct for named
 29100  // returns.
 29101  func (_Roles *RolesRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
 29102  	return _Roles.Contract.RolesCaller.contract.Call(opts, result, method, params...)
 29103  }
 29104  
 29105  // Transfer initiates a plain transaction to move funds to the contract, calling
 29106  // its default method if one is available.
 29107  func (_Roles *RolesRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
 29108  	return _Roles.Contract.RolesTransactor.contract.Transfer(opts)
 29109  }
 29110  
 29111  // Transact invokes the (paid) contract method with params as input values.
 29112  func (_Roles *RolesRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
 29113  	return _Roles.Contract.RolesTransactor.contract.Transact(opts, method, params...)
 29114  }
 29115  
 29116  // Call invokes the (constant) contract method with params as input values and
 29117  // sets the output to result. The result type might be a single field for simple
 29118  // returns, a slice of interfaces for anonymous returns and a struct for named
 29119  // returns.
 29120  func (_Roles *RolesCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
 29121  	return _Roles.Contract.contract.Call(opts, result, method, params...)
 29122  }
 29123  
 29124  // Transfer initiates a plain transaction to move funds to the contract, calling
 29125  // its default method if one is available.
 29126  func (_Roles *RolesTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
 29127  	return _Roles.Contract.contract.Transfer(opts)
 29128  }
 29129  
 29130  // Transact invokes the (paid) contract method with params as input values.
 29131  func (_Roles *RolesTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
 29132  	return _Roles.Contract.contract.Transact(opts, method, params...)
 29133  }
 29134  
 29135  // SafeMathMetaData contains all meta data concerning the SafeMath contract.
 29136  var SafeMathMetaData = &bind.MetaData{
 29137  	ABI: "[]",
 29138  	Bin: "0x604c6023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea165627a7a7230582052c975835d8618888691b14d52ff822fc00b24a3637e28a17d824cf0361b62b90029",
 29139  }
 29140  
 29141  // SafeMathABI is the input ABI used to generate the binding from.
 29142  // Deprecated: Use SafeMathMetaData.ABI instead.
 29143  var SafeMathABI = SafeMathMetaData.ABI
 29144  
 29145  // SafeMathBinRuntime is the compiled bytecode used for adding genesis block without deploying code.
 29146  const SafeMathBinRuntime = `73000000000000000000000000000000000000000030146080604052600080fdfea165627a7a7230582052c975835d8618888691b14d52ff822fc00b24a3637e28a17d824cf0361b62b90029`
 29147  
 29148  // SafeMathBin is the compiled bytecode used for deploying new contracts.
 29149  // Deprecated: Use SafeMathMetaData.Bin instead.
 29150  var SafeMathBin = SafeMathMetaData.Bin
 29151  
 29152  // DeploySafeMath deploys a new Klaytn contract, binding an instance of SafeMath to it.
 29153  func DeploySafeMath(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *types.Transaction, *SafeMath, error) {
 29154  	parsed, err := SafeMathMetaData.GetAbi()
 29155  	if err != nil {
 29156  		return common.Address{}, nil, nil, err
 29157  	}
 29158  	if parsed == nil {
 29159  		return common.Address{}, nil, nil, errors.New("GetABI returned nil")
 29160  	}
 29161  
 29162  	address, tx, contract, err := bind.DeployContract(auth, *parsed, common.FromHex(SafeMathBin), backend)
 29163  	if err != nil {
 29164  		return common.Address{}, nil, nil, err
 29165  	}
 29166  	return address, tx, &SafeMath{SafeMathCaller: SafeMathCaller{contract: contract}, SafeMathTransactor: SafeMathTransactor{contract: contract}, SafeMathFilterer: SafeMathFilterer{contract: contract}}, nil
 29167  }
 29168  
 29169  // SafeMath is an auto generated Go binding around a Klaytn contract.
 29170  type SafeMath struct {
 29171  	SafeMathCaller     // Read-only binding to the contract
 29172  	SafeMathTransactor // Write-only binding to the contract
 29173  	SafeMathFilterer   // Log filterer for contract events
 29174  }
 29175  
 29176  // SafeMathCaller is an auto generated read-only Go binding around a Klaytn contract.
 29177  type SafeMathCaller struct {
 29178  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 29179  }
 29180  
 29181  // SafeMathTransactor is an auto generated write-only Go binding around a Klaytn contract.
 29182  type SafeMathTransactor struct {
 29183  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 29184  }
 29185  
 29186  // SafeMathFilterer is an auto generated log filtering Go binding around a Klaytn contract events.
 29187  type SafeMathFilterer struct {
 29188  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
 29189  }
 29190  
 29191  // SafeMathSession is an auto generated Go binding around a Klaytn contract,
 29192  // with pre-set call and transact options.
 29193  type SafeMathSession struct {
 29194  	Contract     *SafeMath         // Generic contract binding to set the session for
 29195  	CallOpts     bind.CallOpts     // Call options to use throughout this session
 29196  	TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
 29197  }
 29198  
 29199  // SafeMathCallerSession is an auto generated read-only Go binding around a Klaytn contract,
 29200  // with pre-set call options.
 29201  type SafeMathCallerSession struct {
 29202  	Contract *SafeMathCaller // Generic contract caller binding to set the session for
 29203  	CallOpts bind.CallOpts   // Call options to use throughout this session
 29204  }
 29205  
 29206  // SafeMathTransactorSession is an auto generated write-only Go binding around a Klaytn contract,
 29207  // with pre-set transact options.
 29208  type SafeMathTransactorSession struct {
 29209  	Contract     *SafeMathTransactor // Generic contract transactor binding to set the session for
 29210  	TransactOpts bind.TransactOpts   // Transaction auth options to use throughout this session
 29211  }
 29212  
 29213  // SafeMathRaw is an auto generated low-level Go binding around a Klaytn contract.
 29214  type SafeMathRaw struct {
 29215  	Contract *SafeMath // Generic contract binding to access the raw methods on
 29216  }
 29217  
 29218  // SafeMathCallerRaw is an auto generated low-level read-only Go binding around a Klaytn contract.
 29219  type SafeMathCallerRaw struct {
 29220  	Contract *SafeMathCaller // Generic read-only contract binding to access the raw methods on
 29221  }
 29222  
 29223  // SafeMathTransactorRaw is an auto generated low-level write-only Go binding around a Klaytn contract.
 29224  type SafeMathTransactorRaw struct {
 29225  	Contract *SafeMathTransactor // Generic write-only contract binding to access the raw methods on
 29226  }
 29227  
 29228  // NewSafeMath creates a new instance of SafeMath, bound to a specific deployed contract.
 29229  func NewSafeMath(address common.Address, backend bind.ContractBackend) (*SafeMath, error) {
 29230  	contract, err := bindSafeMath(address, backend, backend, backend)
 29231  	if err != nil {
 29232  		return nil, err
 29233  	}
 29234  	return &SafeMath{SafeMathCaller: SafeMathCaller{contract: contract}, SafeMathTransactor: SafeMathTransactor{contract: contract}, SafeMathFilterer: SafeMathFilterer{contract: contract}}, nil
 29235  }
 29236  
 29237  // NewSafeMathCaller creates a new read-only instance of SafeMath, bound to a specific deployed contract.
 29238  func NewSafeMathCaller(address common.Address, caller bind.ContractCaller) (*SafeMathCaller, error) {
 29239  	contract, err := bindSafeMath(address, caller, nil, nil)
 29240  	if err != nil {
 29241  		return nil, err
 29242  	}
 29243  	return &SafeMathCaller{contract: contract}, nil
 29244  }
 29245  
 29246  // NewSafeMathTransactor creates a new write-only instance of SafeMath, bound to a specific deployed contract.
 29247  func NewSafeMathTransactor(address common.Address, transactor bind.ContractTransactor) (*SafeMathTransactor, error) {
 29248  	contract, err := bindSafeMath(address, nil, transactor, nil)
 29249  	if err != nil {
 29250  		return nil, err
 29251  	}
 29252  	return &SafeMathTransactor{contract: contract}, nil
 29253  }
 29254  
 29255  // NewSafeMathFilterer creates a new log filterer instance of SafeMath, bound to a specific deployed contract.
 29256  func NewSafeMathFilterer(address common.Address, filterer bind.ContractFilterer) (*SafeMathFilterer, error) {
 29257  	contract, err := bindSafeMath(address, nil, nil, filterer)
 29258  	if err != nil {
 29259  		return nil, err
 29260  	}
 29261  	return &SafeMathFilterer{contract: contract}, nil
 29262  }
 29263  
 29264  // bindSafeMath binds a generic wrapper to an already deployed contract.
 29265  func bindSafeMath(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
 29266  	parsed, err := SafeMathMetaData.GetAbi()
 29267  	if err != nil {
 29268  		return nil, err
 29269  	}
 29270  	return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil
 29271  }
 29272  
 29273  // Call invokes the (constant) contract method with params as input values and
 29274  // sets the output to result. The result type might be a single field for simple
 29275  // returns, a slice of interfaces for anonymous returns and a struct for named
 29276  // returns.
 29277  func (_SafeMath *SafeMathRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
 29278  	return _SafeMath.Contract.SafeMathCaller.contract.Call(opts, result, method, params...)
 29279  }
 29280  
 29281  // Transfer initiates a plain transaction to move funds to the contract, calling
 29282  // its default method if one is available.
 29283  func (_SafeMath *SafeMathRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
 29284  	return _SafeMath.Contract.SafeMathTransactor.contract.Transfer(opts)
 29285  }
 29286  
 29287  // Transact invokes the (paid) contract method with params as input values.
 29288  func (_SafeMath *SafeMathRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
 29289  	return _SafeMath.Contract.SafeMathTransactor.contract.Transact(opts, method, params...)
 29290  }
 29291  
 29292  // Call invokes the (constant) contract method with params as input values and
 29293  // sets the output to result. The result type might be a single field for simple
 29294  // returns, a slice of interfaces for anonymous returns and a struct for named
 29295  // returns.
 29296  func (_SafeMath *SafeMathCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
 29297  	return _SafeMath.Contract.contract.Call(opts, result, method, params...)
 29298  }
 29299  
 29300  // Transfer initiates a plain transaction to move funds to the contract, calling
 29301  // its default method if one is available.
 29302  func (_SafeMath *SafeMathTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
 29303  	return _SafeMath.Contract.contract.Transfer(opts)
 29304  }
 29305  
 29306  // Transact invokes the (paid) contract method with params as input values.
 29307  func (_SafeMath *SafeMathTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
 29308  	return _SafeMath.Contract.contract.Transact(opts, method, params...)
 29309  }