github.com/klaytn/klaytn@v1.12.1/contracts/reward/contract/AddressBook.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 contract
     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  // AddressBookMetaData contains all meta data concerning the AddressBook contract.
    33  var AddressBookMetaData = &bind.MetaData{
    34  	ABI: "[{\"constant\":true,\"inputs\":[{\"name\":\"_cnNodeId\",\"type\":\"address\"}],\"name\":\"getCnInfo\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"},{\"name\":\"\",\"type\":\"address\"},{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getAllAddressInfo\",\"outputs\":[{\"name\":\"\",\"type\":\"address[]\"},{\"name\":\"\",\"type\":\"address[]\"},{\"name\":\"\",\"type\":\"address[]\"},{\"name\":\"\",\"type\":\"address\"},{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getState\",\"outputs\":[{\"name\":\"\",\"type\":\"address[]\"},{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_pocContractAddress\",\"type\":\"address\"},{\"name\":\"_version\",\"type\":\"uint256\"}],\"name\":\"submitUpdatePocContract\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_admin\",\"type\":\"address\"}],\"name\":\"deleteAdmin\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_cnNodeId\",\"type\":\"address\"},{\"name\":\"_cnStakingContractAddress\",\"type\":\"address\"},{\"name\":\"_cnRewardAddress\",\"type\":\"address\"}],\"name\":\"registerCnStakingContract\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"CN_REWARD_ADDRESS_TYPE\",\"outputs\":[{\"name\":\"\",\"type\":\"uint8\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_spareContractAddress\",\"type\":\"address\"}],\"name\":\"submitUpdateSpareContract\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_functionId\",\"type\":\"uint8\"},{\"name\":\"_firstArg\",\"type\":\"bytes32\"},{\"name\":\"_secondArg\",\"type\":\"bytes32\"},{\"name\":\"_thirdArg\",\"type\":\"bytes32\"}],\"name\":\"revokeRequest\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_functionId\",\"type\":\"uint8\"},{\"name\":\"_firstArg\",\"type\":\"bytes32\"},{\"name\":\"_secondArg\",\"type\":\"bytes32\"},{\"name\":\"_thirdArg\",\"type\":\"bytes32\"}],\"name\":\"getRequestInfoByArgs\",\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\"},{\"name\":\"\",\"type\":\"address[]\"},{\"name\":\"\",\"type\":\"uint256\"},{\"name\":\"\",\"type\":\"uint8\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"KIR_CONTRACT_TYPE\",\"outputs\":[{\"name\":\"\",\"type\":\"uint8\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"isActivated\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"CONTRACT_TYPE\",\"outputs\":[{\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_kirContractAddress\",\"type\":\"address\"},{\"name\":\"_version\",\"type\":\"uint256\"}],\"name\":\"updateKirContract\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"clearRequest\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"isConstructed\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_cnNodeId\",\"type\":\"address\"}],\"name\":\"unregisterCnStakingContract\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"MAX_ADMIN\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"spareContractAddress\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_admin\",\"type\":\"address\"}],\"name\":\"addAdmin\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getAllAddress\",\"outputs\":[{\"name\":\"\",\"type\":\"uint8[]\"},{\"name\":\"\",\"type\":\"address[]\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"CN_NODE_ID_TYPE\",\"outputs\":[{\"name\":\"\",\"type\":\"uint8\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"MAX_PENDING_REQUEST\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_adminList\",\"type\":\"address[]\"},{\"name\":\"_requirement\",\"type\":\"uint256\"}],\"name\":\"constructContract\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_admin\",\"type\":\"address\"}],\"name\":\"submitDeleteAdmin\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_id\",\"type\":\"bytes32\"}],\"name\":\"getRequestInfo\",\"outputs\":[{\"name\":\"\",\"type\":\"uint8\"},{\"name\":\"\",\"type\":\"bytes32\"},{\"name\":\"\",\"type\":\"bytes32\"},{\"name\":\"\",\"type\":\"bytes32\"},{\"name\":\"\",\"type\":\"address[]\"},{\"name\":\"\",\"type\":\"uint256\"},{\"name\":\"\",\"type\":\"uint8\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_rewardAddress\",\"type\":\"address\"}],\"name\":\"reviseRewardAddress\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_admin\",\"type\":\"address\"}],\"name\":\"submitAddAdmin\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"submitClearRequest\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"ONE_WEEK\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_kirContractAddress\",\"type\":\"address\"},{\"name\":\"_version\",\"type\":\"uint256\"}],\"name\":\"submitUpdateKirContract\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"TWO_WEEKS\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_spareContractAddress\",\"type\":\"address\"}],\"name\":\"updateSpareContract\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"POC_CONTRACT_TYPE\",\"outputs\":[{\"name\":\"\",\"type\":\"uint8\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_cnNodeId\",\"type\":\"address\"}],\"name\":\"submitUnregisterCnStakingContract\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"requirement\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"kirContractAddress\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_requirement\",\"type\":\"uint256\"}],\"name\":\"updateRequirement\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_pocContractAddress\",\"type\":\"address\"},{\"name\":\"_version\",\"type\":\"uint256\"}],\"name\":\"updatePocContract\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_cnNodeId\",\"type\":\"address\"},{\"name\":\"_cnStakingContractAddress\",\"type\":\"address\"},{\"name\":\"_cnRewardAddress\",\"type\":\"address\"}],\"name\":\"submitRegisterCnStakingContract\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"activateAddressBook\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"pocContractAddress\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getPendingRequestList\",\"outputs\":[{\"name\":\"\",\"type\":\"bytes32[]\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"CN_STAKING_ADDRESS_TYPE\",\"outputs\":[{\"name\":\"\",\"type\":\"uint8\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_requirement\",\"type\":\"uint256\"}],\"name\":\"submitUpdateRequirement\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"submitActivateAddressBook\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"VERSION\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"contractType\",\"type\":\"string\"},{\"indexed\":false,\"name\":\"adminList\",\"type\":\"address[]\"},{\"indexed\":false,\"name\":\"requirement\",\"type\":\"uint256\"}],\"name\":\"DeployContract\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"admin\",\"type\":\"address\"}],\"name\":\"AddAdmin\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"admin\",\"type\":\"address\"}],\"name\":\"DeleteAdmin\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"requirement\",\"type\":\"uint256\"}],\"name\":\"UpdateRequirement\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"ClearRequest\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"id\",\"type\":\"bytes32\"},{\"indexed\":true,\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"functionId\",\"type\":\"uint8\"},{\"indexed\":false,\"name\":\"firstArg\",\"type\":\"bytes32\"},{\"indexed\":false,\"name\":\"secondArg\",\"type\":\"bytes32\"},{\"indexed\":false,\"name\":\"thirdArg\",\"type\":\"bytes32\"},{\"indexed\":false,\"name\":\"confirmers\",\"type\":\"address[]\"}],\"name\":\"SubmitRequest\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"id\",\"type\":\"bytes32\"},{\"indexed\":true,\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"functionId\",\"type\":\"uint8\"},{\"indexed\":false,\"name\":\"firstArg\",\"type\":\"bytes32\"},{\"indexed\":false,\"name\":\"secondArg\",\"type\":\"bytes32\"},{\"indexed\":false,\"name\":\"thirdArg\",\"type\":\"bytes32\"},{\"indexed\":false,\"name\":\"confirmers\",\"type\":\"address[]\"}],\"name\":\"ExpiredRequest\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"id\",\"type\":\"bytes32\"},{\"indexed\":true,\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"functionId\",\"type\":\"uint8\"},{\"indexed\":false,\"name\":\"firstArg\",\"type\":\"bytes32\"},{\"indexed\":false,\"name\":\"secondArg\",\"type\":\"bytes32\"},{\"indexed\":false,\"name\":\"thirdArg\",\"type\":\"bytes32\"},{\"indexed\":false,\"name\":\"confirmers\",\"type\":\"address[]\"}],\"name\":\"RevokeRequest\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"id\",\"type\":\"bytes32\"},{\"indexed\":true,\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"functionId\",\"type\":\"uint8\"},{\"indexed\":false,\"name\":\"firstArg\",\"type\":\"bytes32\"},{\"indexed\":false,\"name\":\"secondArg\",\"type\":\"bytes32\"},{\"indexed\":false,\"name\":\"thirdArg\",\"type\":\"bytes32\"}],\"name\":\"CancelRequest\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"id\",\"type\":\"bytes32\"},{\"indexed\":true,\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"functionId\",\"type\":\"uint8\"},{\"indexed\":false,\"name\":\"firstArg\",\"type\":\"bytes32\"},{\"indexed\":false,\"name\":\"secondArg\",\"type\":\"bytes32\"},{\"indexed\":false,\"name\":\"thirdArg\",\"type\":\"bytes32\"}],\"name\":\"ExecuteRequestSuccess\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"id\",\"type\":\"bytes32\"},{\"indexed\":true,\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"functionId\",\"type\":\"uint8\"},{\"indexed\":false,\"name\":\"firstArg\",\"type\":\"bytes32\"},{\"indexed\":false,\"name\":\"secondArg\",\"type\":\"bytes32\"},{\"indexed\":false,\"name\":\"thirdArg\",\"type\":\"bytes32\"}],\"name\":\"ExecuteRequestFailure\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"ActivateAddressBook\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"prevPocContractAddress\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"prevVersion\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"curPocContractAddress\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"curVersion\",\"type\":\"uint256\"}],\"name\":\"UpdatePocContract\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"prevKirContractAddress\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"prevVersion\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"curKirContractAddress\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"curVersion\",\"type\":\"uint256\"}],\"name\":\"UpdateKirContract\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"spareContractAddress\",\"type\":\"address\"}],\"name\":\"UpdateSpareContract\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"cnNodeId\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"cnStakingContractAddress\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"cnRewardAddress\",\"type\":\"address\"}],\"name\":\"RegisterCnStakingContract\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"cnNodeId\",\"type\":\"address\"}],\"name\":\"UnregisterCnStakingContract\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"cnNodeId\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"prevRewardAddress\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"curRewardAddress\",\"type\":\"address\"}],\"name\":\"ReviseRewardAddress\",\"type\":\"event\"}]",
    35  	Sigs: map[string]string{
    36  		"76674c54": "CN_NODE_ID_TYPE()",
    37  		"32b91e85": "CN_REWARD_ADDRESS_TYPE()",
    38  		"de5bbfbc": "CN_STAKING_ADDRESS_TYPE()",
    39  		"4b6a94cc": "CONTRACT_TYPE()",
    40  		"41b6945c": "KIR_CONTRACT_TYPE()",
    41  		"58d65880": "MAX_ADMIN()",
    42  		"778f39cb": "MAX_PENDING_REQUEST()",
    43  		"8e6f6b77": "ONE_WEEK()",
    44  		"b50060e4": "POC_CONTRACT_TYPE()",
    45  		"934d1fa4": "TWO_WEEKS()",
    46  		"ffa1ad74": "VERSION()",
    47  		"cec92466": "activateAddressBook()",
    48  		"70480275": "addAdmin(address)",
    49  		"4f97638f": "clearRequest()",
    50  		"7894c366": "constructContract(address[],uint256)",
    51  		"27e1f7df": "deleteAdmin(address)",
    52  		"715b208b": "getAllAddress()",
    53  		"160370b8": "getAllAddressInfo()",
    54  		"15575d5a": "getCnInfo(address)",
    55  		"da34a0bd": "getPendingRequestList()",
    56  		"82d67e5a": "getRequestInfo(bytes32)",
    57  		"407091eb": "getRequestInfoByArgs(uint8,bytes32,bytes32,bytes32)",
    58  		"1865c57d": "getState()",
    59  		"4a8c1fb4": "isActivated()",
    60  		"50a5bb69": "isConstructed()",
    61  		"b858dd95": "kirContractAddress()",
    62  		"d267eda5": "pocContractAddress()",
    63  		"298b3c61": "registerCnStakingContract(address,address,address)",
    64  		"b7563930": "requirement()",
    65  		"832a2aad": "reviseRewardAddress(address)",
    66  		"3f0628b1": "revokeRequest(uint8,bytes32,bytes32,bytes32)",
    67  		"6abd623d": "spareContractAddress()",
    68  		"feb15ca1": "submitActivateAddressBook()",
    69  		"863f5c0a": "submitAddAdmin(address)",
    70  		"87cd9feb": "submitClearRequest()",
    71  		"791b5123": "submitDeleteAdmin(address)",
    72  		"cc11efc0": "submitRegisterCnStakingContract(address,address,address)",
    73  		"b5067706": "submitUnregisterCnStakingContract(address)",
    74  		"9258d768": "submitUpdateKirContract(address,uint256)",
    75  		"21ac4ad4": "submitUpdatePocContract(address,uint256)",
    76  		"e748357b": "submitUpdateRequirement(uint256)",
    77  		"394a144a": "submitUpdateSpareContract(address)",
    78  		"579740db": "unregisterCnStakingContract(address)",
    79  		"4c5d435c": "updateKirContract(address,uint256)",
    80  		"c7e9de75": "updatePocContract(address,uint256)",
    81  		"c47afb3a": "updateRequirement(uint256)",
    82  		"afaaf330": "updateSpareContract(address)",
    83  	},
    84  	Bin: "0x608060405234801561001057600080fd5b50615c4580620000216000396000f3006080604052600436106102215763ffffffff60e060020a60003504166315575d5a8114610226578063160370b8146102725780631865c57d1461037c57806321ac4ad4146103ec57806327e1f7df14610412578063298b3c611461043357806332b91e8514610460578063394a144a1461048b5780633f0628b1146104ac578063407091eb146104d057806341b6945c1461056c5780634a8c1fb4146105815780634b6a94cc146105aa5780634c5d435c146106345780634f97638f1461065857806350a5bb691461066d578063579740db1461068257806358d65880146106a35780636abd623d146106ca57806370480275146106fb578063715b208b1461071c57806376674c54146107ca578063778f39cb146107df5780637894c366146107f4578063791b51231461081857806382d67e5a14610839578063832a2aad146108d5578063863f5c0a146108f657806387cd9feb146109175780638e6f6b771461092c5780639258d76814610941578063934d1fa414610965578063afaaf3301461097a578063b50060e41461099b578063b5067706146109b0578063b7563930146109d1578063b858dd95146109e6578063c47afb3a146109fb578063c7e9de7514610a13578063cc11efc014610a37578063cec9246614610a64578063d267eda514610a79578063da34a0bd14610a8e578063de5bbfbc14610af3578063e748357b14610b08578063feb15ca114610b20578063ffa1ad7414610b35575b600080fd5b34801561023257600080fd5b50610247600160a060020a0360043516610b4a565b60408051600160a060020a039485168152928416602084015292168183015290519081900360600190f35b34801561027e57600080fd5b50610287610ca0565b60408051600160a060020a0380851660608301528316608082015260a080825287519082015286519091829160208084019284019160c08501918b8101910280838360005b838110156102e45781810151838201526020016102cc565b50505050905001848103835288818151815260200191508051906020019060200280838360005b8381101561032357818101518382015260200161030b565b50505050905001848103825287818151815260200191508051906020019060200280838360005b8381101561036257818101518382015260200161034a565b505050509050019850505050505050505060405180910390f35b34801561038857600080fd5b50610391610deb565b6040518080602001838152602001828103825284818151815260200191508051906020019060200280838360005b838110156103d75781810151838201526020016103bf565b50505050905001935050505060405180910390f35b3480156103f857600080fd5b50610410600160a060020a0360043516602435610e57565b005b34801561041e57600080fd5b50610410600160a060020a0360043516611038565b34801561043f57600080fd5b50610410600160a060020a03600435811690602435811690604435166112c9565b34801561046c57600080fd5b50610475611720565b6040805160ff9092168252519081900360200190f35b34801561049757600080fd5b50610410600160a060020a0360043516611725565b3480156104b857600080fd5b5061041060ff600435166024356044356064356117f6565b3480156104dc57600080fd5b506104f460ff60043516602435604435606435611e88565b60408051858152908101839052602081016060820183600481111561051557fe5b60ff168152602001828103825285818151815260200191508051906020019060200280838360005b8381101561055557818101518382015260200161053d565b505050509050019550505050505060405180910390f35b34801561057857600080fd5b50610475611f35565b34801561058d57600080fd5b50610596611f3a565b604080519115158252519081900360200190f35b3480156105b657600080fd5b506105bf611f43565b6040805160208082528351818301528351919283929083019185019080838360005b838110156105f95781810151838201526020016105e1565b50505050905090810190601f1680156106265780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561064057600080fd5b50610410600160a060020a0360043516602435611f7a565b34801561066457600080fd5b5061041061216f565b34801561067957600080fd5b50610596612274565b34801561068e57600080fd5b50610410600160a060020a0360043516612282565b3480156106af57600080fd5b506106b8612658565b60408051918252519081900360200190f35b3480156106d657600080fd5b506106df61265d565b60408051600160a060020a039092168252519081900360200190f35b34801561070757600080fd5b50610410600160a060020a036004351661266c565b34801561072857600080fd5b5061073161284b565b604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b8381101561077557818101518382015260200161075d565b50505050905001838103825284818151815260200191508051906020019060200280838360005b838110156107b457818101518382015260200161079c565b5050505090500194505050505060405180910390f35b3480156107d657600080fd5b50610475612b3a565b3480156107eb57600080fd5b506106b8612b3f565b34801561080057600080fd5b50610410602460048035828101929101359035612b44565b34801561082457600080fd5b50610410600160a060020a0360043516612ef1565b34801561084557600080fd5b506108516004356130f6565b6040518088600a81111561086157fe5b60ff16815260208101889052604081018790526060810186905260a08101849052608081019060c00183600481111561089657fe5b60ff168152602001828103825285818151815260200191508051906020019060200280838360008381101561036257818101518382015260200161034a565b3480156108e157600080fd5b50610410600160a060020a03600435166131b4565b34801561090257600080fd5b50610410600160a060020a03600435166133bd565b34801561092357600080fd5b5061041061358b565b34801561093857600080fd5b506106b8613649565b34801561094d57600080fd5b50610410600160a060020a0360043516602435613650565b34801561097157600080fd5b506106b86137e8565b34801561098657600080fd5b50610410600160a060020a03600435166137ef565b3480156109a757600080fd5b5061047561388e565b3480156109bc57600080fd5b50610410600160a060020a0360043516613893565b3480156109dd57600080fd5b506106b8613a49565b3480156109f257600080fd5b506106df613a4f565b348015610a0757600080fd5b50610410600435613a5e565b348015610a1f57600080fd5b50610410600160a060020a0360043516602435613bb1565b348015610a4357600080fd5b50610410600160a060020a0360043581169060243581169060443516613da6565b348015610a7057600080fd5b50610410614265565b348015610a8557600080fd5b506106df6145b5565b348015610a9a57600080fd5b50610aa36145c4565b60408051602080825283518183015283519192839290830191858101910280838360005b83811015610adf578181015183820152602001610ac7565b505050509050019250505060405180910390f35b348015610aff57600080fd5b5061047561461e565b348015610b1457600080fd5b50610410600435614623565b348015610b2c57600080fd5b506104106147a6565b348015610b4157600080fd5b506106b861461e565b600080808084600160a060020a0381161515610b9e576040805160e560020a62461bcd0281526020600482015260106024820152600080516020615bba833981519152604482015290519081900360640190fd5b600160a060020a038616600081815260086020526040902054600980549194509084908110610bc957fe5b600091825260209091200154600160a060020a031614610c21576040805160e560020a62461bcd0281526020600482015260136024820152600080516020615b9a833981519152604482015290519081900360640190fd5b6009805483908110610c2f57fe5b600091825260209091200154600a8054600160a060020a039092169184908110610c5557fe5b600091825260209091200154600b8054600160a060020a039092169185908110610c7b57fe5b6000918252602090912001549196509450600160a060020a0316925050509193909250565b60055460065460098054604080516020808402820181019092528281526060958695869560009586959194600a94600b94600160a060020a03918216949116928791830182828015610d1b57602002820191906000526020600020905b8154600160a060020a03168152600190910190602001808311610cfd575b5050505050945083805480602002602001604051908101604052809291908181526020018280548015610d7757602002820191906000526020600020905b8154600160a060020a03168152600190910190602001808311610d59575b5050505050935082805480602002602001604051908101604052809291908181526020018280548015610dd357602002820191906000526020600020905b8154600160a060020a03168152600190910190602001808311610db5575b50505050509250945094509450945094509091929394565b606060008060015481805480602002602001604051908101604052809291908181526020018280548015610e4857602002820191906000526020600020905b8154600160a060020a03168152600190910190602001808311610e2a575b50505050509150915091509091565b600082600160a060020a0381161515610ea8576040805160e560020a62461bcd0281526020600482015260106024820152600080516020615bba833981519152604482015290519081900360640190fd5b3360008181526002602052604090205460ff161515610eff576040805160e560020a62461bcd0281526020600482015260156024820152600080516020615b7a833981519152604482015290519081900360640190fd5b8385600160a060020a0316630f6100726040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015610f3e57600080fd5b505af1158015610f52573d6000803e3d6000fd5b505050506040513d6020811015610f6857600080fd5b505114610fbf576040805160e560020a62461bcd02815260206004820152601460248201527f496e76616c696420506f432076657273696f6e2e000000000000000000000000604482015290519081900360640190fd5b610fd66006600160a060020a038716866000614af1565b9250610fef6006600160a060020a038716866000614bc4565b610ff8836151f5565b80156110235750600160008481526003602052604090206006015460ff16600481111561102157fe5b145b156110315761103183615210565b5050505050565b600080333014611080576040805160e560020a62461bcd02815260206004820152601b6024820152600080516020615bda833981519152604482015290519081900360640190fd5b600160a060020a038316600090815260026020526040902054839060ff1615156110e2576040805160e560020a62461bcd0281526020600482015260156024820152600080516020615b7a833981519152604482015290519081900360640190fd5b6000546110f690600163ffffffff61591416565b6001546032821115801561110a5750818111155b801561111557508015155b801561112057508115155b1515611164576040805160e560020a62461bcd0281526020600482015260146024820152600080516020615bfa833981519152604482015290519081900360640190fd5b60008054600160a060020a0388168252600260205260408220805460ff19169055955093505b6001850384101561123d5785600160a060020a03166000858154811015156111ae57fe5b600091825260209091200154600160a060020a03161415611232576000805460001987019081106111db57fe5b60009182526020822001548154600160a060020a039091169190869081106111ff57fe5b9060005260206000200160006101000a815481600160a060020a030219169083600160a060020a0316021790555061123d565b60019093019261118a565b60008054600019870190811061124f57fe5b600091825260208220018054600160a060020a03191690555461127990600163ffffffff61591416565b611284600082615a01565b5061128d61216f565b604051600160a060020a038716907f1af6bd3d85a56e7c4a0700756fd2ca3b3b65c266e56c77652c5a346bc256522090600090a2505050505050565b6000333014611310576040805160e560020a62461bcd02815260206004820152601b6024820152600080516020615bda833981519152604482015290519081900360640190fd5b600954600010156113ae57600160a060020a03841660008181526008602052604090205460098054909190811061134357fe5b600091825260209091200154600160a060020a031614156113ae576040805160e560020a62461bcd02815260206004820152601960248201527f434e206e6f646520494420616c72656164792065786973742e00000000000000604482015290519081900360640190fd5b83600160a060020a031683600160a060020a031663139d7fed6040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156113f657600080fd5b505af115801561140a573d6000803e3d6000fd5b505050506040513d602081101561142057600080fd5b5051600160a060020a03161461146e576040805160e560020a62461bcd0281526020600482015260136024820152600080516020615b9a833981519152604482015290519081900360640190fd5b81600160a060020a031683600160a060020a0316638cf57cb96040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156114b657600080fd5b505af11580156114ca573d6000803e3d6000fd5b505050506040513d60208110156114e057600080fd5b5051600160a060020a031614611540576040805160e560020a62461bcd02815260206004820152601a60248201527f496e76616c696420434e2072657761726420616464726573732e000000000000604482015290519081900360640190fd5b82600160a060020a031663392e53cd6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561157e57600080fd5b505af1158015611592573d6000803e3d6000fd5b505050506040513d60208110156115a857600080fd5b50511515600114611603576040805160e560020a62461bcd02815260206004820152601f60248201527f434e20636f6e7472616374206973206e6f7420696e697469616c697a65642e00604482015290519081900360640190fd5b5060098054600160a060020a03808616600081815260086020908152604080832086905560018087019097557f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af86018054600160a060020a03199081168617909155600a8054808a019091557fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a80180548b88169083168117909155600b8054998a0181559094527f0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db99097018054958916959097168517909655855192835282015280840191909152915190917fe01726557c1ea9f7286dca4bba890e96fea9041689db298806306cafa74c9e91919081900360600190a150505050565b600281565b3360008181526002602052604081205490919060ff16151561177f576040805160e560020a62461bcd0281526020600482015260156024820152600080516020615b7a833981519152604482015290519081900360640190fd5b611796600a600160a060020a038516600080614af1565b91506117af600a600160a060020a038516600080614bc4565b6117b8826151f5565b80156117e35750600160008381526003602052604090206006015460ff1660048111156117e157fe5b145b156117f1576117f182615210565b505050565b33600081815260026020526040812054909182918291829160ff161515611855576040805160e560020a62461bcd0281526020600482015260156024820152600080516020615b7a833981519152604482015290519081900360640190fd5b61186189898989614af1565b60008181526003602052604090206005015490955015156118cc576040805160e560020a62461bcd02815260206004820152601060248201527f496e76616c696420726571756573742e00000000000000000000000000000000604482015290519081900360640190fd5b600160008681526003602052604090206006015460ff1660048111156118ee57fe5b14611943576040805160e560020a62461bcd02815260206004820152601f60248201527f4d757374206265206174206e6f742d636f6e6669726d65642073746174652e00604482015290519081900360640190fd5b60008581526003602052604081206004015490945092508391505b82821015611e2657600085815260036020526040902060040180548390811061198357fe5b600091825260209091200154600160a060020a0316331415611e1b57600085815260036020526040902060050154600194504262093a809091011015611b2f5760008581526003602052604090206005015442621275009091011015611a3e576119ec8561592b565b60008581526003602081905260408220805460ff19168155600181018390556002810183905590810182905590611a266004830182615a25565b5060006005820155600601805460ff19169055611a5b565b6000858152600360205260409020600601805460ff191660041790555b600085815260036020526040908190209051339187917f9f3ca7a04988021200a04e0775f46648683bffe7203608269a66c371befe5685918d918d918d918d91600401908086600a811115611aac57fe5b60ff16815260208101869052604081018590526060810184905260a082820381016080830190815284549183018290529160c0019084908015611b1857602002820191906000526020600020905b8154600160a060020a03168152600190910190602001808311611afa575b5050965050505050505060405180910390a3611e16565b60001983018214611bc057600085815260036020526040902060040180546000198501908110611b5b57fe5b6000918252602080832090910154878352600390915260409091206004018054600160a060020a039092169184908110611b9157fe5b9060005260206000200160006101000a815481600160a060020a030219169083600160a060020a031602179055505b600085815260036020526040902060040180546000198501908110611be157fe5b600091825260208083209091018054600160a060020a0319169055868252600390526040902060040154611c1c90600163ffffffff61591416565b6000868152600360205260409020611c379060040182615a01565b5060008581526003602081905260409182902080546001820154600283015493830154945133958b957f9c174b2536ba49e3478ca649dac74d9e9f71f70adf70f193e780eabbfcdc367c9560ff9095169490926004909101908086600a811115611c9d57fe5b60ff16815260208101869052604081018590526060810184905260a082820381016080830190815284549183018290529160c0019084908015611d0957602002820191906000526020600020905b8154600160a060020a03168152600190910190602001808311611ceb575b5050965050505050505060405180910390a36000858152600360205260409020600401541515611e1657611d3c8561592b565b60008581526003602081905260408220805460ff19168155600181018390556002810183905590810182905590611d766004830182615a25565b506000600582018190556006909101805460ff19169055858152600360208190526040918290208054600182015460028301549290930154935133948a947fbfda049a0206fd9c90ed4a3170f5bfaad83c323a16835dd68fea92faa247c2cd9460ff9094169390929091908085600a811115611dee57fe5b60ff168152602081019490945250604080840192909252606083015251908190036080019150a35b611e26565b60019091019061195e565b831515611e7d576040805160e560020a62461bcd02815260206004820152601d60248201527f4d73672e73656e64657220686173206e6f74207265717565737465642e000000604482015290519081900360640190fd5b505050505050505050565b600060606000806000611e9d89898989614af1565b600081815260036020908152604091829020600581015460068201546004909201805485518186028101860190965280865295965086959094919360ff90931692859190830182828015611f1a57602002820191906000526020600020905b8154600160a060020a03168152600190910190602001808311611efc575b50505050509250945094509450945050945094509450949050565b600481565b600c5460ff1681565b60408051808201909152600b81527f41646472657373426f6f6b000000000000000000000000000000000000000000602082015281565b600080333014611fc2576040805160e560020a62461bcd02815260206004820152601b6024820152600080516020615bda833981519152604482015290519081900360640190fd5b8284600160a060020a031663444263466040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561200157600080fd5b505af1158015612015573d6000803e3d6000fd5b505050506040513d602081101561202b57600080fd5b505114612082576040805160e560020a62461bcd02815260206004820152601460248201527f496e76616c6964204b49522076657273696f6e2e000000000000000000000000604482015290519081900360640190fd5b505060068054600160a060020a03848116600160a060020a031983161790925516600081156121185781600160a060020a031663444263466040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156120e957600080fd5b505af11580156120fd573d6000803e3d6000fd5b505050506040513d602081101561211357600080fd5b505190505b60408051600160a060020a038085168252602082018490528616818301526060810185905290517ffdccdf242038c2d09605009fbb95e03f75cdbd106d0a9e52a1670be9553c88489181900360800190a150505050565b6000803330146121b7576040805160e560020a62461bcd02815260206004820152601b6024820152600080516020615bda833981519152604482015290519081900360640190fd5b505060045460005b8181101561223b57600360006004838154811015156121da57fe5b600091825260208083209091015483528201929092526040018120805460ff19168155600181018290556002810182905560038101829055906122206004830182615a25565b5060006005820155600601805460ff191690556001016121bf565b61224760046000615a25565b6040517f907527d30089abd16e30f06ddbbbc18480505176262f19bc16c1fbf9262f9c6b90600090a15050565b600c54610100900460ff1681565b60003330146122c9576040805160e560020a62461bcd02815260206004820152601b6024820152600080516020615bda833981519152604482015290519081900360640190fd5b50600160a060020a03811660008181526008602052604090205460098054919291839081106122f457fe5b600091825260209091200154600160a060020a03161461234c576040805160e560020a62461bcd0281526020600482015260136024820152600080516020615b9a833981519152604482015290519081900360640190fd5b6009546001106123a6576040805160e560020a62461bcd02815260206004820152601b60248201527f434e2073686f756c64206265206d6f7265207468616e206f6e652e0000000000604482015290519081900360640190fd5b6009546000190181101561251e576009805460001981019081106123c657fe5b60009182526020909120015460098054600160a060020a0390921691839081106123ec57fe5b60009182526020909120018054600160a060020a031916600160a060020a0392909216919091179055600954600a805490916000190190811061242b57fe5b600091825260209091200154600a8054600160a060020a03909216918390811061245157fe5b60009182526020909120018054600160a060020a031916600160a060020a0392909216919091179055600954600b805490916000190190811061249057fe5b600091825260209091200154600b8054600160a060020a0390921691839081106124b657fe5b600091825260208220018054600160a060020a031916600160a060020a039390931692909217909155600980548392600892909160001981019081106124f857fe5b6000918252602080832090910154600160a060020a031683528201929092526040019020555b600160a060020a03821660009081526008602052604081205560098054600019810190811061254957fe5b60009182526020909120018054600160a060020a031916905560095461257690600163ffffffff61591416565b612581600982615a01565b50600a8054600019810190811061259457fe5b60009182526020909120018054600160a060020a0319169055600a546125c190600163ffffffff61591416565b6125cc600a82615a01565b50600b805460001981019081106125df57fe5b60009182526020909120018054600160a060020a0319169055600b5461260c90600163ffffffff61591416565b612617600b82615a01565b5060408051600160a060020a038416815290517fa30079721e55931e89e7cdb421712ad0fcc817e7cac8fe954aa7ed0d46b9c42d9181900360200190a15050565b603281565b600754600160a060020a031681565b3330146126b1576040805160e560020a62461bcd02815260206004820152601b6024820152600080516020615bda833981519152604482015290519081900360640190fd5b600160a060020a038116600090815260026020526040902054819060ff1615612724576040805160e560020a62461bcd02815260206004820152601460248201527f41646d696e20616c72656164792065786974732e000000000000000000000000604482015290519081900360640190fd5b60005461273890600163ffffffff6159e816565b6001546032821115801561274c5750818111155b801561275757508015155b801561276257508115155b15156127a6576040805160e560020a62461bcd0281526020600482015260146024820152600080516020615bfa833981519152604482015290519081900360640190fd5b600160a060020a0384166000818152600260205260408120805460ff19166001908117909155815490810182559080527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563018054600160a060020a031916909117905561281161216f565b604051600160a060020a038516907fad6de4452a631e641cb59902236607946ce9272b9b981f2f80e8d129cb9084ba90600090a250505050565b600c54606090819081908190600090819060ff161515612884576040805160008082526020820190815281830190925294509250612b2f565b6009805490506003026002016040519080825280602002602001820160405280156128b9578160200160208202803883390190505b5093506009805490506003026002016040519080825280602002602001820160405280156128f1578160200160208202803883390190505b506009549093509150600090505b81811015612a71576000848260030281518110151561291a57fe5b60ff909216602092830290910190910152600980548290811061293957fe5b6000918252602090912001548351600160a060020a039091169084906003840290811061296257fe5b600160a060020a039092166020928302909101909101528351600190859060038402830190811061298f57fe5b60ff909216602092830290910190910152600a8054829081106129ae57fe5b6000918252602090912001548351600160a060020a03909116908490600384026001019081106129da57fe5b600160a060020a0390921660209283029091019091015283516002908590600384028301908110612a0757fe5b60ff909216602092830290910190910152600b805482908110612a2657fe5b6000918252602090912001548351600160a060020a0390911690849060026003850201908110612a5257fe5b600160a060020a039092166020928302909101909101526001016128ff565b60038483600302815181101515612a8457fe5b60ff9092166020928302909101909101526005548351600160a060020a0390911690849060038502908110612ab557fe5b600160a060020a039092166020928302909101909101528351600490859060016003860201908110612ae357fe5b60ff9092166020928302909101909101526006548351600160a060020a0390911690849060038502600101908110612b1757fe5b600160a060020a039092166020928302909101909101525b509194909350915050565b600081565b606481565b600080838360328211801590612b5a5750818111155b8015612b6557508015155b8015612b7057508115155b1515612bb4576040805160e560020a62461bcd0281526020600482015260146024820152600080516020615bfa833981519152604482015290519081900360640190fd5b7388bb3838aa0a140acb73eeb3d4b25a8d3afd58d43314612c1f576040805160e560020a62461bcd02815260206004820152600f60248201527f496e76616c69642073656e6465722e0000000000000000000000000000000000604482015290519081900360640190fd5b600c54610100900460ff1615612c7f576040805160e560020a62461bcd02815260206004820152601460248201527f416c726561647920636f6e73747275637465642e000000000000000000000000604482015290519081900360640190fd5b600c805460ff19169055859350600092505b83831015612da65760026000888886818110612ca957fe5b60209081029290920135600160a060020a03168352508101919091526040016000205460ff16158015612d015750868684818110612ce357fe5b90506020020135600160a060020a0316600160a060020a0316600014155b1515612d57576040805160e560020a62461bcd02815260206004820152601e60248201527f41646472657373206973206e756c6c206f72206e6f7420756e697175652e0000604482015290519081900360640190fd5b600160026000898987818110612d6957fe5b60209081029290920135600160a060020a0316835250810191909152604001600020805460ff191691151591909117905560019290920191612c91565b612db260008888615a46565b506001859055600c805461ff001916610100179055604080518082018252600b81527f41646472657373426f6f6b00000000000000000000000000000000000000000060208083019182528351938401899052606080855283519085015282517fc5caa942b8f8ea45a2e094d941dbba0ef9c0307f34c81ce78e71bfb128d6b25a946000938b939192839283019160808401918083838a5b83811015612e62578181015183820152602001612e4a565b50505050905090810190601f168015612e8f5780820380516001836020036101000a031916815260200191505b508381038252858181548152602001915080548015612ed757602002820191906000526020600020905b8154600160a060020a03168152600190910190602001808311612eb9575b50509550505050505060405180910390a150505050505050565b600160a060020a038116600090815260026020526040812054829060ff161515612f53576040805160e560020a62461bcd0281526020600482015260156024820152600080516020615b7a833981519152604482015290519081900360640190fd5b3360008181526002602052604090205460ff161515612faa576040805160e560020a62461bcd0281526020600482015260156024820152600080516020615b7a833981519152604482015290519081900360640190fd5b83600160a060020a0381161515612ff9576040805160e560020a62461bcd0281526020600482015260106024820152600080516020615bba833981519152604482015290519081900360640190fd5b60005461300d90600163ffffffff61591416565b600154603282111580156130215750818111155b801561302c57508015155b801561303757508115155b151561307b576040805160e560020a62461bcd0281526020600482015260146024820152600080516020615bfa833981519152604482015290519081900360640190fd5b6130926002600160a060020a038916600080614af1565b95506130ab6002600160a060020a038916600080614bc4565b6130b4866151f5565b80156130df5750600160008781526003602052604090206006015460ff1660048111156130dd57fe5b145b156130ed576130ed86615210565b50505050505050565b60008181526003602081815260408084208054600182015460028301549583015460058401546006850154600490950180548751818a0281018a019098528088528a998a998a996060998b998a9960ff91821699909895979096909594919092169291859183018282801561319457602002820191906000526020600020905b8154600160a060020a03168152600190910190602001808311613176575b505050505092509650965096509650965096509650919395979092949650565b60008080808085600160a060020a0381161515613209576040805160e560020a62461bcd0281526020600482015260106024820152600080516020615bba833981519152604482015290519081900360640190fd5b600a546000965086955093508492505b8383101561326457600a80543391908590811061323257fe5b600091825260209091200154600160a060020a031614156132595760019550829450613264565b600190920191613219565b8515156132bb576040805160e560020a62461bcd02815260206004820152601e60248201527f4d73672e73656e646572206973206e6f7420434e20636f6e74726163742e0000604482015290519081900360640190fd5b600b8054869081106132c957fe5b600091825260209091200154600b8054600160a060020a0390921693508891879081106132f257fe5b9060005260206000200160006101000a815481600160a060020a030219169083600160a060020a031602179055507faa5c92ffd739bc0b8b117b671e7d713917ddb1440b436263a3ea106d70c6f05f60098681548110151561335057fe5b600091825260209091200154600b8054600160a060020a03909216918591908990811061337957fe5b6000918252602091829020015460408051600160a060020a03958616815293851692840192909252929092168183015290519081900360600190a150505050505050565b3360008181526002602052604081205490919060ff161515613417576040805160e560020a62461bcd0281526020600482015260156024820152600080516020615b7a833981519152604482015290519081900360640190fd5b600160a060020a038316600090815260026020526040902054839060ff161561348a576040805160e560020a62461bcd02815260206004820152601460248201527f41646d696e20616c72656164792065786974732e000000000000000000000000604482015290519081900360640190fd5b83600160a060020a03811615156134d9576040805160e560020a62461bcd0281526020600482015260106024820152600080516020615bba833981519152604482015290519081900360640190fd5b6000546134ed90600163ffffffff6159e816565b600154603282111580156135015750818111155b801561350c57508015155b801561351757508115155b151561355b576040805160e560020a62461bcd0281526020600482015260146024820152600080516020615bfa833981519152604482015290519081900360640190fd5b6135726001600160a060020a038916600080614af1565b95506130ab6001600160a060020a038916600080614bc4565b3360008181526002602052604081205490919060ff1615156135e5576040805160e560020a62461bcd0281526020600482015260156024820152600080516020615b7a833981519152604482015290519081900360640190fd5b6135f3600460008080614af1565b9150613603600460008080614bc4565b61360c826151f5565b80156136375750600160008381526003602052604090206006015460ff16600481111561363557fe5b145b156136455761364582615210565b5050565b62093a8081565b600082600160a060020a03811615156136a1576040805160e560020a62461bcd0281526020600482015260106024820152600080516020615bba833981519152604482015290519081900360640190fd5b3360008181526002602052604090205460ff1615156136f8576040805160e560020a62461bcd0281526020600482015260156024820152600080516020615b7a833981519152604482015290519081900360640190fd5b8385600160a060020a031663444263466040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561373757600080fd5b505af115801561374b573d6000803e3d6000fd5b505050506040513d602081101561376157600080fd5b5051146137b8576040805160e560020a62461bcd02815260206004820152601460248201527f496e76616c6964204b49522076657273696f6e2e000000000000000000000000604482015290519081900360640190fd5b6137cf6007600160a060020a038716866000614af1565b9250610fef6007600160a060020a038716866000614bc4565b6212750081565b333014613834576040805160e560020a62461bcd02815260206004820152601b6024820152600080516020615bda833981519152604482015290519081900360640190fd5b60078054600160a060020a031916600160a060020a03838116919091179182905560408051929091168252517f508aacd44cfe23a34a8c2643ab08c3410cf5505632cfce58dcfa0efa2fd2ff37916020908290030190a150565b600381565b60008082600160a060020a03811615156138e5576040805160e560020a62461bcd0281526020600482015260106024820152600080516020615bba833981519152604482015290519081900360640190fd5b3360008181526002602052604090205460ff16151561393c576040805160e560020a62461bcd0281526020600482015260156024820152600080516020615b7a833981519152604482015290519081900360640190fd5b600160a060020a03851660008181526008602052604090205460098054919650908690811061396757fe5b600091825260209091200154600160a060020a0316146139bf576040805160e560020a62461bcd0281526020600482015260136024820152600080516020615b9a833981519152604482015290519081900360640190fd5b600954600110613a19576040805160e560020a62461bcd02815260206004820152601b60248201527f434e2073686f756c64206265206d6f7265207468616e206f6e652e0000000000604482015290519081900360640190fd5b613a306009600160a060020a038716600080614af1565b9250610fef6009600160a060020a038716600080614bc4565b60015481565b600654600160a060020a031681565b333014613aa3576040805160e560020a62461bcd02815260206004820152601b6024820152600080516020615bda833981519152604482015290519081900360640190fd5b6000548160328211801590613ab85750818111155b8015613ac357508015155b8015613ace57508115155b1515613b12576040805160e560020a62461bcd0281526020600482015260146024820152600080516020615bfa833981519152604482015290519081900360640190fd5b600154831415613b6c576040805160e560020a62461bcd02815260206004820152601160248201527f53616d6520726571756972656d656e742e000000000000000000000000000000604482015290519081900360640190fd5b6001839055613b7961216f565b6040805184815290517f8951393946c27b45080aad111464c16c70f3d5e7d24b114a627334441961bf5f9181900360200190a1505050565b600080333014613bf9576040805160e560020a62461bcd02815260206004820152601b6024820152600080516020615bda833981519152604482015290519081900360640190fd5b8284600160a060020a0316630f6100726040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015613c3857600080fd5b505af1158015613c4c573d6000803e3d6000fd5b505050506040513d6020811015613c6257600080fd5b505114613cb9576040805160e560020a62461bcd02815260206004820152601460248201527f496e76616c696420506f432076657273696f6e2e000000000000000000000000604482015290519081900360640190fd5b505060058054600160a060020a03848116600160a060020a03198316179092551660008115613d4f5781600160a060020a0316630f6100726040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015613d2057600080fd5b505af1158015613d34573d6000803e3d6000fd5b505050506040513d6020811015613d4a57600080fd5b505190505b60408051600160a060020a038085168252602082018490528616818301526060810185905290517fd531725ac89042f190fd73adfdeff435e07500f1a92b4b87743f1bcf91acb3a79181900360800190a150505050565b600083600160a060020a0381161515613df7576040805160e560020a62461bcd0281526020600482015260106024820152600080516020615bba833981519152604482015290519081900360640190fd5b83600160a060020a0381161515613e46576040805160e560020a62461bcd0281526020600482015260106024820152600080516020615bba833981519152604482015290519081900360640190fd5b83600160a060020a0381161515613e95576040805160e560020a62461bcd0281526020600482015260106024820152600080516020615bba833981519152604482015290519081900360640190fd5b3360008181526002602052604090205460ff161515613eec576040805160e560020a62461bcd0281526020600482015260156024820152600080516020615b7a833981519152604482015290519081900360640190fd5b60095460001015613f8a57600160a060020a038816600081815260086020526040902054600980549091908110613f1f57fe5b600091825260209091200154600160a060020a03161415613f8a576040805160e560020a62461bcd02815260206004820152601960248201527f434e206e6f646520494420616c72656164792065786973742e00000000000000604482015290519081900360640190fd5b87600160a060020a031687600160a060020a031663139d7fed6040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015613fd257600080fd5b505af1158015613fe6573d6000803e3d6000fd5b505050506040513d6020811015613ffc57600080fd5b5051600160a060020a03161461404a576040805160e560020a62461bcd0281526020600482015260136024820152600080516020615b9a833981519152604482015290519081900360640190fd5b85600160a060020a031687600160a060020a0316638cf57cb96040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561409257600080fd5b505af11580156140a6573d6000803e3d6000fd5b505050506040513d60208110156140bc57600080fd5b5051600160a060020a03161461411c576040805160e560020a62461bcd02815260206004820152601a60248201527f496e76616c696420434e2072657761726420616464726573732e000000000000604482015290519081900360640190fd5b86600160a060020a031663392e53cd6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561415a57600080fd5b505af115801561416e573d6000803e3d6000fd5b505050506040513d602081101561418457600080fd5b505115156001146141df576040805160e560020a62461bcd02815260206004820152601f60248201527f434e20636f6e7472616374206973206e6f7420696e697469616c697a65642e00604482015290519081900360640190fd5b6141fb6008600160a060020a03808b16908a8116908a16614af1565b94506142196008600160a060020a03808b16908a8116908a16614bc4565b614222856151f5565b801561424d5750600160008681526003602052604090206006015460ff16600481111561424b57fe5b145b1561425b5761425b85615210565b5050505050505050565b3330146142aa576040805160e560020a62461bcd02815260206004820152601b6024820152600080516020615bda833981519152604482015290519081900360640190fd5b600c5460ff1615614305576040805160e560020a62461bcd02815260206004820152601260248201527f416c7265616479206163746976617465642e0000000000000000000000000000604482015290519081900360640190fd5b600054151561435e576040805160e560020a62461bcd02815260206004820152601360248201527f4e6f2061646d696e206973206c69737465642e00000000000000000000000000604482015290519081900360640190fd5b600554600160a060020a031615156143c0576040805160e560020a62461bcd02815260206004820152601f60248201527f506f4320636f6e7472616374206973206e6f7420726567697374657265642e00604482015290519081900360640190fd5b600654600160a060020a03161515614422576040805160e560020a62461bcd02815260206004820152601f60248201527f4b495220636f6e7472616374206973206e6f7420726567697374657265642e00604482015290519081900360640190fd5b600954151561447b576040805160e560020a62461bcd02815260206004820152601560248201527f4e6f206e6f6465204944206973206c69737465642e0000000000000000000000604482015290519081900360640190fd5b600a54600954146144fc576040805160e560020a62461bcd02815260206004820152603660248201527f496e76616c6964206c656e677468206265747765656e206e6f6465204944732060448201527f616e64207374616b696e6720636f6e7472616374732e00000000000000000000606482015290519081900360840190fd5b600b54600a541461457d576040805160e560020a62461bcd02815260206004820152603e60248201527f496e76616c6964206c656e677468206265747765656e207374616b696e67206360448201527f6f6e74726163747320616e6420726577617264206164647265737365732e0000606482015290519081900360840190fd5b600c805460ff191660011790556040517f29d89931226d613bf878a0be8c635eaf2049121c8c68d5ad80a78f0ac9005d4b90600090a1565b600554600160a060020a031681565b6060600480548060200260200160405190810160405280929190818152602001828054801561461357602002820191906000526020600020905b815481526001909101906020018083116145fe575b505050505090505b90565b600181565b3360008181526002602052604081205490919060ff16151561467d576040805160e560020a62461bcd0281526020600482015260156024820152600080516020615b7a833981519152604482015290519081900360640190fd5b60005483603282118015906146925750818111155b801561469d57508015155b80156146a857508115155b15156146ec576040805160e560020a62461bcd0281526020600482015260146024820152600080516020615bfa833981519152604482015290519081900360640190fd5b600154851415614746576040805160e560020a62461bcd02815260206004820152601160248201527f53616d6520726571756972656d656e742e000000000000000000000000000000604482015290519081900360640190fd5b614754600386600080614af1565b9350614764600386600080614bc4565b61476d846151f5565b80156147985750600160008581526003602052604090206006015460ff16600481111561479657fe5b145b156110315761103184615210565b3360008181526002602052604081205490919060ff161515614800576040805160e560020a62461bcd0281526020600482015260156024820152600080516020615b7a833981519152604482015290519081900360640190fd5b600c5460ff161561485b576040805160e560020a62461bcd02815260206004820152601260248201527f416c7265616479206163746976617465642e0000000000000000000000000000604482015290519081900360640190fd5b60005415156148b4576040805160e560020a62461bcd02815260206004820152601360248201527f4e6f2061646d696e206973206c69737465642e00000000000000000000000000604482015290519081900360640190fd5b600554600160a060020a03161515614916576040805160e560020a62461bcd02815260206004820152601f60248201527f506f4320636f6e7472616374206973206e6f7420726567697374657265642e00604482015290519081900360640190fd5b600654600160a060020a03161515614978576040805160e560020a62461bcd02815260206004820152601f60248201527f4b495220636f6e7472616374206973206e6f7420726567697374657265642e00604482015290519081900360640190fd5b60095415156149d1576040805160e560020a62461bcd02815260206004820152601560248201527f4e6f206e6f6465204944206973206c69737465642e0000000000000000000000604482015290519081900360640190fd5b600a5460095414614a52576040805160e560020a62461bcd02815260206004820152603660248201527f496e76616c6964206c656e677468206265747765656e206e6f6465204944732060448201527f616e64207374616b696e6720636f6e7472616374732e00000000000000000000606482015290519081900360840190fd5b600b54600a5414614ad3576040805160e560020a62461bcd02815260206004820152603e60248201527f496e76616c6964206c656e677468206265747765656e207374616b696e67206360448201527f6f6e74726163747320616e6420726577617264206164647265737365732e0000606482015290519081900360840190fd5b614ae1600560008080614af1565b9150613603600560008080614bc4565b6000848484846040516020018085600a811115614b0a57fe5b60ff167f010000000000000000000000000000000000000000000000000000000000000002815260018101949094525060218301919091526041808301919091526040805180840390920182526061909201918290528051909250819060208401908083835b60208310614b8f5780518252601f199092019160209182019101614b70565b5181516020939093036101000a6000190180199091169216919091179052604051920182900390912098975050505050505050565b6000806000614bd587878787614af1565b60008181526003602052604090206005015490935015614f5e5760008381526003602052604090206005015442621275009091011015614c6a57614c188361592b565b60008381526003602081905260408220805460ff19168155600181018390556002810183905590810182905590614c526004830182615a25565b5060006005820155600601805460ff19169055614f5e565b6000838152600360205260409020600501544262093a809091011015614da257600460008481526003602052604090206006015460ff166004811115614cac57fe5b14614cce576000838152600360205260409020600601805460ff191660041790555b600083815260036020526040908190209051339185917f9f3ca7a04988021200a04e0775f46648683bffe7203608269a66c371befe5685918b918b918b918b91600401908086600a811115614d1f57fe5b60ff16815260208101869052604081018590526060810184905260a082820381016080830190815284549183018290529160c0019084908015614d8b57602002820191906000526020600020905b8154600160a060020a03168152600190910190602001808311614d6d575b5050965050505050505060405180910390a3614f5e565b6000838152600360205260409020600501544210614f5e575050600081815260036020526040812060040154905b81811015614e69576000838152600360205260409020600401805482908110614df557fe5b600091825260209091200154600160a060020a0316331415614e61576040805160e560020a62461bcd02815260206004820152601d60248201527f4d73672e73656e64657220616c7265616479207265717565737465642e000000604482015290519081900360640190fd5b600101614dd0565b600083815260036020908152604080832060040180546001810182558185529284209092018054600160a060020a03191633908117909155928690525185917fb7b03afe355fcf2b1d00e020db2b1a902b9ee1b1c1d995626c1e18c957340ea8918b918b918b918b918086600a811115614edf57fe5b60ff16815260208101869052604081018590526060810184905260a082820381016080830190815284549183018290529160c0019084908015614f4b57602002820191906000526020600020905b8154600160a060020a03168152600190910190602001808311614f2d575b5050965050505050505060405180910390a35b60008381526003602052604090206005015415156130ed57600454606411614fe357600487600a811115614f8e57fe5b14614fe3576040805160e560020a62461bcd02815260206004820152601560248201527f52657175657374206c6973742069732066756c6c2e0000000000000000000000604482015290519081900360640190fd5b60e06040519081016040528088600a811115614ffb57fe5b81526020808201899052604080830189905260608301889052805160008082529281019091526080909201919050815242602082015260400160019052600084815260036020526040902081518154829060ff1916600183600a81111561505e57fe5b021790555060208281015160018301556040830151600283015560608301516003830155608083015180516150999260048501920190615aa9565b5060a0820151600582015560c082015160068201805460ff191660018360048111156150c157fe5b0217905550505060008381526003602090815260408083206004908101805460018181018355828752948620018054600160a060020a0319163390811790915582549485019092557f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b909301879055928690525185917fb7b03afe355fcf2b1d00e020db2b1a902b9ee1b1c1d995626c1e18c957340ea8918b918b918b918b918086600a81111561516e57fe5b60ff16815260208101869052604081018590526060810184905260a082820381016080830190815284549183018290529160c00190849080156151da57602002820191906000526020600020905b8154600160a060020a031681526001909101906020018083116151bc575b5050965050505050505060405180910390a350505050505050565b60015460009182526003602052604090912060040154101590565b600061521a615afe565b600083815260036020526040808220815160e0810190925280549294509091829060ff16600a81111561524957fe5b600a81111561525457fe5b8152600182015460208083019190915260028301546040808401919091526003840154606084015260048401805482518185028101850190935280835260809094019391929091908301828280156152d557602002820191906000526020600020905b8154600160a060020a031681526001909101906020018083116152b7575b505050918352505060058201546020820152600682015460409091019060ff16600481111561530057fe5b600481111561530b57fe5b905250905060018151600a81111561531f57fe5b1415615389576020810151604080517f70480275000000000000000000000000000000000000000000000000000000008152600160a060020a0390921660048301525130916370480275916024808301926000929190829003018183875af192505050915061579a565b60028151600a81111561539857fe5b1415615402576020810151604080517f27e1f7df000000000000000000000000000000000000000000000000000000008152600160a060020a0390921660048301525130916327e1f7df916024808301926000929190829003018183875af192505050915061579a565b60038151600a81111561541157fe5b1415615473576020810151604080517fc47afb3a000000000000000000000000000000000000000000000000000000008152600481019290925251309163c47afb3a916024808301926000929190829003018183875af192505050915061579a565b60048151600a81111561548257fe5b14156154c55730600160a060020a0316634f97638f6040518163ffffffff1660e060020a0281526004016000604051808303816000875af192505050915061579a565b60058151600a8111156154d457fe5b14156155175730600160a060020a031663cec924666040518163ffffffff1660e060020a0281526004016000604051808303816000875af192505050915061579a565b60068151600a81111561552657fe5b141561559957602081015160408083015181517fc7e9de75000000000000000000000000000000000000000000000000000000008152600160a060020a039093166004840152602483015251309163c7e9de75916044808301926000929190829003018183875af192505050915061579a565b60078151600a8111156155a857fe5b141561561b57602081015160408083015181517f4c5d435c000000000000000000000000000000000000000000000000000000008152600160a060020a0390931660048401526024830152513091634c5d435c916044808301926000929190829003018183875af192505050915061579a565b60088151600a81111561562a57fe5b14156156ad576020810151604080830151606084015182517f298b3c61000000000000000000000000000000000000000000000000000000008152600160a060020a0394851660048201529184166024830152909216604483015251309163298b3c61916064808301926000929190829003018183875af192505050915061579a565b60098151600a8111156156bc57fe5b1415615726576020810151604080517f579740db000000000000000000000000000000000000000000000000000000008152600160a060020a03909216600483015251309163579740db916024808301926000929190829003018183875af192505050915061579a565b600a8151600a81111561573557fe5b141561579a576020810151604080517fafaaf330000000000000000000000000000000000000000000000000000000008152600160a060020a03909216600483015251309163afaaf330916024808301926000929190829003018183875af194505050505b6157a38361592b565b811561585d57600083815260036020526040902060050154156157dd576000838152600360205260409020600601805460ff191660021790555b33600160a060020a031683600019167fc55c9229184beabeee72b6970a96691b4200919e47579cc4b9be50a1bec7ef1183600001518460200151856040015186606001516040518085600a81111561583157fe5b60ff168152602081019490945250604080840192909252606083015251908190036080019150a36117f1565b60008381526003602052604090206005015415615894576000838152600360208190526040909120600601805460ff191690911790555b33600160a060020a031683600019167ff151a3ee41626c2511372320f09f7957af81c8c1cde8cdf3f05a5979626eaaf383600001518460200151856040015186606001516040518085600a8111156158e857fe5b60ff168152602081019490945250604080840192909252606083015251908190036080019150a3505050565b6000808383111561592457600080fd5b5050900390565b60045460005b818110156117f157600480548290811061594757fe5b6000918252602090912001548314156159e0576000198201811461599e5760048054600019840190811061597757fe5b906000526020600020015460048281548110151561599157fe5b6000918252602090912001555b6004805460001984019081106159b057fe5b60009182526020822001556004546159cf90600163ffffffff61591416565b6159da600482615a01565b506117f1565b600101615931565b6000828201838110156159fa57600080fd5b9392505050565b8154818355818111156117f1576000838152602090206117f1918101908301615b3b565b5080546000825590600052602060002090810190615a439190615b3b565b50565b828054828255906000526020600020908101928215615a99579160200282015b82811115615a99578154600160a060020a031916600160a060020a03843516178255602090920191600190910190615a66565b50615aa5929150615b55565b5090565b828054828255906000526020600020908101928215615a99579160200282015b82811115615a995782518254600160a060020a031916600160a060020a03909116178255602090920191600190910190615ac9565b6040805160e081019091528060008152600060208201819052604082018190526060808301829052608083015260a0820181905260c09091015290565b61461b91905b80821115615aa55760008155600101615b41565b61461b91905b80821115615aa5578054600160a060020a0319168155600101615b5b560041646472657373206973206e6f742061646d696e2e0000000000000000000000496e76616c696420434e206e6f64652049442e0000000000000000000000000041646472657373206973206e756c6c2e000000000000000000000000000000004e6f742061206d756c74697369672d7472616e73616374696f6e2e0000000000496e76616c696420726571756972656d656e742e000000000000000000000000a165627a7a7230582088c735fc1a2bd429ebe06bb9aaedb5615a666685aabfa8a6d865bda84e57cda20029",
    85  }
    86  
    87  // AddressBookABI is the input ABI used to generate the binding from.
    88  // Deprecated: Use AddressBookMetaData.ABI instead.
    89  var AddressBookABI = AddressBookMetaData.ABI
    90  
    91  // AddressBookBinRuntime is the compiled bytecode used for adding genesis block without deploying code.
    92  const AddressBookBinRuntime = `6080604052600436106102215763ffffffff60e060020a60003504166315575d5a8114610226578063160370b8146102725780631865c57d1461037c57806321ac4ad4146103ec57806327e1f7df14610412578063298b3c611461043357806332b91e8514610460578063394a144a1461048b5780633f0628b1146104ac578063407091eb146104d057806341b6945c1461056c5780634a8c1fb4146105815780634b6a94cc146105aa5780634c5d435c146106345780634f97638f1461065857806350a5bb691461066d578063579740db1461068257806358d65880146106a35780636abd623d146106ca57806370480275146106fb578063715b208b1461071c57806376674c54146107ca578063778f39cb146107df5780637894c366146107f4578063791b51231461081857806382d67e5a14610839578063832a2aad146108d5578063863f5c0a146108f657806387cd9feb146109175780638e6f6b771461092c5780639258d76814610941578063934d1fa414610965578063afaaf3301461097a578063b50060e41461099b578063b5067706146109b0578063b7563930146109d1578063b858dd95146109e6578063c47afb3a146109fb578063c7e9de7514610a13578063cc11efc014610a37578063cec9246614610a64578063d267eda514610a79578063da34a0bd14610a8e578063de5bbfbc14610af3578063e748357b14610b08578063feb15ca114610b20578063ffa1ad7414610b35575b600080fd5b34801561023257600080fd5b50610247600160a060020a0360043516610b4a565b60408051600160a060020a039485168152928416602084015292168183015290519081900360600190f35b34801561027e57600080fd5b50610287610ca0565b60408051600160a060020a0380851660608301528316608082015260a080825287519082015286519091829160208084019284019160c08501918b8101910280838360005b838110156102e45781810151838201526020016102cc565b50505050905001848103835288818151815260200191508051906020019060200280838360005b8381101561032357818101518382015260200161030b565b50505050905001848103825287818151815260200191508051906020019060200280838360005b8381101561036257818101518382015260200161034a565b505050509050019850505050505050505060405180910390f35b34801561038857600080fd5b50610391610deb565b6040518080602001838152602001828103825284818151815260200191508051906020019060200280838360005b838110156103d75781810151838201526020016103bf565b50505050905001935050505060405180910390f35b3480156103f857600080fd5b50610410600160a060020a0360043516602435610e57565b005b34801561041e57600080fd5b50610410600160a060020a0360043516611038565b34801561043f57600080fd5b50610410600160a060020a03600435811690602435811690604435166112c9565b34801561046c57600080fd5b50610475611720565b6040805160ff9092168252519081900360200190f35b34801561049757600080fd5b50610410600160a060020a0360043516611725565b3480156104b857600080fd5b5061041060ff600435166024356044356064356117f6565b3480156104dc57600080fd5b506104f460ff60043516602435604435606435611e88565b60408051858152908101839052602081016060820183600481111561051557fe5b60ff168152602001828103825285818151815260200191508051906020019060200280838360005b8381101561055557818101518382015260200161053d565b505050509050019550505050505060405180910390f35b34801561057857600080fd5b50610475611f35565b34801561058d57600080fd5b50610596611f3a565b604080519115158252519081900360200190f35b3480156105b657600080fd5b506105bf611f43565b6040805160208082528351818301528351919283929083019185019080838360005b838110156105f95781810151838201526020016105e1565b50505050905090810190601f1680156106265780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561064057600080fd5b50610410600160a060020a0360043516602435611f7a565b34801561066457600080fd5b5061041061216f565b34801561067957600080fd5b50610596612274565b34801561068e57600080fd5b50610410600160a060020a0360043516612282565b3480156106af57600080fd5b506106b8612658565b60408051918252519081900360200190f35b3480156106d657600080fd5b506106df61265d565b60408051600160a060020a039092168252519081900360200190f35b34801561070757600080fd5b50610410600160a060020a036004351661266c565b34801561072857600080fd5b5061073161284b565b604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b8381101561077557818101518382015260200161075d565b50505050905001838103825284818151815260200191508051906020019060200280838360005b838110156107b457818101518382015260200161079c565b5050505090500194505050505060405180910390f35b3480156107d657600080fd5b50610475612b3a565b3480156107eb57600080fd5b506106b8612b3f565b34801561080057600080fd5b50610410602460048035828101929101359035612b44565b34801561082457600080fd5b50610410600160a060020a0360043516612ef1565b34801561084557600080fd5b506108516004356130f6565b6040518088600a81111561086157fe5b60ff16815260208101889052604081018790526060810186905260a08101849052608081019060c00183600481111561089657fe5b60ff168152602001828103825285818151815260200191508051906020019060200280838360008381101561036257818101518382015260200161034a565b3480156108e157600080fd5b50610410600160a060020a03600435166131b4565b34801561090257600080fd5b50610410600160a060020a03600435166133bd565b34801561092357600080fd5b5061041061358b565b34801561093857600080fd5b506106b8613649565b34801561094d57600080fd5b50610410600160a060020a0360043516602435613650565b34801561097157600080fd5b506106b86137e8565b34801561098657600080fd5b50610410600160a060020a03600435166137ef565b3480156109a757600080fd5b5061047561388e565b3480156109bc57600080fd5b50610410600160a060020a0360043516613893565b3480156109dd57600080fd5b506106b8613a49565b3480156109f257600080fd5b506106df613a4f565b348015610a0757600080fd5b50610410600435613a5e565b348015610a1f57600080fd5b50610410600160a060020a0360043516602435613bb1565b348015610a4357600080fd5b50610410600160a060020a0360043581169060243581169060443516613da6565b348015610a7057600080fd5b50610410614265565b348015610a8557600080fd5b506106df6145b5565b348015610a9a57600080fd5b50610aa36145c4565b60408051602080825283518183015283519192839290830191858101910280838360005b83811015610adf578181015183820152602001610ac7565b505050509050019250505060405180910390f35b348015610aff57600080fd5b5061047561461e565b348015610b1457600080fd5b50610410600435614623565b348015610b2c57600080fd5b506104106147a6565b348015610b4157600080fd5b506106b861461e565b600080808084600160a060020a0381161515610b9e576040805160e560020a62461bcd0281526020600482015260106024820152600080516020615bba833981519152604482015290519081900360640190fd5b600160a060020a038616600081815260086020526040902054600980549194509084908110610bc957fe5b600091825260209091200154600160a060020a031614610c21576040805160e560020a62461bcd0281526020600482015260136024820152600080516020615b9a833981519152604482015290519081900360640190fd5b6009805483908110610c2f57fe5b600091825260209091200154600a8054600160a060020a039092169184908110610c5557fe5b600091825260209091200154600b8054600160a060020a039092169185908110610c7b57fe5b6000918252602090912001549196509450600160a060020a0316925050509193909250565b60055460065460098054604080516020808402820181019092528281526060958695869560009586959194600a94600b94600160a060020a03918216949116928791830182828015610d1b57602002820191906000526020600020905b8154600160a060020a03168152600190910190602001808311610cfd575b5050505050945083805480602002602001604051908101604052809291908181526020018280548015610d7757602002820191906000526020600020905b8154600160a060020a03168152600190910190602001808311610d59575b5050505050935082805480602002602001604051908101604052809291908181526020018280548015610dd357602002820191906000526020600020905b8154600160a060020a03168152600190910190602001808311610db5575b50505050509250945094509450945094509091929394565b606060008060015481805480602002602001604051908101604052809291908181526020018280548015610e4857602002820191906000526020600020905b8154600160a060020a03168152600190910190602001808311610e2a575b50505050509150915091509091565b600082600160a060020a0381161515610ea8576040805160e560020a62461bcd0281526020600482015260106024820152600080516020615bba833981519152604482015290519081900360640190fd5b3360008181526002602052604090205460ff161515610eff576040805160e560020a62461bcd0281526020600482015260156024820152600080516020615b7a833981519152604482015290519081900360640190fd5b8385600160a060020a0316630f6100726040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015610f3e57600080fd5b505af1158015610f52573d6000803e3d6000fd5b505050506040513d6020811015610f6857600080fd5b505114610fbf576040805160e560020a62461bcd02815260206004820152601460248201527f496e76616c696420506f432076657273696f6e2e000000000000000000000000604482015290519081900360640190fd5b610fd66006600160a060020a038716866000614af1565b9250610fef6006600160a060020a038716866000614bc4565b610ff8836151f5565b80156110235750600160008481526003602052604090206006015460ff16600481111561102157fe5b145b156110315761103183615210565b5050505050565b600080333014611080576040805160e560020a62461bcd02815260206004820152601b6024820152600080516020615bda833981519152604482015290519081900360640190fd5b600160a060020a038316600090815260026020526040902054839060ff1615156110e2576040805160e560020a62461bcd0281526020600482015260156024820152600080516020615b7a833981519152604482015290519081900360640190fd5b6000546110f690600163ffffffff61591416565b6001546032821115801561110a5750818111155b801561111557508015155b801561112057508115155b1515611164576040805160e560020a62461bcd0281526020600482015260146024820152600080516020615bfa833981519152604482015290519081900360640190fd5b60008054600160a060020a0388168252600260205260408220805460ff19169055955093505b6001850384101561123d5785600160a060020a03166000858154811015156111ae57fe5b600091825260209091200154600160a060020a03161415611232576000805460001987019081106111db57fe5b60009182526020822001548154600160a060020a039091169190869081106111ff57fe5b9060005260206000200160006101000a815481600160a060020a030219169083600160a060020a0316021790555061123d565b60019093019261118a565b60008054600019870190811061124f57fe5b600091825260208220018054600160a060020a03191690555461127990600163ffffffff61591416565b611284600082615a01565b5061128d61216f565b604051600160a060020a038716907f1af6bd3d85a56e7c4a0700756fd2ca3b3b65c266e56c77652c5a346bc256522090600090a2505050505050565b6000333014611310576040805160e560020a62461bcd02815260206004820152601b6024820152600080516020615bda833981519152604482015290519081900360640190fd5b600954600010156113ae57600160a060020a03841660008181526008602052604090205460098054909190811061134357fe5b600091825260209091200154600160a060020a031614156113ae576040805160e560020a62461bcd02815260206004820152601960248201527f434e206e6f646520494420616c72656164792065786973742e00000000000000604482015290519081900360640190fd5b83600160a060020a031683600160a060020a031663139d7fed6040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156113f657600080fd5b505af115801561140a573d6000803e3d6000fd5b505050506040513d602081101561142057600080fd5b5051600160a060020a03161461146e576040805160e560020a62461bcd0281526020600482015260136024820152600080516020615b9a833981519152604482015290519081900360640190fd5b81600160a060020a031683600160a060020a0316638cf57cb96040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156114b657600080fd5b505af11580156114ca573d6000803e3d6000fd5b505050506040513d60208110156114e057600080fd5b5051600160a060020a031614611540576040805160e560020a62461bcd02815260206004820152601a60248201527f496e76616c696420434e2072657761726420616464726573732e000000000000604482015290519081900360640190fd5b82600160a060020a031663392e53cd6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561157e57600080fd5b505af1158015611592573d6000803e3d6000fd5b505050506040513d60208110156115a857600080fd5b50511515600114611603576040805160e560020a62461bcd02815260206004820152601f60248201527f434e20636f6e7472616374206973206e6f7420696e697469616c697a65642e00604482015290519081900360640190fd5b5060098054600160a060020a03808616600081815260086020908152604080832086905560018087019097557f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af86018054600160a060020a03199081168617909155600a8054808a019091557fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a80180548b88169083168117909155600b8054998a0181559094527f0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db99097018054958916959097168517909655855192835282015280840191909152915190917fe01726557c1ea9f7286dca4bba890e96fea9041689db298806306cafa74c9e91919081900360600190a150505050565b600281565b3360008181526002602052604081205490919060ff16151561177f576040805160e560020a62461bcd0281526020600482015260156024820152600080516020615b7a833981519152604482015290519081900360640190fd5b611796600a600160a060020a038516600080614af1565b91506117af600a600160a060020a038516600080614bc4565b6117b8826151f5565b80156117e35750600160008381526003602052604090206006015460ff1660048111156117e157fe5b145b156117f1576117f182615210565b505050565b33600081815260026020526040812054909182918291829160ff161515611855576040805160e560020a62461bcd0281526020600482015260156024820152600080516020615b7a833981519152604482015290519081900360640190fd5b61186189898989614af1565b60008181526003602052604090206005015490955015156118cc576040805160e560020a62461bcd02815260206004820152601060248201527f496e76616c696420726571756573742e00000000000000000000000000000000604482015290519081900360640190fd5b600160008681526003602052604090206006015460ff1660048111156118ee57fe5b14611943576040805160e560020a62461bcd02815260206004820152601f60248201527f4d757374206265206174206e6f742d636f6e6669726d65642073746174652e00604482015290519081900360640190fd5b60008581526003602052604081206004015490945092508391505b82821015611e2657600085815260036020526040902060040180548390811061198357fe5b600091825260209091200154600160a060020a0316331415611e1b57600085815260036020526040902060050154600194504262093a809091011015611b2f5760008581526003602052604090206005015442621275009091011015611a3e576119ec8561592b565b60008581526003602081905260408220805460ff19168155600181018390556002810183905590810182905590611a266004830182615a25565b5060006005820155600601805460ff19169055611a5b565b6000858152600360205260409020600601805460ff191660041790555b600085815260036020526040908190209051339187917f9f3ca7a04988021200a04e0775f46648683bffe7203608269a66c371befe5685918d918d918d918d91600401908086600a811115611aac57fe5b60ff16815260208101869052604081018590526060810184905260a082820381016080830190815284549183018290529160c0019084908015611b1857602002820191906000526020600020905b8154600160a060020a03168152600190910190602001808311611afa575b5050965050505050505060405180910390a3611e16565b60001983018214611bc057600085815260036020526040902060040180546000198501908110611b5b57fe5b6000918252602080832090910154878352600390915260409091206004018054600160a060020a039092169184908110611b9157fe5b9060005260206000200160006101000a815481600160a060020a030219169083600160a060020a031602179055505b600085815260036020526040902060040180546000198501908110611be157fe5b600091825260208083209091018054600160a060020a0319169055868252600390526040902060040154611c1c90600163ffffffff61591416565b6000868152600360205260409020611c379060040182615a01565b5060008581526003602081905260409182902080546001820154600283015493830154945133958b957f9c174b2536ba49e3478ca649dac74d9e9f71f70adf70f193e780eabbfcdc367c9560ff9095169490926004909101908086600a811115611c9d57fe5b60ff16815260208101869052604081018590526060810184905260a082820381016080830190815284549183018290529160c0019084908015611d0957602002820191906000526020600020905b8154600160a060020a03168152600190910190602001808311611ceb575b5050965050505050505060405180910390a36000858152600360205260409020600401541515611e1657611d3c8561592b565b60008581526003602081905260408220805460ff19168155600181018390556002810183905590810182905590611d766004830182615a25565b506000600582018190556006909101805460ff19169055858152600360208190526040918290208054600182015460028301549290930154935133948a947fbfda049a0206fd9c90ed4a3170f5bfaad83c323a16835dd68fea92faa247c2cd9460ff9094169390929091908085600a811115611dee57fe5b60ff168152602081019490945250604080840192909252606083015251908190036080019150a35b611e26565b60019091019061195e565b831515611e7d576040805160e560020a62461bcd02815260206004820152601d60248201527f4d73672e73656e64657220686173206e6f74207265717565737465642e000000604482015290519081900360640190fd5b505050505050505050565b600060606000806000611e9d89898989614af1565b600081815260036020908152604091829020600581015460068201546004909201805485518186028101860190965280865295965086959094919360ff90931692859190830182828015611f1a57602002820191906000526020600020905b8154600160a060020a03168152600190910190602001808311611efc575b50505050509250945094509450945050945094509450949050565b600481565b600c5460ff1681565b60408051808201909152600b81527f41646472657373426f6f6b000000000000000000000000000000000000000000602082015281565b600080333014611fc2576040805160e560020a62461bcd02815260206004820152601b6024820152600080516020615bda833981519152604482015290519081900360640190fd5b8284600160a060020a031663444263466040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561200157600080fd5b505af1158015612015573d6000803e3d6000fd5b505050506040513d602081101561202b57600080fd5b505114612082576040805160e560020a62461bcd02815260206004820152601460248201527f496e76616c6964204b49522076657273696f6e2e000000000000000000000000604482015290519081900360640190fd5b505060068054600160a060020a03848116600160a060020a031983161790925516600081156121185781600160a060020a031663444263466040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156120e957600080fd5b505af11580156120fd573d6000803e3d6000fd5b505050506040513d602081101561211357600080fd5b505190505b60408051600160a060020a038085168252602082018490528616818301526060810185905290517ffdccdf242038c2d09605009fbb95e03f75cdbd106d0a9e52a1670be9553c88489181900360800190a150505050565b6000803330146121b7576040805160e560020a62461bcd02815260206004820152601b6024820152600080516020615bda833981519152604482015290519081900360640190fd5b505060045460005b8181101561223b57600360006004838154811015156121da57fe5b600091825260208083209091015483528201929092526040018120805460ff19168155600181018290556002810182905560038101829055906122206004830182615a25565b5060006005820155600601805460ff191690556001016121bf565b61224760046000615a25565b6040517f907527d30089abd16e30f06ddbbbc18480505176262f19bc16c1fbf9262f9c6b90600090a15050565b600c54610100900460ff1681565b60003330146122c9576040805160e560020a62461bcd02815260206004820152601b6024820152600080516020615bda833981519152604482015290519081900360640190fd5b50600160a060020a03811660008181526008602052604090205460098054919291839081106122f457fe5b600091825260209091200154600160a060020a03161461234c576040805160e560020a62461bcd0281526020600482015260136024820152600080516020615b9a833981519152604482015290519081900360640190fd5b6009546001106123a6576040805160e560020a62461bcd02815260206004820152601b60248201527f434e2073686f756c64206265206d6f7265207468616e206f6e652e0000000000604482015290519081900360640190fd5b6009546000190181101561251e576009805460001981019081106123c657fe5b60009182526020909120015460098054600160a060020a0390921691839081106123ec57fe5b60009182526020909120018054600160a060020a031916600160a060020a0392909216919091179055600954600a805490916000190190811061242b57fe5b600091825260209091200154600a8054600160a060020a03909216918390811061245157fe5b60009182526020909120018054600160a060020a031916600160a060020a0392909216919091179055600954600b805490916000190190811061249057fe5b600091825260209091200154600b8054600160a060020a0390921691839081106124b657fe5b600091825260208220018054600160a060020a031916600160a060020a039390931692909217909155600980548392600892909160001981019081106124f857fe5b6000918252602080832090910154600160a060020a031683528201929092526040019020555b600160a060020a03821660009081526008602052604081205560098054600019810190811061254957fe5b60009182526020909120018054600160a060020a031916905560095461257690600163ffffffff61591416565b612581600982615a01565b50600a8054600019810190811061259457fe5b60009182526020909120018054600160a060020a0319169055600a546125c190600163ffffffff61591416565b6125cc600a82615a01565b50600b805460001981019081106125df57fe5b60009182526020909120018054600160a060020a0319169055600b5461260c90600163ffffffff61591416565b612617600b82615a01565b5060408051600160a060020a038416815290517fa30079721e55931e89e7cdb421712ad0fcc817e7cac8fe954aa7ed0d46b9c42d9181900360200190a15050565b603281565b600754600160a060020a031681565b3330146126b1576040805160e560020a62461bcd02815260206004820152601b6024820152600080516020615bda833981519152604482015290519081900360640190fd5b600160a060020a038116600090815260026020526040902054819060ff1615612724576040805160e560020a62461bcd02815260206004820152601460248201527f41646d696e20616c72656164792065786974732e000000000000000000000000604482015290519081900360640190fd5b60005461273890600163ffffffff6159e816565b6001546032821115801561274c5750818111155b801561275757508015155b801561276257508115155b15156127a6576040805160e560020a62461bcd0281526020600482015260146024820152600080516020615bfa833981519152604482015290519081900360640190fd5b600160a060020a0384166000818152600260205260408120805460ff19166001908117909155815490810182559080527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563018054600160a060020a031916909117905561281161216f565b604051600160a060020a038516907fad6de4452a631e641cb59902236607946ce9272b9b981f2f80e8d129cb9084ba90600090a250505050565b600c54606090819081908190600090819060ff161515612884576040805160008082526020820190815281830190925294509250612b2f565b6009805490506003026002016040519080825280602002602001820160405280156128b9578160200160208202803883390190505b5093506009805490506003026002016040519080825280602002602001820160405280156128f1578160200160208202803883390190505b506009549093509150600090505b81811015612a71576000848260030281518110151561291a57fe5b60ff909216602092830290910190910152600980548290811061293957fe5b6000918252602090912001548351600160a060020a039091169084906003840290811061296257fe5b600160a060020a039092166020928302909101909101528351600190859060038402830190811061298f57fe5b60ff909216602092830290910190910152600a8054829081106129ae57fe5b6000918252602090912001548351600160a060020a03909116908490600384026001019081106129da57fe5b600160a060020a0390921660209283029091019091015283516002908590600384028301908110612a0757fe5b60ff909216602092830290910190910152600b805482908110612a2657fe5b6000918252602090912001548351600160a060020a0390911690849060026003850201908110612a5257fe5b600160a060020a039092166020928302909101909101526001016128ff565b60038483600302815181101515612a8457fe5b60ff9092166020928302909101909101526005548351600160a060020a0390911690849060038502908110612ab557fe5b600160a060020a039092166020928302909101909101528351600490859060016003860201908110612ae357fe5b60ff9092166020928302909101909101526006548351600160a060020a0390911690849060038502600101908110612b1757fe5b600160a060020a039092166020928302909101909101525b509194909350915050565b600081565b606481565b600080838360328211801590612b5a5750818111155b8015612b6557508015155b8015612b7057508115155b1515612bb4576040805160e560020a62461bcd0281526020600482015260146024820152600080516020615bfa833981519152604482015290519081900360640190fd5b7388bb3838aa0a140acb73eeb3d4b25a8d3afd58d43314612c1f576040805160e560020a62461bcd02815260206004820152600f60248201527f496e76616c69642073656e6465722e0000000000000000000000000000000000604482015290519081900360640190fd5b600c54610100900460ff1615612c7f576040805160e560020a62461bcd02815260206004820152601460248201527f416c726561647920636f6e73747275637465642e000000000000000000000000604482015290519081900360640190fd5b600c805460ff19169055859350600092505b83831015612da65760026000888886818110612ca957fe5b60209081029290920135600160a060020a03168352508101919091526040016000205460ff16158015612d015750868684818110612ce357fe5b90506020020135600160a060020a0316600160a060020a0316600014155b1515612d57576040805160e560020a62461bcd02815260206004820152601e60248201527f41646472657373206973206e756c6c206f72206e6f7420756e697175652e0000604482015290519081900360640190fd5b600160026000898987818110612d6957fe5b60209081029290920135600160a060020a0316835250810191909152604001600020805460ff191691151591909117905560019290920191612c91565b612db260008888615a46565b506001859055600c805461ff001916610100179055604080518082018252600b81527f41646472657373426f6f6b00000000000000000000000000000000000000000060208083019182528351938401899052606080855283519085015282517fc5caa942b8f8ea45a2e094d941dbba0ef9c0307f34c81ce78e71bfb128d6b25a946000938b939192839283019160808401918083838a5b83811015612e62578181015183820152602001612e4a565b50505050905090810190601f168015612e8f5780820380516001836020036101000a031916815260200191505b508381038252858181548152602001915080548015612ed757602002820191906000526020600020905b8154600160a060020a03168152600190910190602001808311612eb9575b50509550505050505060405180910390a150505050505050565b600160a060020a038116600090815260026020526040812054829060ff161515612f53576040805160e560020a62461bcd0281526020600482015260156024820152600080516020615b7a833981519152604482015290519081900360640190fd5b3360008181526002602052604090205460ff161515612faa576040805160e560020a62461bcd0281526020600482015260156024820152600080516020615b7a833981519152604482015290519081900360640190fd5b83600160a060020a0381161515612ff9576040805160e560020a62461bcd0281526020600482015260106024820152600080516020615bba833981519152604482015290519081900360640190fd5b60005461300d90600163ffffffff61591416565b600154603282111580156130215750818111155b801561302c57508015155b801561303757508115155b151561307b576040805160e560020a62461bcd0281526020600482015260146024820152600080516020615bfa833981519152604482015290519081900360640190fd5b6130926002600160a060020a038916600080614af1565b95506130ab6002600160a060020a038916600080614bc4565b6130b4866151f5565b80156130df5750600160008781526003602052604090206006015460ff1660048111156130dd57fe5b145b156130ed576130ed86615210565b50505050505050565b60008181526003602081815260408084208054600182015460028301549583015460058401546006850154600490950180548751818a0281018a019098528088528a998a998a996060998b998a9960ff91821699909895979096909594919092169291859183018282801561319457602002820191906000526020600020905b8154600160a060020a03168152600190910190602001808311613176575b505050505092509650965096509650965096509650919395979092949650565b60008080808085600160a060020a0381161515613209576040805160e560020a62461bcd0281526020600482015260106024820152600080516020615bba833981519152604482015290519081900360640190fd5b600a546000965086955093508492505b8383101561326457600a80543391908590811061323257fe5b600091825260209091200154600160a060020a031614156132595760019550829450613264565b600190920191613219565b8515156132bb576040805160e560020a62461bcd02815260206004820152601e60248201527f4d73672e73656e646572206973206e6f7420434e20636f6e74726163742e0000604482015290519081900360640190fd5b600b8054869081106132c957fe5b600091825260209091200154600b8054600160a060020a0390921693508891879081106132f257fe5b9060005260206000200160006101000a815481600160a060020a030219169083600160a060020a031602179055507faa5c92ffd739bc0b8b117b671e7d713917ddb1440b436263a3ea106d70c6f05f60098681548110151561335057fe5b600091825260209091200154600b8054600160a060020a03909216918591908990811061337957fe5b6000918252602091829020015460408051600160a060020a03958616815293851692840192909252929092168183015290519081900360600190a150505050505050565b3360008181526002602052604081205490919060ff161515613417576040805160e560020a62461bcd0281526020600482015260156024820152600080516020615b7a833981519152604482015290519081900360640190fd5b600160a060020a038316600090815260026020526040902054839060ff161561348a576040805160e560020a62461bcd02815260206004820152601460248201527f41646d696e20616c72656164792065786974732e000000000000000000000000604482015290519081900360640190fd5b83600160a060020a03811615156134d9576040805160e560020a62461bcd0281526020600482015260106024820152600080516020615bba833981519152604482015290519081900360640190fd5b6000546134ed90600163ffffffff6159e816565b600154603282111580156135015750818111155b801561350c57508015155b801561351757508115155b151561355b576040805160e560020a62461bcd0281526020600482015260146024820152600080516020615bfa833981519152604482015290519081900360640190fd5b6135726001600160a060020a038916600080614af1565b95506130ab6001600160a060020a038916600080614bc4565b3360008181526002602052604081205490919060ff1615156135e5576040805160e560020a62461bcd0281526020600482015260156024820152600080516020615b7a833981519152604482015290519081900360640190fd5b6135f3600460008080614af1565b9150613603600460008080614bc4565b61360c826151f5565b80156136375750600160008381526003602052604090206006015460ff16600481111561363557fe5b145b156136455761364582615210565b5050565b62093a8081565b600082600160a060020a03811615156136a1576040805160e560020a62461bcd0281526020600482015260106024820152600080516020615bba833981519152604482015290519081900360640190fd5b3360008181526002602052604090205460ff1615156136f8576040805160e560020a62461bcd0281526020600482015260156024820152600080516020615b7a833981519152604482015290519081900360640190fd5b8385600160a060020a031663444263466040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561373757600080fd5b505af115801561374b573d6000803e3d6000fd5b505050506040513d602081101561376157600080fd5b5051146137b8576040805160e560020a62461bcd02815260206004820152601460248201527f496e76616c6964204b49522076657273696f6e2e000000000000000000000000604482015290519081900360640190fd5b6137cf6007600160a060020a038716866000614af1565b9250610fef6007600160a060020a038716866000614bc4565b6212750081565b333014613834576040805160e560020a62461bcd02815260206004820152601b6024820152600080516020615bda833981519152604482015290519081900360640190fd5b60078054600160a060020a031916600160a060020a03838116919091179182905560408051929091168252517f508aacd44cfe23a34a8c2643ab08c3410cf5505632cfce58dcfa0efa2fd2ff37916020908290030190a150565b600381565b60008082600160a060020a03811615156138e5576040805160e560020a62461bcd0281526020600482015260106024820152600080516020615bba833981519152604482015290519081900360640190fd5b3360008181526002602052604090205460ff16151561393c576040805160e560020a62461bcd0281526020600482015260156024820152600080516020615b7a833981519152604482015290519081900360640190fd5b600160a060020a03851660008181526008602052604090205460098054919650908690811061396757fe5b600091825260209091200154600160a060020a0316146139bf576040805160e560020a62461bcd0281526020600482015260136024820152600080516020615b9a833981519152604482015290519081900360640190fd5b600954600110613a19576040805160e560020a62461bcd02815260206004820152601b60248201527f434e2073686f756c64206265206d6f7265207468616e206f6e652e0000000000604482015290519081900360640190fd5b613a306009600160a060020a038716600080614af1565b9250610fef6009600160a060020a038716600080614bc4565b60015481565b600654600160a060020a031681565b333014613aa3576040805160e560020a62461bcd02815260206004820152601b6024820152600080516020615bda833981519152604482015290519081900360640190fd5b6000548160328211801590613ab85750818111155b8015613ac357508015155b8015613ace57508115155b1515613b12576040805160e560020a62461bcd0281526020600482015260146024820152600080516020615bfa833981519152604482015290519081900360640190fd5b600154831415613b6c576040805160e560020a62461bcd02815260206004820152601160248201527f53616d6520726571756972656d656e742e000000000000000000000000000000604482015290519081900360640190fd5b6001839055613b7961216f565b6040805184815290517f8951393946c27b45080aad111464c16c70f3d5e7d24b114a627334441961bf5f9181900360200190a1505050565b600080333014613bf9576040805160e560020a62461bcd02815260206004820152601b6024820152600080516020615bda833981519152604482015290519081900360640190fd5b8284600160a060020a0316630f6100726040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015613c3857600080fd5b505af1158015613c4c573d6000803e3d6000fd5b505050506040513d6020811015613c6257600080fd5b505114613cb9576040805160e560020a62461bcd02815260206004820152601460248201527f496e76616c696420506f432076657273696f6e2e000000000000000000000000604482015290519081900360640190fd5b505060058054600160a060020a03848116600160a060020a03198316179092551660008115613d4f5781600160a060020a0316630f6100726040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015613d2057600080fd5b505af1158015613d34573d6000803e3d6000fd5b505050506040513d6020811015613d4a57600080fd5b505190505b60408051600160a060020a038085168252602082018490528616818301526060810185905290517fd531725ac89042f190fd73adfdeff435e07500f1a92b4b87743f1bcf91acb3a79181900360800190a150505050565b600083600160a060020a0381161515613df7576040805160e560020a62461bcd0281526020600482015260106024820152600080516020615bba833981519152604482015290519081900360640190fd5b83600160a060020a0381161515613e46576040805160e560020a62461bcd0281526020600482015260106024820152600080516020615bba833981519152604482015290519081900360640190fd5b83600160a060020a0381161515613e95576040805160e560020a62461bcd0281526020600482015260106024820152600080516020615bba833981519152604482015290519081900360640190fd5b3360008181526002602052604090205460ff161515613eec576040805160e560020a62461bcd0281526020600482015260156024820152600080516020615b7a833981519152604482015290519081900360640190fd5b60095460001015613f8a57600160a060020a038816600081815260086020526040902054600980549091908110613f1f57fe5b600091825260209091200154600160a060020a03161415613f8a576040805160e560020a62461bcd02815260206004820152601960248201527f434e206e6f646520494420616c72656164792065786973742e00000000000000604482015290519081900360640190fd5b87600160a060020a031687600160a060020a031663139d7fed6040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015613fd257600080fd5b505af1158015613fe6573d6000803e3d6000fd5b505050506040513d6020811015613ffc57600080fd5b5051600160a060020a03161461404a576040805160e560020a62461bcd0281526020600482015260136024820152600080516020615b9a833981519152604482015290519081900360640190fd5b85600160a060020a031687600160a060020a0316638cf57cb96040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561409257600080fd5b505af11580156140a6573d6000803e3d6000fd5b505050506040513d60208110156140bc57600080fd5b5051600160a060020a03161461411c576040805160e560020a62461bcd02815260206004820152601a60248201527f496e76616c696420434e2072657761726420616464726573732e000000000000604482015290519081900360640190fd5b86600160a060020a031663392e53cd6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561415a57600080fd5b505af115801561416e573d6000803e3d6000fd5b505050506040513d602081101561418457600080fd5b505115156001146141df576040805160e560020a62461bcd02815260206004820152601f60248201527f434e20636f6e7472616374206973206e6f7420696e697469616c697a65642e00604482015290519081900360640190fd5b6141fb6008600160a060020a03808b16908a8116908a16614af1565b94506142196008600160a060020a03808b16908a8116908a16614bc4565b614222856151f5565b801561424d5750600160008681526003602052604090206006015460ff16600481111561424b57fe5b145b1561425b5761425b85615210565b5050505050505050565b3330146142aa576040805160e560020a62461bcd02815260206004820152601b6024820152600080516020615bda833981519152604482015290519081900360640190fd5b600c5460ff1615614305576040805160e560020a62461bcd02815260206004820152601260248201527f416c7265616479206163746976617465642e0000000000000000000000000000604482015290519081900360640190fd5b600054151561435e576040805160e560020a62461bcd02815260206004820152601360248201527f4e6f2061646d696e206973206c69737465642e00000000000000000000000000604482015290519081900360640190fd5b600554600160a060020a031615156143c0576040805160e560020a62461bcd02815260206004820152601f60248201527f506f4320636f6e7472616374206973206e6f7420726567697374657265642e00604482015290519081900360640190fd5b600654600160a060020a03161515614422576040805160e560020a62461bcd02815260206004820152601f60248201527f4b495220636f6e7472616374206973206e6f7420726567697374657265642e00604482015290519081900360640190fd5b600954151561447b576040805160e560020a62461bcd02815260206004820152601560248201527f4e6f206e6f6465204944206973206c69737465642e0000000000000000000000604482015290519081900360640190fd5b600a54600954146144fc576040805160e560020a62461bcd02815260206004820152603660248201527f496e76616c6964206c656e677468206265747765656e206e6f6465204944732060448201527f616e64207374616b696e6720636f6e7472616374732e00000000000000000000606482015290519081900360840190fd5b600b54600a541461457d576040805160e560020a62461bcd02815260206004820152603e60248201527f496e76616c6964206c656e677468206265747765656e207374616b696e67206360448201527f6f6e74726163747320616e6420726577617264206164647265737365732e0000606482015290519081900360840190fd5b600c805460ff191660011790556040517f29d89931226d613bf878a0be8c635eaf2049121c8c68d5ad80a78f0ac9005d4b90600090a1565b600554600160a060020a031681565b6060600480548060200260200160405190810160405280929190818152602001828054801561461357602002820191906000526020600020905b815481526001909101906020018083116145fe575b505050505090505b90565b600181565b3360008181526002602052604081205490919060ff16151561467d576040805160e560020a62461bcd0281526020600482015260156024820152600080516020615b7a833981519152604482015290519081900360640190fd5b60005483603282118015906146925750818111155b801561469d57508015155b80156146a857508115155b15156146ec576040805160e560020a62461bcd0281526020600482015260146024820152600080516020615bfa833981519152604482015290519081900360640190fd5b600154851415614746576040805160e560020a62461bcd02815260206004820152601160248201527f53616d6520726571756972656d656e742e000000000000000000000000000000604482015290519081900360640190fd5b614754600386600080614af1565b9350614764600386600080614bc4565b61476d846151f5565b80156147985750600160008581526003602052604090206006015460ff16600481111561479657fe5b145b156110315761103184615210565b3360008181526002602052604081205490919060ff161515614800576040805160e560020a62461bcd0281526020600482015260156024820152600080516020615b7a833981519152604482015290519081900360640190fd5b600c5460ff161561485b576040805160e560020a62461bcd02815260206004820152601260248201527f416c7265616479206163746976617465642e0000000000000000000000000000604482015290519081900360640190fd5b60005415156148b4576040805160e560020a62461bcd02815260206004820152601360248201527f4e6f2061646d696e206973206c69737465642e00000000000000000000000000604482015290519081900360640190fd5b600554600160a060020a03161515614916576040805160e560020a62461bcd02815260206004820152601f60248201527f506f4320636f6e7472616374206973206e6f7420726567697374657265642e00604482015290519081900360640190fd5b600654600160a060020a03161515614978576040805160e560020a62461bcd02815260206004820152601f60248201527f4b495220636f6e7472616374206973206e6f7420726567697374657265642e00604482015290519081900360640190fd5b60095415156149d1576040805160e560020a62461bcd02815260206004820152601560248201527f4e6f206e6f6465204944206973206c69737465642e0000000000000000000000604482015290519081900360640190fd5b600a5460095414614a52576040805160e560020a62461bcd02815260206004820152603660248201527f496e76616c6964206c656e677468206265747765656e206e6f6465204944732060448201527f616e64207374616b696e6720636f6e7472616374732e00000000000000000000606482015290519081900360840190fd5b600b54600a5414614ad3576040805160e560020a62461bcd02815260206004820152603e60248201527f496e76616c6964206c656e677468206265747765656e207374616b696e67206360448201527f6f6e74726163747320616e6420726577617264206164647265737365732e0000606482015290519081900360840190fd5b614ae1600560008080614af1565b9150613603600560008080614bc4565b6000848484846040516020018085600a811115614b0a57fe5b60ff167f010000000000000000000000000000000000000000000000000000000000000002815260018101949094525060218301919091526041808301919091526040805180840390920182526061909201918290528051909250819060208401908083835b60208310614b8f5780518252601f199092019160209182019101614b70565b5181516020939093036101000a6000190180199091169216919091179052604051920182900390912098975050505050505050565b6000806000614bd587878787614af1565b60008181526003602052604090206005015490935015614f5e5760008381526003602052604090206005015442621275009091011015614c6a57614c188361592b565b60008381526003602081905260408220805460ff19168155600181018390556002810183905590810182905590614c526004830182615a25565b5060006005820155600601805460ff19169055614f5e565b6000838152600360205260409020600501544262093a809091011015614da257600460008481526003602052604090206006015460ff166004811115614cac57fe5b14614cce576000838152600360205260409020600601805460ff191660041790555b600083815260036020526040908190209051339185917f9f3ca7a04988021200a04e0775f46648683bffe7203608269a66c371befe5685918b918b918b918b91600401908086600a811115614d1f57fe5b60ff16815260208101869052604081018590526060810184905260a082820381016080830190815284549183018290529160c0019084908015614d8b57602002820191906000526020600020905b8154600160a060020a03168152600190910190602001808311614d6d575b5050965050505050505060405180910390a3614f5e565b6000838152600360205260409020600501544210614f5e575050600081815260036020526040812060040154905b81811015614e69576000838152600360205260409020600401805482908110614df557fe5b600091825260209091200154600160a060020a0316331415614e61576040805160e560020a62461bcd02815260206004820152601d60248201527f4d73672e73656e64657220616c7265616479207265717565737465642e000000604482015290519081900360640190fd5b600101614dd0565b600083815260036020908152604080832060040180546001810182558185529284209092018054600160a060020a03191633908117909155928690525185917fb7b03afe355fcf2b1d00e020db2b1a902b9ee1b1c1d995626c1e18c957340ea8918b918b918b918b918086600a811115614edf57fe5b60ff16815260208101869052604081018590526060810184905260a082820381016080830190815284549183018290529160c0019084908015614f4b57602002820191906000526020600020905b8154600160a060020a03168152600190910190602001808311614f2d575b5050965050505050505060405180910390a35b60008381526003602052604090206005015415156130ed57600454606411614fe357600487600a811115614f8e57fe5b14614fe3576040805160e560020a62461bcd02815260206004820152601560248201527f52657175657374206c6973742069732066756c6c2e0000000000000000000000604482015290519081900360640190fd5b60e06040519081016040528088600a811115614ffb57fe5b81526020808201899052604080830189905260608301889052805160008082529281019091526080909201919050815242602082015260400160019052600084815260036020526040902081518154829060ff1916600183600a81111561505e57fe5b021790555060208281015160018301556040830151600283015560608301516003830155608083015180516150999260048501920190615aa9565b5060a0820151600582015560c082015160068201805460ff191660018360048111156150c157fe5b0217905550505060008381526003602090815260408083206004908101805460018181018355828752948620018054600160a060020a0319163390811790915582549485019092557f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b909301879055928690525185917fb7b03afe355fcf2b1d00e020db2b1a902b9ee1b1c1d995626c1e18c957340ea8918b918b918b918b918086600a81111561516e57fe5b60ff16815260208101869052604081018590526060810184905260a082820381016080830190815284549183018290529160c00190849080156151da57602002820191906000526020600020905b8154600160a060020a031681526001909101906020018083116151bc575b5050965050505050505060405180910390a350505050505050565b60015460009182526003602052604090912060040154101590565b600061521a615afe565b600083815260036020526040808220815160e0810190925280549294509091829060ff16600a81111561524957fe5b600a81111561525457fe5b8152600182015460208083019190915260028301546040808401919091526003840154606084015260048401805482518185028101850190935280835260809094019391929091908301828280156152d557602002820191906000526020600020905b8154600160a060020a031681526001909101906020018083116152b7575b505050918352505060058201546020820152600682015460409091019060ff16600481111561530057fe5b600481111561530b57fe5b905250905060018151600a81111561531f57fe5b1415615389576020810151604080517f70480275000000000000000000000000000000000000000000000000000000008152600160a060020a0390921660048301525130916370480275916024808301926000929190829003018183875af192505050915061579a565b60028151600a81111561539857fe5b1415615402576020810151604080517f27e1f7df000000000000000000000000000000000000000000000000000000008152600160a060020a0390921660048301525130916327e1f7df916024808301926000929190829003018183875af192505050915061579a565b60038151600a81111561541157fe5b1415615473576020810151604080517fc47afb3a000000000000000000000000000000000000000000000000000000008152600481019290925251309163c47afb3a916024808301926000929190829003018183875af192505050915061579a565b60048151600a81111561548257fe5b14156154c55730600160a060020a0316634f97638f6040518163ffffffff1660e060020a0281526004016000604051808303816000875af192505050915061579a565b60058151600a8111156154d457fe5b14156155175730600160a060020a031663cec924666040518163ffffffff1660e060020a0281526004016000604051808303816000875af192505050915061579a565b60068151600a81111561552657fe5b141561559957602081015160408083015181517fc7e9de75000000000000000000000000000000000000000000000000000000008152600160a060020a039093166004840152602483015251309163c7e9de75916044808301926000929190829003018183875af192505050915061579a565b60078151600a8111156155a857fe5b141561561b57602081015160408083015181517f4c5d435c000000000000000000000000000000000000000000000000000000008152600160a060020a0390931660048401526024830152513091634c5d435c916044808301926000929190829003018183875af192505050915061579a565b60088151600a81111561562a57fe5b14156156ad576020810151604080830151606084015182517f298b3c61000000000000000000000000000000000000000000000000000000008152600160a060020a0394851660048201529184166024830152909216604483015251309163298b3c61916064808301926000929190829003018183875af192505050915061579a565b60098151600a8111156156bc57fe5b1415615726576020810151604080517f579740db000000000000000000000000000000000000000000000000000000008152600160a060020a03909216600483015251309163579740db916024808301926000929190829003018183875af192505050915061579a565b600a8151600a81111561573557fe5b141561579a576020810151604080517fafaaf330000000000000000000000000000000000000000000000000000000008152600160a060020a03909216600483015251309163afaaf330916024808301926000929190829003018183875af194505050505b6157a38361592b565b811561585d57600083815260036020526040902060050154156157dd576000838152600360205260409020600601805460ff191660021790555b33600160a060020a031683600019167fc55c9229184beabeee72b6970a96691b4200919e47579cc4b9be50a1bec7ef1183600001518460200151856040015186606001516040518085600a81111561583157fe5b60ff168152602081019490945250604080840192909252606083015251908190036080019150a36117f1565b60008381526003602052604090206005015415615894576000838152600360208190526040909120600601805460ff191690911790555b33600160a060020a031683600019167ff151a3ee41626c2511372320f09f7957af81c8c1cde8cdf3f05a5979626eaaf383600001518460200151856040015186606001516040518085600a8111156158e857fe5b60ff168152602081019490945250604080840192909252606083015251908190036080019150a3505050565b6000808383111561592457600080fd5b5050900390565b60045460005b818110156117f157600480548290811061594757fe5b6000918252602090912001548314156159e0576000198201811461599e5760048054600019840190811061597757fe5b906000526020600020015460048281548110151561599157fe5b6000918252602090912001555b6004805460001984019081106159b057fe5b60009182526020822001556004546159cf90600163ffffffff61591416565b6159da600482615a01565b506117f1565b600101615931565b6000828201838110156159fa57600080fd5b9392505050565b8154818355818111156117f1576000838152602090206117f1918101908301615b3b565b5080546000825590600052602060002090810190615a439190615b3b565b50565b828054828255906000526020600020908101928215615a99579160200282015b82811115615a99578154600160a060020a031916600160a060020a03843516178255602090920191600190910190615a66565b50615aa5929150615b55565b5090565b828054828255906000526020600020908101928215615a99579160200282015b82811115615a995782518254600160a060020a031916600160a060020a03909116178255602090920191600190910190615ac9565b6040805160e081019091528060008152600060208201819052604082018190526060808301829052608083015260a0820181905260c09091015290565b61461b91905b80821115615aa55760008155600101615b41565b61461b91905b80821115615aa5578054600160a060020a0319168155600101615b5b560041646472657373206973206e6f742061646d696e2e0000000000000000000000496e76616c696420434e206e6f64652049442e0000000000000000000000000041646472657373206973206e756c6c2e000000000000000000000000000000004e6f742061206d756c74697369672d7472616e73616374696f6e2e0000000000496e76616c696420726571756972656d656e742e000000000000000000000000a165627a7a7230582088c735fc1a2bd429ebe06bb9aaedb5615a666685aabfa8a6d865bda84e57cda20029`
    93  
    94  // AddressBookFuncSigs maps the 4-byte function signature to its string representation.
    95  // Deprecated: Use AddressBookMetaData.Sigs instead.
    96  var AddressBookFuncSigs = AddressBookMetaData.Sigs
    97  
    98  // AddressBookBin is the compiled bytecode used for deploying new contracts.
    99  // Deprecated: Use AddressBookMetaData.Bin instead.
   100  var AddressBookBin = AddressBookMetaData.Bin
   101  
   102  // DeployAddressBook deploys a new Klaytn contract, binding an instance of AddressBook to it.
   103  func DeployAddressBook(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *types.Transaction, *AddressBook, error) {
   104  	parsed, err := AddressBookMetaData.GetAbi()
   105  	if err != nil {
   106  		return common.Address{}, nil, nil, err
   107  	}
   108  	if parsed == nil {
   109  		return common.Address{}, nil, nil, errors.New("GetABI returned nil")
   110  	}
   111  
   112  	address, tx, contract, err := bind.DeployContract(auth, *parsed, common.FromHex(AddressBookBin), backend)
   113  	if err != nil {
   114  		return common.Address{}, nil, nil, err
   115  	}
   116  	return address, tx, &AddressBook{AddressBookCaller: AddressBookCaller{contract: contract}, AddressBookTransactor: AddressBookTransactor{contract: contract}, AddressBookFilterer: AddressBookFilterer{contract: contract}}, nil
   117  }
   118  
   119  // AddressBook is an auto generated Go binding around a Klaytn contract.
   120  type AddressBook struct {
   121  	AddressBookCaller     // Read-only binding to the contract
   122  	AddressBookTransactor // Write-only binding to the contract
   123  	AddressBookFilterer   // Log filterer for contract events
   124  }
   125  
   126  // AddressBookCaller is an auto generated read-only Go binding around a Klaytn contract.
   127  type AddressBookCaller struct {
   128  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
   129  }
   130  
   131  // AddressBookTransactor is an auto generated write-only Go binding around a Klaytn contract.
   132  type AddressBookTransactor struct {
   133  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
   134  }
   135  
   136  // AddressBookFilterer is an auto generated log filtering Go binding around a Klaytn contract events.
   137  type AddressBookFilterer struct {
   138  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
   139  }
   140  
   141  // AddressBookSession is an auto generated Go binding around a Klaytn contract,
   142  // with pre-set call and transact options.
   143  type AddressBookSession struct {
   144  	Contract     *AddressBook      // Generic contract binding to set the session for
   145  	CallOpts     bind.CallOpts     // Call options to use throughout this session
   146  	TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
   147  }
   148  
   149  // AddressBookCallerSession is an auto generated read-only Go binding around a Klaytn contract,
   150  // with pre-set call options.
   151  type AddressBookCallerSession struct {
   152  	Contract *AddressBookCaller // Generic contract caller binding to set the session for
   153  	CallOpts bind.CallOpts      // Call options to use throughout this session
   154  }
   155  
   156  // AddressBookTransactorSession is an auto generated write-only Go binding around a Klaytn contract,
   157  // with pre-set transact options.
   158  type AddressBookTransactorSession struct {
   159  	Contract     *AddressBookTransactor // Generic contract transactor binding to set the session for
   160  	TransactOpts bind.TransactOpts      // Transaction auth options to use throughout this session
   161  }
   162  
   163  // AddressBookRaw is an auto generated low-level Go binding around a Klaytn contract.
   164  type AddressBookRaw struct {
   165  	Contract *AddressBook // Generic contract binding to access the raw methods on
   166  }
   167  
   168  // AddressBookCallerRaw is an auto generated low-level read-only Go binding around a Klaytn contract.
   169  type AddressBookCallerRaw struct {
   170  	Contract *AddressBookCaller // Generic read-only contract binding to access the raw methods on
   171  }
   172  
   173  // AddressBookTransactorRaw is an auto generated low-level write-only Go binding around a Klaytn contract.
   174  type AddressBookTransactorRaw struct {
   175  	Contract *AddressBookTransactor // Generic write-only contract binding to access the raw methods on
   176  }
   177  
   178  // NewAddressBook creates a new instance of AddressBook, bound to a specific deployed contract.
   179  func NewAddressBook(address common.Address, backend bind.ContractBackend) (*AddressBook, error) {
   180  	contract, err := bindAddressBook(address, backend, backend, backend)
   181  	if err != nil {
   182  		return nil, err
   183  	}
   184  	return &AddressBook{AddressBookCaller: AddressBookCaller{contract: contract}, AddressBookTransactor: AddressBookTransactor{contract: contract}, AddressBookFilterer: AddressBookFilterer{contract: contract}}, nil
   185  }
   186  
   187  // NewAddressBookCaller creates a new read-only instance of AddressBook, bound to a specific deployed contract.
   188  func NewAddressBookCaller(address common.Address, caller bind.ContractCaller) (*AddressBookCaller, error) {
   189  	contract, err := bindAddressBook(address, caller, nil, nil)
   190  	if err != nil {
   191  		return nil, err
   192  	}
   193  	return &AddressBookCaller{contract: contract}, nil
   194  }
   195  
   196  // NewAddressBookTransactor creates a new write-only instance of AddressBook, bound to a specific deployed contract.
   197  func NewAddressBookTransactor(address common.Address, transactor bind.ContractTransactor) (*AddressBookTransactor, error) {
   198  	contract, err := bindAddressBook(address, nil, transactor, nil)
   199  	if err != nil {
   200  		return nil, err
   201  	}
   202  	return &AddressBookTransactor{contract: contract}, nil
   203  }
   204  
   205  // NewAddressBookFilterer creates a new log filterer instance of AddressBook, bound to a specific deployed contract.
   206  func NewAddressBookFilterer(address common.Address, filterer bind.ContractFilterer) (*AddressBookFilterer, error) {
   207  	contract, err := bindAddressBook(address, nil, nil, filterer)
   208  	if err != nil {
   209  		return nil, err
   210  	}
   211  	return &AddressBookFilterer{contract: contract}, nil
   212  }
   213  
   214  // bindAddressBook binds a generic wrapper to an already deployed contract.
   215  func bindAddressBook(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
   216  	parsed, err := AddressBookMetaData.GetAbi()
   217  	if err != nil {
   218  		return nil, err
   219  	}
   220  	return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil
   221  }
   222  
   223  // Call invokes the (constant) contract method with params as input values and
   224  // sets the output to result. The result type might be a single field for simple
   225  // returns, a slice of interfaces for anonymous returns and a struct for named
   226  // returns.
   227  func (_AddressBook *AddressBookRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
   228  	return _AddressBook.Contract.AddressBookCaller.contract.Call(opts, result, method, params...)
   229  }
   230  
   231  // Transfer initiates a plain transaction to move funds to the contract, calling
   232  // its default method if one is available.
   233  func (_AddressBook *AddressBookRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
   234  	return _AddressBook.Contract.AddressBookTransactor.contract.Transfer(opts)
   235  }
   236  
   237  // Transact invokes the (paid) contract method with params as input values.
   238  func (_AddressBook *AddressBookRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
   239  	return _AddressBook.Contract.AddressBookTransactor.contract.Transact(opts, method, params...)
   240  }
   241  
   242  // Call invokes the (constant) contract method with params as input values and
   243  // sets the output to result. The result type might be a single field for simple
   244  // returns, a slice of interfaces for anonymous returns and a struct for named
   245  // returns.
   246  func (_AddressBook *AddressBookCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
   247  	return _AddressBook.Contract.contract.Call(opts, result, method, params...)
   248  }
   249  
   250  // Transfer initiates a plain transaction to move funds to the contract, calling
   251  // its default method if one is available.
   252  func (_AddressBook *AddressBookTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
   253  	return _AddressBook.Contract.contract.Transfer(opts)
   254  }
   255  
   256  // Transact invokes the (paid) contract method with params as input values.
   257  func (_AddressBook *AddressBookTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
   258  	return _AddressBook.Contract.contract.Transact(opts, method, params...)
   259  }
   260  
   261  // CNNODEIDTYPE is a free data retrieval call binding the contract method 0x76674c54.
   262  //
   263  // Solidity: function CN_NODE_ID_TYPE() view returns(uint8)
   264  func (_AddressBook *AddressBookCaller) CNNODEIDTYPE(opts *bind.CallOpts) (uint8, error) {
   265  	var out []interface{}
   266  	err := _AddressBook.contract.Call(opts, &out, "CN_NODE_ID_TYPE")
   267  
   268  	if err != nil {
   269  		return *new(uint8), err
   270  	}
   271  
   272  	out0 := *abi.ConvertType(out[0], new(uint8)).(*uint8)
   273  
   274  	return out0, err
   275  
   276  }
   277  
   278  // CNNODEIDTYPE is a free data retrieval call binding the contract method 0x76674c54.
   279  //
   280  // Solidity: function CN_NODE_ID_TYPE() view returns(uint8)
   281  func (_AddressBook *AddressBookSession) CNNODEIDTYPE() (uint8, error) {
   282  	return _AddressBook.Contract.CNNODEIDTYPE(&_AddressBook.CallOpts)
   283  }
   284  
   285  // CNNODEIDTYPE is a free data retrieval call binding the contract method 0x76674c54.
   286  //
   287  // Solidity: function CN_NODE_ID_TYPE() view returns(uint8)
   288  func (_AddressBook *AddressBookCallerSession) CNNODEIDTYPE() (uint8, error) {
   289  	return _AddressBook.Contract.CNNODEIDTYPE(&_AddressBook.CallOpts)
   290  }
   291  
   292  // CNREWARDADDRESSTYPE is a free data retrieval call binding the contract method 0x32b91e85.
   293  //
   294  // Solidity: function CN_REWARD_ADDRESS_TYPE() view returns(uint8)
   295  func (_AddressBook *AddressBookCaller) CNREWARDADDRESSTYPE(opts *bind.CallOpts) (uint8, error) {
   296  	var out []interface{}
   297  	err := _AddressBook.contract.Call(opts, &out, "CN_REWARD_ADDRESS_TYPE")
   298  
   299  	if err != nil {
   300  		return *new(uint8), err
   301  	}
   302  
   303  	out0 := *abi.ConvertType(out[0], new(uint8)).(*uint8)
   304  
   305  	return out0, err
   306  
   307  }
   308  
   309  // CNREWARDADDRESSTYPE is a free data retrieval call binding the contract method 0x32b91e85.
   310  //
   311  // Solidity: function CN_REWARD_ADDRESS_TYPE() view returns(uint8)
   312  func (_AddressBook *AddressBookSession) CNREWARDADDRESSTYPE() (uint8, error) {
   313  	return _AddressBook.Contract.CNREWARDADDRESSTYPE(&_AddressBook.CallOpts)
   314  }
   315  
   316  // CNREWARDADDRESSTYPE is a free data retrieval call binding the contract method 0x32b91e85.
   317  //
   318  // Solidity: function CN_REWARD_ADDRESS_TYPE() view returns(uint8)
   319  func (_AddressBook *AddressBookCallerSession) CNREWARDADDRESSTYPE() (uint8, error) {
   320  	return _AddressBook.Contract.CNREWARDADDRESSTYPE(&_AddressBook.CallOpts)
   321  }
   322  
   323  // CNSTAKINGADDRESSTYPE is a free data retrieval call binding the contract method 0xde5bbfbc.
   324  //
   325  // Solidity: function CN_STAKING_ADDRESS_TYPE() view returns(uint8)
   326  func (_AddressBook *AddressBookCaller) CNSTAKINGADDRESSTYPE(opts *bind.CallOpts) (uint8, error) {
   327  	var out []interface{}
   328  	err := _AddressBook.contract.Call(opts, &out, "CN_STAKING_ADDRESS_TYPE")
   329  
   330  	if err != nil {
   331  		return *new(uint8), err
   332  	}
   333  
   334  	out0 := *abi.ConvertType(out[0], new(uint8)).(*uint8)
   335  
   336  	return out0, err
   337  
   338  }
   339  
   340  // CNSTAKINGADDRESSTYPE is a free data retrieval call binding the contract method 0xde5bbfbc.
   341  //
   342  // Solidity: function CN_STAKING_ADDRESS_TYPE() view returns(uint8)
   343  func (_AddressBook *AddressBookSession) CNSTAKINGADDRESSTYPE() (uint8, error) {
   344  	return _AddressBook.Contract.CNSTAKINGADDRESSTYPE(&_AddressBook.CallOpts)
   345  }
   346  
   347  // CNSTAKINGADDRESSTYPE is a free data retrieval call binding the contract method 0xde5bbfbc.
   348  //
   349  // Solidity: function CN_STAKING_ADDRESS_TYPE() view returns(uint8)
   350  func (_AddressBook *AddressBookCallerSession) CNSTAKINGADDRESSTYPE() (uint8, error) {
   351  	return _AddressBook.Contract.CNSTAKINGADDRESSTYPE(&_AddressBook.CallOpts)
   352  }
   353  
   354  // CONTRACTTYPE is a free data retrieval call binding the contract method 0x4b6a94cc.
   355  //
   356  // Solidity: function CONTRACT_TYPE() view returns(string)
   357  func (_AddressBook *AddressBookCaller) CONTRACTTYPE(opts *bind.CallOpts) (string, error) {
   358  	var out []interface{}
   359  	err := _AddressBook.contract.Call(opts, &out, "CONTRACT_TYPE")
   360  
   361  	if err != nil {
   362  		return *new(string), err
   363  	}
   364  
   365  	out0 := *abi.ConvertType(out[0], new(string)).(*string)
   366  
   367  	return out0, err
   368  
   369  }
   370  
   371  // CONTRACTTYPE is a free data retrieval call binding the contract method 0x4b6a94cc.
   372  //
   373  // Solidity: function CONTRACT_TYPE() view returns(string)
   374  func (_AddressBook *AddressBookSession) CONTRACTTYPE() (string, error) {
   375  	return _AddressBook.Contract.CONTRACTTYPE(&_AddressBook.CallOpts)
   376  }
   377  
   378  // CONTRACTTYPE is a free data retrieval call binding the contract method 0x4b6a94cc.
   379  //
   380  // Solidity: function CONTRACT_TYPE() view returns(string)
   381  func (_AddressBook *AddressBookCallerSession) CONTRACTTYPE() (string, error) {
   382  	return _AddressBook.Contract.CONTRACTTYPE(&_AddressBook.CallOpts)
   383  }
   384  
   385  // KIRCONTRACTTYPE is a free data retrieval call binding the contract method 0x41b6945c.
   386  //
   387  // Solidity: function KIR_CONTRACT_TYPE() view returns(uint8)
   388  func (_AddressBook *AddressBookCaller) KIRCONTRACTTYPE(opts *bind.CallOpts) (uint8, error) {
   389  	var out []interface{}
   390  	err := _AddressBook.contract.Call(opts, &out, "KIR_CONTRACT_TYPE")
   391  
   392  	if err != nil {
   393  		return *new(uint8), err
   394  	}
   395  
   396  	out0 := *abi.ConvertType(out[0], new(uint8)).(*uint8)
   397  
   398  	return out0, err
   399  
   400  }
   401  
   402  // KIRCONTRACTTYPE is a free data retrieval call binding the contract method 0x41b6945c.
   403  //
   404  // Solidity: function KIR_CONTRACT_TYPE() view returns(uint8)
   405  func (_AddressBook *AddressBookSession) KIRCONTRACTTYPE() (uint8, error) {
   406  	return _AddressBook.Contract.KIRCONTRACTTYPE(&_AddressBook.CallOpts)
   407  }
   408  
   409  // KIRCONTRACTTYPE is a free data retrieval call binding the contract method 0x41b6945c.
   410  //
   411  // Solidity: function KIR_CONTRACT_TYPE() view returns(uint8)
   412  func (_AddressBook *AddressBookCallerSession) KIRCONTRACTTYPE() (uint8, error) {
   413  	return _AddressBook.Contract.KIRCONTRACTTYPE(&_AddressBook.CallOpts)
   414  }
   415  
   416  // MAXADMIN is a free data retrieval call binding the contract method 0x58d65880.
   417  //
   418  // Solidity: function MAX_ADMIN() view returns(uint256)
   419  func (_AddressBook *AddressBookCaller) MAXADMIN(opts *bind.CallOpts) (*big.Int, error) {
   420  	var out []interface{}
   421  	err := _AddressBook.contract.Call(opts, &out, "MAX_ADMIN")
   422  
   423  	if err != nil {
   424  		return *new(*big.Int), err
   425  	}
   426  
   427  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
   428  
   429  	return out0, err
   430  
   431  }
   432  
   433  // MAXADMIN is a free data retrieval call binding the contract method 0x58d65880.
   434  //
   435  // Solidity: function MAX_ADMIN() view returns(uint256)
   436  func (_AddressBook *AddressBookSession) MAXADMIN() (*big.Int, error) {
   437  	return _AddressBook.Contract.MAXADMIN(&_AddressBook.CallOpts)
   438  }
   439  
   440  // MAXADMIN is a free data retrieval call binding the contract method 0x58d65880.
   441  //
   442  // Solidity: function MAX_ADMIN() view returns(uint256)
   443  func (_AddressBook *AddressBookCallerSession) MAXADMIN() (*big.Int, error) {
   444  	return _AddressBook.Contract.MAXADMIN(&_AddressBook.CallOpts)
   445  }
   446  
   447  // MAXPENDINGREQUEST is a free data retrieval call binding the contract method 0x778f39cb.
   448  //
   449  // Solidity: function MAX_PENDING_REQUEST() view returns(uint256)
   450  func (_AddressBook *AddressBookCaller) MAXPENDINGREQUEST(opts *bind.CallOpts) (*big.Int, error) {
   451  	var out []interface{}
   452  	err := _AddressBook.contract.Call(opts, &out, "MAX_PENDING_REQUEST")
   453  
   454  	if err != nil {
   455  		return *new(*big.Int), err
   456  	}
   457  
   458  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
   459  
   460  	return out0, err
   461  
   462  }
   463  
   464  // MAXPENDINGREQUEST is a free data retrieval call binding the contract method 0x778f39cb.
   465  //
   466  // Solidity: function MAX_PENDING_REQUEST() view returns(uint256)
   467  func (_AddressBook *AddressBookSession) MAXPENDINGREQUEST() (*big.Int, error) {
   468  	return _AddressBook.Contract.MAXPENDINGREQUEST(&_AddressBook.CallOpts)
   469  }
   470  
   471  // MAXPENDINGREQUEST is a free data retrieval call binding the contract method 0x778f39cb.
   472  //
   473  // Solidity: function MAX_PENDING_REQUEST() view returns(uint256)
   474  func (_AddressBook *AddressBookCallerSession) MAXPENDINGREQUEST() (*big.Int, error) {
   475  	return _AddressBook.Contract.MAXPENDINGREQUEST(&_AddressBook.CallOpts)
   476  }
   477  
   478  // ONEWEEK is a free data retrieval call binding the contract method 0x8e6f6b77.
   479  //
   480  // Solidity: function ONE_WEEK() view returns(uint256)
   481  func (_AddressBook *AddressBookCaller) ONEWEEK(opts *bind.CallOpts) (*big.Int, error) {
   482  	var out []interface{}
   483  	err := _AddressBook.contract.Call(opts, &out, "ONE_WEEK")
   484  
   485  	if err != nil {
   486  		return *new(*big.Int), err
   487  	}
   488  
   489  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
   490  
   491  	return out0, err
   492  
   493  }
   494  
   495  // ONEWEEK is a free data retrieval call binding the contract method 0x8e6f6b77.
   496  //
   497  // Solidity: function ONE_WEEK() view returns(uint256)
   498  func (_AddressBook *AddressBookSession) ONEWEEK() (*big.Int, error) {
   499  	return _AddressBook.Contract.ONEWEEK(&_AddressBook.CallOpts)
   500  }
   501  
   502  // ONEWEEK is a free data retrieval call binding the contract method 0x8e6f6b77.
   503  //
   504  // Solidity: function ONE_WEEK() view returns(uint256)
   505  func (_AddressBook *AddressBookCallerSession) ONEWEEK() (*big.Int, error) {
   506  	return _AddressBook.Contract.ONEWEEK(&_AddressBook.CallOpts)
   507  }
   508  
   509  // POCCONTRACTTYPE is a free data retrieval call binding the contract method 0xb50060e4.
   510  //
   511  // Solidity: function POC_CONTRACT_TYPE() view returns(uint8)
   512  func (_AddressBook *AddressBookCaller) POCCONTRACTTYPE(opts *bind.CallOpts) (uint8, error) {
   513  	var out []interface{}
   514  	err := _AddressBook.contract.Call(opts, &out, "POC_CONTRACT_TYPE")
   515  
   516  	if err != nil {
   517  		return *new(uint8), err
   518  	}
   519  
   520  	out0 := *abi.ConvertType(out[0], new(uint8)).(*uint8)
   521  
   522  	return out0, err
   523  
   524  }
   525  
   526  // POCCONTRACTTYPE is a free data retrieval call binding the contract method 0xb50060e4.
   527  //
   528  // Solidity: function POC_CONTRACT_TYPE() view returns(uint8)
   529  func (_AddressBook *AddressBookSession) POCCONTRACTTYPE() (uint8, error) {
   530  	return _AddressBook.Contract.POCCONTRACTTYPE(&_AddressBook.CallOpts)
   531  }
   532  
   533  // POCCONTRACTTYPE is a free data retrieval call binding the contract method 0xb50060e4.
   534  //
   535  // Solidity: function POC_CONTRACT_TYPE() view returns(uint8)
   536  func (_AddressBook *AddressBookCallerSession) POCCONTRACTTYPE() (uint8, error) {
   537  	return _AddressBook.Contract.POCCONTRACTTYPE(&_AddressBook.CallOpts)
   538  }
   539  
   540  // TWOWEEKS is a free data retrieval call binding the contract method 0x934d1fa4.
   541  //
   542  // Solidity: function TWO_WEEKS() view returns(uint256)
   543  func (_AddressBook *AddressBookCaller) TWOWEEKS(opts *bind.CallOpts) (*big.Int, error) {
   544  	var out []interface{}
   545  	err := _AddressBook.contract.Call(opts, &out, "TWO_WEEKS")
   546  
   547  	if err != nil {
   548  		return *new(*big.Int), err
   549  	}
   550  
   551  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
   552  
   553  	return out0, err
   554  
   555  }
   556  
   557  // TWOWEEKS is a free data retrieval call binding the contract method 0x934d1fa4.
   558  //
   559  // Solidity: function TWO_WEEKS() view returns(uint256)
   560  func (_AddressBook *AddressBookSession) TWOWEEKS() (*big.Int, error) {
   561  	return _AddressBook.Contract.TWOWEEKS(&_AddressBook.CallOpts)
   562  }
   563  
   564  // TWOWEEKS is a free data retrieval call binding the contract method 0x934d1fa4.
   565  //
   566  // Solidity: function TWO_WEEKS() view returns(uint256)
   567  func (_AddressBook *AddressBookCallerSession) TWOWEEKS() (*big.Int, error) {
   568  	return _AddressBook.Contract.TWOWEEKS(&_AddressBook.CallOpts)
   569  }
   570  
   571  // VERSION is a free data retrieval call binding the contract method 0xffa1ad74.
   572  //
   573  // Solidity: function VERSION() view returns(uint256)
   574  func (_AddressBook *AddressBookCaller) VERSION(opts *bind.CallOpts) (*big.Int, error) {
   575  	var out []interface{}
   576  	err := _AddressBook.contract.Call(opts, &out, "VERSION")
   577  
   578  	if err != nil {
   579  		return *new(*big.Int), err
   580  	}
   581  
   582  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
   583  
   584  	return out0, err
   585  
   586  }
   587  
   588  // VERSION is a free data retrieval call binding the contract method 0xffa1ad74.
   589  //
   590  // Solidity: function VERSION() view returns(uint256)
   591  func (_AddressBook *AddressBookSession) VERSION() (*big.Int, error) {
   592  	return _AddressBook.Contract.VERSION(&_AddressBook.CallOpts)
   593  }
   594  
   595  // VERSION is a free data retrieval call binding the contract method 0xffa1ad74.
   596  //
   597  // Solidity: function VERSION() view returns(uint256)
   598  func (_AddressBook *AddressBookCallerSession) VERSION() (*big.Int, error) {
   599  	return _AddressBook.Contract.VERSION(&_AddressBook.CallOpts)
   600  }
   601  
   602  // GetAllAddress is a free data retrieval call binding the contract method 0x715b208b.
   603  //
   604  // Solidity: function getAllAddress() view returns(uint8[], address[])
   605  func (_AddressBook *AddressBookCaller) GetAllAddress(opts *bind.CallOpts) ([]uint8, []common.Address, error) {
   606  	var out []interface{}
   607  	err := _AddressBook.contract.Call(opts, &out, "getAllAddress")
   608  
   609  	if err != nil {
   610  		return *new([]uint8), *new([]common.Address), err
   611  	}
   612  
   613  	out0 := *abi.ConvertType(out[0], new([]uint8)).(*[]uint8)
   614  	out1 := *abi.ConvertType(out[1], new([]common.Address)).(*[]common.Address)
   615  
   616  	return out0, out1, err
   617  
   618  }
   619  
   620  // GetAllAddress is a free data retrieval call binding the contract method 0x715b208b.
   621  //
   622  // Solidity: function getAllAddress() view returns(uint8[], address[])
   623  func (_AddressBook *AddressBookSession) GetAllAddress() ([]uint8, []common.Address, error) {
   624  	return _AddressBook.Contract.GetAllAddress(&_AddressBook.CallOpts)
   625  }
   626  
   627  // GetAllAddress is a free data retrieval call binding the contract method 0x715b208b.
   628  //
   629  // Solidity: function getAllAddress() view returns(uint8[], address[])
   630  func (_AddressBook *AddressBookCallerSession) GetAllAddress() ([]uint8, []common.Address, error) {
   631  	return _AddressBook.Contract.GetAllAddress(&_AddressBook.CallOpts)
   632  }
   633  
   634  // GetAllAddressInfo is a free data retrieval call binding the contract method 0x160370b8.
   635  //
   636  // Solidity: function getAllAddressInfo() view returns(address[], address[], address[], address, address)
   637  func (_AddressBook *AddressBookCaller) GetAllAddressInfo(opts *bind.CallOpts) ([]common.Address, []common.Address, []common.Address, common.Address, common.Address, error) {
   638  	var out []interface{}
   639  	err := _AddressBook.contract.Call(opts, &out, "getAllAddressInfo")
   640  
   641  	if err != nil {
   642  		return *new([]common.Address), *new([]common.Address), *new([]common.Address), *new(common.Address), *new(common.Address), err
   643  	}
   644  
   645  	out0 := *abi.ConvertType(out[0], new([]common.Address)).(*[]common.Address)
   646  	out1 := *abi.ConvertType(out[1], new([]common.Address)).(*[]common.Address)
   647  	out2 := *abi.ConvertType(out[2], new([]common.Address)).(*[]common.Address)
   648  	out3 := *abi.ConvertType(out[3], new(common.Address)).(*common.Address)
   649  	out4 := *abi.ConvertType(out[4], new(common.Address)).(*common.Address)
   650  
   651  	return out0, out1, out2, out3, out4, err
   652  
   653  }
   654  
   655  // GetAllAddressInfo is a free data retrieval call binding the contract method 0x160370b8.
   656  //
   657  // Solidity: function getAllAddressInfo() view returns(address[], address[], address[], address, address)
   658  func (_AddressBook *AddressBookSession) GetAllAddressInfo() ([]common.Address, []common.Address, []common.Address, common.Address, common.Address, error) {
   659  	return _AddressBook.Contract.GetAllAddressInfo(&_AddressBook.CallOpts)
   660  }
   661  
   662  // GetAllAddressInfo is a free data retrieval call binding the contract method 0x160370b8.
   663  //
   664  // Solidity: function getAllAddressInfo() view returns(address[], address[], address[], address, address)
   665  func (_AddressBook *AddressBookCallerSession) GetAllAddressInfo() ([]common.Address, []common.Address, []common.Address, common.Address, common.Address, error) {
   666  	return _AddressBook.Contract.GetAllAddressInfo(&_AddressBook.CallOpts)
   667  }
   668  
   669  // GetCnInfo is a free data retrieval call binding the contract method 0x15575d5a.
   670  //
   671  // Solidity: function getCnInfo(address _cnNodeId) view returns(address, address, address)
   672  func (_AddressBook *AddressBookCaller) GetCnInfo(opts *bind.CallOpts, _cnNodeId common.Address) (common.Address, common.Address, common.Address, error) {
   673  	var out []interface{}
   674  	err := _AddressBook.contract.Call(opts, &out, "getCnInfo", _cnNodeId)
   675  
   676  	if err != nil {
   677  		return *new(common.Address), *new(common.Address), *new(common.Address), err
   678  	}
   679  
   680  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
   681  	out1 := *abi.ConvertType(out[1], new(common.Address)).(*common.Address)
   682  	out2 := *abi.ConvertType(out[2], new(common.Address)).(*common.Address)
   683  
   684  	return out0, out1, out2, err
   685  
   686  }
   687  
   688  // GetCnInfo is a free data retrieval call binding the contract method 0x15575d5a.
   689  //
   690  // Solidity: function getCnInfo(address _cnNodeId) view returns(address, address, address)
   691  func (_AddressBook *AddressBookSession) GetCnInfo(_cnNodeId common.Address) (common.Address, common.Address, common.Address, error) {
   692  	return _AddressBook.Contract.GetCnInfo(&_AddressBook.CallOpts, _cnNodeId)
   693  }
   694  
   695  // GetCnInfo is a free data retrieval call binding the contract method 0x15575d5a.
   696  //
   697  // Solidity: function getCnInfo(address _cnNodeId) view returns(address, address, address)
   698  func (_AddressBook *AddressBookCallerSession) GetCnInfo(_cnNodeId common.Address) (common.Address, common.Address, common.Address, error) {
   699  	return _AddressBook.Contract.GetCnInfo(&_AddressBook.CallOpts, _cnNodeId)
   700  }
   701  
   702  // GetPendingRequestList is a free data retrieval call binding the contract method 0xda34a0bd.
   703  //
   704  // Solidity: function getPendingRequestList() view returns(bytes32[])
   705  func (_AddressBook *AddressBookCaller) GetPendingRequestList(opts *bind.CallOpts) ([][32]byte, error) {
   706  	var out []interface{}
   707  	err := _AddressBook.contract.Call(opts, &out, "getPendingRequestList")
   708  
   709  	if err != nil {
   710  		return *new([][32]byte), err
   711  	}
   712  
   713  	out0 := *abi.ConvertType(out[0], new([][32]byte)).(*[][32]byte)
   714  
   715  	return out0, err
   716  
   717  }
   718  
   719  // GetPendingRequestList is a free data retrieval call binding the contract method 0xda34a0bd.
   720  //
   721  // Solidity: function getPendingRequestList() view returns(bytes32[])
   722  func (_AddressBook *AddressBookSession) GetPendingRequestList() ([][32]byte, error) {
   723  	return _AddressBook.Contract.GetPendingRequestList(&_AddressBook.CallOpts)
   724  }
   725  
   726  // GetPendingRequestList is a free data retrieval call binding the contract method 0xda34a0bd.
   727  //
   728  // Solidity: function getPendingRequestList() view returns(bytes32[])
   729  func (_AddressBook *AddressBookCallerSession) GetPendingRequestList() ([][32]byte, error) {
   730  	return _AddressBook.Contract.GetPendingRequestList(&_AddressBook.CallOpts)
   731  }
   732  
   733  // GetRequestInfo is a free data retrieval call binding the contract method 0x82d67e5a.
   734  //
   735  // Solidity: function getRequestInfo(bytes32 _id) view returns(uint8, bytes32, bytes32, bytes32, address[], uint256, uint8)
   736  func (_AddressBook *AddressBookCaller) GetRequestInfo(opts *bind.CallOpts, _id [32]byte) (uint8, [32]byte, [32]byte, [32]byte, []common.Address, *big.Int, uint8, error) {
   737  	var out []interface{}
   738  	err := _AddressBook.contract.Call(opts, &out, "getRequestInfo", _id)
   739  
   740  	if err != nil {
   741  		return *new(uint8), *new([32]byte), *new([32]byte), *new([32]byte), *new([]common.Address), *new(*big.Int), *new(uint8), err
   742  	}
   743  
   744  	out0 := *abi.ConvertType(out[0], new(uint8)).(*uint8)
   745  	out1 := *abi.ConvertType(out[1], new([32]byte)).(*[32]byte)
   746  	out2 := *abi.ConvertType(out[2], new([32]byte)).(*[32]byte)
   747  	out3 := *abi.ConvertType(out[3], new([32]byte)).(*[32]byte)
   748  	out4 := *abi.ConvertType(out[4], new([]common.Address)).(*[]common.Address)
   749  	out5 := *abi.ConvertType(out[5], new(*big.Int)).(**big.Int)
   750  	out6 := *abi.ConvertType(out[6], new(uint8)).(*uint8)
   751  
   752  	return out0, out1, out2, out3, out4, out5, out6, err
   753  
   754  }
   755  
   756  // GetRequestInfo is a free data retrieval call binding the contract method 0x82d67e5a.
   757  //
   758  // Solidity: function getRequestInfo(bytes32 _id) view returns(uint8, bytes32, bytes32, bytes32, address[], uint256, uint8)
   759  func (_AddressBook *AddressBookSession) GetRequestInfo(_id [32]byte) (uint8, [32]byte, [32]byte, [32]byte, []common.Address, *big.Int, uint8, error) {
   760  	return _AddressBook.Contract.GetRequestInfo(&_AddressBook.CallOpts, _id)
   761  }
   762  
   763  // GetRequestInfo is a free data retrieval call binding the contract method 0x82d67e5a.
   764  //
   765  // Solidity: function getRequestInfo(bytes32 _id) view returns(uint8, bytes32, bytes32, bytes32, address[], uint256, uint8)
   766  func (_AddressBook *AddressBookCallerSession) GetRequestInfo(_id [32]byte) (uint8, [32]byte, [32]byte, [32]byte, []common.Address, *big.Int, uint8, error) {
   767  	return _AddressBook.Contract.GetRequestInfo(&_AddressBook.CallOpts, _id)
   768  }
   769  
   770  // GetRequestInfoByArgs is a free data retrieval call binding the contract method 0x407091eb.
   771  //
   772  // Solidity: function getRequestInfoByArgs(uint8 _functionId, bytes32 _firstArg, bytes32 _secondArg, bytes32 _thirdArg) view returns(bytes32, address[], uint256, uint8)
   773  func (_AddressBook *AddressBookCaller) GetRequestInfoByArgs(opts *bind.CallOpts, _functionId uint8, _firstArg [32]byte, _secondArg [32]byte, _thirdArg [32]byte) ([32]byte, []common.Address, *big.Int, uint8, error) {
   774  	var out []interface{}
   775  	err := _AddressBook.contract.Call(opts, &out, "getRequestInfoByArgs", _functionId, _firstArg, _secondArg, _thirdArg)
   776  
   777  	if err != nil {
   778  		return *new([32]byte), *new([]common.Address), *new(*big.Int), *new(uint8), err
   779  	}
   780  
   781  	out0 := *abi.ConvertType(out[0], new([32]byte)).(*[32]byte)
   782  	out1 := *abi.ConvertType(out[1], new([]common.Address)).(*[]common.Address)
   783  	out2 := *abi.ConvertType(out[2], new(*big.Int)).(**big.Int)
   784  	out3 := *abi.ConvertType(out[3], new(uint8)).(*uint8)
   785  
   786  	return out0, out1, out2, out3, err
   787  
   788  }
   789  
   790  // GetRequestInfoByArgs is a free data retrieval call binding the contract method 0x407091eb.
   791  //
   792  // Solidity: function getRequestInfoByArgs(uint8 _functionId, bytes32 _firstArg, bytes32 _secondArg, bytes32 _thirdArg) view returns(bytes32, address[], uint256, uint8)
   793  func (_AddressBook *AddressBookSession) GetRequestInfoByArgs(_functionId uint8, _firstArg [32]byte, _secondArg [32]byte, _thirdArg [32]byte) ([32]byte, []common.Address, *big.Int, uint8, error) {
   794  	return _AddressBook.Contract.GetRequestInfoByArgs(&_AddressBook.CallOpts, _functionId, _firstArg, _secondArg, _thirdArg)
   795  }
   796  
   797  // GetRequestInfoByArgs is a free data retrieval call binding the contract method 0x407091eb.
   798  //
   799  // Solidity: function getRequestInfoByArgs(uint8 _functionId, bytes32 _firstArg, bytes32 _secondArg, bytes32 _thirdArg) view returns(bytes32, address[], uint256, uint8)
   800  func (_AddressBook *AddressBookCallerSession) GetRequestInfoByArgs(_functionId uint8, _firstArg [32]byte, _secondArg [32]byte, _thirdArg [32]byte) ([32]byte, []common.Address, *big.Int, uint8, error) {
   801  	return _AddressBook.Contract.GetRequestInfoByArgs(&_AddressBook.CallOpts, _functionId, _firstArg, _secondArg, _thirdArg)
   802  }
   803  
   804  // GetState is a free data retrieval call binding the contract method 0x1865c57d.
   805  //
   806  // Solidity: function getState() view returns(address[], uint256)
   807  func (_AddressBook *AddressBookCaller) GetState(opts *bind.CallOpts) ([]common.Address, *big.Int, error) {
   808  	var out []interface{}
   809  	err := _AddressBook.contract.Call(opts, &out, "getState")
   810  
   811  	if err != nil {
   812  		return *new([]common.Address), *new(*big.Int), err
   813  	}
   814  
   815  	out0 := *abi.ConvertType(out[0], new([]common.Address)).(*[]common.Address)
   816  	out1 := *abi.ConvertType(out[1], new(*big.Int)).(**big.Int)
   817  
   818  	return out0, out1, err
   819  
   820  }
   821  
   822  // GetState is a free data retrieval call binding the contract method 0x1865c57d.
   823  //
   824  // Solidity: function getState() view returns(address[], uint256)
   825  func (_AddressBook *AddressBookSession) GetState() ([]common.Address, *big.Int, error) {
   826  	return _AddressBook.Contract.GetState(&_AddressBook.CallOpts)
   827  }
   828  
   829  // GetState is a free data retrieval call binding the contract method 0x1865c57d.
   830  //
   831  // Solidity: function getState() view returns(address[], uint256)
   832  func (_AddressBook *AddressBookCallerSession) GetState() ([]common.Address, *big.Int, error) {
   833  	return _AddressBook.Contract.GetState(&_AddressBook.CallOpts)
   834  }
   835  
   836  // IsActivated is a free data retrieval call binding the contract method 0x4a8c1fb4.
   837  //
   838  // Solidity: function isActivated() view returns(bool)
   839  func (_AddressBook *AddressBookCaller) IsActivated(opts *bind.CallOpts) (bool, error) {
   840  	var out []interface{}
   841  	err := _AddressBook.contract.Call(opts, &out, "isActivated")
   842  
   843  	if err != nil {
   844  		return *new(bool), err
   845  	}
   846  
   847  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
   848  
   849  	return out0, err
   850  
   851  }
   852  
   853  // IsActivated is a free data retrieval call binding the contract method 0x4a8c1fb4.
   854  //
   855  // Solidity: function isActivated() view returns(bool)
   856  func (_AddressBook *AddressBookSession) IsActivated() (bool, error) {
   857  	return _AddressBook.Contract.IsActivated(&_AddressBook.CallOpts)
   858  }
   859  
   860  // IsActivated is a free data retrieval call binding the contract method 0x4a8c1fb4.
   861  //
   862  // Solidity: function isActivated() view returns(bool)
   863  func (_AddressBook *AddressBookCallerSession) IsActivated() (bool, error) {
   864  	return _AddressBook.Contract.IsActivated(&_AddressBook.CallOpts)
   865  }
   866  
   867  // IsConstructed is a free data retrieval call binding the contract method 0x50a5bb69.
   868  //
   869  // Solidity: function isConstructed() view returns(bool)
   870  func (_AddressBook *AddressBookCaller) IsConstructed(opts *bind.CallOpts) (bool, error) {
   871  	var out []interface{}
   872  	err := _AddressBook.contract.Call(opts, &out, "isConstructed")
   873  
   874  	if err != nil {
   875  		return *new(bool), err
   876  	}
   877  
   878  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
   879  
   880  	return out0, err
   881  
   882  }
   883  
   884  // IsConstructed is a free data retrieval call binding the contract method 0x50a5bb69.
   885  //
   886  // Solidity: function isConstructed() view returns(bool)
   887  func (_AddressBook *AddressBookSession) IsConstructed() (bool, error) {
   888  	return _AddressBook.Contract.IsConstructed(&_AddressBook.CallOpts)
   889  }
   890  
   891  // IsConstructed is a free data retrieval call binding the contract method 0x50a5bb69.
   892  //
   893  // Solidity: function isConstructed() view returns(bool)
   894  func (_AddressBook *AddressBookCallerSession) IsConstructed() (bool, error) {
   895  	return _AddressBook.Contract.IsConstructed(&_AddressBook.CallOpts)
   896  }
   897  
   898  // KirContractAddress is a free data retrieval call binding the contract method 0xb858dd95.
   899  //
   900  // Solidity: function kirContractAddress() view returns(address)
   901  func (_AddressBook *AddressBookCaller) KirContractAddress(opts *bind.CallOpts) (common.Address, error) {
   902  	var out []interface{}
   903  	err := _AddressBook.contract.Call(opts, &out, "kirContractAddress")
   904  
   905  	if err != nil {
   906  		return *new(common.Address), err
   907  	}
   908  
   909  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
   910  
   911  	return out0, err
   912  
   913  }
   914  
   915  // KirContractAddress is a free data retrieval call binding the contract method 0xb858dd95.
   916  //
   917  // Solidity: function kirContractAddress() view returns(address)
   918  func (_AddressBook *AddressBookSession) KirContractAddress() (common.Address, error) {
   919  	return _AddressBook.Contract.KirContractAddress(&_AddressBook.CallOpts)
   920  }
   921  
   922  // KirContractAddress is a free data retrieval call binding the contract method 0xb858dd95.
   923  //
   924  // Solidity: function kirContractAddress() view returns(address)
   925  func (_AddressBook *AddressBookCallerSession) KirContractAddress() (common.Address, error) {
   926  	return _AddressBook.Contract.KirContractAddress(&_AddressBook.CallOpts)
   927  }
   928  
   929  // PocContractAddress is a free data retrieval call binding the contract method 0xd267eda5.
   930  //
   931  // Solidity: function pocContractAddress() view returns(address)
   932  func (_AddressBook *AddressBookCaller) PocContractAddress(opts *bind.CallOpts) (common.Address, error) {
   933  	var out []interface{}
   934  	err := _AddressBook.contract.Call(opts, &out, "pocContractAddress")
   935  
   936  	if err != nil {
   937  		return *new(common.Address), err
   938  	}
   939  
   940  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
   941  
   942  	return out0, err
   943  
   944  }
   945  
   946  // PocContractAddress is a free data retrieval call binding the contract method 0xd267eda5.
   947  //
   948  // Solidity: function pocContractAddress() view returns(address)
   949  func (_AddressBook *AddressBookSession) PocContractAddress() (common.Address, error) {
   950  	return _AddressBook.Contract.PocContractAddress(&_AddressBook.CallOpts)
   951  }
   952  
   953  // PocContractAddress is a free data retrieval call binding the contract method 0xd267eda5.
   954  //
   955  // Solidity: function pocContractAddress() view returns(address)
   956  func (_AddressBook *AddressBookCallerSession) PocContractAddress() (common.Address, error) {
   957  	return _AddressBook.Contract.PocContractAddress(&_AddressBook.CallOpts)
   958  }
   959  
   960  // Requirement is a free data retrieval call binding the contract method 0xb7563930.
   961  //
   962  // Solidity: function requirement() view returns(uint256)
   963  func (_AddressBook *AddressBookCaller) Requirement(opts *bind.CallOpts) (*big.Int, error) {
   964  	var out []interface{}
   965  	err := _AddressBook.contract.Call(opts, &out, "requirement")
   966  
   967  	if err != nil {
   968  		return *new(*big.Int), err
   969  	}
   970  
   971  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
   972  
   973  	return out0, err
   974  
   975  }
   976  
   977  // Requirement is a free data retrieval call binding the contract method 0xb7563930.
   978  //
   979  // Solidity: function requirement() view returns(uint256)
   980  func (_AddressBook *AddressBookSession) Requirement() (*big.Int, error) {
   981  	return _AddressBook.Contract.Requirement(&_AddressBook.CallOpts)
   982  }
   983  
   984  // Requirement is a free data retrieval call binding the contract method 0xb7563930.
   985  //
   986  // Solidity: function requirement() view returns(uint256)
   987  func (_AddressBook *AddressBookCallerSession) Requirement() (*big.Int, error) {
   988  	return _AddressBook.Contract.Requirement(&_AddressBook.CallOpts)
   989  }
   990  
   991  // SpareContractAddress is a free data retrieval call binding the contract method 0x6abd623d.
   992  //
   993  // Solidity: function spareContractAddress() view returns(address)
   994  func (_AddressBook *AddressBookCaller) SpareContractAddress(opts *bind.CallOpts) (common.Address, error) {
   995  	var out []interface{}
   996  	err := _AddressBook.contract.Call(opts, &out, "spareContractAddress")
   997  
   998  	if err != nil {
   999  		return *new(common.Address), err
  1000  	}
  1001  
  1002  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
  1003  
  1004  	return out0, err
  1005  
  1006  }
  1007  
  1008  // SpareContractAddress is a free data retrieval call binding the contract method 0x6abd623d.
  1009  //
  1010  // Solidity: function spareContractAddress() view returns(address)
  1011  func (_AddressBook *AddressBookSession) SpareContractAddress() (common.Address, error) {
  1012  	return _AddressBook.Contract.SpareContractAddress(&_AddressBook.CallOpts)
  1013  }
  1014  
  1015  // SpareContractAddress is a free data retrieval call binding the contract method 0x6abd623d.
  1016  //
  1017  // Solidity: function spareContractAddress() view returns(address)
  1018  func (_AddressBook *AddressBookCallerSession) SpareContractAddress() (common.Address, error) {
  1019  	return _AddressBook.Contract.SpareContractAddress(&_AddressBook.CallOpts)
  1020  }
  1021  
  1022  // ActivateAddressBook is a paid mutator transaction binding the contract method 0xcec92466.
  1023  //
  1024  // Solidity: function activateAddressBook() returns()
  1025  func (_AddressBook *AddressBookTransactor) ActivateAddressBook(opts *bind.TransactOpts) (*types.Transaction, error) {
  1026  	return _AddressBook.contract.Transact(opts, "activateAddressBook")
  1027  }
  1028  
  1029  // ActivateAddressBook is a paid mutator transaction binding the contract method 0xcec92466.
  1030  //
  1031  // Solidity: function activateAddressBook() returns()
  1032  func (_AddressBook *AddressBookSession) ActivateAddressBook() (*types.Transaction, error) {
  1033  	return _AddressBook.Contract.ActivateAddressBook(&_AddressBook.TransactOpts)
  1034  }
  1035  
  1036  // ActivateAddressBook is a paid mutator transaction binding the contract method 0xcec92466.
  1037  //
  1038  // Solidity: function activateAddressBook() returns()
  1039  func (_AddressBook *AddressBookTransactorSession) ActivateAddressBook() (*types.Transaction, error) {
  1040  	return _AddressBook.Contract.ActivateAddressBook(&_AddressBook.TransactOpts)
  1041  }
  1042  
  1043  // AddAdmin is a paid mutator transaction binding the contract method 0x70480275.
  1044  //
  1045  // Solidity: function addAdmin(address _admin) returns()
  1046  func (_AddressBook *AddressBookTransactor) AddAdmin(opts *bind.TransactOpts, _admin common.Address) (*types.Transaction, error) {
  1047  	return _AddressBook.contract.Transact(opts, "addAdmin", _admin)
  1048  }
  1049  
  1050  // AddAdmin is a paid mutator transaction binding the contract method 0x70480275.
  1051  //
  1052  // Solidity: function addAdmin(address _admin) returns()
  1053  func (_AddressBook *AddressBookSession) AddAdmin(_admin common.Address) (*types.Transaction, error) {
  1054  	return _AddressBook.Contract.AddAdmin(&_AddressBook.TransactOpts, _admin)
  1055  }
  1056  
  1057  // AddAdmin is a paid mutator transaction binding the contract method 0x70480275.
  1058  //
  1059  // Solidity: function addAdmin(address _admin) returns()
  1060  func (_AddressBook *AddressBookTransactorSession) AddAdmin(_admin common.Address) (*types.Transaction, error) {
  1061  	return _AddressBook.Contract.AddAdmin(&_AddressBook.TransactOpts, _admin)
  1062  }
  1063  
  1064  // ClearRequest is a paid mutator transaction binding the contract method 0x4f97638f.
  1065  //
  1066  // Solidity: function clearRequest() returns()
  1067  func (_AddressBook *AddressBookTransactor) ClearRequest(opts *bind.TransactOpts) (*types.Transaction, error) {
  1068  	return _AddressBook.contract.Transact(opts, "clearRequest")
  1069  }
  1070  
  1071  // ClearRequest is a paid mutator transaction binding the contract method 0x4f97638f.
  1072  //
  1073  // Solidity: function clearRequest() returns()
  1074  func (_AddressBook *AddressBookSession) ClearRequest() (*types.Transaction, error) {
  1075  	return _AddressBook.Contract.ClearRequest(&_AddressBook.TransactOpts)
  1076  }
  1077  
  1078  // ClearRequest is a paid mutator transaction binding the contract method 0x4f97638f.
  1079  //
  1080  // Solidity: function clearRequest() returns()
  1081  func (_AddressBook *AddressBookTransactorSession) ClearRequest() (*types.Transaction, error) {
  1082  	return _AddressBook.Contract.ClearRequest(&_AddressBook.TransactOpts)
  1083  }
  1084  
  1085  // ConstructContract is a paid mutator transaction binding the contract method 0x7894c366.
  1086  //
  1087  // Solidity: function constructContract(address[] _adminList, uint256 _requirement) returns()
  1088  func (_AddressBook *AddressBookTransactor) ConstructContract(opts *bind.TransactOpts, _adminList []common.Address, _requirement *big.Int) (*types.Transaction, error) {
  1089  	return _AddressBook.contract.Transact(opts, "constructContract", _adminList, _requirement)
  1090  }
  1091  
  1092  // ConstructContract is a paid mutator transaction binding the contract method 0x7894c366.
  1093  //
  1094  // Solidity: function constructContract(address[] _adminList, uint256 _requirement) returns()
  1095  func (_AddressBook *AddressBookSession) ConstructContract(_adminList []common.Address, _requirement *big.Int) (*types.Transaction, error) {
  1096  	return _AddressBook.Contract.ConstructContract(&_AddressBook.TransactOpts, _adminList, _requirement)
  1097  }
  1098  
  1099  // ConstructContract is a paid mutator transaction binding the contract method 0x7894c366.
  1100  //
  1101  // Solidity: function constructContract(address[] _adminList, uint256 _requirement) returns()
  1102  func (_AddressBook *AddressBookTransactorSession) ConstructContract(_adminList []common.Address, _requirement *big.Int) (*types.Transaction, error) {
  1103  	return _AddressBook.Contract.ConstructContract(&_AddressBook.TransactOpts, _adminList, _requirement)
  1104  }
  1105  
  1106  // DeleteAdmin is a paid mutator transaction binding the contract method 0x27e1f7df.
  1107  //
  1108  // Solidity: function deleteAdmin(address _admin) returns()
  1109  func (_AddressBook *AddressBookTransactor) DeleteAdmin(opts *bind.TransactOpts, _admin common.Address) (*types.Transaction, error) {
  1110  	return _AddressBook.contract.Transact(opts, "deleteAdmin", _admin)
  1111  }
  1112  
  1113  // DeleteAdmin is a paid mutator transaction binding the contract method 0x27e1f7df.
  1114  //
  1115  // Solidity: function deleteAdmin(address _admin) returns()
  1116  func (_AddressBook *AddressBookSession) DeleteAdmin(_admin common.Address) (*types.Transaction, error) {
  1117  	return _AddressBook.Contract.DeleteAdmin(&_AddressBook.TransactOpts, _admin)
  1118  }
  1119  
  1120  // DeleteAdmin is a paid mutator transaction binding the contract method 0x27e1f7df.
  1121  //
  1122  // Solidity: function deleteAdmin(address _admin) returns()
  1123  func (_AddressBook *AddressBookTransactorSession) DeleteAdmin(_admin common.Address) (*types.Transaction, error) {
  1124  	return _AddressBook.Contract.DeleteAdmin(&_AddressBook.TransactOpts, _admin)
  1125  }
  1126  
  1127  // RegisterCnStakingContract is a paid mutator transaction binding the contract method 0x298b3c61.
  1128  //
  1129  // Solidity: function registerCnStakingContract(address _cnNodeId, address _cnStakingContractAddress, address _cnRewardAddress) returns()
  1130  func (_AddressBook *AddressBookTransactor) RegisterCnStakingContract(opts *bind.TransactOpts, _cnNodeId common.Address, _cnStakingContractAddress common.Address, _cnRewardAddress common.Address) (*types.Transaction, error) {
  1131  	return _AddressBook.contract.Transact(opts, "registerCnStakingContract", _cnNodeId, _cnStakingContractAddress, _cnRewardAddress)
  1132  }
  1133  
  1134  // RegisterCnStakingContract is a paid mutator transaction binding the contract method 0x298b3c61.
  1135  //
  1136  // Solidity: function registerCnStakingContract(address _cnNodeId, address _cnStakingContractAddress, address _cnRewardAddress) returns()
  1137  func (_AddressBook *AddressBookSession) RegisterCnStakingContract(_cnNodeId common.Address, _cnStakingContractAddress common.Address, _cnRewardAddress common.Address) (*types.Transaction, error) {
  1138  	return _AddressBook.Contract.RegisterCnStakingContract(&_AddressBook.TransactOpts, _cnNodeId, _cnStakingContractAddress, _cnRewardAddress)
  1139  }
  1140  
  1141  // RegisterCnStakingContract is a paid mutator transaction binding the contract method 0x298b3c61.
  1142  //
  1143  // Solidity: function registerCnStakingContract(address _cnNodeId, address _cnStakingContractAddress, address _cnRewardAddress) returns()
  1144  func (_AddressBook *AddressBookTransactorSession) RegisterCnStakingContract(_cnNodeId common.Address, _cnStakingContractAddress common.Address, _cnRewardAddress common.Address) (*types.Transaction, error) {
  1145  	return _AddressBook.Contract.RegisterCnStakingContract(&_AddressBook.TransactOpts, _cnNodeId, _cnStakingContractAddress, _cnRewardAddress)
  1146  }
  1147  
  1148  // ReviseRewardAddress is a paid mutator transaction binding the contract method 0x832a2aad.
  1149  //
  1150  // Solidity: function reviseRewardAddress(address _rewardAddress) returns()
  1151  func (_AddressBook *AddressBookTransactor) ReviseRewardAddress(opts *bind.TransactOpts, _rewardAddress common.Address) (*types.Transaction, error) {
  1152  	return _AddressBook.contract.Transact(opts, "reviseRewardAddress", _rewardAddress)
  1153  }
  1154  
  1155  // ReviseRewardAddress is a paid mutator transaction binding the contract method 0x832a2aad.
  1156  //
  1157  // Solidity: function reviseRewardAddress(address _rewardAddress) returns()
  1158  func (_AddressBook *AddressBookSession) ReviseRewardAddress(_rewardAddress common.Address) (*types.Transaction, error) {
  1159  	return _AddressBook.Contract.ReviseRewardAddress(&_AddressBook.TransactOpts, _rewardAddress)
  1160  }
  1161  
  1162  // ReviseRewardAddress is a paid mutator transaction binding the contract method 0x832a2aad.
  1163  //
  1164  // Solidity: function reviseRewardAddress(address _rewardAddress) returns()
  1165  func (_AddressBook *AddressBookTransactorSession) ReviseRewardAddress(_rewardAddress common.Address) (*types.Transaction, error) {
  1166  	return _AddressBook.Contract.ReviseRewardAddress(&_AddressBook.TransactOpts, _rewardAddress)
  1167  }
  1168  
  1169  // RevokeRequest is a paid mutator transaction binding the contract method 0x3f0628b1.
  1170  //
  1171  // Solidity: function revokeRequest(uint8 _functionId, bytes32 _firstArg, bytes32 _secondArg, bytes32 _thirdArg) returns()
  1172  func (_AddressBook *AddressBookTransactor) RevokeRequest(opts *bind.TransactOpts, _functionId uint8, _firstArg [32]byte, _secondArg [32]byte, _thirdArg [32]byte) (*types.Transaction, error) {
  1173  	return _AddressBook.contract.Transact(opts, "revokeRequest", _functionId, _firstArg, _secondArg, _thirdArg)
  1174  }
  1175  
  1176  // RevokeRequest is a paid mutator transaction binding the contract method 0x3f0628b1.
  1177  //
  1178  // Solidity: function revokeRequest(uint8 _functionId, bytes32 _firstArg, bytes32 _secondArg, bytes32 _thirdArg) returns()
  1179  func (_AddressBook *AddressBookSession) RevokeRequest(_functionId uint8, _firstArg [32]byte, _secondArg [32]byte, _thirdArg [32]byte) (*types.Transaction, error) {
  1180  	return _AddressBook.Contract.RevokeRequest(&_AddressBook.TransactOpts, _functionId, _firstArg, _secondArg, _thirdArg)
  1181  }
  1182  
  1183  // RevokeRequest is a paid mutator transaction binding the contract method 0x3f0628b1.
  1184  //
  1185  // Solidity: function revokeRequest(uint8 _functionId, bytes32 _firstArg, bytes32 _secondArg, bytes32 _thirdArg) returns()
  1186  func (_AddressBook *AddressBookTransactorSession) RevokeRequest(_functionId uint8, _firstArg [32]byte, _secondArg [32]byte, _thirdArg [32]byte) (*types.Transaction, error) {
  1187  	return _AddressBook.Contract.RevokeRequest(&_AddressBook.TransactOpts, _functionId, _firstArg, _secondArg, _thirdArg)
  1188  }
  1189  
  1190  // SubmitActivateAddressBook is a paid mutator transaction binding the contract method 0xfeb15ca1.
  1191  //
  1192  // Solidity: function submitActivateAddressBook() returns()
  1193  func (_AddressBook *AddressBookTransactor) SubmitActivateAddressBook(opts *bind.TransactOpts) (*types.Transaction, error) {
  1194  	return _AddressBook.contract.Transact(opts, "submitActivateAddressBook")
  1195  }
  1196  
  1197  // SubmitActivateAddressBook is a paid mutator transaction binding the contract method 0xfeb15ca1.
  1198  //
  1199  // Solidity: function submitActivateAddressBook() returns()
  1200  func (_AddressBook *AddressBookSession) SubmitActivateAddressBook() (*types.Transaction, error) {
  1201  	return _AddressBook.Contract.SubmitActivateAddressBook(&_AddressBook.TransactOpts)
  1202  }
  1203  
  1204  // SubmitActivateAddressBook is a paid mutator transaction binding the contract method 0xfeb15ca1.
  1205  //
  1206  // Solidity: function submitActivateAddressBook() returns()
  1207  func (_AddressBook *AddressBookTransactorSession) SubmitActivateAddressBook() (*types.Transaction, error) {
  1208  	return _AddressBook.Contract.SubmitActivateAddressBook(&_AddressBook.TransactOpts)
  1209  }
  1210  
  1211  // SubmitAddAdmin is a paid mutator transaction binding the contract method 0x863f5c0a.
  1212  //
  1213  // Solidity: function submitAddAdmin(address _admin) returns()
  1214  func (_AddressBook *AddressBookTransactor) SubmitAddAdmin(opts *bind.TransactOpts, _admin common.Address) (*types.Transaction, error) {
  1215  	return _AddressBook.contract.Transact(opts, "submitAddAdmin", _admin)
  1216  }
  1217  
  1218  // SubmitAddAdmin is a paid mutator transaction binding the contract method 0x863f5c0a.
  1219  //
  1220  // Solidity: function submitAddAdmin(address _admin) returns()
  1221  func (_AddressBook *AddressBookSession) SubmitAddAdmin(_admin common.Address) (*types.Transaction, error) {
  1222  	return _AddressBook.Contract.SubmitAddAdmin(&_AddressBook.TransactOpts, _admin)
  1223  }
  1224  
  1225  // SubmitAddAdmin is a paid mutator transaction binding the contract method 0x863f5c0a.
  1226  //
  1227  // Solidity: function submitAddAdmin(address _admin) returns()
  1228  func (_AddressBook *AddressBookTransactorSession) SubmitAddAdmin(_admin common.Address) (*types.Transaction, error) {
  1229  	return _AddressBook.Contract.SubmitAddAdmin(&_AddressBook.TransactOpts, _admin)
  1230  }
  1231  
  1232  // SubmitClearRequest is a paid mutator transaction binding the contract method 0x87cd9feb.
  1233  //
  1234  // Solidity: function submitClearRequest() returns()
  1235  func (_AddressBook *AddressBookTransactor) SubmitClearRequest(opts *bind.TransactOpts) (*types.Transaction, error) {
  1236  	return _AddressBook.contract.Transact(opts, "submitClearRequest")
  1237  }
  1238  
  1239  // SubmitClearRequest is a paid mutator transaction binding the contract method 0x87cd9feb.
  1240  //
  1241  // Solidity: function submitClearRequest() returns()
  1242  func (_AddressBook *AddressBookSession) SubmitClearRequest() (*types.Transaction, error) {
  1243  	return _AddressBook.Contract.SubmitClearRequest(&_AddressBook.TransactOpts)
  1244  }
  1245  
  1246  // SubmitClearRequest is a paid mutator transaction binding the contract method 0x87cd9feb.
  1247  //
  1248  // Solidity: function submitClearRequest() returns()
  1249  func (_AddressBook *AddressBookTransactorSession) SubmitClearRequest() (*types.Transaction, error) {
  1250  	return _AddressBook.Contract.SubmitClearRequest(&_AddressBook.TransactOpts)
  1251  }
  1252  
  1253  // SubmitDeleteAdmin is a paid mutator transaction binding the contract method 0x791b5123.
  1254  //
  1255  // Solidity: function submitDeleteAdmin(address _admin) returns()
  1256  func (_AddressBook *AddressBookTransactor) SubmitDeleteAdmin(opts *bind.TransactOpts, _admin common.Address) (*types.Transaction, error) {
  1257  	return _AddressBook.contract.Transact(opts, "submitDeleteAdmin", _admin)
  1258  }
  1259  
  1260  // SubmitDeleteAdmin is a paid mutator transaction binding the contract method 0x791b5123.
  1261  //
  1262  // Solidity: function submitDeleteAdmin(address _admin) returns()
  1263  func (_AddressBook *AddressBookSession) SubmitDeleteAdmin(_admin common.Address) (*types.Transaction, error) {
  1264  	return _AddressBook.Contract.SubmitDeleteAdmin(&_AddressBook.TransactOpts, _admin)
  1265  }
  1266  
  1267  // SubmitDeleteAdmin is a paid mutator transaction binding the contract method 0x791b5123.
  1268  //
  1269  // Solidity: function submitDeleteAdmin(address _admin) returns()
  1270  func (_AddressBook *AddressBookTransactorSession) SubmitDeleteAdmin(_admin common.Address) (*types.Transaction, error) {
  1271  	return _AddressBook.Contract.SubmitDeleteAdmin(&_AddressBook.TransactOpts, _admin)
  1272  }
  1273  
  1274  // SubmitRegisterCnStakingContract is a paid mutator transaction binding the contract method 0xcc11efc0.
  1275  //
  1276  // Solidity: function submitRegisterCnStakingContract(address _cnNodeId, address _cnStakingContractAddress, address _cnRewardAddress) returns()
  1277  func (_AddressBook *AddressBookTransactor) SubmitRegisterCnStakingContract(opts *bind.TransactOpts, _cnNodeId common.Address, _cnStakingContractAddress common.Address, _cnRewardAddress common.Address) (*types.Transaction, error) {
  1278  	return _AddressBook.contract.Transact(opts, "submitRegisterCnStakingContract", _cnNodeId, _cnStakingContractAddress, _cnRewardAddress)
  1279  }
  1280  
  1281  // SubmitRegisterCnStakingContract is a paid mutator transaction binding the contract method 0xcc11efc0.
  1282  //
  1283  // Solidity: function submitRegisterCnStakingContract(address _cnNodeId, address _cnStakingContractAddress, address _cnRewardAddress) returns()
  1284  func (_AddressBook *AddressBookSession) SubmitRegisterCnStakingContract(_cnNodeId common.Address, _cnStakingContractAddress common.Address, _cnRewardAddress common.Address) (*types.Transaction, error) {
  1285  	return _AddressBook.Contract.SubmitRegisterCnStakingContract(&_AddressBook.TransactOpts, _cnNodeId, _cnStakingContractAddress, _cnRewardAddress)
  1286  }
  1287  
  1288  // SubmitRegisterCnStakingContract is a paid mutator transaction binding the contract method 0xcc11efc0.
  1289  //
  1290  // Solidity: function submitRegisterCnStakingContract(address _cnNodeId, address _cnStakingContractAddress, address _cnRewardAddress) returns()
  1291  func (_AddressBook *AddressBookTransactorSession) SubmitRegisterCnStakingContract(_cnNodeId common.Address, _cnStakingContractAddress common.Address, _cnRewardAddress common.Address) (*types.Transaction, error) {
  1292  	return _AddressBook.Contract.SubmitRegisterCnStakingContract(&_AddressBook.TransactOpts, _cnNodeId, _cnStakingContractAddress, _cnRewardAddress)
  1293  }
  1294  
  1295  // SubmitUnregisterCnStakingContract is a paid mutator transaction binding the contract method 0xb5067706.
  1296  //
  1297  // Solidity: function submitUnregisterCnStakingContract(address _cnNodeId) returns()
  1298  func (_AddressBook *AddressBookTransactor) SubmitUnregisterCnStakingContract(opts *bind.TransactOpts, _cnNodeId common.Address) (*types.Transaction, error) {
  1299  	return _AddressBook.contract.Transact(opts, "submitUnregisterCnStakingContract", _cnNodeId)
  1300  }
  1301  
  1302  // SubmitUnregisterCnStakingContract is a paid mutator transaction binding the contract method 0xb5067706.
  1303  //
  1304  // Solidity: function submitUnregisterCnStakingContract(address _cnNodeId) returns()
  1305  func (_AddressBook *AddressBookSession) SubmitUnregisterCnStakingContract(_cnNodeId common.Address) (*types.Transaction, error) {
  1306  	return _AddressBook.Contract.SubmitUnregisterCnStakingContract(&_AddressBook.TransactOpts, _cnNodeId)
  1307  }
  1308  
  1309  // SubmitUnregisterCnStakingContract is a paid mutator transaction binding the contract method 0xb5067706.
  1310  //
  1311  // Solidity: function submitUnregisterCnStakingContract(address _cnNodeId) returns()
  1312  func (_AddressBook *AddressBookTransactorSession) SubmitUnregisterCnStakingContract(_cnNodeId common.Address) (*types.Transaction, error) {
  1313  	return _AddressBook.Contract.SubmitUnregisterCnStakingContract(&_AddressBook.TransactOpts, _cnNodeId)
  1314  }
  1315  
  1316  // SubmitUpdateKirContract is a paid mutator transaction binding the contract method 0x9258d768.
  1317  //
  1318  // Solidity: function submitUpdateKirContract(address _kirContractAddress, uint256 _version) returns()
  1319  func (_AddressBook *AddressBookTransactor) SubmitUpdateKirContract(opts *bind.TransactOpts, _kirContractAddress common.Address, _version *big.Int) (*types.Transaction, error) {
  1320  	return _AddressBook.contract.Transact(opts, "submitUpdateKirContract", _kirContractAddress, _version)
  1321  }
  1322  
  1323  // SubmitUpdateKirContract is a paid mutator transaction binding the contract method 0x9258d768.
  1324  //
  1325  // Solidity: function submitUpdateKirContract(address _kirContractAddress, uint256 _version) returns()
  1326  func (_AddressBook *AddressBookSession) SubmitUpdateKirContract(_kirContractAddress common.Address, _version *big.Int) (*types.Transaction, error) {
  1327  	return _AddressBook.Contract.SubmitUpdateKirContract(&_AddressBook.TransactOpts, _kirContractAddress, _version)
  1328  }
  1329  
  1330  // SubmitUpdateKirContract is a paid mutator transaction binding the contract method 0x9258d768.
  1331  //
  1332  // Solidity: function submitUpdateKirContract(address _kirContractAddress, uint256 _version) returns()
  1333  func (_AddressBook *AddressBookTransactorSession) SubmitUpdateKirContract(_kirContractAddress common.Address, _version *big.Int) (*types.Transaction, error) {
  1334  	return _AddressBook.Contract.SubmitUpdateKirContract(&_AddressBook.TransactOpts, _kirContractAddress, _version)
  1335  }
  1336  
  1337  // SubmitUpdatePocContract is a paid mutator transaction binding the contract method 0x21ac4ad4.
  1338  //
  1339  // Solidity: function submitUpdatePocContract(address _pocContractAddress, uint256 _version) returns()
  1340  func (_AddressBook *AddressBookTransactor) SubmitUpdatePocContract(opts *bind.TransactOpts, _pocContractAddress common.Address, _version *big.Int) (*types.Transaction, error) {
  1341  	return _AddressBook.contract.Transact(opts, "submitUpdatePocContract", _pocContractAddress, _version)
  1342  }
  1343  
  1344  // SubmitUpdatePocContract is a paid mutator transaction binding the contract method 0x21ac4ad4.
  1345  //
  1346  // Solidity: function submitUpdatePocContract(address _pocContractAddress, uint256 _version) returns()
  1347  func (_AddressBook *AddressBookSession) SubmitUpdatePocContract(_pocContractAddress common.Address, _version *big.Int) (*types.Transaction, error) {
  1348  	return _AddressBook.Contract.SubmitUpdatePocContract(&_AddressBook.TransactOpts, _pocContractAddress, _version)
  1349  }
  1350  
  1351  // SubmitUpdatePocContract is a paid mutator transaction binding the contract method 0x21ac4ad4.
  1352  //
  1353  // Solidity: function submitUpdatePocContract(address _pocContractAddress, uint256 _version) returns()
  1354  func (_AddressBook *AddressBookTransactorSession) SubmitUpdatePocContract(_pocContractAddress common.Address, _version *big.Int) (*types.Transaction, error) {
  1355  	return _AddressBook.Contract.SubmitUpdatePocContract(&_AddressBook.TransactOpts, _pocContractAddress, _version)
  1356  }
  1357  
  1358  // SubmitUpdateRequirement is a paid mutator transaction binding the contract method 0xe748357b.
  1359  //
  1360  // Solidity: function submitUpdateRequirement(uint256 _requirement) returns()
  1361  func (_AddressBook *AddressBookTransactor) SubmitUpdateRequirement(opts *bind.TransactOpts, _requirement *big.Int) (*types.Transaction, error) {
  1362  	return _AddressBook.contract.Transact(opts, "submitUpdateRequirement", _requirement)
  1363  }
  1364  
  1365  // SubmitUpdateRequirement is a paid mutator transaction binding the contract method 0xe748357b.
  1366  //
  1367  // Solidity: function submitUpdateRequirement(uint256 _requirement) returns()
  1368  func (_AddressBook *AddressBookSession) SubmitUpdateRequirement(_requirement *big.Int) (*types.Transaction, error) {
  1369  	return _AddressBook.Contract.SubmitUpdateRequirement(&_AddressBook.TransactOpts, _requirement)
  1370  }
  1371  
  1372  // SubmitUpdateRequirement is a paid mutator transaction binding the contract method 0xe748357b.
  1373  //
  1374  // Solidity: function submitUpdateRequirement(uint256 _requirement) returns()
  1375  func (_AddressBook *AddressBookTransactorSession) SubmitUpdateRequirement(_requirement *big.Int) (*types.Transaction, error) {
  1376  	return _AddressBook.Contract.SubmitUpdateRequirement(&_AddressBook.TransactOpts, _requirement)
  1377  }
  1378  
  1379  // SubmitUpdateSpareContract is a paid mutator transaction binding the contract method 0x394a144a.
  1380  //
  1381  // Solidity: function submitUpdateSpareContract(address _spareContractAddress) returns()
  1382  func (_AddressBook *AddressBookTransactor) SubmitUpdateSpareContract(opts *bind.TransactOpts, _spareContractAddress common.Address) (*types.Transaction, error) {
  1383  	return _AddressBook.contract.Transact(opts, "submitUpdateSpareContract", _spareContractAddress)
  1384  }
  1385  
  1386  // SubmitUpdateSpareContract is a paid mutator transaction binding the contract method 0x394a144a.
  1387  //
  1388  // Solidity: function submitUpdateSpareContract(address _spareContractAddress) returns()
  1389  func (_AddressBook *AddressBookSession) SubmitUpdateSpareContract(_spareContractAddress common.Address) (*types.Transaction, error) {
  1390  	return _AddressBook.Contract.SubmitUpdateSpareContract(&_AddressBook.TransactOpts, _spareContractAddress)
  1391  }
  1392  
  1393  // SubmitUpdateSpareContract is a paid mutator transaction binding the contract method 0x394a144a.
  1394  //
  1395  // Solidity: function submitUpdateSpareContract(address _spareContractAddress) returns()
  1396  func (_AddressBook *AddressBookTransactorSession) SubmitUpdateSpareContract(_spareContractAddress common.Address) (*types.Transaction, error) {
  1397  	return _AddressBook.Contract.SubmitUpdateSpareContract(&_AddressBook.TransactOpts, _spareContractAddress)
  1398  }
  1399  
  1400  // UnregisterCnStakingContract is a paid mutator transaction binding the contract method 0x579740db.
  1401  //
  1402  // Solidity: function unregisterCnStakingContract(address _cnNodeId) returns()
  1403  func (_AddressBook *AddressBookTransactor) UnregisterCnStakingContract(opts *bind.TransactOpts, _cnNodeId common.Address) (*types.Transaction, error) {
  1404  	return _AddressBook.contract.Transact(opts, "unregisterCnStakingContract", _cnNodeId)
  1405  }
  1406  
  1407  // UnregisterCnStakingContract is a paid mutator transaction binding the contract method 0x579740db.
  1408  //
  1409  // Solidity: function unregisterCnStakingContract(address _cnNodeId) returns()
  1410  func (_AddressBook *AddressBookSession) UnregisterCnStakingContract(_cnNodeId common.Address) (*types.Transaction, error) {
  1411  	return _AddressBook.Contract.UnregisterCnStakingContract(&_AddressBook.TransactOpts, _cnNodeId)
  1412  }
  1413  
  1414  // UnregisterCnStakingContract is a paid mutator transaction binding the contract method 0x579740db.
  1415  //
  1416  // Solidity: function unregisterCnStakingContract(address _cnNodeId) returns()
  1417  func (_AddressBook *AddressBookTransactorSession) UnregisterCnStakingContract(_cnNodeId common.Address) (*types.Transaction, error) {
  1418  	return _AddressBook.Contract.UnregisterCnStakingContract(&_AddressBook.TransactOpts, _cnNodeId)
  1419  }
  1420  
  1421  // UpdateKirContract is a paid mutator transaction binding the contract method 0x4c5d435c.
  1422  //
  1423  // Solidity: function updateKirContract(address _kirContractAddress, uint256 _version) returns()
  1424  func (_AddressBook *AddressBookTransactor) UpdateKirContract(opts *bind.TransactOpts, _kirContractAddress common.Address, _version *big.Int) (*types.Transaction, error) {
  1425  	return _AddressBook.contract.Transact(opts, "updateKirContract", _kirContractAddress, _version)
  1426  }
  1427  
  1428  // UpdateKirContract is a paid mutator transaction binding the contract method 0x4c5d435c.
  1429  //
  1430  // Solidity: function updateKirContract(address _kirContractAddress, uint256 _version) returns()
  1431  func (_AddressBook *AddressBookSession) UpdateKirContract(_kirContractAddress common.Address, _version *big.Int) (*types.Transaction, error) {
  1432  	return _AddressBook.Contract.UpdateKirContract(&_AddressBook.TransactOpts, _kirContractAddress, _version)
  1433  }
  1434  
  1435  // UpdateKirContract is a paid mutator transaction binding the contract method 0x4c5d435c.
  1436  //
  1437  // Solidity: function updateKirContract(address _kirContractAddress, uint256 _version) returns()
  1438  func (_AddressBook *AddressBookTransactorSession) UpdateKirContract(_kirContractAddress common.Address, _version *big.Int) (*types.Transaction, error) {
  1439  	return _AddressBook.Contract.UpdateKirContract(&_AddressBook.TransactOpts, _kirContractAddress, _version)
  1440  }
  1441  
  1442  // UpdatePocContract is a paid mutator transaction binding the contract method 0xc7e9de75.
  1443  //
  1444  // Solidity: function updatePocContract(address _pocContractAddress, uint256 _version) returns()
  1445  func (_AddressBook *AddressBookTransactor) UpdatePocContract(opts *bind.TransactOpts, _pocContractAddress common.Address, _version *big.Int) (*types.Transaction, error) {
  1446  	return _AddressBook.contract.Transact(opts, "updatePocContract", _pocContractAddress, _version)
  1447  }
  1448  
  1449  // UpdatePocContract is a paid mutator transaction binding the contract method 0xc7e9de75.
  1450  //
  1451  // Solidity: function updatePocContract(address _pocContractAddress, uint256 _version) returns()
  1452  func (_AddressBook *AddressBookSession) UpdatePocContract(_pocContractAddress common.Address, _version *big.Int) (*types.Transaction, error) {
  1453  	return _AddressBook.Contract.UpdatePocContract(&_AddressBook.TransactOpts, _pocContractAddress, _version)
  1454  }
  1455  
  1456  // UpdatePocContract is a paid mutator transaction binding the contract method 0xc7e9de75.
  1457  //
  1458  // Solidity: function updatePocContract(address _pocContractAddress, uint256 _version) returns()
  1459  func (_AddressBook *AddressBookTransactorSession) UpdatePocContract(_pocContractAddress common.Address, _version *big.Int) (*types.Transaction, error) {
  1460  	return _AddressBook.Contract.UpdatePocContract(&_AddressBook.TransactOpts, _pocContractAddress, _version)
  1461  }
  1462  
  1463  // UpdateRequirement is a paid mutator transaction binding the contract method 0xc47afb3a.
  1464  //
  1465  // Solidity: function updateRequirement(uint256 _requirement) returns()
  1466  func (_AddressBook *AddressBookTransactor) UpdateRequirement(opts *bind.TransactOpts, _requirement *big.Int) (*types.Transaction, error) {
  1467  	return _AddressBook.contract.Transact(opts, "updateRequirement", _requirement)
  1468  }
  1469  
  1470  // UpdateRequirement is a paid mutator transaction binding the contract method 0xc47afb3a.
  1471  //
  1472  // Solidity: function updateRequirement(uint256 _requirement) returns()
  1473  func (_AddressBook *AddressBookSession) UpdateRequirement(_requirement *big.Int) (*types.Transaction, error) {
  1474  	return _AddressBook.Contract.UpdateRequirement(&_AddressBook.TransactOpts, _requirement)
  1475  }
  1476  
  1477  // UpdateRequirement is a paid mutator transaction binding the contract method 0xc47afb3a.
  1478  //
  1479  // Solidity: function updateRequirement(uint256 _requirement) returns()
  1480  func (_AddressBook *AddressBookTransactorSession) UpdateRequirement(_requirement *big.Int) (*types.Transaction, error) {
  1481  	return _AddressBook.Contract.UpdateRequirement(&_AddressBook.TransactOpts, _requirement)
  1482  }
  1483  
  1484  // UpdateSpareContract is a paid mutator transaction binding the contract method 0xafaaf330.
  1485  //
  1486  // Solidity: function updateSpareContract(address _spareContractAddress) returns()
  1487  func (_AddressBook *AddressBookTransactor) UpdateSpareContract(opts *bind.TransactOpts, _spareContractAddress common.Address) (*types.Transaction, error) {
  1488  	return _AddressBook.contract.Transact(opts, "updateSpareContract", _spareContractAddress)
  1489  }
  1490  
  1491  // UpdateSpareContract is a paid mutator transaction binding the contract method 0xafaaf330.
  1492  //
  1493  // Solidity: function updateSpareContract(address _spareContractAddress) returns()
  1494  func (_AddressBook *AddressBookSession) UpdateSpareContract(_spareContractAddress common.Address) (*types.Transaction, error) {
  1495  	return _AddressBook.Contract.UpdateSpareContract(&_AddressBook.TransactOpts, _spareContractAddress)
  1496  }
  1497  
  1498  // UpdateSpareContract is a paid mutator transaction binding the contract method 0xafaaf330.
  1499  //
  1500  // Solidity: function updateSpareContract(address _spareContractAddress) returns()
  1501  func (_AddressBook *AddressBookTransactorSession) UpdateSpareContract(_spareContractAddress common.Address) (*types.Transaction, error) {
  1502  	return _AddressBook.Contract.UpdateSpareContract(&_AddressBook.TransactOpts, _spareContractAddress)
  1503  }
  1504  
  1505  // AddressBookActivateAddressBookIterator is returned from FilterActivateAddressBook and is used to iterate over the raw logs and unpacked data for ActivateAddressBook events raised by the AddressBook contract.
  1506  type AddressBookActivateAddressBookIterator struct {
  1507  	Event *AddressBookActivateAddressBook // Event containing the contract specifics and raw log
  1508  
  1509  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  1510  	event    string              // Event name to use for unpacking event data
  1511  
  1512  	logs chan types.Log      // Log channel receiving the found contract events
  1513  	sub  klaytn.Subscription // Subscription for errors, completion and termination
  1514  	done bool                // Whether the subscription completed delivering logs
  1515  	fail error               // Occurred error to stop iteration
  1516  }
  1517  
  1518  // Next advances the iterator to the subsequent event, returning whether there
  1519  // are any more events found. In case of a retrieval or parsing error, false is
  1520  // returned and Error() can be queried for the exact failure.
  1521  func (it *AddressBookActivateAddressBookIterator) Next() bool {
  1522  	// If the iterator failed, stop iterating
  1523  	if it.fail != nil {
  1524  		return false
  1525  	}
  1526  	// If the iterator completed, deliver directly whatever's available
  1527  	if it.done {
  1528  		select {
  1529  		case log := <-it.logs:
  1530  			it.Event = new(AddressBookActivateAddressBook)
  1531  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1532  				it.fail = err
  1533  				return false
  1534  			}
  1535  			it.Event.Raw = log
  1536  			return true
  1537  
  1538  		default:
  1539  			return false
  1540  		}
  1541  	}
  1542  	// Iterator still in progress, wait for either a data or an error event
  1543  	select {
  1544  	case log := <-it.logs:
  1545  		it.Event = new(AddressBookActivateAddressBook)
  1546  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1547  			it.fail = err
  1548  			return false
  1549  		}
  1550  		it.Event.Raw = log
  1551  		return true
  1552  
  1553  	case err := <-it.sub.Err():
  1554  		it.done = true
  1555  		it.fail = err
  1556  		return it.Next()
  1557  	}
  1558  }
  1559  
  1560  // Error returns any retrieval or parsing error occurred during filtering.
  1561  func (it *AddressBookActivateAddressBookIterator) Error() error {
  1562  	return it.fail
  1563  }
  1564  
  1565  // Close terminates the iteration process, releasing any pending underlying
  1566  // resources.
  1567  func (it *AddressBookActivateAddressBookIterator) Close() error {
  1568  	it.sub.Unsubscribe()
  1569  	return nil
  1570  }
  1571  
  1572  // AddressBookActivateAddressBook represents a ActivateAddressBook event raised by the AddressBook contract.
  1573  type AddressBookActivateAddressBook struct {
  1574  	Raw types.Log // Blockchain specific contextual infos
  1575  }
  1576  
  1577  // FilterActivateAddressBook is a free log retrieval operation binding the contract event 0x29d89931226d613bf878a0be8c635eaf2049121c8c68d5ad80a78f0ac9005d4b.
  1578  //
  1579  // Solidity: event ActivateAddressBook()
  1580  func (_AddressBook *AddressBookFilterer) FilterActivateAddressBook(opts *bind.FilterOpts) (*AddressBookActivateAddressBookIterator, error) {
  1581  
  1582  	logs, sub, err := _AddressBook.contract.FilterLogs(opts, "ActivateAddressBook")
  1583  	if err != nil {
  1584  		return nil, err
  1585  	}
  1586  	return &AddressBookActivateAddressBookIterator{contract: _AddressBook.contract, event: "ActivateAddressBook", logs: logs, sub: sub}, nil
  1587  }
  1588  
  1589  // WatchActivateAddressBook is a free log subscription operation binding the contract event 0x29d89931226d613bf878a0be8c635eaf2049121c8c68d5ad80a78f0ac9005d4b.
  1590  //
  1591  // Solidity: event ActivateAddressBook()
  1592  func (_AddressBook *AddressBookFilterer) WatchActivateAddressBook(opts *bind.WatchOpts, sink chan<- *AddressBookActivateAddressBook) (event.Subscription, error) {
  1593  
  1594  	logs, sub, err := _AddressBook.contract.WatchLogs(opts, "ActivateAddressBook")
  1595  	if err != nil {
  1596  		return nil, err
  1597  	}
  1598  	return event.NewSubscription(func(quit <-chan struct{}) error {
  1599  		defer sub.Unsubscribe()
  1600  		for {
  1601  			select {
  1602  			case log := <-logs:
  1603  				// New log arrived, parse the event and forward to the user
  1604  				event := new(AddressBookActivateAddressBook)
  1605  				if err := _AddressBook.contract.UnpackLog(event, "ActivateAddressBook", log); err != nil {
  1606  					return err
  1607  				}
  1608  				event.Raw = log
  1609  
  1610  				select {
  1611  				case sink <- event:
  1612  				case err := <-sub.Err():
  1613  					return err
  1614  				case <-quit:
  1615  					return nil
  1616  				}
  1617  			case err := <-sub.Err():
  1618  				return err
  1619  			case <-quit:
  1620  				return nil
  1621  			}
  1622  		}
  1623  	}), nil
  1624  }
  1625  
  1626  // ParseActivateAddressBook is a log parse operation binding the contract event 0x29d89931226d613bf878a0be8c635eaf2049121c8c68d5ad80a78f0ac9005d4b.
  1627  //
  1628  // Solidity: event ActivateAddressBook()
  1629  func (_AddressBook *AddressBookFilterer) ParseActivateAddressBook(log types.Log) (*AddressBookActivateAddressBook, error) {
  1630  	event := new(AddressBookActivateAddressBook)
  1631  	if err := _AddressBook.contract.UnpackLog(event, "ActivateAddressBook", log); err != nil {
  1632  		return nil, err
  1633  	}
  1634  	return event, nil
  1635  }
  1636  
  1637  // AddressBookAddAdminIterator is returned from FilterAddAdmin and is used to iterate over the raw logs and unpacked data for AddAdmin events raised by the AddressBook contract.
  1638  type AddressBookAddAdminIterator struct {
  1639  	Event *AddressBookAddAdmin // Event containing the contract specifics and raw log
  1640  
  1641  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  1642  	event    string              // Event name to use for unpacking event data
  1643  
  1644  	logs chan types.Log      // Log channel receiving the found contract events
  1645  	sub  klaytn.Subscription // Subscription for errors, completion and termination
  1646  	done bool                // Whether the subscription completed delivering logs
  1647  	fail error               // Occurred error to stop iteration
  1648  }
  1649  
  1650  // Next advances the iterator to the subsequent event, returning whether there
  1651  // are any more events found. In case of a retrieval or parsing error, false is
  1652  // returned and Error() can be queried for the exact failure.
  1653  func (it *AddressBookAddAdminIterator) Next() bool {
  1654  	// If the iterator failed, stop iterating
  1655  	if it.fail != nil {
  1656  		return false
  1657  	}
  1658  	// If the iterator completed, deliver directly whatever's available
  1659  	if it.done {
  1660  		select {
  1661  		case log := <-it.logs:
  1662  			it.Event = new(AddressBookAddAdmin)
  1663  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1664  				it.fail = err
  1665  				return false
  1666  			}
  1667  			it.Event.Raw = log
  1668  			return true
  1669  
  1670  		default:
  1671  			return false
  1672  		}
  1673  	}
  1674  	// Iterator still in progress, wait for either a data or an error event
  1675  	select {
  1676  	case log := <-it.logs:
  1677  		it.Event = new(AddressBookAddAdmin)
  1678  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1679  			it.fail = err
  1680  			return false
  1681  		}
  1682  		it.Event.Raw = log
  1683  		return true
  1684  
  1685  	case err := <-it.sub.Err():
  1686  		it.done = true
  1687  		it.fail = err
  1688  		return it.Next()
  1689  	}
  1690  }
  1691  
  1692  // Error returns any retrieval or parsing error occurred during filtering.
  1693  func (it *AddressBookAddAdminIterator) Error() error {
  1694  	return it.fail
  1695  }
  1696  
  1697  // Close terminates the iteration process, releasing any pending underlying
  1698  // resources.
  1699  func (it *AddressBookAddAdminIterator) Close() error {
  1700  	it.sub.Unsubscribe()
  1701  	return nil
  1702  }
  1703  
  1704  // AddressBookAddAdmin represents a AddAdmin event raised by the AddressBook contract.
  1705  type AddressBookAddAdmin struct {
  1706  	Admin common.Address
  1707  	Raw   types.Log // Blockchain specific contextual infos
  1708  }
  1709  
  1710  // FilterAddAdmin is a free log retrieval operation binding the contract event 0xad6de4452a631e641cb59902236607946ce9272b9b981f2f80e8d129cb9084ba.
  1711  //
  1712  // Solidity: event AddAdmin(address indexed admin)
  1713  func (_AddressBook *AddressBookFilterer) FilterAddAdmin(opts *bind.FilterOpts, admin []common.Address) (*AddressBookAddAdminIterator, error) {
  1714  
  1715  	var adminRule []interface{}
  1716  	for _, adminItem := range admin {
  1717  		adminRule = append(adminRule, adminItem)
  1718  	}
  1719  
  1720  	logs, sub, err := _AddressBook.contract.FilterLogs(opts, "AddAdmin", adminRule)
  1721  	if err != nil {
  1722  		return nil, err
  1723  	}
  1724  	return &AddressBookAddAdminIterator{contract: _AddressBook.contract, event: "AddAdmin", logs: logs, sub: sub}, nil
  1725  }
  1726  
  1727  // WatchAddAdmin is a free log subscription operation binding the contract event 0xad6de4452a631e641cb59902236607946ce9272b9b981f2f80e8d129cb9084ba.
  1728  //
  1729  // Solidity: event AddAdmin(address indexed admin)
  1730  func (_AddressBook *AddressBookFilterer) WatchAddAdmin(opts *bind.WatchOpts, sink chan<- *AddressBookAddAdmin, admin []common.Address) (event.Subscription, error) {
  1731  
  1732  	var adminRule []interface{}
  1733  	for _, adminItem := range admin {
  1734  		adminRule = append(adminRule, adminItem)
  1735  	}
  1736  
  1737  	logs, sub, err := _AddressBook.contract.WatchLogs(opts, "AddAdmin", adminRule)
  1738  	if err != nil {
  1739  		return nil, err
  1740  	}
  1741  	return event.NewSubscription(func(quit <-chan struct{}) error {
  1742  		defer sub.Unsubscribe()
  1743  		for {
  1744  			select {
  1745  			case log := <-logs:
  1746  				// New log arrived, parse the event and forward to the user
  1747  				event := new(AddressBookAddAdmin)
  1748  				if err := _AddressBook.contract.UnpackLog(event, "AddAdmin", log); err != nil {
  1749  					return err
  1750  				}
  1751  				event.Raw = log
  1752  
  1753  				select {
  1754  				case sink <- event:
  1755  				case err := <-sub.Err():
  1756  					return err
  1757  				case <-quit:
  1758  					return nil
  1759  				}
  1760  			case err := <-sub.Err():
  1761  				return err
  1762  			case <-quit:
  1763  				return nil
  1764  			}
  1765  		}
  1766  	}), nil
  1767  }
  1768  
  1769  // ParseAddAdmin is a log parse operation binding the contract event 0xad6de4452a631e641cb59902236607946ce9272b9b981f2f80e8d129cb9084ba.
  1770  //
  1771  // Solidity: event AddAdmin(address indexed admin)
  1772  func (_AddressBook *AddressBookFilterer) ParseAddAdmin(log types.Log) (*AddressBookAddAdmin, error) {
  1773  	event := new(AddressBookAddAdmin)
  1774  	if err := _AddressBook.contract.UnpackLog(event, "AddAdmin", log); err != nil {
  1775  		return nil, err
  1776  	}
  1777  	return event, nil
  1778  }
  1779  
  1780  // AddressBookCancelRequestIterator is returned from FilterCancelRequest and is used to iterate over the raw logs and unpacked data for CancelRequest events raised by the AddressBook contract.
  1781  type AddressBookCancelRequestIterator struct {
  1782  	Event *AddressBookCancelRequest // Event containing the contract specifics and raw log
  1783  
  1784  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  1785  	event    string              // Event name to use for unpacking event data
  1786  
  1787  	logs chan types.Log      // Log channel receiving the found contract events
  1788  	sub  klaytn.Subscription // Subscription for errors, completion and termination
  1789  	done bool                // Whether the subscription completed delivering logs
  1790  	fail error               // Occurred error to stop iteration
  1791  }
  1792  
  1793  // Next advances the iterator to the subsequent event, returning whether there
  1794  // are any more events found. In case of a retrieval or parsing error, false is
  1795  // returned and Error() can be queried for the exact failure.
  1796  func (it *AddressBookCancelRequestIterator) Next() bool {
  1797  	// If the iterator failed, stop iterating
  1798  	if it.fail != nil {
  1799  		return false
  1800  	}
  1801  	// If the iterator completed, deliver directly whatever's available
  1802  	if it.done {
  1803  		select {
  1804  		case log := <-it.logs:
  1805  			it.Event = new(AddressBookCancelRequest)
  1806  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1807  				it.fail = err
  1808  				return false
  1809  			}
  1810  			it.Event.Raw = log
  1811  			return true
  1812  
  1813  		default:
  1814  			return false
  1815  		}
  1816  	}
  1817  	// Iterator still in progress, wait for either a data or an error event
  1818  	select {
  1819  	case log := <-it.logs:
  1820  		it.Event = new(AddressBookCancelRequest)
  1821  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1822  			it.fail = err
  1823  			return false
  1824  		}
  1825  		it.Event.Raw = log
  1826  		return true
  1827  
  1828  	case err := <-it.sub.Err():
  1829  		it.done = true
  1830  		it.fail = err
  1831  		return it.Next()
  1832  	}
  1833  }
  1834  
  1835  // Error returns any retrieval or parsing error occurred during filtering.
  1836  func (it *AddressBookCancelRequestIterator) Error() error {
  1837  	return it.fail
  1838  }
  1839  
  1840  // Close terminates the iteration process, releasing any pending underlying
  1841  // resources.
  1842  func (it *AddressBookCancelRequestIterator) Close() error {
  1843  	it.sub.Unsubscribe()
  1844  	return nil
  1845  }
  1846  
  1847  // AddressBookCancelRequest represents a CancelRequest event raised by the AddressBook contract.
  1848  type AddressBookCancelRequest struct {
  1849  	Id         [32]byte
  1850  	From       common.Address
  1851  	FunctionId uint8
  1852  	FirstArg   [32]byte
  1853  	SecondArg  [32]byte
  1854  	ThirdArg   [32]byte
  1855  	Raw        types.Log // Blockchain specific contextual infos
  1856  }
  1857  
  1858  // FilterCancelRequest is a free log retrieval operation binding the contract event 0xbfda049a0206fd9c90ed4a3170f5bfaad83c323a16835dd68fea92faa247c2cd.
  1859  //
  1860  // Solidity: event CancelRequest(bytes32 indexed id, address indexed from, uint8 functionId, bytes32 firstArg, bytes32 secondArg, bytes32 thirdArg)
  1861  func (_AddressBook *AddressBookFilterer) FilterCancelRequest(opts *bind.FilterOpts, id [][32]byte, from []common.Address) (*AddressBookCancelRequestIterator, error) {
  1862  
  1863  	var idRule []interface{}
  1864  	for _, idItem := range id {
  1865  		idRule = append(idRule, idItem)
  1866  	}
  1867  	var fromRule []interface{}
  1868  	for _, fromItem := range from {
  1869  		fromRule = append(fromRule, fromItem)
  1870  	}
  1871  
  1872  	logs, sub, err := _AddressBook.contract.FilterLogs(opts, "CancelRequest", idRule, fromRule)
  1873  	if err != nil {
  1874  		return nil, err
  1875  	}
  1876  	return &AddressBookCancelRequestIterator{contract: _AddressBook.contract, event: "CancelRequest", logs: logs, sub: sub}, nil
  1877  }
  1878  
  1879  // WatchCancelRequest is a free log subscription operation binding the contract event 0xbfda049a0206fd9c90ed4a3170f5bfaad83c323a16835dd68fea92faa247c2cd.
  1880  //
  1881  // Solidity: event CancelRequest(bytes32 indexed id, address indexed from, uint8 functionId, bytes32 firstArg, bytes32 secondArg, bytes32 thirdArg)
  1882  func (_AddressBook *AddressBookFilterer) WatchCancelRequest(opts *bind.WatchOpts, sink chan<- *AddressBookCancelRequest, id [][32]byte, from []common.Address) (event.Subscription, error) {
  1883  
  1884  	var idRule []interface{}
  1885  	for _, idItem := range id {
  1886  		idRule = append(idRule, idItem)
  1887  	}
  1888  	var fromRule []interface{}
  1889  	for _, fromItem := range from {
  1890  		fromRule = append(fromRule, fromItem)
  1891  	}
  1892  
  1893  	logs, sub, err := _AddressBook.contract.WatchLogs(opts, "CancelRequest", idRule, fromRule)
  1894  	if err != nil {
  1895  		return nil, err
  1896  	}
  1897  	return event.NewSubscription(func(quit <-chan struct{}) error {
  1898  		defer sub.Unsubscribe()
  1899  		for {
  1900  			select {
  1901  			case log := <-logs:
  1902  				// New log arrived, parse the event and forward to the user
  1903  				event := new(AddressBookCancelRequest)
  1904  				if err := _AddressBook.contract.UnpackLog(event, "CancelRequest", log); err != nil {
  1905  					return err
  1906  				}
  1907  				event.Raw = log
  1908  
  1909  				select {
  1910  				case sink <- event:
  1911  				case err := <-sub.Err():
  1912  					return err
  1913  				case <-quit:
  1914  					return nil
  1915  				}
  1916  			case err := <-sub.Err():
  1917  				return err
  1918  			case <-quit:
  1919  				return nil
  1920  			}
  1921  		}
  1922  	}), nil
  1923  }
  1924  
  1925  // ParseCancelRequest is a log parse operation binding the contract event 0xbfda049a0206fd9c90ed4a3170f5bfaad83c323a16835dd68fea92faa247c2cd.
  1926  //
  1927  // Solidity: event CancelRequest(bytes32 indexed id, address indexed from, uint8 functionId, bytes32 firstArg, bytes32 secondArg, bytes32 thirdArg)
  1928  func (_AddressBook *AddressBookFilterer) ParseCancelRequest(log types.Log) (*AddressBookCancelRequest, error) {
  1929  	event := new(AddressBookCancelRequest)
  1930  	if err := _AddressBook.contract.UnpackLog(event, "CancelRequest", log); err != nil {
  1931  		return nil, err
  1932  	}
  1933  	return event, nil
  1934  }
  1935  
  1936  // AddressBookClearRequestIterator is returned from FilterClearRequest and is used to iterate over the raw logs and unpacked data for ClearRequest events raised by the AddressBook contract.
  1937  type AddressBookClearRequestIterator struct {
  1938  	Event *AddressBookClearRequest // Event containing the contract specifics and raw log
  1939  
  1940  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  1941  	event    string              // Event name to use for unpacking event data
  1942  
  1943  	logs chan types.Log      // Log channel receiving the found contract events
  1944  	sub  klaytn.Subscription // Subscription for errors, completion and termination
  1945  	done bool                // Whether the subscription completed delivering logs
  1946  	fail error               // Occurred error to stop iteration
  1947  }
  1948  
  1949  // Next advances the iterator to the subsequent event, returning whether there
  1950  // are any more events found. In case of a retrieval or parsing error, false is
  1951  // returned and Error() can be queried for the exact failure.
  1952  func (it *AddressBookClearRequestIterator) Next() bool {
  1953  	// If the iterator failed, stop iterating
  1954  	if it.fail != nil {
  1955  		return false
  1956  	}
  1957  	// If the iterator completed, deliver directly whatever's available
  1958  	if it.done {
  1959  		select {
  1960  		case log := <-it.logs:
  1961  			it.Event = new(AddressBookClearRequest)
  1962  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1963  				it.fail = err
  1964  				return false
  1965  			}
  1966  			it.Event.Raw = log
  1967  			return true
  1968  
  1969  		default:
  1970  			return false
  1971  		}
  1972  	}
  1973  	// Iterator still in progress, wait for either a data or an error event
  1974  	select {
  1975  	case log := <-it.logs:
  1976  		it.Event = new(AddressBookClearRequest)
  1977  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1978  			it.fail = err
  1979  			return false
  1980  		}
  1981  		it.Event.Raw = log
  1982  		return true
  1983  
  1984  	case err := <-it.sub.Err():
  1985  		it.done = true
  1986  		it.fail = err
  1987  		return it.Next()
  1988  	}
  1989  }
  1990  
  1991  // Error returns any retrieval or parsing error occurred during filtering.
  1992  func (it *AddressBookClearRequestIterator) Error() error {
  1993  	return it.fail
  1994  }
  1995  
  1996  // Close terminates the iteration process, releasing any pending underlying
  1997  // resources.
  1998  func (it *AddressBookClearRequestIterator) Close() error {
  1999  	it.sub.Unsubscribe()
  2000  	return nil
  2001  }
  2002  
  2003  // AddressBookClearRequest represents a ClearRequest event raised by the AddressBook contract.
  2004  type AddressBookClearRequest struct {
  2005  	Raw types.Log // Blockchain specific contextual infos
  2006  }
  2007  
  2008  // FilterClearRequest is a free log retrieval operation binding the contract event 0x907527d30089abd16e30f06ddbbbc18480505176262f19bc16c1fbf9262f9c6b.
  2009  //
  2010  // Solidity: event ClearRequest()
  2011  func (_AddressBook *AddressBookFilterer) FilterClearRequest(opts *bind.FilterOpts) (*AddressBookClearRequestIterator, error) {
  2012  
  2013  	logs, sub, err := _AddressBook.contract.FilterLogs(opts, "ClearRequest")
  2014  	if err != nil {
  2015  		return nil, err
  2016  	}
  2017  	return &AddressBookClearRequestIterator{contract: _AddressBook.contract, event: "ClearRequest", logs: logs, sub: sub}, nil
  2018  }
  2019  
  2020  // WatchClearRequest is a free log subscription operation binding the contract event 0x907527d30089abd16e30f06ddbbbc18480505176262f19bc16c1fbf9262f9c6b.
  2021  //
  2022  // Solidity: event ClearRequest()
  2023  func (_AddressBook *AddressBookFilterer) WatchClearRequest(opts *bind.WatchOpts, sink chan<- *AddressBookClearRequest) (event.Subscription, error) {
  2024  
  2025  	logs, sub, err := _AddressBook.contract.WatchLogs(opts, "ClearRequest")
  2026  	if err != nil {
  2027  		return nil, err
  2028  	}
  2029  	return event.NewSubscription(func(quit <-chan struct{}) error {
  2030  		defer sub.Unsubscribe()
  2031  		for {
  2032  			select {
  2033  			case log := <-logs:
  2034  				// New log arrived, parse the event and forward to the user
  2035  				event := new(AddressBookClearRequest)
  2036  				if err := _AddressBook.contract.UnpackLog(event, "ClearRequest", log); err != nil {
  2037  					return err
  2038  				}
  2039  				event.Raw = log
  2040  
  2041  				select {
  2042  				case sink <- event:
  2043  				case err := <-sub.Err():
  2044  					return err
  2045  				case <-quit:
  2046  					return nil
  2047  				}
  2048  			case err := <-sub.Err():
  2049  				return err
  2050  			case <-quit:
  2051  				return nil
  2052  			}
  2053  		}
  2054  	}), nil
  2055  }
  2056  
  2057  // ParseClearRequest is a log parse operation binding the contract event 0x907527d30089abd16e30f06ddbbbc18480505176262f19bc16c1fbf9262f9c6b.
  2058  //
  2059  // Solidity: event ClearRequest()
  2060  func (_AddressBook *AddressBookFilterer) ParseClearRequest(log types.Log) (*AddressBookClearRequest, error) {
  2061  	event := new(AddressBookClearRequest)
  2062  	if err := _AddressBook.contract.UnpackLog(event, "ClearRequest", log); err != nil {
  2063  		return nil, err
  2064  	}
  2065  	return event, nil
  2066  }
  2067  
  2068  // AddressBookDeleteAdminIterator is returned from FilterDeleteAdmin and is used to iterate over the raw logs and unpacked data for DeleteAdmin events raised by the AddressBook contract.
  2069  type AddressBookDeleteAdminIterator struct {
  2070  	Event *AddressBookDeleteAdmin // Event containing the contract specifics and raw log
  2071  
  2072  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  2073  	event    string              // Event name to use for unpacking event data
  2074  
  2075  	logs chan types.Log      // Log channel receiving the found contract events
  2076  	sub  klaytn.Subscription // Subscription for errors, completion and termination
  2077  	done bool                // Whether the subscription completed delivering logs
  2078  	fail error               // Occurred error to stop iteration
  2079  }
  2080  
  2081  // Next advances the iterator to the subsequent event, returning whether there
  2082  // are any more events found. In case of a retrieval or parsing error, false is
  2083  // returned and Error() can be queried for the exact failure.
  2084  func (it *AddressBookDeleteAdminIterator) Next() bool {
  2085  	// If the iterator failed, stop iterating
  2086  	if it.fail != nil {
  2087  		return false
  2088  	}
  2089  	// If the iterator completed, deliver directly whatever's available
  2090  	if it.done {
  2091  		select {
  2092  		case log := <-it.logs:
  2093  			it.Event = new(AddressBookDeleteAdmin)
  2094  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  2095  				it.fail = err
  2096  				return false
  2097  			}
  2098  			it.Event.Raw = log
  2099  			return true
  2100  
  2101  		default:
  2102  			return false
  2103  		}
  2104  	}
  2105  	// Iterator still in progress, wait for either a data or an error event
  2106  	select {
  2107  	case log := <-it.logs:
  2108  		it.Event = new(AddressBookDeleteAdmin)
  2109  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  2110  			it.fail = err
  2111  			return false
  2112  		}
  2113  		it.Event.Raw = log
  2114  		return true
  2115  
  2116  	case err := <-it.sub.Err():
  2117  		it.done = true
  2118  		it.fail = err
  2119  		return it.Next()
  2120  	}
  2121  }
  2122  
  2123  // Error returns any retrieval or parsing error occurred during filtering.
  2124  func (it *AddressBookDeleteAdminIterator) Error() error {
  2125  	return it.fail
  2126  }
  2127  
  2128  // Close terminates the iteration process, releasing any pending underlying
  2129  // resources.
  2130  func (it *AddressBookDeleteAdminIterator) Close() error {
  2131  	it.sub.Unsubscribe()
  2132  	return nil
  2133  }
  2134  
  2135  // AddressBookDeleteAdmin represents a DeleteAdmin event raised by the AddressBook contract.
  2136  type AddressBookDeleteAdmin struct {
  2137  	Admin common.Address
  2138  	Raw   types.Log // Blockchain specific contextual infos
  2139  }
  2140  
  2141  // FilterDeleteAdmin is a free log retrieval operation binding the contract event 0x1af6bd3d85a56e7c4a0700756fd2ca3b3b65c266e56c77652c5a346bc2565220.
  2142  //
  2143  // Solidity: event DeleteAdmin(address indexed admin)
  2144  func (_AddressBook *AddressBookFilterer) FilterDeleteAdmin(opts *bind.FilterOpts, admin []common.Address) (*AddressBookDeleteAdminIterator, error) {
  2145  
  2146  	var adminRule []interface{}
  2147  	for _, adminItem := range admin {
  2148  		adminRule = append(adminRule, adminItem)
  2149  	}
  2150  
  2151  	logs, sub, err := _AddressBook.contract.FilterLogs(opts, "DeleteAdmin", adminRule)
  2152  	if err != nil {
  2153  		return nil, err
  2154  	}
  2155  	return &AddressBookDeleteAdminIterator{contract: _AddressBook.contract, event: "DeleteAdmin", logs: logs, sub: sub}, nil
  2156  }
  2157  
  2158  // WatchDeleteAdmin is a free log subscription operation binding the contract event 0x1af6bd3d85a56e7c4a0700756fd2ca3b3b65c266e56c77652c5a346bc2565220.
  2159  //
  2160  // Solidity: event DeleteAdmin(address indexed admin)
  2161  func (_AddressBook *AddressBookFilterer) WatchDeleteAdmin(opts *bind.WatchOpts, sink chan<- *AddressBookDeleteAdmin, admin []common.Address) (event.Subscription, error) {
  2162  
  2163  	var adminRule []interface{}
  2164  	for _, adminItem := range admin {
  2165  		adminRule = append(adminRule, adminItem)
  2166  	}
  2167  
  2168  	logs, sub, err := _AddressBook.contract.WatchLogs(opts, "DeleteAdmin", adminRule)
  2169  	if err != nil {
  2170  		return nil, err
  2171  	}
  2172  	return event.NewSubscription(func(quit <-chan struct{}) error {
  2173  		defer sub.Unsubscribe()
  2174  		for {
  2175  			select {
  2176  			case log := <-logs:
  2177  				// New log arrived, parse the event and forward to the user
  2178  				event := new(AddressBookDeleteAdmin)
  2179  				if err := _AddressBook.contract.UnpackLog(event, "DeleteAdmin", log); err != nil {
  2180  					return err
  2181  				}
  2182  				event.Raw = log
  2183  
  2184  				select {
  2185  				case sink <- event:
  2186  				case err := <-sub.Err():
  2187  					return err
  2188  				case <-quit:
  2189  					return nil
  2190  				}
  2191  			case err := <-sub.Err():
  2192  				return err
  2193  			case <-quit:
  2194  				return nil
  2195  			}
  2196  		}
  2197  	}), nil
  2198  }
  2199  
  2200  // ParseDeleteAdmin is a log parse operation binding the contract event 0x1af6bd3d85a56e7c4a0700756fd2ca3b3b65c266e56c77652c5a346bc2565220.
  2201  //
  2202  // Solidity: event DeleteAdmin(address indexed admin)
  2203  func (_AddressBook *AddressBookFilterer) ParseDeleteAdmin(log types.Log) (*AddressBookDeleteAdmin, error) {
  2204  	event := new(AddressBookDeleteAdmin)
  2205  	if err := _AddressBook.contract.UnpackLog(event, "DeleteAdmin", log); err != nil {
  2206  		return nil, err
  2207  	}
  2208  	return event, nil
  2209  }
  2210  
  2211  // AddressBookDeployContractIterator is returned from FilterDeployContract and is used to iterate over the raw logs and unpacked data for DeployContract events raised by the AddressBook contract.
  2212  type AddressBookDeployContractIterator struct {
  2213  	Event *AddressBookDeployContract // Event containing the contract specifics and raw log
  2214  
  2215  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  2216  	event    string              // Event name to use for unpacking event data
  2217  
  2218  	logs chan types.Log      // Log channel receiving the found contract events
  2219  	sub  klaytn.Subscription // Subscription for errors, completion and termination
  2220  	done bool                // Whether the subscription completed delivering logs
  2221  	fail error               // Occurred error to stop iteration
  2222  }
  2223  
  2224  // Next advances the iterator to the subsequent event, returning whether there
  2225  // are any more events found. In case of a retrieval or parsing error, false is
  2226  // returned and Error() can be queried for the exact failure.
  2227  func (it *AddressBookDeployContractIterator) Next() bool {
  2228  	// If the iterator failed, stop iterating
  2229  	if it.fail != nil {
  2230  		return false
  2231  	}
  2232  	// If the iterator completed, deliver directly whatever's available
  2233  	if it.done {
  2234  		select {
  2235  		case log := <-it.logs:
  2236  			it.Event = new(AddressBookDeployContract)
  2237  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  2238  				it.fail = err
  2239  				return false
  2240  			}
  2241  			it.Event.Raw = log
  2242  			return true
  2243  
  2244  		default:
  2245  			return false
  2246  		}
  2247  	}
  2248  	// Iterator still in progress, wait for either a data or an error event
  2249  	select {
  2250  	case log := <-it.logs:
  2251  		it.Event = new(AddressBookDeployContract)
  2252  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  2253  			it.fail = err
  2254  			return false
  2255  		}
  2256  		it.Event.Raw = log
  2257  		return true
  2258  
  2259  	case err := <-it.sub.Err():
  2260  		it.done = true
  2261  		it.fail = err
  2262  		return it.Next()
  2263  	}
  2264  }
  2265  
  2266  // Error returns any retrieval or parsing error occurred during filtering.
  2267  func (it *AddressBookDeployContractIterator) Error() error {
  2268  	return it.fail
  2269  }
  2270  
  2271  // Close terminates the iteration process, releasing any pending underlying
  2272  // resources.
  2273  func (it *AddressBookDeployContractIterator) Close() error {
  2274  	it.sub.Unsubscribe()
  2275  	return nil
  2276  }
  2277  
  2278  // AddressBookDeployContract represents a DeployContract event raised by the AddressBook contract.
  2279  type AddressBookDeployContract struct {
  2280  	ContractType string
  2281  	AdminList    []common.Address
  2282  	Requirement  *big.Int
  2283  	Raw          types.Log // Blockchain specific contextual infos
  2284  }
  2285  
  2286  // FilterDeployContract is a free log retrieval operation binding the contract event 0xc5caa942b8f8ea45a2e094d941dbba0ef9c0307f34c81ce78e71bfb128d6b25a.
  2287  //
  2288  // Solidity: event DeployContract(string contractType, address[] adminList, uint256 requirement)
  2289  func (_AddressBook *AddressBookFilterer) FilterDeployContract(opts *bind.FilterOpts) (*AddressBookDeployContractIterator, error) {
  2290  
  2291  	logs, sub, err := _AddressBook.contract.FilterLogs(opts, "DeployContract")
  2292  	if err != nil {
  2293  		return nil, err
  2294  	}
  2295  	return &AddressBookDeployContractIterator{contract: _AddressBook.contract, event: "DeployContract", logs: logs, sub: sub}, nil
  2296  }
  2297  
  2298  // WatchDeployContract is a free log subscription operation binding the contract event 0xc5caa942b8f8ea45a2e094d941dbba0ef9c0307f34c81ce78e71bfb128d6b25a.
  2299  //
  2300  // Solidity: event DeployContract(string contractType, address[] adminList, uint256 requirement)
  2301  func (_AddressBook *AddressBookFilterer) WatchDeployContract(opts *bind.WatchOpts, sink chan<- *AddressBookDeployContract) (event.Subscription, error) {
  2302  
  2303  	logs, sub, err := _AddressBook.contract.WatchLogs(opts, "DeployContract")
  2304  	if err != nil {
  2305  		return nil, err
  2306  	}
  2307  	return event.NewSubscription(func(quit <-chan struct{}) error {
  2308  		defer sub.Unsubscribe()
  2309  		for {
  2310  			select {
  2311  			case log := <-logs:
  2312  				// New log arrived, parse the event and forward to the user
  2313  				event := new(AddressBookDeployContract)
  2314  				if err := _AddressBook.contract.UnpackLog(event, "DeployContract", log); err != nil {
  2315  					return err
  2316  				}
  2317  				event.Raw = log
  2318  
  2319  				select {
  2320  				case sink <- event:
  2321  				case err := <-sub.Err():
  2322  					return err
  2323  				case <-quit:
  2324  					return nil
  2325  				}
  2326  			case err := <-sub.Err():
  2327  				return err
  2328  			case <-quit:
  2329  				return nil
  2330  			}
  2331  		}
  2332  	}), nil
  2333  }
  2334  
  2335  // ParseDeployContract is a log parse operation binding the contract event 0xc5caa942b8f8ea45a2e094d941dbba0ef9c0307f34c81ce78e71bfb128d6b25a.
  2336  //
  2337  // Solidity: event DeployContract(string contractType, address[] adminList, uint256 requirement)
  2338  func (_AddressBook *AddressBookFilterer) ParseDeployContract(log types.Log) (*AddressBookDeployContract, error) {
  2339  	event := new(AddressBookDeployContract)
  2340  	if err := _AddressBook.contract.UnpackLog(event, "DeployContract", log); err != nil {
  2341  		return nil, err
  2342  	}
  2343  	return event, nil
  2344  }
  2345  
  2346  // AddressBookExecuteRequestFailureIterator is returned from FilterExecuteRequestFailure and is used to iterate over the raw logs and unpacked data for ExecuteRequestFailure events raised by the AddressBook contract.
  2347  type AddressBookExecuteRequestFailureIterator struct {
  2348  	Event *AddressBookExecuteRequestFailure // Event containing the contract specifics and raw log
  2349  
  2350  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  2351  	event    string              // Event name to use for unpacking event data
  2352  
  2353  	logs chan types.Log      // Log channel receiving the found contract events
  2354  	sub  klaytn.Subscription // Subscription for errors, completion and termination
  2355  	done bool                // Whether the subscription completed delivering logs
  2356  	fail error               // Occurred error to stop iteration
  2357  }
  2358  
  2359  // Next advances the iterator to the subsequent event, returning whether there
  2360  // are any more events found. In case of a retrieval or parsing error, false is
  2361  // returned and Error() can be queried for the exact failure.
  2362  func (it *AddressBookExecuteRequestFailureIterator) Next() bool {
  2363  	// If the iterator failed, stop iterating
  2364  	if it.fail != nil {
  2365  		return false
  2366  	}
  2367  	// If the iterator completed, deliver directly whatever's available
  2368  	if it.done {
  2369  		select {
  2370  		case log := <-it.logs:
  2371  			it.Event = new(AddressBookExecuteRequestFailure)
  2372  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  2373  				it.fail = err
  2374  				return false
  2375  			}
  2376  			it.Event.Raw = log
  2377  			return true
  2378  
  2379  		default:
  2380  			return false
  2381  		}
  2382  	}
  2383  	// Iterator still in progress, wait for either a data or an error event
  2384  	select {
  2385  	case log := <-it.logs:
  2386  		it.Event = new(AddressBookExecuteRequestFailure)
  2387  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  2388  			it.fail = err
  2389  			return false
  2390  		}
  2391  		it.Event.Raw = log
  2392  		return true
  2393  
  2394  	case err := <-it.sub.Err():
  2395  		it.done = true
  2396  		it.fail = err
  2397  		return it.Next()
  2398  	}
  2399  }
  2400  
  2401  // Error returns any retrieval or parsing error occurred during filtering.
  2402  func (it *AddressBookExecuteRequestFailureIterator) Error() error {
  2403  	return it.fail
  2404  }
  2405  
  2406  // Close terminates the iteration process, releasing any pending underlying
  2407  // resources.
  2408  func (it *AddressBookExecuteRequestFailureIterator) Close() error {
  2409  	it.sub.Unsubscribe()
  2410  	return nil
  2411  }
  2412  
  2413  // AddressBookExecuteRequestFailure represents a ExecuteRequestFailure event raised by the AddressBook contract.
  2414  type AddressBookExecuteRequestFailure struct {
  2415  	Id         [32]byte
  2416  	From       common.Address
  2417  	FunctionId uint8
  2418  	FirstArg   [32]byte
  2419  	SecondArg  [32]byte
  2420  	ThirdArg   [32]byte
  2421  	Raw        types.Log // Blockchain specific contextual infos
  2422  }
  2423  
  2424  // FilterExecuteRequestFailure is a free log retrieval operation binding the contract event 0xf151a3ee41626c2511372320f09f7957af81c8c1cde8cdf3f05a5979626eaaf3.
  2425  //
  2426  // Solidity: event ExecuteRequestFailure(bytes32 indexed id, address indexed from, uint8 functionId, bytes32 firstArg, bytes32 secondArg, bytes32 thirdArg)
  2427  func (_AddressBook *AddressBookFilterer) FilterExecuteRequestFailure(opts *bind.FilterOpts, id [][32]byte, from []common.Address) (*AddressBookExecuteRequestFailureIterator, error) {
  2428  
  2429  	var idRule []interface{}
  2430  	for _, idItem := range id {
  2431  		idRule = append(idRule, idItem)
  2432  	}
  2433  	var fromRule []interface{}
  2434  	for _, fromItem := range from {
  2435  		fromRule = append(fromRule, fromItem)
  2436  	}
  2437  
  2438  	logs, sub, err := _AddressBook.contract.FilterLogs(opts, "ExecuteRequestFailure", idRule, fromRule)
  2439  	if err != nil {
  2440  		return nil, err
  2441  	}
  2442  	return &AddressBookExecuteRequestFailureIterator{contract: _AddressBook.contract, event: "ExecuteRequestFailure", logs: logs, sub: sub}, nil
  2443  }
  2444  
  2445  // WatchExecuteRequestFailure is a free log subscription operation binding the contract event 0xf151a3ee41626c2511372320f09f7957af81c8c1cde8cdf3f05a5979626eaaf3.
  2446  //
  2447  // Solidity: event ExecuteRequestFailure(bytes32 indexed id, address indexed from, uint8 functionId, bytes32 firstArg, bytes32 secondArg, bytes32 thirdArg)
  2448  func (_AddressBook *AddressBookFilterer) WatchExecuteRequestFailure(opts *bind.WatchOpts, sink chan<- *AddressBookExecuteRequestFailure, id [][32]byte, from []common.Address) (event.Subscription, error) {
  2449  
  2450  	var idRule []interface{}
  2451  	for _, idItem := range id {
  2452  		idRule = append(idRule, idItem)
  2453  	}
  2454  	var fromRule []interface{}
  2455  	for _, fromItem := range from {
  2456  		fromRule = append(fromRule, fromItem)
  2457  	}
  2458  
  2459  	logs, sub, err := _AddressBook.contract.WatchLogs(opts, "ExecuteRequestFailure", idRule, fromRule)
  2460  	if err != nil {
  2461  		return nil, err
  2462  	}
  2463  	return event.NewSubscription(func(quit <-chan struct{}) error {
  2464  		defer sub.Unsubscribe()
  2465  		for {
  2466  			select {
  2467  			case log := <-logs:
  2468  				// New log arrived, parse the event and forward to the user
  2469  				event := new(AddressBookExecuteRequestFailure)
  2470  				if err := _AddressBook.contract.UnpackLog(event, "ExecuteRequestFailure", log); err != nil {
  2471  					return err
  2472  				}
  2473  				event.Raw = log
  2474  
  2475  				select {
  2476  				case sink <- event:
  2477  				case err := <-sub.Err():
  2478  					return err
  2479  				case <-quit:
  2480  					return nil
  2481  				}
  2482  			case err := <-sub.Err():
  2483  				return err
  2484  			case <-quit:
  2485  				return nil
  2486  			}
  2487  		}
  2488  	}), nil
  2489  }
  2490  
  2491  // ParseExecuteRequestFailure is a log parse operation binding the contract event 0xf151a3ee41626c2511372320f09f7957af81c8c1cde8cdf3f05a5979626eaaf3.
  2492  //
  2493  // Solidity: event ExecuteRequestFailure(bytes32 indexed id, address indexed from, uint8 functionId, bytes32 firstArg, bytes32 secondArg, bytes32 thirdArg)
  2494  func (_AddressBook *AddressBookFilterer) ParseExecuteRequestFailure(log types.Log) (*AddressBookExecuteRequestFailure, error) {
  2495  	event := new(AddressBookExecuteRequestFailure)
  2496  	if err := _AddressBook.contract.UnpackLog(event, "ExecuteRequestFailure", log); err != nil {
  2497  		return nil, err
  2498  	}
  2499  	return event, nil
  2500  }
  2501  
  2502  // AddressBookExecuteRequestSuccessIterator is returned from FilterExecuteRequestSuccess and is used to iterate over the raw logs and unpacked data for ExecuteRequestSuccess events raised by the AddressBook contract.
  2503  type AddressBookExecuteRequestSuccessIterator struct {
  2504  	Event *AddressBookExecuteRequestSuccess // Event containing the contract specifics and raw log
  2505  
  2506  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  2507  	event    string              // Event name to use for unpacking event data
  2508  
  2509  	logs chan types.Log      // Log channel receiving the found contract events
  2510  	sub  klaytn.Subscription // Subscription for errors, completion and termination
  2511  	done bool                // Whether the subscription completed delivering logs
  2512  	fail error               // Occurred error to stop iteration
  2513  }
  2514  
  2515  // Next advances the iterator to the subsequent event, returning whether there
  2516  // are any more events found. In case of a retrieval or parsing error, false is
  2517  // returned and Error() can be queried for the exact failure.
  2518  func (it *AddressBookExecuteRequestSuccessIterator) Next() bool {
  2519  	// If the iterator failed, stop iterating
  2520  	if it.fail != nil {
  2521  		return false
  2522  	}
  2523  	// If the iterator completed, deliver directly whatever's available
  2524  	if it.done {
  2525  		select {
  2526  		case log := <-it.logs:
  2527  			it.Event = new(AddressBookExecuteRequestSuccess)
  2528  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  2529  				it.fail = err
  2530  				return false
  2531  			}
  2532  			it.Event.Raw = log
  2533  			return true
  2534  
  2535  		default:
  2536  			return false
  2537  		}
  2538  	}
  2539  	// Iterator still in progress, wait for either a data or an error event
  2540  	select {
  2541  	case log := <-it.logs:
  2542  		it.Event = new(AddressBookExecuteRequestSuccess)
  2543  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  2544  			it.fail = err
  2545  			return false
  2546  		}
  2547  		it.Event.Raw = log
  2548  		return true
  2549  
  2550  	case err := <-it.sub.Err():
  2551  		it.done = true
  2552  		it.fail = err
  2553  		return it.Next()
  2554  	}
  2555  }
  2556  
  2557  // Error returns any retrieval or parsing error occurred during filtering.
  2558  func (it *AddressBookExecuteRequestSuccessIterator) Error() error {
  2559  	return it.fail
  2560  }
  2561  
  2562  // Close terminates the iteration process, releasing any pending underlying
  2563  // resources.
  2564  func (it *AddressBookExecuteRequestSuccessIterator) Close() error {
  2565  	it.sub.Unsubscribe()
  2566  	return nil
  2567  }
  2568  
  2569  // AddressBookExecuteRequestSuccess represents a ExecuteRequestSuccess event raised by the AddressBook contract.
  2570  type AddressBookExecuteRequestSuccess struct {
  2571  	Id         [32]byte
  2572  	From       common.Address
  2573  	FunctionId uint8
  2574  	FirstArg   [32]byte
  2575  	SecondArg  [32]byte
  2576  	ThirdArg   [32]byte
  2577  	Raw        types.Log // Blockchain specific contextual infos
  2578  }
  2579  
  2580  // FilterExecuteRequestSuccess is a free log retrieval operation binding the contract event 0xc55c9229184beabeee72b6970a96691b4200919e47579cc4b9be50a1bec7ef11.
  2581  //
  2582  // Solidity: event ExecuteRequestSuccess(bytes32 indexed id, address indexed from, uint8 functionId, bytes32 firstArg, bytes32 secondArg, bytes32 thirdArg)
  2583  func (_AddressBook *AddressBookFilterer) FilterExecuteRequestSuccess(opts *bind.FilterOpts, id [][32]byte, from []common.Address) (*AddressBookExecuteRequestSuccessIterator, error) {
  2584  
  2585  	var idRule []interface{}
  2586  	for _, idItem := range id {
  2587  		idRule = append(idRule, idItem)
  2588  	}
  2589  	var fromRule []interface{}
  2590  	for _, fromItem := range from {
  2591  		fromRule = append(fromRule, fromItem)
  2592  	}
  2593  
  2594  	logs, sub, err := _AddressBook.contract.FilterLogs(opts, "ExecuteRequestSuccess", idRule, fromRule)
  2595  	if err != nil {
  2596  		return nil, err
  2597  	}
  2598  	return &AddressBookExecuteRequestSuccessIterator{contract: _AddressBook.contract, event: "ExecuteRequestSuccess", logs: logs, sub: sub}, nil
  2599  }
  2600  
  2601  // WatchExecuteRequestSuccess is a free log subscription operation binding the contract event 0xc55c9229184beabeee72b6970a96691b4200919e47579cc4b9be50a1bec7ef11.
  2602  //
  2603  // Solidity: event ExecuteRequestSuccess(bytes32 indexed id, address indexed from, uint8 functionId, bytes32 firstArg, bytes32 secondArg, bytes32 thirdArg)
  2604  func (_AddressBook *AddressBookFilterer) WatchExecuteRequestSuccess(opts *bind.WatchOpts, sink chan<- *AddressBookExecuteRequestSuccess, id [][32]byte, from []common.Address) (event.Subscription, error) {
  2605  
  2606  	var idRule []interface{}
  2607  	for _, idItem := range id {
  2608  		idRule = append(idRule, idItem)
  2609  	}
  2610  	var fromRule []interface{}
  2611  	for _, fromItem := range from {
  2612  		fromRule = append(fromRule, fromItem)
  2613  	}
  2614  
  2615  	logs, sub, err := _AddressBook.contract.WatchLogs(opts, "ExecuteRequestSuccess", idRule, fromRule)
  2616  	if err != nil {
  2617  		return nil, err
  2618  	}
  2619  	return event.NewSubscription(func(quit <-chan struct{}) error {
  2620  		defer sub.Unsubscribe()
  2621  		for {
  2622  			select {
  2623  			case log := <-logs:
  2624  				// New log arrived, parse the event and forward to the user
  2625  				event := new(AddressBookExecuteRequestSuccess)
  2626  				if err := _AddressBook.contract.UnpackLog(event, "ExecuteRequestSuccess", log); err != nil {
  2627  					return err
  2628  				}
  2629  				event.Raw = log
  2630  
  2631  				select {
  2632  				case sink <- event:
  2633  				case err := <-sub.Err():
  2634  					return err
  2635  				case <-quit:
  2636  					return nil
  2637  				}
  2638  			case err := <-sub.Err():
  2639  				return err
  2640  			case <-quit:
  2641  				return nil
  2642  			}
  2643  		}
  2644  	}), nil
  2645  }
  2646  
  2647  // ParseExecuteRequestSuccess is a log parse operation binding the contract event 0xc55c9229184beabeee72b6970a96691b4200919e47579cc4b9be50a1bec7ef11.
  2648  //
  2649  // Solidity: event ExecuteRequestSuccess(bytes32 indexed id, address indexed from, uint8 functionId, bytes32 firstArg, bytes32 secondArg, bytes32 thirdArg)
  2650  func (_AddressBook *AddressBookFilterer) ParseExecuteRequestSuccess(log types.Log) (*AddressBookExecuteRequestSuccess, error) {
  2651  	event := new(AddressBookExecuteRequestSuccess)
  2652  	if err := _AddressBook.contract.UnpackLog(event, "ExecuteRequestSuccess", log); err != nil {
  2653  		return nil, err
  2654  	}
  2655  	return event, nil
  2656  }
  2657  
  2658  // AddressBookExpiredRequestIterator is returned from FilterExpiredRequest and is used to iterate over the raw logs and unpacked data for ExpiredRequest events raised by the AddressBook contract.
  2659  type AddressBookExpiredRequestIterator struct {
  2660  	Event *AddressBookExpiredRequest // Event containing the contract specifics and raw log
  2661  
  2662  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  2663  	event    string              // Event name to use for unpacking event data
  2664  
  2665  	logs chan types.Log      // Log channel receiving the found contract events
  2666  	sub  klaytn.Subscription // Subscription for errors, completion and termination
  2667  	done bool                // Whether the subscription completed delivering logs
  2668  	fail error               // Occurred error to stop iteration
  2669  }
  2670  
  2671  // Next advances the iterator to the subsequent event, returning whether there
  2672  // are any more events found. In case of a retrieval or parsing error, false is
  2673  // returned and Error() can be queried for the exact failure.
  2674  func (it *AddressBookExpiredRequestIterator) Next() bool {
  2675  	// If the iterator failed, stop iterating
  2676  	if it.fail != nil {
  2677  		return false
  2678  	}
  2679  	// If the iterator completed, deliver directly whatever's available
  2680  	if it.done {
  2681  		select {
  2682  		case log := <-it.logs:
  2683  			it.Event = new(AddressBookExpiredRequest)
  2684  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  2685  				it.fail = err
  2686  				return false
  2687  			}
  2688  			it.Event.Raw = log
  2689  			return true
  2690  
  2691  		default:
  2692  			return false
  2693  		}
  2694  	}
  2695  	// Iterator still in progress, wait for either a data or an error event
  2696  	select {
  2697  	case log := <-it.logs:
  2698  		it.Event = new(AddressBookExpiredRequest)
  2699  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  2700  			it.fail = err
  2701  			return false
  2702  		}
  2703  		it.Event.Raw = log
  2704  		return true
  2705  
  2706  	case err := <-it.sub.Err():
  2707  		it.done = true
  2708  		it.fail = err
  2709  		return it.Next()
  2710  	}
  2711  }
  2712  
  2713  // Error returns any retrieval or parsing error occurred during filtering.
  2714  func (it *AddressBookExpiredRequestIterator) Error() error {
  2715  	return it.fail
  2716  }
  2717  
  2718  // Close terminates the iteration process, releasing any pending underlying
  2719  // resources.
  2720  func (it *AddressBookExpiredRequestIterator) Close() error {
  2721  	it.sub.Unsubscribe()
  2722  	return nil
  2723  }
  2724  
  2725  // AddressBookExpiredRequest represents a ExpiredRequest event raised by the AddressBook contract.
  2726  type AddressBookExpiredRequest struct {
  2727  	Id         [32]byte
  2728  	From       common.Address
  2729  	FunctionId uint8
  2730  	FirstArg   [32]byte
  2731  	SecondArg  [32]byte
  2732  	ThirdArg   [32]byte
  2733  	Confirmers []common.Address
  2734  	Raw        types.Log // Blockchain specific contextual infos
  2735  }
  2736  
  2737  // FilterExpiredRequest is a free log retrieval operation binding the contract event 0x9f3ca7a04988021200a04e0775f46648683bffe7203608269a66c371befe5685.
  2738  //
  2739  // Solidity: event ExpiredRequest(bytes32 indexed id, address indexed from, uint8 functionId, bytes32 firstArg, bytes32 secondArg, bytes32 thirdArg, address[] confirmers)
  2740  func (_AddressBook *AddressBookFilterer) FilterExpiredRequest(opts *bind.FilterOpts, id [][32]byte, from []common.Address) (*AddressBookExpiredRequestIterator, error) {
  2741  
  2742  	var idRule []interface{}
  2743  	for _, idItem := range id {
  2744  		idRule = append(idRule, idItem)
  2745  	}
  2746  	var fromRule []interface{}
  2747  	for _, fromItem := range from {
  2748  		fromRule = append(fromRule, fromItem)
  2749  	}
  2750  
  2751  	logs, sub, err := _AddressBook.contract.FilterLogs(opts, "ExpiredRequest", idRule, fromRule)
  2752  	if err != nil {
  2753  		return nil, err
  2754  	}
  2755  	return &AddressBookExpiredRequestIterator{contract: _AddressBook.contract, event: "ExpiredRequest", logs: logs, sub: sub}, nil
  2756  }
  2757  
  2758  // WatchExpiredRequest is a free log subscription operation binding the contract event 0x9f3ca7a04988021200a04e0775f46648683bffe7203608269a66c371befe5685.
  2759  //
  2760  // Solidity: event ExpiredRequest(bytes32 indexed id, address indexed from, uint8 functionId, bytes32 firstArg, bytes32 secondArg, bytes32 thirdArg, address[] confirmers)
  2761  func (_AddressBook *AddressBookFilterer) WatchExpiredRequest(opts *bind.WatchOpts, sink chan<- *AddressBookExpiredRequest, id [][32]byte, from []common.Address) (event.Subscription, error) {
  2762  
  2763  	var idRule []interface{}
  2764  	for _, idItem := range id {
  2765  		idRule = append(idRule, idItem)
  2766  	}
  2767  	var fromRule []interface{}
  2768  	for _, fromItem := range from {
  2769  		fromRule = append(fromRule, fromItem)
  2770  	}
  2771  
  2772  	logs, sub, err := _AddressBook.contract.WatchLogs(opts, "ExpiredRequest", idRule, fromRule)
  2773  	if err != nil {
  2774  		return nil, err
  2775  	}
  2776  	return event.NewSubscription(func(quit <-chan struct{}) error {
  2777  		defer sub.Unsubscribe()
  2778  		for {
  2779  			select {
  2780  			case log := <-logs:
  2781  				// New log arrived, parse the event and forward to the user
  2782  				event := new(AddressBookExpiredRequest)
  2783  				if err := _AddressBook.contract.UnpackLog(event, "ExpiredRequest", log); err != nil {
  2784  					return err
  2785  				}
  2786  				event.Raw = log
  2787  
  2788  				select {
  2789  				case sink <- event:
  2790  				case err := <-sub.Err():
  2791  					return err
  2792  				case <-quit:
  2793  					return nil
  2794  				}
  2795  			case err := <-sub.Err():
  2796  				return err
  2797  			case <-quit:
  2798  				return nil
  2799  			}
  2800  		}
  2801  	}), nil
  2802  }
  2803  
  2804  // ParseExpiredRequest is a log parse operation binding the contract event 0x9f3ca7a04988021200a04e0775f46648683bffe7203608269a66c371befe5685.
  2805  //
  2806  // Solidity: event ExpiredRequest(bytes32 indexed id, address indexed from, uint8 functionId, bytes32 firstArg, bytes32 secondArg, bytes32 thirdArg, address[] confirmers)
  2807  func (_AddressBook *AddressBookFilterer) ParseExpiredRequest(log types.Log) (*AddressBookExpiredRequest, error) {
  2808  	event := new(AddressBookExpiredRequest)
  2809  	if err := _AddressBook.contract.UnpackLog(event, "ExpiredRequest", log); err != nil {
  2810  		return nil, err
  2811  	}
  2812  	return event, nil
  2813  }
  2814  
  2815  // AddressBookRegisterCnStakingContractIterator is returned from FilterRegisterCnStakingContract and is used to iterate over the raw logs and unpacked data for RegisterCnStakingContract events raised by the AddressBook contract.
  2816  type AddressBookRegisterCnStakingContractIterator struct {
  2817  	Event *AddressBookRegisterCnStakingContract // Event containing the contract specifics and raw log
  2818  
  2819  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  2820  	event    string              // Event name to use for unpacking event data
  2821  
  2822  	logs chan types.Log      // Log channel receiving the found contract events
  2823  	sub  klaytn.Subscription // Subscription for errors, completion and termination
  2824  	done bool                // Whether the subscription completed delivering logs
  2825  	fail error               // Occurred error to stop iteration
  2826  }
  2827  
  2828  // Next advances the iterator to the subsequent event, returning whether there
  2829  // are any more events found. In case of a retrieval or parsing error, false is
  2830  // returned and Error() can be queried for the exact failure.
  2831  func (it *AddressBookRegisterCnStakingContractIterator) Next() bool {
  2832  	// If the iterator failed, stop iterating
  2833  	if it.fail != nil {
  2834  		return false
  2835  	}
  2836  	// If the iterator completed, deliver directly whatever's available
  2837  	if it.done {
  2838  		select {
  2839  		case log := <-it.logs:
  2840  			it.Event = new(AddressBookRegisterCnStakingContract)
  2841  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  2842  				it.fail = err
  2843  				return false
  2844  			}
  2845  			it.Event.Raw = log
  2846  			return true
  2847  
  2848  		default:
  2849  			return false
  2850  		}
  2851  	}
  2852  	// Iterator still in progress, wait for either a data or an error event
  2853  	select {
  2854  	case log := <-it.logs:
  2855  		it.Event = new(AddressBookRegisterCnStakingContract)
  2856  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  2857  			it.fail = err
  2858  			return false
  2859  		}
  2860  		it.Event.Raw = log
  2861  		return true
  2862  
  2863  	case err := <-it.sub.Err():
  2864  		it.done = true
  2865  		it.fail = err
  2866  		return it.Next()
  2867  	}
  2868  }
  2869  
  2870  // Error returns any retrieval or parsing error occurred during filtering.
  2871  func (it *AddressBookRegisterCnStakingContractIterator) Error() error {
  2872  	return it.fail
  2873  }
  2874  
  2875  // Close terminates the iteration process, releasing any pending underlying
  2876  // resources.
  2877  func (it *AddressBookRegisterCnStakingContractIterator) Close() error {
  2878  	it.sub.Unsubscribe()
  2879  	return nil
  2880  }
  2881  
  2882  // AddressBookRegisterCnStakingContract represents a RegisterCnStakingContract event raised by the AddressBook contract.
  2883  type AddressBookRegisterCnStakingContract struct {
  2884  	CnNodeId                 common.Address
  2885  	CnStakingContractAddress common.Address
  2886  	CnRewardAddress          common.Address
  2887  	Raw                      types.Log // Blockchain specific contextual infos
  2888  }
  2889  
  2890  // FilterRegisterCnStakingContract is a free log retrieval operation binding the contract event 0xe01726557c1ea9f7286dca4bba890e96fea9041689db298806306cafa74c9e91.
  2891  //
  2892  // Solidity: event RegisterCnStakingContract(address cnNodeId, address cnStakingContractAddress, address cnRewardAddress)
  2893  func (_AddressBook *AddressBookFilterer) FilterRegisterCnStakingContract(opts *bind.FilterOpts) (*AddressBookRegisterCnStakingContractIterator, error) {
  2894  
  2895  	logs, sub, err := _AddressBook.contract.FilterLogs(opts, "RegisterCnStakingContract")
  2896  	if err != nil {
  2897  		return nil, err
  2898  	}
  2899  	return &AddressBookRegisterCnStakingContractIterator{contract: _AddressBook.contract, event: "RegisterCnStakingContract", logs: logs, sub: sub}, nil
  2900  }
  2901  
  2902  // WatchRegisterCnStakingContract is a free log subscription operation binding the contract event 0xe01726557c1ea9f7286dca4bba890e96fea9041689db298806306cafa74c9e91.
  2903  //
  2904  // Solidity: event RegisterCnStakingContract(address cnNodeId, address cnStakingContractAddress, address cnRewardAddress)
  2905  func (_AddressBook *AddressBookFilterer) WatchRegisterCnStakingContract(opts *bind.WatchOpts, sink chan<- *AddressBookRegisterCnStakingContract) (event.Subscription, error) {
  2906  
  2907  	logs, sub, err := _AddressBook.contract.WatchLogs(opts, "RegisterCnStakingContract")
  2908  	if err != nil {
  2909  		return nil, err
  2910  	}
  2911  	return event.NewSubscription(func(quit <-chan struct{}) error {
  2912  		defer sub.Unsubscribe()
  2913  		for {
  2914  			select {
  2915  			case log := <-logs:
  2916  				// New log arrived, parse the event and forward to the user
  2917  				event := new(AddressBookRegisterCnStakingContract)
  2918  				if err := _AddressBook.contract.UnpackLog(event, "RegisterCnStakingContract", log); err != nil {
  2919  					return err
  2920  				}
  2921  				event.Raw = log
  2922  
  2923  				select {
  2924  				case sink <- event:
  2925  				case err := <-sub.Err():
  2926  					return err
  2927  				case <-quit:
  2928  					return nil
  2929  				}
  2930  			case err := <-sub.Err():
  2931  				return err
  2932  			case <-quit:
  2933  				return nil
  2934  			}
  2935  		}
  2936  	}), nil
  2937  }
  2938  
  2939  // ParseRegisterCnStakingContract is a log parse operation binding the contract event 0xe01726557c1ea9f7286dca4bba890e96fea9041689db298806306cafa74c9e91.
  2940  //
  2941  // Solidity: event RegisterCnStakingContract(address cnNodeId, address cnStakingContractAddress, address cnRewardAddress)
  2942  func (_AddressBook *AddressBookFilterer) ParseRegisterCnStakingContract(log types.Log) (*AddressBookRegisterCnStakingContract, error) {
  2943  	event := new(AddressBookRegisterCnStakingContract)
  2944  	if err := _AddressBook.contract.UnpackLog(event, "RegisterCnStakingContract", log); err != nil {
  2945  		return nil, err
  2946  	}
  2947  	return event, nil
  2948  }
  2949  
  2950  // AddressBookReviseRewardAddressIterator is returned from FilterReviseRewardAddress and is used to iterate over the raw logs and unpacked data for ReviseRewardAddress events raised by the AddressBook contract.
  2951  type AddressBookReviseRewardAddressIterator struct {
  2952  	Event *AddressBookReviseRewardAddress // Event containing the contract specifics and raw log
  2953  
  2954  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  2955  	event    string              // Event name to use for unpacking event data
  2956  
  2957  	logs chan types.Log      // Log channel receiving the found contract events
  2958  	sub  klaytn.Subscription // Subscription for errors, completion and termination
  2959  	done bool                // Whether the subscription completed delivering logs
  2960  	fail error               // Occurred error to stop iteration
  2961  }
  2962  
  2963  // Next advances the iterator to the subsequent event, returning whether there
  2964  // are any more events found. In case of a retrieval or parsing error, false is
  2965  // returned and Error() can be queried for the exact failure.
  2966  func (it *AddressBookReviseRewardAddressIterator) Next() bool {
  2967  	// If the iterator failed, stop iterating
  2968  	if it.fail != nil {
  2969  		return false
  2970  	}
  2971  	// If the iterator completed, deliver directly whatever's available
  2972  	if it.done {
  2973  		select {
  2974  		case log := <-it.logs:
  2975  			it.Event = new(AddressBookReviseRewardAddress)
  2976  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  2977  				it.fail = err
  2978  				return false
  2979  			}
  2980  			it.Event.Raw = log
  2981  			return true
  2982  
  2983  		default:
  2984  			return false
  2985  		}
  2986  	}
  2987  	// Iterator still in progress, wait for either a data or an error event
  2988  	select {
  2989  	case log := <-it.logs:
  2990  		it.Event = new(AddressBookReviseRewardAddress)
  2991  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  2992  			it.fail = err
  2993  			return false
  2994  		}
  2995  		it.Event.Raw = log
  2996  		return true
  2997  
  2998  	case err := <-it.sub.Err():
  2999  		it.done = true
  3000  		it.fail = err
  3001  		return it.Next()
  3002  	}
  3003  }
  3004  
  3005  // Error returns any retrieval or parsing error occurred during filtering.
  3006  func (it *AddressBookReviseRewardAddressIterator) Error() error {
  3007  	return it.fail
  3008  }
  3009  
  3010  // Close terminates the iteration process, releasing any pending underlying
  3011  // resources.
  3012  func (it *AddressBookReviseRewardAddressIterator) Close() error {
  3013  	it.sub.Unsubscribe()
  3014  	return nil
  3015  }
  3016  
  3017  // AddressBookReviseRewardAddress represents a ReviseRewardAddress event raised by the AddressBook contract.
  3018  type AddressBookReviseRewardAddress struct {
  3019  	CnNodeId          common.Address
  3020  	PrevRewardAddress common.Address
  3021  	CurRewardAddress  common.Address
  3022  	Raw               types.Log // Blockchain specific contextual infos
  3023  }
  3024  
  3025  // FilterReviseRewardAddress is a free log retrieval operation binding the contract event 0xaa5c92ffd739bc0b8b117b671e7d713917ddb1440b436263a3ea106d70c6f05f.
  3026  //
  3027  // Solidity: event ReviseRewardAddress(address cnNodeId, address prevRewardAddress, address curRewardAddress)
  3028  func (_AddressBook *AddressBookFilterer) FilterReviseRewardAddress(opts *bind.FilterOpts) (*AddressBookReviseRewardAddressIterator, error) {
  3029  
  3030  	logs, sub, err := _AddressBook.contract.FilterLogs(opts, "ReviseRewardAddress")
  3031  	if err != nil {
  3032  		return nil, err
  3033  	}
  3034  	return &AddressBookReviseRewardAddressIterator{contract: _AddressBook.contract, event: "ReviseRewardAddress", logs: logs, sub: sub}, nil
  3035  }
  3036  
  3037  // WatchReviseRewardAddress is a free log subscription operation binding the contract event 0xaa5c92ffd739bc0b8b117b671e7d713917ddb1440b436263a3ea106d70c6f05f.
  3038  //
  3039  // Solidity: event ReviseRewardAddress(address cnNodeId, address prevRewardAddress, address curRewardAddress)
  3040  func (_AddressBook *AddressBookFilterer) WatchReviseRewardAddress(opts *bind.WatchOpts, sink chan<- *AddressBookReviseRewardAddress) (event.Subscription, error) {
  3041  
  3042  	logs, sub, err := _AddressBook.contract.WatchLogs(opts, "ReviseRewardAddress")
  3043  	if err != nil {
  3044  		return nil, err
  3045  	}
  3046  	return event.NewSubscription(func(quit <-chan struct{}) error {
  3047  		defer sub.Unsubscribe()
  3048  		for {
  3049  			select {
  3050  			case log := <-logs:
  3051  				// New log arrived, parse the event and forward to the user
  3052  				event := new(AddressBookReviseRewardAddress)
  3053  				if err := _AddressBook.contract.UnpackLog(event, "ReviseRewardAddress", log); err != nil {
  3054  					return err
  3055  				}
  3056  				event.Raw = log
  3057  
  3058  				select {
  3059  				case sink <- event:
  3060  				case err := <-sub.Err():
  3061  					return err
  3062  				case <-quit:
  3063  					return nil
  3064  				}
  3065  			case err := <-sub.Err():
  3066  				return err
  3067  			case <-quit:
  3068  				return nil
  3069  			}
  3070  		}
  3071  	}), nil
  3072  }
  3073  
  3074  // ParseReviseRewardAddress is a log parse operation binding the contract event 0xaa5c92ffd739bc0b8b117b671e7d713917ddb1440b436263a3ea106d70c6f05f.
  3075  //
  3076  // Solidity: event ReviseRewardAddress(address cnNodeId, address prevRewardAddress, address curRewardAddress)
  3077  func (_AddressBook *AddressBookFilterer) ParseReviseRewardAddress(log types.Log) (*AddressBookReviseRewardAddress, error) {
  3078  	event := new(AddressBookReviseRewardAddress)
  3079  	if err := _AddressBook.contract.UnpackLog(event, "ReviseRewardAddress", log); err != nil {
  3080  		return nil, err
  3081  	}
  3082  	return event, nil
  3083  }
  3084  
  3085  // AddressBookRevokeRequestIterator is returned from FilterRevokeRequest and is used to iterate over the raw logs and unpacked data for RevokeRequest events raised by the AddressBook contract.
  3086  type AddressBookRevokeRequestIterator struct {
  3087  	Event *AddressBookRevokeRequest // Event containing the contract specifics and raw log
  3088  
  3089  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  3090  	event    string              // Event name to use for unpacking event data
  3091  
  3092  	logs chan types.Log      // Log channel receiving the found contract events
  3093  	sub  klaytn.Subscription // Subscription for errors, completion and termination
  3094  	done bool                // Whether the subscription completed delivering logs
  3095  	fail error               // Occurred error to stop iteration
  3096  }
  3097  
  3098  // Next advances the iterator to the subsequent event, returning whether there
  3099  // are any more events found. In case of a retrieval or parsing error, false is
  3100  // returned and Error() can be queried for the exact failure.
  3101  func (it *AddressBookRevokeRequestIterator) Next() bool {
  3102  	// If the iterator failed, stop iterating
  3103  	if it.fail != nil {
  3104  		return false
  3105  	}
  3106  	// If the iterator completed, deliver directly whatever's available
  3107  	if it.done {
  3108  		select {
  3109  		case log := <-it.logs:
  3110  			it.Event = new(AddressBookRevokeRequest)
  3111  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  3112  				it.fail = err
  3113  				return false
  3114  			}
  3115  			it.Event.Raw = log
  3116  			return true
  3117  
  3118  		default:
  3119  			return false
  3120  		}
  3121  	}
  3122  	// Iterator still in progress, wait for either a data or an error event
  3123  	select {
  3124  	case log := <-it.logs:
  3125  		it.Event = new(AddressBookRevokeRequest)
  3126  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  3127  			it.fail = err
  3128  			return false
  3129  		}
  3130  		it.Event.Raw = log
  3131  		return true
  3132  
  3133  	case err := <-it.sub.Err():
  3134  		it.done = true
  3135  		it.fail = err
  3136  		return it.Next()
  3137  	}
  3138  }
  3139  
  3140  // Error returns any retrieval or parsing error occurred during filtering.
  3141  func (it *AddressBookRevokeRequestIterator) Error() error {
  3142  	return it.fail
  3143  }
  3144  
  3145  // Close terminates the iteration process, releasing any pending underlying
  3146  // resources.
  3147  func (it *AddressBookRevokeRequestIterator) Close() error {
  3148  	it.sub.Unsubscribe()
  3149  	return nil
  3150  }
  3151  
  3152  // AddressBookRevokeRequest represents a RevokeRequest event raised by the AddressBook contract.
  3153  type AddressBookRevokeRequest struct {
  3154  	Id         [32]byte
  3155  	From       common.Address
  3156  	FunctionId uint8
  3157  	FirstArg   [32]byte
  3158  	SecondArg  [32]byte
  3159  	ThirdArg   [32]byte
  3160  	Confirmers []common.Address
  3161  	Raw        types.Log // Blockchain specific contextual infos
  3162  }
  3163  
  3164  // FilterRevokeRequest is a free log retrieval operation binding the contract event 0x9c174b2536ba49e3478ca649dac74d9e9f71f70adf70f193e780eabbfcdc367c.
  3165  //
  3166  // Solidity: event RevokeRequest(bytes32 indexed id, address indexed from, uint8 functionId, bytes32 firstArg, bytes32 secondArg, bytes32 thirdArg, address[] confirmers)
  3167  func (_AddressBook *AddressBookFilterer) FilterRevokeRequest(opts *bind.FilterOpts, id [][32]byte, from []common.Address) (*AddressBookRevokeRequestIterator, error) {
  3168  
  3169  	var idRule []interface{}
  3170  	for _, idItem := range id {
  3171  		idRule = append(idRule, idItem)
  3172  	}
  3173  	var fromRule []interface{}
  3174  	for _, fromItem := range from {
  3175  		fromRule = append(fromRule, fromItem)
  3176  	}
  3177  
  3178  	logs, sub, err := _AddressBook.contract.FilterLogs(opts, "RevokeRequest", idRule, fromRule)
  3179  	if err != nil {
  3180  		return nil, err
  3181  	}
  3182  	return &AddressBookRevokeRequestIterator{contract: _AddressBook.contract, event: "RevokeRequest", logs: logs, sub: sub}, nil
  3183  }
  3184  
  3185  // WatchRevokeRequest is a free log subscription operation binding the contract event 0x9c174b2536ba49e3478ca649dac74d9e9f71f70adf70f193e780eabbfcdc367c.
  3186  //
  3187  // Solidity: event RevokeRequest(bytes32 indexed id, address indexed from, uint8 functionId, bytes32 firstArg, bytes32 secondArg, bytes32 thirdArg, address[] confirmers)
  3188  func (_AddressBook *AddressBookFilterer) WatchRevokeRequest(opts *bind.WatchOpts, sink chan<- *AddressBookRevokeRequest, id [][32]byte, from []common.Address) (event.Subscription, error) {
  3189  
  3190  	var idRule []interface{}
  3191  	for _, idItem := range id {
  3192  		idRule = append(idRule, idItem)
  3193  	}
  3194  	var fromRule []interface{}
  3195  	for _, fromItem := range from {
  3196  		fromRule = append(fromRule, fromItem)
  3197  	}
  3198  
  3199  	logs, sub, err := _AddressBook.contract.WatchLogs(opts, "RevokeRequest", idRule, fromRule)
  3200  	if err != nil {
  3201  		return nil, err
  3202  	}
  3203  	return event.NewSubscription(func(quit <-chan struct{}) error {
  3204  		defer sub.Unsubscribe()
  3205  		for {
  3206  			select {
  3207  			case log := <-logs:
  3208  				// New log arrived, parse the event and forward to the user
  3209  				event := new(AddressBookRevokeRequest)
  3210  				if err := _AddressBook.contract.UnpackLog(event, "RevokeRequest", log); err != nil {
  3211  					return err
  3212  				}
  3213  				event.Raw = log
  3214  
  3215  				select {
  3216  				case sink <- event:
  3217  				case err := <-sub.Err():
  3218  					return err
  3219  				case <-quit:
  3220  					return nil
  3221  				}
  3222  			case err := <-sub.Err():
  3223  				return err
  3224  			case <-quit:
  3225  				return nil
  3226  			}
  3227  		}
  3228  	}), nil
  3229  }
  3230  
  3231  // ParseRevokeRequest is a log parse operation binding the contract event 0x9c174b2536ba49e3478ca649dac74d9e9f71f70adf70f193e780eabbfcdc367c.
  3232  //
  3233  // Solidity: event RevokeRequest(bytes32 indexed id, address indexed from, uint8 functionId, bytes32 firstArg, bytes32 secondArg, bytes32 thirdArg, address[] confirmers)
  3234  func (_AddressBook *AddressBookFilterer) ParseRevokeRequest(log types.Log) (*AddressBookRevokeRequest, error) {
  3235  	event := new(AddressBookRevokeRequest)
  3236  	if err := _AddressBook.contract.UnpackLog(event, "RevokeRequest", log); err != nil {
  3237  		return nil, err
  3238  	}
  3239  	return event, nil
  3240  }
  3241  
  3242  // AddressBookSubmitRequestIterator is returned from FilterSubmitRequest and is used to iterate over the raw logs and unpacked data for SubmitRequest events raised by the AddressBook contract.
  3243  type AddressBookSubmitRequestIterator struct {
  3244  	Event *AddressBookSubmitRequest // Event containing the contract specifics and raw log
  3245  
  3246  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  3247  	event    string              // Event name to use for unpacking event data
  3248  
  3249  	logs chan types.Log      // Log channel receiving the found contract events
  3250  	sub  klaytn.Subscription // Subscription for errors, completion and termination
  3251  	done bool                // Whether the subscription completed delivering logs
  3252  	fail error               // Occurred error to stop iteration
  3253  }
  3254  
  3255  // Next advances the iterator to the subsequent event, returning whether there
  3256  // are any more events found. In case of a retrieval or parsing error, false is
  3257  // returned and Error() can be queried for the exact failure.
  3258  func (it *AddressBookSubmitRequestIterator) Next() bool {
  3259  	// If the iterator failed, stop iterating
  3260  	if it.fail != nil {
  3261  		return false
  3262  	}
  3263  	// If the iterator completed, deliver directly whatever's available
  3264  	if it.done {
  3265  		select {
  3266  		case log := <-it.logs:
  3267  			it.Event = new(AddressBookSubmitRequest)
  3268  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  3269  				it.fail = err
  3270  				return false
  3271  			}
  3272  			it.Event.Raw = log
  3273  			return true
  3274  
  3275  		default:
  3276  			return false
  3277  		}
  3278  	}
  3279  	// Iterator still in progress, wait for either a data or an error event
  3280  	select {
  3281  	case log := <-it.logs:
  3282  		it.Event = new(AddressBookSubmitRequest)
  3283  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  3284  			it.fail = err
  3285  			return false
  3286  		}
  3287  		it.Event.Raw = log
  3288  		return true
  3289  
  3290  	case err := <-it.sub.Err():
  3291  		it.done = true
  3292  		it.fail = err
  3293  		return it.Next()
  3294  	}
  3295  }
  3296  
  3297  // Error returns any retrieval or parsing error occurred during filtering.
  3298  func (it *AddressBookSubmitRequestIterator) Error() error {
  3299  	return it.fail
  3300  }
  3301  
  3302  // Close terminates the iteration process, releasing any pending underlying
  3303  // resources.
  3304  func (it *AddressBookSubmitRequestIterator) Close() error {
  3305  	it.sub.Unsubscribe()
  3306  	return nil
  3307  }
  3308  
  3309  // AddressBookSubmitRequest represents a SubmitRequest event raised by the AddressBook contract.
  3310  type AddressBookSubmitRequest struct {
  3311  	Id         [32]byte
  3312  	From       common.Address
  3313  	FunctionId uint8
  3314  	FirstArg   [32]byte
  3315  	SecondArg  [32]byte
  3316  	ThirdArg   [32]byte
  3317  	Confirmers []common.Address
  3318  	Raw        types.Log // Blockchain specific contextual infos
  3319  }
  3320  
  3321  // FilterSubmitRequest is a free log retrieval operation binding the contract event 0xb7b03afe355fcf2b1d00e020db2b1a902b9ee1b1c1d995626c1e18c957340ea8.
  3322  //
  3323  // Solidity: event SubmitRequest(bytes32 indexed id, address indexed from, uint8 functionId, bytes32 firstArg, bytes32 secondArg, bytes32 thirdArg, address[] confirmers)
  3324  func (_AddressBook *AddressBookFilterer) FilterSubmitRequest(opts *bind.FilterOpts, id [][32]byte, from []common.Address) (*AddressBookSubmitRequestIterator, error) {
  3325  
  3326  	var idRule []interface{}
  3327  	for _, idItem := range id {
  3328  		idRule = append(idRule, idItem)
  3329  	}
  3330  	var fromRule []interface{}
  3331  	for _, fromItem := range from {
  3332  		fromRule = append(fromRule, fromItem)
  3333  	}
  3334  
  3335  	logs, sub, err := _AddressBook.contract.FilterLogs(opts, "SubmitRequest", idRule, fromRule)
  3336  	if err != nil {
  3337  		return nil, err
  3338  	}
  3339  	return &AddressBookSubmitRequestIterator{contract: _AddressBook.contract, event: "SubmitRequest", logs: logs, sub: sub}, nil
  3340  }
  3341  
  3342  // WatchSubmitRequest is a free log subscription operation binding the contract event 0xb7b03afe355fcf2b1d00e020db2b1a902b9ee1b1c1d995626c1e18c957340ea8.
  3343  //
  3344  // Solidity: event SubmitRequest(bytes32 indexed id, address indexed from, uint8 functionId, bytes32 firstArg, bytes32 secondArg, bytes32 thirdArg, address[] confirmers)
  3345  func (_AddressBook *AddressBookFilterer) WatchSubmitRequest(opts *bind.WatchOpts, sink chan<- *AddressBookSubmitRequest, id [][32]byte, from []common.Address) (event.Subscription, error) {
  3346  
  3347  	var idRule []interface{}
  3348  	for _, idItem := range id {
  3349  		idRule = append(idRule, idItem)
  3350  	}
  3351  	var fromRule []interface{}
  3352  	for _, fromItem := range from {
  3353  		fromRule = append(fromRule, fromItem)
  3354  	}
  3355  
  3356  	logs, sub, err := _AddressBook.contract.WatchLogs(opts, "SubmitRequest", idRule, fromRule)
  3357  	if err != nil {
  3358  		return nil, err
  3359  	}
  3360  	return event.NewSubscription(func(quit <-chan struct{}) error {
  3361  		defer sub.Unsubscribe()
  3362  		for {
  3363  			select {
  3364  			case log := <-logs:
  3365  				// New log arrived, parse the event and forward to the user
  3366  				event := new(AddressBookSubmitRequest)
  3367  				if err := _AddressBook.contract.UnpackLog(event, "SubmitRequest", log); err != nil {
  3368  					return err
  3369  				}
  3370  				event.Raw = log
  3371  
  3372  				select {
  3373  				case sink <- event:
  3374  				case err := <-sub.Err():
  3375  					return err
  3376  				case <-quit:
  3377  					return nil
  3378  				}
  3379  			case err := <-sub.Err():
  3380  				return err
  3381  			case <-quit:
  3382  				return nil
  3383  			}
  3384  		}
  3385  	}), nil
  3386  }
  3387  
  3388  // ParseSubmitRequest is a log parse operation binding the contract event 0xb7b03afe355fcf2b1d00e020db2b1a902b9ee1b1c1d995626c1e18c957340ea8.
  3389  //
  3390  // Solidity: event SubmitRequest(bytes32 indexed id, address indexed from, uint8 functionId, bytes32 firstArg, bytes32 secondArg, bytes32 thirdArg, address[] confirmers)
  3391  func (_AddressBook *AddressBookFilterer) ParseSubmitRequest(log types.Log) (*AddressBookSubmitRequest, error) {
  3392  	event := new(AddressBookSubmitRequest)
  3393  	if err := _AddressBook.contract.UnpackLog(event, "SubmitRequest", log); err != nil {
  3394  		return nil, err
  3395  	}
  3396  	return event, nil
  3397  }
  3398  
  3399  // AddressBookUnregisterCnStakingContractIterator is returned from FilterUnregisterCnStakingContract and is used to iterate over the raw logs and unpacked data for UnregisterCnStakingContract events raised by the AddressBook contract.
  3400  type AddressBookUnregisterCnStakingContractIterator struct {
  3401  	Event *AddressBookUnregisterCnStakingContract // Event containing the contract specifics and raw log
  3402  
  3403  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  3404  	event    string              // Event name to use for unpacking event data
  3405  
  3406  	logs chan types.Log      // Log channel receiving the found contract events
  3407  	sub  klaytn.Subscription // Subscription for errors, completion and termination
  3408  	done bool                // Whether the subscription completed delivering logs
  3409  	fail error               // Occurred error to stop iteration
  3410  }
  3411  
  3412  // Next advances the iterator to the subsequent event, returning whether there
  3413  // are any more events found. In case of a retrieval or parsing error, false is
  3414  // returned and Error() can be queried for the exact failure.
  3415  func (it *AddressBookUnregisterCnStakingContractIterator) Next() bool {
  3416  	// If the iterator failed, stop iterating
  3417  	if it.fail != nil {
  3418  		return false
  3419  	}
  3420  	// If the iterator completed, deliver directly whatever's available
  3421  	if it.done {
  3422  		select {
  3423  		case log := <-it.logs:
  3424  			it.Event = new(AddressBookUnregisterCnStakingContract)
  3425  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  3426  				it.fail = err
  3427  				return false
  3428  			}
  3429  			it.Event.Raw = log
  3430  			return true
  3431  
  3432  		default:
  3433  			return false
  3434  		}
  3435  	}
  3436  	// Iterator still in progress, wait for either a data or an error event
  3437  	select {
  3438  	case log := <-it.logs:
  3439  		it.Event = new(AddressBookUnregisterCnStakingContract)
  3440  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  3441  			it.fail = err
  3442  			return false
  3443  		}
  3444  		it.Event.Raw = log
  3445  		return true
  3446  
  3447  	case err := <-it.sub.Err():
  3448  		it.done = true
  3449  		it.fail = err
  3450  		return it.Next()
  3451  	}
  3452  }
  3453  
  3454  // Error returns any retrieval or parsing error occurred during filtering.
  3455  func (it *AddressBookUnregisterCnStakingContractIterator) Error() error {
  3456  	return it.fail
  3457  }
  3458  
  3459  // Close terminates the iteration process, releasing any pending underlying
  3460  // resources.
  3461  func (it *AddressBookUnregisterCnStakingContractIterator) Close() error {
  3462  	it.sub.Unsubscribe()
  3463  	return nil
  3464  }
  3465  
  3466  // AddressBookUnregisterCnStakingContract represents a UnregisterCnStakingContract event raised by the AddressBook contract.
  3467  type AddressBookUnregisterCnStakingContract struct {
  3468  	CnNodeId common.Address
  3469  	Raw      types.Log // Blockchain specific contextual infos
  3470  }
  3471  
  3472  // FilterUnregisterCnStakingContract is a free log retrieval operation binding the contract event 0xa30079721e55931e89e7cdb421712ad0fcc817e7cac8fe954aa7ed0d46b9c42d.
  3473  //
  3474  // Solidity: event UnregisterCnStakingContract(address cnNodeId)
  3475  func (_AddressBook *AddressBookFilterer) FilterUnregisterCnStakingContract(opts *bind.FilterOpts) (*AddressBookUnregisterCnStakingContractIterator, error) {
  3476  
  3477  	logs, sub, err := _AddressBook.contract.FilterLogs(opts, "UnregisterCnStakingContract")
  3478  	if err != nil {
  3479  		return nil, err
  3480  	}
  3481  	return &AddressBookUnregisterCnStakingContractIterator{contract: _AddressBook.contract, event: "UnregisterCnStakingContract", logs: logs, sub: sub}, nil
  3482  }
  3483  
  3484  // WatchUnregisterCnStakingContract is a free log subscription operation binding the contract event 0xa30079721e55931e89e7cdb421712ad0fcc817e7cac8fe954aa7ed0d46b9c42d.
  3485  //
  3486  // Solidity: event UnregisterCnStakingContract(address cnNodeId)
  3487  func (_AddressBook *AddressBookFilterer) WatchUnregisterCnStakingContract(opts *bind.WatchOpts, sink chan<- *AddressBookUnregisterCnStakingContract) (event.Subscription, error) {
  3488  
  3489  	logs, sub, err := _AddressBook.contract.WatchLogs(opts, "UnregisterCnStakingContract")
  3490  	if err != nil {
  3491  		return nil, err
  3492  	}
  3493  	return event.NewSubscription(func(quit <-chan struct{}) error {
  3494  		defer sub.Unsubscribe()
  3495  		for {
  3496  			select {
  3497  			case log := <-logs:
  3498  				// New log arrived, parse the event and forward to the user
  3499  				event := new(AddressBookUnregisterCnStakingContract)
  3500  				if err := _AddressBook.contract.UnpackLog(event, "UnregisterCnStakingContract", log); err != nil {
  3501  					return err
  3502  				}
  3503  				event.Raw = log
  3504  
  3505  				select {
  3506  				case sink <- event:
  3507  				case err := <-sub.Err():
  3508  					return err
  3509  				case <-quit:
  3510  					return nil
  3511  				}
  3512  			case err := <-sub.Err():
  3513  				return err
  3514  			case <-quit:
  3515  				return nil
  3516  			}
  3517  		}
  3518  	}), nil
  3519  }
  3520  
  3521  // ParseUnregisterCnStakingContract is a log parse operation binding the contract event 0xa30079721e55931e89e7cdb421712ad0fcc817e7cac8fe954aa7ed0d46b9c42d.
  3522  //
  3523  // Solidity: event UnregisterCnStakingContract(address cnNodeId)
  3524  func (_AddressBook *AddressBookFilterer) ParseUnregisterCnStakingContract(log types.Log) (*AddressBookUnregisterCnStakingContract, error) {
  3525  	event := new(AddressBookUnregisterCnStakingContract)
  3526  	if err := _AddressBook.contract.UnpackLog(event, "UnregisterCnStakingContract", log); err != nil {
  3527  		return nil, err
  3528  	}
  3529  	return event, nil
  3530  }
  3531  
  3532  // AddressBookUpdateKirContractIterator is returned from FilterUpdateKirContract and is used to iterate over the raw logs and unpacked data for UpdateKirContract events raised by the AddressBook contract.
  3533  type AddressBookUpdateKirContractIterator struct {
  3534  	Event *AddressBookUpdateKirContract // Event containing the contract specifics and raw log
  3535  
  3536  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  3537  	event    string              // Event name to use for unpacking event data
  3538  
  3539  	logs chan types.Log      // Log channel receiving the found contract events
  3540  	sub  klaytn.Subscription // Subscription for errors, completion and termination
  3541  	done bool                // Whether the subscription completed delivering logs
  3542  	fail error               // Occurred error to stop iteration
  3543  }
  3544  
  3545  // Next advances the iterator to the subsequent event, returning whether there
  3546  // are any more events found. In case of a retrieval or parsing error, false is
  3547  // returned and Error() can be queried for the exact failure.
  3548  func (it *AddressBookUpdateKirContractIterator) Next() bool {
  3549  	// If the iterator failed, stop iterating
  3550  	if it.fail != nil {
  3551  		return false
  3552  	}
  3553  	// If the iterator completed, deliver directly whatever's available
  3554  	if it.done {
  3555  		select {
  3556  		case log := <-it.logs:
  3557  			it.Event = new(AddressBookUpdateKirContract)
  3558  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  3559  				it.fail = err
  3560  				return false
  3561  			}
  3562  			it.Event.Raw = log
  3563  			return true
  3564  
  3565  		default:
  3566  			return false
  3567  		}
  3568  	}
  3569  	// Iterator still in progress, wait for either a data or an error event
  3570  	select {
  3571  	case log := <-it.logs:
  3572  		it.Event = new(AddressBookUpdateKirContract)
  3573  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  3574  			it.fail = err
  3575  			return false
  3576  		}
  3577  		it.Event.Raw = log
  3578  		return true
  3579  
  3580  	case err := <-it.sub.Err():
  3581  		it.done = true
  3582  		it.fail = err
  3583  		return it.Next()
  3584  	}
  3585  }
  3586  
  3587  // Error returns any retrieval or parsing error occurred during filtering.
  3588  func (it *AddressBookUpdateKirContractIterator) Error() error {
  3589  	return it.fail
  3590  }
  3591  
  3592  // Close terminates the iteration process, releasing any pending underlying
  3593  // resources.
  3594  func (it *AddressBookUpdateKirContractIterator) Close() error {
  3595  	it.sub.Unsubscribe()
  3596  	return nil
  3597  }
  3598  
  3599  // AddressBookUpdateKirContract represents a UpdateKirContract event raised by the AddressBook contract.
  3600  type AddressBookUpdateKirContract struct {
  3601  	PrevKirContractAddress common.Address
  3602  	PrevVersion            *big.Int
  3603  	CurKirContractAddress  common.Address
  3604  	CurVersion             *big.Int
  3605  	Raw                    types.Log // Blockchain specific contextual infos
  3606  }
  3607  
  3608  // FilterUpdateKirContract is a free log retrieval operation binding the contract event 0xfdccdf242038c2d09605009fbb95e03f75cdbd106d0a9e52a1670be9553c8848.
  3609  //
  3610  // Solidity: event UpdateKirContract(address prevKirContractAddress, uint256 prevVersion, address curKirContractAddress, uint256 curVersion)
  3611  func (_AddressBook *AddressBookFilterer) FilterUpdateKirContract(opts *bind.FilterOpts) (*AddressBookUpdateKirContractIterator, error) {
  3612  
  3613  	logs, sub, err := _AddressBook.contract.FilterLogs(opts, "UpdateKirContract")
  3614  	if err != nil {
  3615  		return nil, err
  3616  	}
  3617  	return &AddressBookUpdateKirContractIterator{contract: _AddressBook.contract, event: "UpdateKirContract", logs: logs, sub: sub}, nil
  3618  }
  3619  
  3620  // WatchUpdateKirContract is a free log subscription operation binding the contract event 0xfdccdf242038c2d09605009fbb95e03f75cdbd106d0a9e52a1670be9553c8848.
  3621  //
  3622  // Solidity: event UpdateKirContract(address prevKirContractAddress, uint256 prevVersion, address curKirContractAddress, uint256 curVersion)
  3623  func (_AddressBook *AddressBookFilterer) WatchUpdateKirContract(opts *bind.WatchOpts, sink chan<- *AddressBookUpdateKirContract) (event.Subscription, error) {
  3624  
  3625  	logs, sub, err := _AddressBook.contract.WatchLogs(opts, "UpdateKirContract")
  3626  	if err != nil {
  3627  		return nil, err
  3628  	}
  3629  	return event.NewSubscription(func(quit <-chan struct{}) error {
  3630  		defer sub.Unsubscribe()
  3631  		for {
  3632  			select {
  3633  			case log := <-logs:
  3634  				// New log arrived, parse the event and forward to the user
  3635  				event := new(AddressBookUpdateKirContract)
  3636  				if err := _AddressBook.contract.UnpackLog(event, "UpdateKirContract", log); err != nil {
  3637  					return err
  3638  				}
  3639  				event.Raw = log
  3640  
  3641  				select {
  3642  				case sink <- event:
  3643  				case err := <-sub.Err():
  3644  					return err
  3645  				case <-quit:
  3646  					return nil
  3647  				}
  3648  			case err := <-sub.Err():
  3649  				return err
  3650  			case <-quit:
  3651  				return nil
  3652  			}
  3653  		}
  3654  	}), nil
  3655  }
  3656  
  3657  // ParseUpdateKirContract is a log parse operation binding the contract event 0xfdccdf242038c2d09605009fbb95e03f75cdbd106d0a9e52a1670be9553c8848.
  3658  //
  3659  // Solidity: event UpdateKirContract(address prevKirContractAddress, uint256 prevVersion, address curKirContractAddress, uint256 curVersion)
  3660  func (_AddressBook *AddressBookFilterer) ParseUpdateKirContract(log types.Log) (*AddressBookUpdateKirContract, error) {
  3661  	event := new(AddressBookUpdateKirContract)
  3662  	if err := _AddressBook.contract.UnpackLog(event, "UpdateKirContract", log); err != nil {
  3663  		return nil, err
  3664  	}
  3665  	return event, nil
  3666  }
  3667  
  3668  // AddressBookUpdatePocContractIterator is returned from FilterUpdatePocContract and is used to iterate over the raw logs and unpacked data for UpdatePocContract events raised by the AddressBook contract.
  3669  type AddressBookUpdatePocContractIterator struct {
  3670  	Event *AddressBookUpdatePocContract // Event containing the contract specifics and raw log
  3671  
  3672  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  3673  	event    string              // Event name to use for unpacking event data
  3674  
  3675  	logs chan types.Log      // Log channel receiving the found contract events
  3676  	sub  klaytn.Subscription // Subscription for errors, completion and termination
  3677  	done bool                // Whether the subscription completed delivering logs
  3678  	fail error               // Occurred error to stop iteration
  3679  }
  3680  
  3681  // Next advances the iterator to the subsequent event, returning whether there
  3682  // are any more events found. In case of a retrieval or parsing error, false is
  3683  // returned and Error() can be queried for the exact failure.
  3684  func (it *AddressBookUpdatePocContractIterator) Next() bool {
  3685  	// If the iterator failed, stop iterating
  3686  	if it.fail != nil {
  3687  		return false
  3688  	}
  3689  	// If the iterator completed, deliver directly whatever's available
  3690  	if it.done {
  3691  		select {
  3692  		case log := <-it.logs:
  3693  			it.Event = new(AddressBookUpdatePocContract)
  3694  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  3695  				it.fail = err
  3696  				return false
  3697  			}
  3698  			it.Event.Raw = log
  3699  			return true
  3700  
  3701  		default:
  3702  			return false
  3703  		}
  3704  	}
  3705  	// Iterator still in progress, wait for either a data or an error event
  3706  	select {
  3707  	case log := <-it.logs:
  3708  		it.Event = new(AddressBookUpdatePocContract)
  3709  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  3710  			it.fail = err
  3711  			return false
  3712  		}
  3713  		it.Event.Raw = log
  3714  		return true
  3715  
  3716  	case err := <-it.sub.Err():
  3717  		it.done = true
  3718  		it.fail = err
  3719  		return it.Next()
  3720  	}
  3721  }
  3722  
  3723  // Error returns any retrieval or parsing error occurred during filtering.
  3724  func (it *AddressBookUpdatePocContractIterator) Error() error {
  3725  	return it.fail
  3726  }
  3727  
  3728  // Close terminates the iteration process, releasing any pending underlying
  3729  // resources.
  3730  func (it *AddressBookUpdatePocContractIterator) Close() error {
  3731  	it.sub.Unsubscribe()
  3732  	return nil
  3733  }
  3734  
  3735  // AddressBookUpdatePocContract represents a UpdatePocContract event raised by the AddressBook contract.
  3736  type AddressBookUpdatePocContract struct {
  3737  	PrevPocContractAddress common.Address
  3738  	PrevVersion            *big.Int
  3739  	CurPocContractAddress  common.Address
  3740  	CurVersion             *big.Int
  3741  	Raw                    types.Log // Blockchain specific contextual infos
  3742  }
  3743  
  3744  // FilterUpdatePocContract is a free log retrieval operation binding the contract event 0xd531725ac89042f190fd73adfdeff435e07500f1a92b4b87743f1bcf91acb3a7.
  3745  //
  3746  // Solidity: event UpdatePocContract(address prevPocContractAddress, uint256 prevVersion, address curPocContractAddress, uint256 curVersion)
  3747  func (_AddressBook *AddressBookFilterer) FilterUpdatePocContract(opts *bind.FilterOpts) (*AddressBookUpdatePocContractIterator, error) {
  3748  
  3749  	logs, sub, err := _AddressBook.contract.FilterLogs(opts, "UpdatePocContract")
  3750  	if err != nil {
  3751  		return nil, err
  3752  	}
  3753  	return &AddressBookUpdatePocContractIterator{contract: _AddressBook.contract, event: "UpdatePocContract", logs: logs, sub: sub}, nil
  3754  }
  3755  
  3756  // WatchUpdatePocContract is a free log subscription operation binding the contract event 0xd531725ac89042f190fd73adfdeff435e07500f1a92b4b87743f1bcf91acb3a7.
  3757  //
  3758  // Solidity: event UpdatePocContract(address prevPocContractAddress, uint256 prevVersion, address curPocContractAddress, uint256 curVersion)
  3759  func (_AddressBook *AddressBookFilterer) WatchUpdatePocContract(opts *bind.WatchOpts, sink chan<- *AddressBookUpdatePocContract) (event.Subscription, error) {
  3760  
  3761  	logs, sub, err := _AddressBook.contract.WatchLogs(opts, "UpdatePocContract")
  3762  	if err != nil {
  3763  		return nil, err
  3764  	}
  3765  	return event.NewSubscription(func(quit <-chan struct{}) error {
  3766  		defer sub.Unsubscribe()
  3767  		for {
  3768  			select {
  3769  			case log := <-logs:
  3770  				// New log arrived, parse the event and forward to the user
  3771  				event := new(AddressBookUpdatePocContract)
  3772  				if err := _AddressBook.contract.UnpackLog(event, "UpdatePocContract", log); err != nil {
  3773  					return err
  3774  				}
  3775  				event.Raw = log
  3776  
  3777  				select {
  3778  				case sink <- event:
  3779  				case err := <-sub.Err():
  3780  					return err
  3781  				case <-quit:
  3782  					return nil
  3783  				}
  3784  			case err := <-sub.Err():
  3785  				return err
  3786  			case <-quit:
  3787  				return nil
  3788  			}
  3789  		}
  3790  	}), nil
  3791  }
  3792  
  3793  // ParseUpdatePocContract is a log parse operation binding the contract event 0xd531725ac89042f190fd73adfdeff435e07500f1a92b4b87743f1bcf91acb3a7.
  3794  //
  3795  // Solidity: event UpdatePocContract(address prevPocContractAddress, uint256 prevVersion, address curPocContractAddress, uint256 curVersion)
  3796  func (_AddressBook *AddressBookFilterer) ParseUpdatePocContract(log types.Log) (*AddressBookUpdatePocContract, error) {
  3797  	event := new(AddressBookUpdatePocContract)
  3798  	if err := _AddressBook.contract.UnpackLog(event, "UpdatePocContract", log); err != nil {
  3799  		return nil, err
  3800  	}
  3801  	return event, nil
  3802  }
  3803  
  3804  // AddressBookUpdateRequirementIterator is returned from FilterUpdateRequirement and is used to iterate over the raw logs and unpacked data for UpdateRequirement events raised by the AddressBook contract.
  3805  type AddressBookUpdateRequirementIterator struct {
  3806  	Event *AddressBookUpdateRequirement // Event containing the contract specifics and raw log
  3807  
  3808  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  3809  	event    string              // Event name to use for unpacking event data
  3810  
  3811  	logs chan types.Log      // Log channel receiving the found contract events
  3812  	sub  klaytn.Subscription // Subscription for errors, completion and termination
  3813  	done bool                // Whether the subscription completed delivering logs
  3814  	fail error               // Occurred error to stop iteration
  3815  }
  3816  
  3817  // Next advances the iterator to the subsequent event, returning whether there
  3818  // are any more events found. In case of a retrieval or parsing error, false is
  3819  // returned and Error() can be queried for the exact failure.
  3820  func (it *AddressBookUpdateRequirementIterator) Next() bool {
  3821  	// If the iterator failed, stop iterating
  3822  	if it.fail != nil {
  3823  		return false
  3824  	}
  3825  	// If the iterator completed, deliver directly whatever's available
  3826  	if it.done {
  3827  		select {
  3828  		case log := <-it.logs:
  3829  			it.Event = new(AddressBookUpdateRequirement)
  3830  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  3831  				it.fail = err
  3832  				return false
  3833  			}
  3834  			it.Event.Raw = log
  3835  			return true
  3836  
  3837  		default:
  3838  			return false
  3839  		}
  3840  	}
  3841  	// Iterator still in progress, wait for either a data or an error event
  3842  	select {
  3843  	case log := <-it.logs:
  3844  		it.Event = new(AddressBookUpdateRequirement)
  3845  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  3846  			it.fail = err
  3847  			return false
  3848  		}
  3849  		it.Event.Raw = log
  3850  		return true
  3851  
  3852  	case err := <-it.sub.Err():
  3853  		it.done = true
  3854  		it.fail = err
  3855  		return it.Next()
  3856  	}
  3857  }
  3858  
  3859  // Error returns any retrieval or parsing error occurred during filtering.
  3860  func (it *AddressBookUpdateRequirementIterator) Error() error {
  3861  	return it.fail
  3862  }
  3863  
  3864  // Close terminates the iteration process, releasing any pending underlying
  3865  // resources.
  3866  func (it *AddressBookUpdateRequirementIterator) Close() error {
  3867  	it.sub.Unsubscribe()
  3868  	return nil
  3869  }
  3870  
  3871  // AddressBookUpdateRequirement represents a UpdateRequirement event raised by the AddressBook contract.
  3872  type AddressBookUpdateRequirement struct {
  3873  	Requirement *big.Int
  3874  	Raw         types.Log // Blockchain specific contextual infos
  3875  }
  3876  
  3877  // FilterUpdateRequirement is a free log retrieval operation binding the contract event 0x8951393946c27b45080aad111464c16c70f3d5e7d24b114a627334441961bf5f.
  3878  //
  3879  // Solidity: event UpdateRequirement(uint256 requirement)
  3880  func (_AddressBook *AddressBookFilterer) FilterUpdateRequirement(opts *bind.FilterOpts) (*AddressBookUpdateRequirementIterator, error) {
  3881  
  3882  	logs, sub, err := _AddressBook.contract.FilterLogs(opts, "UpdateRequirement")
  3883  	if err != nil {
  3884  		return nil, err
  3885  	}
  3886  	return &AddressBookUpdateRequirementIterator{contract: _AddressBook.contract, event: "UpdateRequirement", logs: logs, sub: sub}, nil
  3887  }
  3888  
  3889  // WatchUpdateRequirement is a free log subscription operation binding the contract event 0x8951393946c27b45080aad111464c16c70f3d5e7d24b114a627334441961bf5f.
  3890  //
  3891  // Solidity: event UpdateRequirement(uint256 requirement)
  3892  func (_AddressBook *AddressBookFilterer) WatchUpdateRequirement(opts *bind.WatchOpts, sink chan<- *AddressBookUpdateRequirement) (event.Subscription, error) {
  3893  
  3894  	logs, sub, err := _AddressBook.contract.WatchLogs(opts, "UpdateRequirement")
  3895  	if err != nil {
  3896  		return nil, err
  3897  	}
  3898  	return event.NewSubscription(func(quit <-chan struct{}) error {
  3899  		defer sub.Unsubscribe()
  3900  		for {
  3901  			select {
  3902  			case log := <-logs:
  3903  				// New log arrived, parse the event and forward to the user
  3904  				event := new(AddressBookUpdateRequirement)
  3905  				if err := _AddressBook.contract.UnpackLog(event, "UpdateRequirement", log); err != nil {
  3906  					return err
  3907  				}
  3908  				event.Raw = log
  3909  
  3910  				select {
  3911  				case sink <- event:
  3912  				case err := <-sub.Err():
  3913  					return err
  3914  				case <-quit:
  3915  					return nil
  3916  				}
  3917  			case err := <-sub.Err():
  3918  				return err
  3919  			case <-quit:
  3920  				return nil
  3921  			}
  3922  		}
  3923  	}), nil
  3924  }
  3925  
  3926  // ParseUpdateRequirement is a log parse operation binding the contract event 0x8951393946c27b45080aad111464c16c70f3d5e7d24b114a627334441961bf5f.
  3927  //
  3928  // Solidity: event UpdateRequirement(uint256 requirement)
  3929  func (_AddressBook *AddressBookFilterer) ParseUpdateRequirement(log types.Log) (*AddressBookUpdateRequirement, error) {
  3930  	event := new(AddressBookUpdateRequirement)
  3931  	if err := _AddressBook.contract.UnpackLog(event, "UpdateRequirement", log); err != nil {
  3932  		return nil, err
  3933  	}
  3934  	return event, nil
  3935  }
  3936  
  3937  // AddressBookUpdateSpareContractIterator is returned from FilterUpdateSpareContract and is used to iterate over the raw logs and unpacked data for UpdateSpareContract events raised by the AddressBook contract.
  3938  type AddressBookUpdateSpareContractIterator struct {
  3939  	Event *AddressBookUpdateSpareContract // Event containing the contract specifics and raw log
  3940  
  3941  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  3942  	event    string              // Event name to use for unpacking event data
  3943  
  3944  	logs chan types.Log      // Log channel receiving the found contract events
  3945  	sub  klaytn.Subscription // Subscription for errors, completion and termination
  3946  	done bool                // Whether the subscription completed delivering logs
  3947  	fail error               // Occurred error to stop iteration
  3948  }
  3949  
  3950  // Next advances the iterator to the subsequent event, returning whether there
  3951  // are any more events found. In case of a retrieval or parsing error, false is
  3952  // returned and Error() can be queried for the exact failure.
  3953  func (it *AddressBookUpdateSpareContractIterator) Next() bool {
  3954  	// If the iterator failed, stop iterating
  3955  	if it.fail != nil {
  3956  		return false
  3957  	}
  3958  	// If the iterator completed, deliver directly whatever's available
  3959  	if it.done {
  3960  		select {
  3961  		case log := <-it.logs:
  3962  			it.Event = new(AddressBookUpdateSpareContract)
  3963  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  3964  				it.fail = err
  3965  				return false
  3966  			}
  3967  			it.Event.Raw = log
  3968  			return true
  3969  
  3970  		default:
  3971  			return false
  3972  		}
  3973  	}
  3974  	// Iterator still in progress, wait for either a data or an error event
  3975  	select {
  3976  	case log := <-it.logs:
  3977  		it.Event = new(AddressBookUpdateSpareContract)
  3978  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  3979  			it.fail = err
  3980  			return false
  3981  		}
  3982  		it.Event.Raw = log
  3983  		return true
  3984  
  3985  	case err := <-it.sub.Err():
  3986  		it.done = true
  3987  		it.fail = err
  3988  		return it.Next()
  3989  	}
  3990  }
  3991  
  3992  // Error returns any retrieval or parsing error occurred during filtering.
  3993  func (it *AddressBookUpdateSpareContractIterator) Error() error {
  3994  	return it.fail
  3995  }
  3996  
  3997  // Close terminates the iteration process, releasing any pending underlying
  3998  // resources.
  3999  func (it *AddressBookUpdateSpareContractIterator) Close() error {
  4000  	it.sub.Unsubscribe()
  4001  	return nil
  4002  }
  4003  
  4004  // AddressBookUpdateSpareContract represents a UpdateSpareContract event raised by the AddressBook contract.
  4005  type AddressBookUpdateSpareContract struct {
  4006  	SpareContractAddress common.Address
  4007  	Raw                  types.Log // Blockchain specific contextual infos
  4008  }
  4009  
  4010  // FilterUpdateSpareContract is a free log retrieval operation binding the contract event 0x508aacd44cfe23a34a8c2643ab08c3410cf5505632cfce58dcfa0efa2fd2ff37.
  4011  //
  4012  // Solidity: event UpdateSpareContract(address spareContractAddress)
  4013  func (_AddressBook *AddressBookFilterer) FilterUpdateSpareContract(opts *bind.FilterOpts) (*AddressBookUpdateSpareContractIterator, error) {
  4014  
  4015  	logs, sub, err := _AddressBook.contract.FilterLogs(opts, "UpdateSpareContract")
  4016  	if err != nil {
  4017  		return nil, err
  4018  	}
  4019  	return &AddressBookUpdateSpareContractIterator{contract: _AddressBook.contract, event: "UpdateSpareContract", logs: logs, sub: sub}, nil
  4020  }
  4021  
  4022  // WatchUpdateSpareContract is a free log subscription operation binding the contract event 0x508aacd44cfe23a34a8c2643ab08c3410cf5505632cfce58dcfa0efa2fd2ff37.
  4023  //
  4024  // Solidity: event UpdateSpareContract(address spareContractAddress)
  4025  func (_AddressBook *AddressBookFilterer) WatchUpdateSpareContract(opts *bind.WatchOpts, sink chan<- *AddressBookUpdateSpareContract) (event.Subscription, error) {
  4026  
  4027  	logs, sub, err := _AddressBook.contract.WatchLogs(opts, "UpdateSpareContract")
  4028  	if err != nil {
  4029  		return nil, err
  4030  	}
  4031  	return event.NewSubscription(func(quit <-chan struct{}) error {
  4032  		defer sub.Unsubscribe()
  4033  		for {
  4034  			select {
  4035  			case log := <-logs:
  4036  				// New log arrived, parse the event and forward to the user
  4037  				event := new(AddressBookUpdateSpareContract)
  4038  				if err := _AddressBook.contract.UnpackLog(event, "UpdateSpareContract", log); err != nil {
  4039  					return err
  4040  				}
  4041  				event.Raw = log
  4042  
  4043  				select {
  4044  				case sink <- event:
  4045  				case err := <-sub.Err():
  4046  					return err
  4047  				case <-quit:
  4048  					return nil
  4049  				}
  4050  			case err := <-sub.Err():
  4051  				return err
  4052  			case <-quit:
  4053  				return nil
  4054  			}
  4055  		}
  4056  	}), nil
  4057  }
  4058  
  4059  // ParseUpdateSpareContract is a log parse operation binding the contract event 0x508aacd44cfe23a34a8c2643ab08c3410cf5505632cfce58dcfa0efa2fd2ff37.
  4060  //
  4061  // Solidity: event UpdateSpareContract(address spareContractAddress)
  4062  func (_AddressBook *AddressBookFilterer) ParseUpdateSpareContract(log types.Log) (*AddressBookUpdateSpareContract, error) {
  4063  	event := new(AddressBookUpdateSpareContract)
  4064  	if err := _AddressBook.contract.UnpackLog(event, "UpdateSpareContract", log); err != nil {
  4065  		return nil, err
  4066  	}
  4067  	return event, nil
  4068  }
  4069  
  4070  // CnStakingContractInterfaceMetaData contains all meta data concerning the CnStakingContractInterface contract.
  4071  var CnStakingContractInterfaceMetaData = &bind.MetaData{
  4072  	ABI: "[{\"constant\":true,\"inputs\":[],\"name\":\"nodeId\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"isInitialized\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"rewardAddress\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"}]",
  4073  	Sigs: map[string]string{
  4074  		"392e53cd": "isInitialized()",
  4075  		"139d7fed": "nodeId()",
  4076  		"8cf57cb9": "rewardAddress()",
  4077  	},
  4078  }
  4079  
  4080  // CnStakingContractInterfaceABI is the input ABI used to generate the binding from.
  4081  // Deprecated: Use CnStakingContractInterfaceMetaData.ABI instead.
  4082  var CnStakingContractInterfaceABI = CnStakingContractInterfaceMetaData.ABI
  4083  
  4084  // CnStakingContractInterfaceBinRuntime is the compiled bytecode used for adding genesis block without deploying code.
  4085  const CnStakingContractInterfaceBinRuntime = ``
  4086  
  4087  // CnStakingContractInterfaceFuncSigs maps the 4-byte function signature to its string representation.
  4088  // Deprecated: Use CnStakingContractInterfaceMetaData.Sigs instead.
  4089  var CnStakingContractInterfaceFuncSigs = CnStakingContractInterfaceMetaData.Sigs
  4090  
  4091  // CnStakingContractInterface is an auto generated Go binding around a Klaytn contract.
  4092  type CnStakingContractInterface struct {
  4093  	CnStakingContractInterfaceCaller     // Read-only binding to the contract
  4094  	CnStakingContractInterfaceTransactor // Write-only binding to the contract
  4095  	CnStakingContractInterfaceFilterer   // Log filterer for contract events
  4096  }
  4097  
  4098  // CnStakingContractInterfaceCaller is an auto generated read-only Go binding around a Klaytn contract.
  4099  type CnStakingContractInterfaceCaller struct {
  4100  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  4101  }
  4102  
  4103  // CnStakingContractInterfaceTransactor is an auto generated write-only Go binding around a Klaytn contract.
  4104  type CnStakingContractInterfaceTransactor struct {
  4105  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  4106  }
  4107  
  4108  // CnStakingContractInterfaceFilterer is an auto generated log filtering Go binding around a Klaytn contract events.
  4109  type CnStakingContractInterfaceFilterer struct {
  4110  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  4111  }
  4112  
  4113  // CnStakingContractInterfaceSession is an auto generated Go binding around a Klaytn contract,
  4114  // with pre-set call and transact options.
  4115  type CnStakingContractInterfaceSession struct {
  4116  	Contract     *CnStakingContractInterface // Generic contract binding to set the session for
  4117  	CallOpts     bind.CallOpts               // Call options to use throughout this session
  4118  	TransactOpts bind.TransactOpts           // Transaction auth options to use throughout this session
  4119  }
  4120  
  4121  // CnStakingContractInterfaceCallerSession is an auto generated read-only Go binding around a Klaytn contract,
  4122  // with pre-set call options.
  4123  type CnStakingContractInterfaceCallerSession struct {
  4124  	Contract *CnStakingContractInterfaceCaller // Generic contract caller binding to set the session for
  4125  	CallOpts bind.CallOpts                     // Call options to use throughout this session
  4126  }
  4127  
  4128  // CnStakingContractInterfaceTransactorSession is an auto generated write-only Go binding around a Klaytn contract,
  4129  // with pre-set transact options.
  4130  type CnStakingContractInterfaceTransactorSession struct {
  4131  	Contract     *CnStakingContractInterfaceTransactor // Generic contract transactor binding to set the session for
  4132  	TransactOpts bind.TransactOpts                     // Transaction auth options to use throughout this session
  4133  }
  4134  
  4135  // CnStakingContractInterfaceRaw is an auto generated low-level Go binding around a Klaytn contract.
  4136  type CnStakingContractInterfaceRaw struct {
  4137  	Contract *CnStakingContractInterface // Generic contract binding to access the raw methods on
  4138  }
  4139  
  4140  // CnStakingContractInterfaceCallerRaw is an auto generated low-level read-only Go binding around a Klaytn contract.
  4141  type CnStakingContractInterfaceCallerRaw struct {
  4142  	Contract *CnStakingContractInterfaceCaller // Generic read-only contract binding to access the raw methods on
  4143  }
  4144  
  4145  // CnStakingContractInterfaceTransactorRaw is an auto generated low-level write-only Go binding around a Klaytn contract.
  4146  type CnStakingContractInterfaceTransactorRaw struct {
  4147  	Contract *CnStakingContractInterfaceTransactor // Generic write-only contract binding to access the raw methods on
  4148  }
  4149  
  4150  // NewCnStakingContractInterface creates a new instance of CnStakingContractInterface, bound to a specific deployed contract.
  4151  func NewCnStakingContractInterface(address common.Address, backend bind.ContractBackend) (*CnStakingContractInterface, error) {
  4152  	contract, err := bindCnStakingContractInterface(address, backend, backend, backend)
  4153  	if err != nil {
  4154  		return nil, err
  4155  	}
  4156  	return &CnStakingContractInterface{CnStakingContractInterfaceCaller: CnStakingContractInterfaceCaller{contract: contract}, CnStakingContractInterfaceTransactor: CnStakingContractInterfaceTransactor{contract: contract}, CnStakingContractInterfaceFilterer: CnStakingContractInterfaceFilterer{contract: contract}}, nil
  4157  }
  4158  
  4159  // NewCnStakingContractInterfaceCaller creates a new read-only instance of CnStakingContractInterface, bound to a specific deployed contract.
  4160  func NewCnStakingContractInterfaceCaller(address common.Address, caller bind.ContractCaller) (*CnStakingContractInterfaceCaller, error) {
  4161  	contract, err := bindCnStakingContractInterface(address, caller, nil, nil)
  4162  	if err != nil {
  4163  		return nil, err
  4164  	}
  4165  	return &CnStakingContractInterfaceCaller{contract: contract}, nil
  4166  }
  4167  
  4168  // NewCnStakingContractInterfaceTransactor creates a new write-only instance of CnStakingContractInterface, bound to a specific deployed contract.
  4169  func NewCnStakingContractInterfaceTransactor(address common.Address, transactor bind.ContractTransactor) (*CnStakingContractInterfaceTransactor, error) {
  4170  	contract, err := bindCnStakingContractInterface(address, nil, transactor, nil)
  4171  	if err != nil {
  4172  		return nil, err
  4173  	}
  4174  	return &CnStakingContractInterfaceTransactor{contract: contract}, nil
  4175  }
  4176  
  4177  // NewCnStakingContractInterfaceFilterer creates a new log filterer instance of CnStakingContractInterface, bound to a specific deployed contract.
  4178  func NewCnStakingContractInterfaceFilterer(address common.Address, filterer bind.ContractFilterer) (*CnStakingContractInterfaceFilterer, error) {
  4179  	contract, err := bindCnStakingContractInterface(address, nil, nil, filterer)
  4180  	if err != nil {
  4181  		return nil, err
  4182  	}
  4183  	return &CnStakingContractInterfaceFilterer{contract: contract}, nil
  4184  }
  4185  
  4186  // bindCnStakingContractInterface binds a generic wrapper to an already deployed contract.
  4187  func bindCnStakingContractInterface(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
  4188  	parsed, err := CnStakingContractInterfaceMetaData.GetAbi()
  4189  	if err != nil {
  4190  		return nil, err
  4191  	}
  4192  	return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil
  4193  }
  4194  
  4195  // Call invokes the (constant) contract method with params as input values and
  4196  // sets the output to result. The result type might be a single field for simple
  4197  // returns, a slice of interfaces for anonymous returns and a struct for named
  4198  // returns.
  4199  func (_CnStakingContractInterface *CnStakingContractInterfaceRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
  4200  	return _CnStakingContractInterface.Contract.CnStakingContractInterfaceCaller.contract.Call(opts, result, method, params...)
  4201  }
  4202  
  4203  // Transfer initiates a plain transaction to move funds to the contract, calling
  4204  // its default method if one is available.
  4205  func (_CnStakingContractInterface *CnStakingContractInterfaceRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
  4206  	return _CnStakingContractInterface.Contract.CnStakingContractInterfaceTransactor.contract.Transfer(opts)
  4207  }
  4208  
  4209  // Transact invokes the (paid) contract method with params as input values.
  4210  func (_CnStakingContractInterface *CnStakingContractInterfaceRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
  4211  	return _CnStakingContractInterface.Contract.CnStakingContractInterfaceTransactor.contract.Transact(opts, method, params...)
  4212  }
  4213  
  4214  // Call invokes the (constant) contract method with params as input values and
  4215  // sets the output to result. The result type might be a single field for simple
  4216  // returns, a slice of interfaces for anonymous returns and a struct for named
  4217  // returns.
  4218  func (_CnStakingContractInterface *CnStakingContractInterfaceCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
  4219  	return _CnStakingContractInterface.Contract.contract.Call(opts, result, method, params...)
  4220  }
  4221  
  4222  // Transfer initiates a plain transaction to move funds to the contract, calling
  4223  // its default method if one is available.
  4224  func (_CnStakingContractInterface *CnStakingContractInterfaceTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
  4225  	return _CnStakingContractInterface.Contract.contract.Transfer(opts)
  4226  }
  4227  
  4228  // Transact invokes the (paid) contract method with params as input values.
  4229  func (_CnStakingContractInterface *CnStakingContractInterfaceTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
  4230  	return _CnStakingContractInterface.Contract.contract.Transact(opts, method, params...)
  4231  }
  4232  
  4233  // IsInitialized is a free data retrieval call binding the contract method 0x392e53cd.
  4234  //
  4235  // Solidity: function isInitialized() view returns(bool)
  4236  func (_CnStakingContractInterface *CnStakingContractInterfaceCaller) IsInitialized(opts *bind.CallOpts) (bool, error) {
  4237  	var out []interface{}
  4238  	err := _CnStakingContractInterface.contract.Call(opts, &out, "isInitialized")
  4239  
  4240  	if err != nil {
  4241  		return *new(bool), err
  4242  	}
  4243  
  4244  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
  4245  
  4246  	return out0, err
  4247  
  4248  }
  4249  
  4250  // IsInitialized is a free data retrieval call binding the contract method 0x392e53cd.
  4251  //
  4252  // Solidity: function isInitialized() view returns(bool)
  4253  func (_CnStakingContractInterface *CnStakingContractInterfaceSession) IsInitialized() (bool, error) {
  4254  	return _CnStakingContractInterface.Contract.IsInitialized(&_CnStakingContractInterface.CallOpts)
  4255  }
  4256  
  4257  // IsInitialized is a free data retrieval call binding the contract method 0x392e53cd.
  4258  //
  4259  // Solidity: function isInitialized() view returns(bool)
  4260  func (_CnStakingContractInterface *CnStakingContractInterfaceCallerSession) IsInitialized() (bool, error) {
  4261  	return _CnStakingContractInterface.Contract.IsInitialized(&_CnStakingContractInterface.CallOpts)
  4262  }
  4263  
  4264  // NodeId is a free data retrieval call binding the contract method 0x139d7fed.
  4265  //
  4266  // Solidity: function nodeId() view returns(address)
  4267  func (_CnStakingContractInterface *CnStakingContractInterfaceCaller) NodeId(opts *bind.CallOpts) (common.Address, error) {
  4268  	var out []interface{}
  4269  	err := _CnStakingContractInterface.contract.Call(opts, &out, "nodeId")
  4270  
  4271  	if err != nil {
  4272  		return *new(common.Address), err
  4273  	}
  4274  
  4275  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
  4276  
  4277  	return out0, err
  4278  
  4279  }
  4280  
  4281  // NodeId is a free data retrieval call binding the contract method 0x139d7fed.
  4282  //
  4283  // Solidity: function nodeId() view returns(address)
  4284  func (_CnStakingContractInterface *CnStakingContractInterfaceSession) NodeId() (common.Address, error) {
  4285  	return _CnStakingContractInterface.Contract.NodeId(&_CnStakingContractInterface.CallOpts)
  4286  }
  4287  
  4288  // NodeId is a free data retrieval call binding the contract method 0x139d7fed.
  4289  //
  4290  // Solidity: function nodeId() view returns(address)
  4291  func (_CnStakingContractInterface *CnStakingContractInterfaceCallerSession) NodeId() (common.Address, error) {
  4292  	return _CnStakingContractInterface.Contract.NodeId(&_CnStakingContractInterface.CallOpts)
  4293  }
  4294  
  4295  // RewardAddress is a free data retrieval call binding the contract method 0x8cf57cb9.
  4296  //
  4297  // Solidity: function rewardAddress() view returns(address)
  4298  func (_CnStakingContractInterface *CnStakingContractInterfaceCaller) RewardAddress(opts *bind.CallOpts) (common.Address, error) {
  4299  	var out []interface{}
  4300  	err := _CnStakingContractInterface.contract.Call(opts, &out, "rewardAddress")
  4301  
  4302  	if err != nil {
  4303  		return *new(common.Address), err
  4304  	}
  4305  
  4306  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
  4307  
  4308  	return out0, err
  4309  
  4310  }
  4311  
  4312  // RewardAddress is a free data retrieval call binding the contract method 0x8cf57cb9.
  4313  //
  4314  // Solidity: function rewardAddress() view returns(address)
  4315  func (_CnStakingContractInterface *CnStakingContractInterfaceSession) RewardAddress() (common.Address, error) {
  4316  	return _CnStakingContractInterface.Contract.RewardAddress(&_CnStakingContractInterface.CallOpts)
  4317  }
  4318  
  4319  // RewardAddress is a free data retrieval call binding the contract method 0x8cf57cb9.
  4320  //
  4321  // Solidity: function rewardAddress() view returns(address)
  4322  func (_CnStakingContractInterface *CnStakingContractInterfaceCallerSession) RewardAddress() (common.Address, error) {
  4323  	return _CnStakingContractInterface.Contract.RewardAddress(&_CnStakingContractInterface.CallOpts)
  4324  }
  4325  
  4326  // KirContractInterfaceMetaData contains all meta data concerning the KirContractInterface contract.
  4327  var KirContractInterfaceMetaData = &bind.MetaData{
  4328  	ABI: "[{\"constant\":true,\"inputs\":[],\"name\":\"getKirVersion\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"}]",
  4329  	Sigs: map[string]string{
  4330  		"44426346": "getKirVersion()",
  4331  	},
  4332  }
  4333  
  4334  // KirContractInterfaceABI is the input ABI used to generate the binding from.
  4335  // Deprecated: Use KirContractInterfaceMetaData.ABI instead.
  4336  var KirContractInterfaceABI = KirContractInterfaceMetaData.ABI
  4337  
  4338  // KirContractInterfaceBinRuntime is the compiled bytecode used for adding genesis block without deploying code.
  4339  const KirContractInterfaceBinRuntime = ``
  4340  
  4341  // KirContractInterfaceFuncSigs maps the 4-byte function signature to its string representation.
  4342  // Deprecated: Use KirContractInterfaceMetaData.Sigs instead.
  4343  var KirContractInterfaceFuncSigs = KirContractInterfaceMetaData.Sigs
  4344  
  4345  // KirContractInterface is an auto generated Go binding around a Klaytn contract.
  4346  type KirContractInterface struct {
  4347  	KirContractInterfaceCaller     // Read-only binding to the contract
  4348  	KirContractInterfaceTransactor // Write-only binding to the contract
  4349  	KirContractInterfaceFilterer   // Log filterer for contract events
  4350  }
  4351  
  4352  // KirContractInterfaceCaller is an auto generated read-only Go binding around a Klaytn contract.
  4353  type KirContractInterfaceCaller struct {
  4354  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  4355  }
  4356  
  4357  // KirContractInterfaceTransactor is an auto generated write-only Go binding around a Klaytn contract.
  4358  type KirContractInterfaceTransactor struct {
  4359  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  4360  }
  4361  
  4362  // KirContractInterfaceFilterer is an auto generated log filtering Go binding around a Klaytn contract events.
  4363  type KirContractInterfaceFilterer struct {
  4364  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  4365  }
  4366  
  4367  // KirContractInterfaceSession is an auto generated Go binding around a Klaytn contract,
  4368  // with pre-set call and transact options.
  4369  type KirContractInterfaceSession struct {
  4370  	Contract     *KirContractInterface // Generic contract binding to set the session for
  4371  	CallOpts     bind.CallOpts         // Call options to use throughout this session
  4372  	TransactOpts bind.TransactOpts     // Transaction auth options to use throughout this session
  4373  }
  4374  
  4375  // KirContractInterfaceCallerSession is an auto generated read-only Go binding around a Klaytn contract,
  4376  // with pre-set call options.
  4377  type KirContractInterfaceCallerSession struct {
  4378  	Contract *KirContractInterfaceCaller // Generic contract caller binding to set the session for
  4379  	CallOpts bind.CallOpts               // Call options to use throughout this session
  4380  }
  4381  
  4382  // KirContractInterfaceTransactorSession is an auto generated write-only Go binding around a Klaytn contract,
  4383  // with pre-set transact options.
  4384  type KirContractInterfaceTransactorSession struct {
  4385  	Contract     *KirContractInterfaceTransactor // Generic contract transactor binding to set the session for
  4386  	TransactOpts bind.TransactOpts               // Transaction auth options to use throughout this session
  4387  }
  4388  
  4389  // KirContractInterfaceRaw is an auto generated low-level Go binding around a Klaytn contract.
  4390  type KirContractInterfaceRaw struct {
  4391  	Contract *KirContractInterface // Generic contract binding to access the raw methods on
  4392  }
  4393  
  4394  // KirContractInterfaceCallerRaw is an auto generated low-level read-only Go binding around a Klaytn contract.
  4395  type KirContractInterfaceCallerRaw struct {
  4396  	Contract *KirContractInterfaceCaller // Generic read-only contract binding to access the raw methods on
  4397  }
  4398  
  4399  // KirContractInterfaceTransactorRaw is an auto generated low-level write-only Go binding around a Klaytn contract.
  4400  type KirContractInterfaceTransactorRaw struct {
  4401  	Contract *KirContractInterfaceTransactor // Generic write-only contract binding to access the raw methods on
  4402  }
  4403  
  4404  // NewKirContractInterface creates a new instance of KirContractInterface, bound to a specific deployed contract.
  4405  func NewKirContractInterface(address common.Address, backend bind.ContractBackend) (*KirContractInterface, error) {
  4406  	contract, err := bindKirContractInterface(address, backend, backend, backend)
  4407  	if err != nil {
  4408  		return nil, err
  4409  	}
  4410  	return &KirContractInterface{KirContractInterfaceCaller: KirContractInterfaceCaller{contract: contract}, KirContractInterfaceTransactor: KirContractInterfaceTransactor{contract: contract}, KirContractInterfaceFilterer: KirContractInterfaceFilterer{contract: contract}}, nil
  4411  }
  4412  
  4413  // NewKirContractInterfaceCaller creates a new read-only instance of KirContractInterface, bound to a specific deployed contract.
  4414  func NewKirContractInterfaceCaller(address common.Address, caller bind.ContractCaller) (*KirContractInterfaceCaller, error) {
  4415  	contract, err := bindKirContractInterface(address, caller, nil, nil)
  4416  	if err != nil {
  4417  		return nil, err
  4418  	}
  4419  	return &KirContractInterfaceCaller{contract: contract}, nil
  4420  }
  4421  
  4422  // NewKirContractInterfaceTransactor creates a new write-only instance of KirContractInterface, bound to a specific deployed contract.
  4423  func NewKirContractInterfaceTransactor(address common.Address, transactor bind.ContractTransactor) (*KirContractInterfaceTransactor, error) {
  4424  	contract, err := bindKirContractInterface(address, nil, transactor, nil)
  4425  	if err != nil {
  4426  		return nil, err
  4427  	}
  4428  	return &KirContractInterfaceTransactor{contract: contract}, nil
  4429  }
  4430  
  4431  // NewKirContractInterfaceFilterer creates a new log filterer instance of KirContractInterface, bound to a specific deployed contract.
  4432  func NewKirContractInterfaceFilterer(address common.Address, filterer bind.ContractFilterer) (*KirContractInterfaceFilterer, error) {
  4433  	contract, err := bindKirContractInterface(address, nil, nil, filterer)
  4434  	if err != nil {
  4435  		return nil, err
  4436  	}
  4437  	return &KirContractInterfaceFilterer{contract: contract}, nil
  4438  }
  4439  
  4440  // bindKirContractInterface binds a generic wrapper to an already deployed contract.
  4441  func bindKirContractInterface(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
  4442  	parsed, err := KirContractInterfaceMetaData.GetAbi()
  4443  	if err != nil {
  4444  		return nil, err
  4445  	}
  4446  	return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil
  4447  }
  4448  
  4449  // Call invokes the (constant) contract method with params as input values and
  4450  // sets the output to result. The result type might be a single field for simple
  4451  // returns, a slice of interfaces for anonymous returns and a struct for named
  4452  // returns.
  4453  func (_KirContractInterface *KirContractInterfaceRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
  4454  	return _KirContractInterface.Contract.KirContractInterfaceCaller.contract.Call(opts, result, method, params...)
  4455  }
  4456  
  4457  // Transfer initiates a plain transaction to move funds to the contract, calling
  4458  // its default method if one is available.
  4459  func (_KirContractInterface *KirContractInterfaceRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
  4460  	return _KirContractInterface.Contract.KirContractInterfaceTransactor.contract.Transfer(opts)
  4461  }
  4462  
  4463  // Transact invokes the (paid) contract method with params as input values.
  4464  func (_KirContractInterface *KirContractInterfaceRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
  4465  	return _KirContractInterface.Contract.KirContractInterfaceTransactor.contract.Transact(opts, method, params...)
  4466  }
  4467  
  4468  // Call invokes the (constant) contract method with params as input values and
  4469  // sets the output to result. The result type might be a single field for simple
  4470  // returns, a slice of interfaces for anonymous returns and a struct for named
  4471  // returns.
  4472  func (_KirContractInterface *KirContractInterfaceCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
  4473  	return _KirContractInterface.Contract.contract.Call(opts, result, method, params...)
  4474  }
  4475  
  4476  // Transfer initiates a plain transaction to move funds to the contract, calling
  4477  // its default method if one is available.
  4478  func (_KirContractInterface *KirContractInterfaceTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
  4479  	return _KirContractInterface.Contract.contract.Transfer(opts)
  4480  }
  4481  
  4482  // Transact invokes the (paid) contract method with params as input values.
  4483  func (_KirContractInterface *KirContractInterfaceTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
  4484  	return _KirContractInterface.Contract.contract.Transact(opts, method, params...)
  4485  }
  4486  
  4487  // GetKirVersion is a free data retrieval call binding the contract method 0x44426346.
  4488  //
  4489  // Solidity: function getKirVersion() pure returns(uint256)
  4490  func (_KirContractInterface *KirContractInterfaceCaller) GetKirVersion(opts *bind.CallOpts) (*big.Int, error) {
  4491  	var out []interface{}
  4492  	err := _KirContractInterface.contract.Call(opts, &out, "getKirVersion")
  4493  
  4494  	if err != nil {
  4495  		return *new(*big.Int), err
  4496  	}
  4497  
  4498  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
  4499  
  4500  	return out0, err
  4501  
  4502  }
  4503  
  4504  // GetKirVersion is a free data retrieval call binding the contract method 0x44426346.
  4505  //
  4506  // Solidity: function getKirVersion() pure returns(uint256)
  4507  func (_KirContractInterface *KirContractInterfaceSession) GetKirVersion() (*big.Int, error) {
  4508  	return _KirContractInterface.Contract.GetKirVersion(&_KirContractInterface.CallOpts)
  4509  }
  4510  
  4511  // GetKirVersion is a free data retrieval call binding the contract method 0x44426346.
  4512  //
  4513  // Solidity: function getKirVersion() pure returns(uint256)
  4514  func (_KirContractInterface *KirContractInterfaceCallerSession) GetKirVersion() (*big.Int, error) {
  4515  	return _KirContractInterface.Contract.GetKirVersion(&_KirContractInterface.CallOpts)
  4516  }
  4517  
  4518  // PocContractInterfaceMetaData contains all meta data concerning the PocContractInterface contract.
  4519  var PocContractInterfaceMetaData = &bind.MetaData{
  4520  	ABI: "[{\"constant\":true,\"inputs\":[],\"name\":\"getPocVersion\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"}]",
  4521  	Sigs: map[string]string{
  4522  		"0f610072": "getPocVersion()",
  4523  	},
  4524  }
  4525  
  4526  // PocContractInterfaceABI is the input ABI used to generate the binding from.
  4527  // Deprecated: Use PocContractInterfaceMetaData.ABI instead.
  4528  var PocContractInterfaceABI = PocContractInterfaceMetaData.ABI
  4529  
  4530  // PocContractInterfaceBinRuntime is the compiled bytecode used for adding genesis block without deploying code.
  4531  const PocContractInterfaceBinRuntime = ``
  4532  
  4533  // PocContractInterfaceFuncSigs maps the 4-byte function signature to its string representation.
  4534  // Deprecated: Use PocContractInterfaceMetaData.Sigs instead.
  4535  var PocContractInterfaceFuncSigs = PocContractInterfaceMetaData.Sigs
  4536  
  4537  // PocContractInterface is an auto generated Go binding around a Klaytn contract.
  4538  type PocContractInterface struct {
  4539  	PocContractInterfaceCaller     // Read-only binding to the contract
  4540  	PocContractInterfaceTransactor // Write-only binding to the contract
  4541  	PocContractInterfaceFilterer   // Log filterer for contract events
  4542  }
  4543  
  4544  // PocContractInterfaceCaller is an auto generated read-only Go binding around a Klaytn contract.
  4545  type PocContractInterfaceCaller struct {
  4546  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  4547  }
  4548  
  4549  // PocContractInterfaceTransactor is an auto generated write-only Go binding around a Klaytn contract.
  4550  type PocContractInterfaceTransactor struct {
  4551  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  4552  }
  4553  
  4554  // PocContractInterfaceFilterer is an auto generated log filtering Go binding around a Klaytn contract events.
  4555  type PocContractInterfaceFilterer struct {
  4556  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  4557  }
  4558  
  4559  // PocContractInterfaceSession is an auto generated Go binding around a Klaytn contract,
  4560  // with pre-set call and transact options.
  4561  type PocContractInterfaceSession struct {
  4562  	Contract     *PocContractInterface // Generic contract binding to set the session for
  4563  	CallOpts     bind.CallOpts         // Call options to use throughout this session
  4564  	TransactOpts bind.TransactOpts     // Transaction auth options to use throughout this session
  4565  }
  4566  
  4567  // PocContractInterfaceCallerSession is an auto generated read-only Go binding around a Klaytn contract,
  4568  // with pre-set call options.
  4569  type PocContractInterfaceCallerSession struct {
  4570  	Contract *PocContractInterfaceCaller // Generic contract caller binding to set the session for
  4571  	CallOpts bind.CallOpts               // Call options to use throughout this session
  4572  }
  4573  
  4574  // PocContractInterfaceTransactorSession is an auto generated write-only Go binding around a Klaytn contract,
  4575  // with pre-set transact options.
  4576  type PocContractInterfaceTransactorSession struct {
  4577  	Contract     *PocContractInterfaceTransactor // Generic contract transactor binding to set the session for
  4578  	TransactOpts bind.TransactOpts               // Transaction auth options to use throughout this session
  4579  }
  4580  
  4581  // PocContractInterfaceRaw is an auto generated low-level Go binding around a Klaytn contract.
  4582  type PocContractInterfaceRaw struct {
  4583  	Contract *PocContractInterface // Generic contract binding to access the raw methods on
  4584  }
  4585  
  4586  // PocContractInterfaceCallerRaw is an auto generated low-level read-only Go binding around a Klaytn contract.
  4587  type PocContractInterfaceCallerRaw struct {
  4588  	Contract *PocContractInterfaceCaller // Generic read-only contract binding to access the raw methods on
  4589  }
  4590  
  4591  // PocContractInterfaceTransactorRaw is an auto generated low-level write-only Go binding around a Klaytn contract.
  4592  type PocContractInterfaceTransactorRaw struct {
  4593  	Contract *PocContractInterfaceTransactor // Generic write-only contract binding to access the raw methods on
  4594  }
  4595  
  4596  // NewPocContractInterface creates a new instance of PocContractInterface, bound to a specific deployed contract.
  4597  func NewPocContractInterface(address common.Address, backend bind.ContractBackend) (*PocContractInterface, error) {
  4598  	contract, err := bindPocContractInterface(address, backend, backend, backend)
  4599  	if err != nil {
  4600  		return nil, err
  4601  	}
  4602  	return &PocContractInterface{PocContractInterfaceCaller: PocContractInterfaceCaller{contract: contract}, PocContractInterfaceTransactor: PocContractInterfaceTransactor{contract: contract}, PocContractInterfaceFilterer: PocContractInterfaceFilterer{contract: contract}}, nil
  4603  }
  4604  
  4605  // NewPocContractInterfaceCaller creates a new read-only instance of PocContractInterface, bound to a specific deployed contract.
  4606  func NewPocContractInterfaceCaller(address common.Address, caller bind.ContractCaller) (*PocContractInterfaceCaller, error) {
  4607  	contract, err := bindPocContractInterface(address, caller, nil, nil)
  4608  	if err != nil {
  4609  		return nil, err
  4610  	}
  4611  	return &PocContractInterfaceCaller{contract: contract}, nil
  4612  }
  4613  
  4614  // NewPocContractInterfaceTransactor creates a new write-only instance of PocContractInterface, bound to a specific deployed contract.
  4615  func NewPocContractInterfaceTransactor(address common.Address, transactor bind.ContractTransactor) (*PocContractInterfaceTransactor, error) {
  4616  	contract, err := bindPocContractInterface(address, nil, transactor, nil)
  4617  	if err != nil {
  4618  		return nil, err
  4619  	}
  4620  	return &PocContractInterfaceTransactor{contract: contract}, nil
  4621  }
  4622  
  4623  // NewPocContractInterfaceFilterer creates a new log filterer instance of PocContractInterface, bound to a specific deployed contract.
  4624  func NewPocContractInterfaceFilterer(address common.Address, filterer bind.ContractFilterer) (*PocContractInterfaceFilterer, error) {
  4625  	contract, err := bindPocContractInterface(address, nil, nil, filterer)
  4626  	if err != nil {
  4627  		return nil, err
  4628  	}
  4629  	return &PocContractInterfaceFilterer{contract: contract}, nil
  4630  }
  4631  
  4632  // bindPocContractInterface binds a generic wrapper to an already deployed contract.
  4633  func bindPocContractInterface(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
  4634  	parsed, err := PocContractInterfaceMetaData.GetAbi()
  4635  	if err != nil {
  4636  		return nil, err
  4637  	}
  4638  	return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil
  4639  }
  4640  
  4641  // Call invokes the (constant) contract method with params as input values and
  4642  // sets the output to result. The result type might be a single field for simple
  4643  // returns, a slice of interfaces for anonymous returns and a struct for named
  4644  // returns.
  4645  func (_PocContractInterface *PocContractInterfaceRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
  4646  	return _PocContractInterface.Contract.PocContractInterfaceCaller.contract.Call(opts, result, method, params...)
  4647  }
  4648  
  4649  // Transfer initiates a plain transaction to move funds to the contract, calling
  4650  // its default method if one is available.
  4651  func (_PocContractInterface *PocContractInterfaceRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
  4652  	return _PocContractInterface.Contract.PocContractInterfaceTransactor.contract.Transfer(opts)
  4653  }
  4654  
  4655  // Transact invokes the (paid) contract method with params as input values.
  4656  func (_PocContractInterface *PocContractInterfaceRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
  4657  	return _PocContractInterface.Contract.PocContractInterfaceTransactor.contract.Transact(opts, method, params...)
  4658  }
  4659  
  4660  // Call invokes the (constant) contract method with params as input values and
  4661  // sets the output to result. The result type might be a single field for simple
  4662  // returns, a slice of interfaces for anonymous returns and a struct for named
  4663  // returns.
  4664  func (_PocContractInterface *PocContractInterfaceCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
  4665  	return _PocContractInterface.Contract.contract.Call(opts, result, method, params...)
  4666  }
  4667  
  4668  // Transfer initiates a plain transaction to move funds to the contract, calling
  4669  // its default method if one is available.
  4670  func (_PocContractInterface *PocContractInterfaceTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
  4671  	return _PocContractInterface.Contract.contract.Transfer(opts)
  4672  }
  4673  
  4674  // Transact invokes the (paid) contract method with params as input values.
  4675  func (_PocContractInterface *PocContractInterfaceTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
  4676  	return _PocContractInterface.Contract.contract.Transact(opts, method, params...)
  4677  }
  4678  
  4679  // GetPocVersion is a free data retrieval call binding the contract method 0x0f610072.
  4680  //
  4681  // Solidity: function getPocVersion() pure returns(uint256)
  4682  func (_PocContractInterface *PocContractInterfaceCaller) GetPocVersion(opts *bind.CallOpts) (*big.Int, error) {
  4683  	var out []interface{}
  4684  	err := _PocContractInterface.contract.Call(opts, &out, "getPocVersion")
  4685  
  4686  	if err != nil {
  4687  		return *new(*big.Int), err
  4688  	}
  4689  
  4690  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
  4691  
  4692  	return out0, err
  4693  
  4694  }
  4695  
  4696  // GetPocVersion is a free data retrieval call binding the contract method 0x0f610072.
  4697  //
  4698  // Solidity: function getPocVersion() pure returns(uint256)
  4699  func (_PocContractInterface *PocContractInterfaceSession) GetPocVersion() (*big.Int, error) {
  4700  	return _PocContractInterface.Contract.GetPocVersion(&_PocContractInterface.CallOpts)
  4701  }
  4702  
  4703  // GetPocVersion is a free data retrieval call binding the contract method 0x0f610072.
  4704  //
  4705  // Solidity: function getPocVersion() pure returns(uint256)
  4706  func (_PocContractInterface *PocContractInterfaceCallerSession) GetPocVersion() (*big.Int, error) {
  4707  	return _PocContractInterface.Contract.GetPocVersion(&_PocContractInterface.CallOpts)
  4708  }
  4709  
  4710  // SafeMathMetaData contains all meta data concerning the SafeMath contract.
  4711  var SafeMathMetaData = &bind.MetaData{
  4712  	ABI: "[]",
  4713  	Bin: "0x604c602c600b82828239805160001a60731460008114601c57601e565bfe5b5030600052607381538281f30073000000000000000000000000000000000000000030146080604052600080fd00a165627a7a72305820105e019e235433d0bc6f17c12091cf2048b5a207a6a7981489335ea8f41dbfb20029",
  4714  }
  4715  
  4716  // SafeMathABI is the input ABI used to generate the binding from.
  4717  // Deprecated: Use SafeMathMetaData.ABI instead.
  4718  var SafeMathABI = SafeMathMetaData.ABI
  4719  
  4720  // SafeMathBinRuntime is the compiled bytecode used for adding genesis block without deploying code.
  4721  const SafeMathBinRuntime = `73000000000000000000000000000000000000000030146080604052600080fd00a165627a7a72305820105e019e235433d0bc6f17c12091cf2048b5a207a6a7981489335ea8f41dbfb20029`
  4722  
  4723  // SafeMathBin is the compiled bytecode used for deploying new contracts.
  4724  // Deprecated: Use SafeMathMetaData.Bin instead.
  4725  var SafeMathBin = SafeMathMetaData.Bin
  4726  
  4727  // DeploySafeMath deploys a new Klaytn contract, binding an instance of SafeMath to it.
  4728  func DeploySafeMath(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *types.Transaction, *SafeMath, error) {
  4729  	parsed, err := SafeMathMetaData.GetAbi()
  4730  	if err != nil {
  4731  		return common.Address{}, nil, nil, err
  4732  	}
  4733  	if parsed == nil {
  4734  		return common.Address{}, nil, nil, errors.New("GetABI returned nil")
  4735  	}
  4736  
  4737  	address, tx, contract, err := bind.DeployContract(auth, *parsed, common.FromHex(SafeMathBin), backend)
  4738  	if err != nil {
  4739  		return common.Address{}, nil, nil, err
  4740  	}
  4741  	return address, tx, &SafeMath{SafeMathCaller: SafeMathCaller{contract: contract}, SafeMathTransactor: SafeMathTransactor{contract: contract}, SafeMathFilterer: SafeMathFilterer{contract: contract}}, nil
  4742  }
  4743  
  4744  // SafeMath is an auto generated Go binding around a Klaytn contract.
  4745  type SafeMath struct {
  4746  	SafeMathCaller     // Read-only binding to the contract
  4747  	SafeMathTransactor // Write-only binding to the contract
  4748  	SafeMathFilterer   // Log filterer for contract events
  4749  }
  4750  
  4751  // SafeMathCaller is an auto generated read-only Go binding around a Klaytn contract.
  4752  type SafeMathCaller struct {
  4753  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  4754  }
  4755  
  4756  // SafeMathTransactor is an auto generated write-only Go binding around a Klaytn contract.
  4757  type SafeMathTransactor struct {
  4758  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  4759  }
  4760  
  4761  // SafeMathFilterer is an auto generated log filtering Go binding around a Klaytn contract events.
  4762  type SafeMathFilterer struct {
  4763  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  4764  }
  4765  
  4766  // SafeMathSession is an auto generated Go binding around a Klaytn contract,
  4767  // with pre-set call and transact options.
  4768  type SafeMathSession struct {
  4769  	Contract     *SafeMath         // Generic contract binding to set the session for
  4770  	CallOpts     bind.CallOpts     // Call options to use throughout this session
  4771  	TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
  4772  }
  4773  
  4774  // SafeMathCallerSession is an auto generated read-only Go binding around a Klaytn contract,
  4775  // with pre-set call options.
  4776  type SafeMathCallerSession struct {
  4777  	Contract *SafeMathCaller // Generic contract caller binding to set the session for
  4778  	CallOpts bind.CallOpts   // Call options to use throughout this session
  4779  }
  4780  
  4781  // SafeMathTransactorSession is an auto generated write-only Go binding around a Klaytn contract,
  4782  // with pre-set transact options.
  4783  type SafeMathTransactorSession struct {
  4784  	Contract     *SafeMathTransactor // Generic contract transactor binding to set the session for
  4785  	TransactOpts bind.TransactOpts   // Transaction auth options to use throughout this session
  4786  }
  4787  
  4788  // SafeMathRaw is an auto generated low-level Go binding around a Klaytn contract.
  4789  type SafeMathRaw struct {
  4790  	Contract *SafeMath // Generic contract binding to access the raw methods on
  4791  }
  4792  
  4793  // SafeMathCallerRaw is an auto generated low-level read-only Go binding around a Klaytn contract.
  4794  type SafeMathCallerRaw struct {
  4795  	Contract *SafeMathCaller // Generic read-only contract binding to access the raw methods on
  4796  }
  4797  
  4798  // SafeMathTransactorRaw is an auto generated low-level write-only Go binding around a Klaytn contract.
  4799  type SafeMathTransactorRaw struct {
  4800  	Contract *SafeMathTransactor // Generic write-only contract binding to access the raw methods on
  4801  }
  4802  
  4803  // NewSafeMath creates a new instance of SafeMath, bound to a specific deployed contract.
  4804  func NewSafeMath(address common.Address, backend bind.ContractBackend) (*SafeMath, error) {
  4805  	contract, err := bindSafeMath(address, backend, backend, backend)
  4806  	if err != nil {
  4807  		return nil, err
  4808  	}
  4809  	return &SafeMath{SafeMathCaller: SafeMathCaller{contract: contract}, SafeMathTransactor: SafeMathTransactor{contract: contract}, SafeMathFilterer: SafeMathFilterer{contract: contract}}, nil
  4810  }
  4811  
  4812  // NewSafeMathCaller creates a new read-only instance of SafeMath, bound to a specific deployed contract.
  4813  func NewSafeMathCaller(address common.Address, caller bind.ContractCaller) (*SafeMathCaller, error) {
  4814  	contract, err := bindSafeMath(address, caller, nil, nil)
  4815  	if err != nil {
  4816  		return nil, err
  4817  	}
  4818  	return &SafeMathCaller{contract: contract}, nil
  4819  }
  4820  
  4821  // NewSafeMathTransactor creates a new write-only instance of SafeMath, bound to a specific deployed contract.
  4822  func NewSafeMathTransactor(address common.Address, transactor bind.ContractTransactor) (*SafeMathTransactor, error) {
  4823  	contract, err := bindSafeMath(address, nil, transactor, nil)
  4824  	if err != nil {
  4825  		return nil, err
  4826  	}
  4827  	return &SafeMathTransactor{contract: contract}, nil
  4828  }
  4829  
  4830  // NewSafeMathFilterer creates a new log filterer instance of SafeMath, bound to a specific deployed contract.
  4831  func NewSafeMathFilterer(address common.Address, filterer bind.ContractFilterer) (*SafeMathFilterer, error) {
  4832  	contract, err := bindSafeMath(address, nil, nil, filterer)
  4833  	if err != nil {
  4834  		return nil, err
  4835  	}
  4836  	return &SafeMathFilterer{contract: contract}, nil
  4837  }
  4838  
  4839  // bindSafeMath binds a generic wrapper to an already deployed contract.
  4840  func bindSafeMath(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
  4841  	parsed, err := SafeMathMetaData.GetAbi()
  4842  	if err != nil {
  4843  		return nil, err
  4844  	}
  4845  	return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil
  4846  }
  4847  
  4848  // Call invokes the (constant) contract method with params as input values and
  4849  // sets the output to result. The result type might be a single field for simple
  4850  // returns, a slice of interfaces for anonymous returns and a struct for named
  4851  // returns.
  4852  func (_SafeMath *SafeMathRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
  4853  	return _SafeMath.Contract.SafeMathCaller.contract.Call(opts, result, method, params...)
  4854  }
  4855  
  4856  // Transfer initiates a plain transaction to move funds to the contract, calling
  4857  // its default method if one is available.
  4858  func (_SafeMath *SafeMathRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
  4859  	return _SafeMath.Contract.SafeMathTransactor.contract.Transfer(opts)
  4860  }
  4861  
  4862  // Transact invokes the (paid) contract method with params as input values.
  4863  func (_SafeMath *SafeMathRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
  4864  	return _SafeMath.Contract.SafeMathTransactor.contract.Transact(opts, method, params...)
  4865  }
  4866  
  4867  // Call invokes the (constant) contract method with params as input values and
  4868  // sets the output to result. The result type might be a single field for simple
  4869  // returns, a slice of interfaces for anonymous returns and a struct for named
  4870  // returns.
  4871  func (_SafeMath *SafeMathCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
  4872  	return _SafeMath.Contract.contract.Call(opts, result, method, params...)
  4873  }
  4874  
  4875  // Transfer initiates a plain transaction to move funds to the contract, calling
  4876  // its default method if one is available.
  4877  func (_SafeMath *SafeMathTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
  4878  	return _SafeMath.Contract.contract.Transfer(opts)
  4879  }
  4880  
  4881  // Transact invokes the (paid) contract method with params as input values.
  4882  func (_SafeMath *SafeMathTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
  4883  	return _SafeMath.Contract.contract.Transact(opts, method, params...)
  4884  }