github.com/klaytn/klaytn@v1.10.2/contracts/gov/GovParam.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 gov
     5  
     6  import (
     7  	"math/big"
     8  	"strings"
     9  
    10  	"github.com/klaytn/klaytn"
    11  	"github.com/klaytn/klaytn/accounts/abi"
    12  	"github.com/klaytn/klaytn/accounts/abi/bind"
    13  	"github.com/klaytn/klaytn/blockchain/types"
    14  	"github.com/klaytn/klaytn/common"
    15  	"github.com/klaytn/klaytn/event"
    16  )
    17  
    18  // Reference imports to suppress errors if they are not otherwise used.
    19  var (
    20  	_ = big.NewInt
    21  	_ = strings.NewReader
    22  	_ = klaytn.NotFound
    23  	_ = bind.Bind
    24  	_ = common.Big1
    25  	_ = types.BloomLookup
    26  	_ = event.NewSubscription
    27  )
    28  
    29  // IGovParamParam is an auto generated low-level Go binding around an user-defined struct.
    30  type IGovParamParam struct {
    31  	Activation *big.Int
    32  	Exists     bool
    33  	Val        []byte
    34  }
    35  
    36  // ContextABI is the input ABI used to generate the binding from.
    37  const ContextABI = "[]"
    38  
    39  // ContextBinRuntime is the compiled bytecode used for adding genesis block without deploying code.
    40  const ContextBinRuntime = ``
    41  
    42  // Context is an auto generated Go binding around a Klaytn contract.
    43  type Context struct {
    44  	ContextCaller     // Read-only binding to the contract
    45  	ContextTransactor // Write-only binding to the contract
    46  	ContextFilterer   // Log filterer for contract events
    47  }
    48  
    49  // ContextCaller is an auto generated read-only Go binding around a Klaytn contract.
    50  type ContextCaller struct {
    51  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
    52  }
    53  
    54  // ContextTransactor is an auto generated write-only Go binding around a Klaytn contract.
    55  type ContextTransactor struct {
    56  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
    57  }
    58  
    59  // ContextFilterer is an auto generated log filtering Go binding around a Klaytn contract events.
    60  type ContextFilterer struct {
    61  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
    62  }
    63  
    64  // ContextSession is an auto generated Go binding around a Klaytn contract,
    65  // with pre-set call and transact options.
    66  type ContextSession struct {
    67  	Contract     *Context          // Generic contract binding to set the session for
    68  	CallOpts     bind.CallOpts     // Call options to use throughout this session
    69  	TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
    70  }
    71  
    72  // ContextCallerSession is an auto generated read-only Go binding around a Klaytn contract,
    73  // with pre-set call options.
    74  type ContextCallerSession struct {
    75  	Contract *ContextCaller // Generic contract caller binding to set the session for
    76  	CallOpts bind.CallOpts  // Call options to use throughout this session
    77  }
    78  
    79  // ContextTransactorSession is an auto generated write-only Go binding around a Klaytn contract,
    80  // with pre-set transact options.
    81  type ContextTransactorSession struct {
    82  	Contract     *ContextTransactor // Generic contract transactor binding to set the session for
    83  	TransactOpts bind.TransactOpts  // Transaction auth options to use throughout this session
    84  }
    85  
    86  // ContextRaw is an auto generated low-level Go binding around a Klaytn contract.
    87  type ContextRaw struct {
    88  	Contract *Context // Generic contract binding to access the raw methods on
    89  }
    90  
    91  // ContextCallerRaw is an auto generated low-level read-only Go binding around a Klaytn contract.
    92  type ContextCallerRaw struct {
    93  	Contract *ContextCaller // Generic read-only contract binding to access the raw methods on
    94  }
    95  
    96  // ContextTransactorRaw is an auto generated low-level write-only Go binding around a Klaytn contract.
    97  type ContextTransactorRaw struct {
    98  	Contract *ContextTransactor // Generic write-only contract binding to access the raw methods on
    99  }
   100  
   101  // NewContext creates a new instance of Context, bound to a specific deployed contract.
   102  func NewContext(address common.Address, backend bind.ContractBackend) (*Context, error) {
   103  	contract, err := bindContext(address, backend, backend, backend)
   104  	if err != nil {
   105  		return nil, err
   106  	}
   107  	return &Context{ContextCaller: ContextCaller{contract: contract}, ContextTransactor: ContextTransactor{contract: contract}, ContextFilterer: ContextFilterer{contract: contract}}, nil
   108  }
   109  
   110  // NewContextCaller creates a new read-only instance of Context, bound to a specific deployed contract.
   111  func NewContextCaller(address common.Address, caller bind.ContractCaller) (*ContextCaller, error) {
   112  	contract, err := bindContext(address, caller, nil, nil)
   113  	if err != nil {
   114  		return nil, err
   115  	}
   116  	return &ContextCaller{contract: contract}, nil
   117  }
   118  
   119  // NewContextTransactor creates a new write-only instance of Context, bound to a specific deployed contract.
   120  func NewContextTransactor(address common.Address, transactor bind.ContractTransactor) (*ContextTransactor, error) {
   121  	contract, err := bindContext(address, nil, transactor, nil)
   122  	if err != nil {
   123  		return nil, err
   124  	}
   125  	return &ContextTransactor{contract: contract}, nil
   126  }
   127  
   128  // NewContextFilterer creates a new log filterer instance of Context, bound to a specific deployed contract.
   129  func NewContextFilterer(address common.Address, filterer bind.ContractFilterer) (*ContextFilterer, error) {
   130  	contract, err := bindContext(address, nil, nil, filterer)
   131  	if err != nil {
   132  		return nil, err
   133  	}
   134  	return &ContextFilterer{contract: contract}, nil
   135  }
   136  
   137  // bindContext binds a generic wrapper to an already deployed contract.
   138  func bindContext(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
   139  	parsed, err := abi.JSON(strings.NewReader(ContextABI))
   140  	if err != nil {
   141  		return nil, err
   142  	}
   143  	return bind.NewBoundContract(address, parsed, caller, transactor, filterer), nil
   144  }
   145  
   146  // Call invokes the (constant) contract method with params as input values and
   147  // sets the output to result. The result type might be a single field for simple
   148  // returns, a slice of interfaces for anonymous returns and a struct for named
   149  // returns.
   150  func (_Context *ContextRaw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error {
   151  	return _Context.Contract.ContextCaller.contract.Call(opts, result, method, params...)
   152  }
   153  
   154  // Transfer initiates a plain transaction to move funds to the contract, calling
   155  // its default method if one is available.
   156  func (_Context *ContextRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
   157  	return _Context.Contract.ContextTransactor.contract.Transfer(opts)
   158  }
   159  
   160  // Transact invokes the (paid) contract method with params as input values.
   161  func (_Context *ContextRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
   162  	return _Context.Contract.ContextTransactor.contract.Transact(opts, method, params...)
   163  }
   164  
   165  // Call invokes the (constant) contract method with params as input values and
   166  // sets the output to result. The result type might be a single field for simple
   167  // returns, a slice of interfaces for anonymous returns and a struct for named
   168  // returns.
   169  func (_Context *ContextCallerRaw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error {
   170  	return _Context.Contract.contract.Call(opts, result, method, params...)
   171  }
   172  
   173  // Transfer initiates a plain transaction to move funds to the contract, calling
   174  // its default method if one is available.
   175  func (_Context *ContextTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
   176  	return _Context.Contract.contract.Transfer(opts)
   177  }
   178  
   179  // Transact invokes the (paid) contract method with params as input values.
   180  func (_Context *ContextTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
   181  	return _Context.Contract.contract.Transact(opts, method, params...)
   182  }
   183  
   184  // GovParamABI is the input ABI used to generate the binding from.
   185  const GovParamABI = "[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"exists\",\"type\":\"bool\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"value\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"activation\",\"type\":\"uint256\"}],\"name\":\"SetParam\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"name\":\"checkpoints\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"activation\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"exists\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"val\",\"type\":\"bytes\"}],\"internalType\":\"structIGovParam.Param[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getAllCheckpoints\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"\",\"type\":\"string[]\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"activation\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"exists\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"val\",\"type\":\"bytes\"}],\"internalType\":\"structIGovParam.Param[][]\",\"name\":\"\",\"type\":\"tuple[][]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getAllParamNames\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getAllParams\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"\",\"type\":\"string[]\"},{\"internalType\":\"bytes[]\",\"name\":\"\",\"type\":\"bytes[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"}],\"name\":\"getAllParamsAt\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"\",\"type\":\"string[]\"},{\"internalType\":\"bytes[]\",\"name\":\"\",\"type\":\"bytes[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"name\":\"getParam\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"}],\"name\":\"getParamAt\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"paramNames\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"bool\",\"name\":\"exists\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"val\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"activation\",\"type\":\"uint256\"}],\"name\":\"setParam\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"bool\",\"name\":\"exists\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"val\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"relativeActivation\",\"type\":\"uint256\"}],\"name\":\"setParamIn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]"
   186  
   187  // GovParamBinRuntime is the compiled bytecode used for adding genesis block without deploying code.
   188  const GovParamBinRuntime = `608060405234801561001057600080fd5b50600436106100cf5760003560e01c8063715018a61161008c578063b93244a511610066578063b93244a5146101a8578063cc4783b6146101bb578063db758754146101d0578063f2fde38b146101f057600080fd5b8063715018a61461017d5780638da5cb5b14610185578063a170052e146101a057600080fd5b80631e31825a146100d4578063296451d9146100fe5780633f8aa6241461011e5780635516c21c146101335780635d4f71d4146101495780636a1ec27c1461016a575b600080fd5b6100e76100e23660046117a8565b610203565b6040516100f5929190611869565b60405180910390f35b61011161010c36600461191d565b61056e565b6040516100f5919061195f565b61013161012c3660046119e0565b61069d565b005b61013b610abd565b6040516100f5929190611a72565b61015c61015736600461191d565b610d71565b6040516100f5929190611b39565b61015c610178366004611b72565b610ec4565b610131611091565b6000546040516001600160a01b0390911681526020016100f5565b6100e76110c7565b6101316101b63660046119e0565b61142d565b6101c361147c565b6040516100f59190611c27565b6101e36101de3660046117a8565b611555565b6040516100f59190611c3a565b6101316101fe366004611c4d565b611601565b6060806000805b6001548110156102ef5760006102c56001838154811061022c5761022c611c76565b90600052602060002001805461024190611c8c565b80601f016020809104026020016040519081016040528092919081815260200182805461026d90611c8c565b80156102ba5780601f1061028f576101008083540402835291602001916102ba565b820191906000526020600020905b81548152906001019060200180831161029d57829003601f168201915b505050505087610ec4565b50905080156102dc57826102d881611cdc565b9350505b50806102e781611cdc565b91505061020a565b5060008167ffffffffffffffff81111561030b5761030b611b5c565b60405190808252806020026020018201604052801561033e57816020015b60608152602001906001900390816103295790505b50905060008267ffffffffffffffff81111561035c5761035c611b5c565b60405190808252806020026020018201604052801561038f57816020015b606081526020019060019003908161037a5790505b5090506000805b60015481101561056157600080610452600184815481106103b9576103b9611c76565b9060005260206000200180546103ce90611c8c565b80601f01602080910402602001604051908101604052809291908181526020018280546103fa90611c8c565b80156104475780601f1061041c57610100808354040283529160200191610447565b820191906000526020600020905b81548152906001019060200180831161042a57829003601f168201915b50505050508b610ec4565b91509150811561054c576001838154811061046f5761046f611c76565b90600052602060002001805461048490611c8c565b80601f01602080910402602001604051908101604052809291908181526020018280546104b090611c8c565b80156104fd5780601f106104d2576101008083540402835291602001916104fd565b820191906000526020600020905b8154815290600101906020018083116104e057829003601f168201915b505050505086858151811061051457610514611c76565b60200260200101819052508085858151811061053257610532611c76565b6020026020010181905250838061054890611cdc565b9450505b5050808061055990611cdc565b915050610396565b5091969095509350505050565b606060028383604051610582929190611cf5565b9081526020016040518091039020805480602002602001604051908101604052809291908181526020016000905b82821015610690576000848152602090819020604080516060810182526003860290920180548352600181015460ff16151593830193909352600283018054929392918401916105ff90611c8c565b80601f016020809104026020016040519081016040528092919081815260200182805461062b90611c8c565b80156106785780601f1061064d57610100808354040283529160200191610678565b820191906000526020600020905b81548152906001019060200180831161065b57829003601f168201915b505050505081525050815260200190600101906105b0565b5050505090505b92915050565b6000546001600160a01b031633146106d05760405162461bcd60e51b81526004016106c790611d05565b60405180910390fd5b8461071d5760405162461bcd60e51b815260206004820152601e60248201527f476f76506172616d3a206e616d652063616e6e6f7420626520656d707479000060448201526064016106c7565b43811161077f5760405162461bcd60e51b815260206004820152602a60248201527f476f76506172616d3a2061637469766174696f6e206d75737420626520696e206044820152697468652066757475726560b01b60648201526084016106c7565b83158061078b57508115155b6107ee5760405162461bcd60e51b815260206004820152602e60248201527f476f76506172616d3a2076616c206d757374206e6f7420626520656d7074792060448201526d6966206578697374733d7472756560901b60648201526084016106c7565b83806107f8575081155b6108585760405162461bcd60e51b815260206004820152602b60248201527f476f76506172616d3a2076616c206d75737420626520656d707479206966206560448201526a78697374733d66616c736560a81b60648201526084016106c7565b60006040518060600160405280838152602001861515815260200185858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092018290525093909452505060405192935091600291506108c3908a908a90611cf5565b9081526040519081900360200190208054909150600003610988576001805480820182556000919091527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60161091a888a83611d89565b5060408051606081018252600080825260208083018281528451808301865283815294840194855285546001808201885587855292909320845160039094020192835551908201805460ff1916911515919091179055915190919060028201906109849082611e4a565b5050505b805460009061099990600190611f0a565b9050438282815481106109ae576109ae611c76565b90600052602060002090600302016000015411610a185781546001808201845560008481526020908190208651600390940201928355850151908201805460ff191691151591909117905560408401518491906002820190610a109082611e4a565b505050610a71565b82828281548110610a2b57610a2b611c76565b60009182526020918290208351600392909202019081559082015160018201805460ff191691151591909117905560408201516002820190610a6d9082611e4a565b5050505b7f80044a87a0a45f6cc784a3f48077d58f4eb1e7d78243f85daa43ad7a88b6ba85898989898989604051610aaa96959493929190611f46565b60405180910390a1505050505050505050565b606080600060018054905067ffffffffffffffff811115610ae057610ae0611b5c565b604051908082528060200260200182016040528015610b1357816020015b6060815260200190600190039081610afe5790505b50905060005b600154811015610c9157600260018281548110610b3857610b38611c76565b90600052602060002001604051610b4f9190611f89565b9081526020016040518091039020805480602002602001604051908101604052809291908181526020016000905b82821015610c5d576000848152602090819020604080516060810182526003860290920180548352600181015460ff1615159383019390935260028301805492939291840191610bcc90611c8c565b80601f0160208091040260200160405190810160405280929190818152602001828054610bf890611c8c565b8015610c455780601f10610c1a57610100808354040283529160200191610c45565b820191906000526020600020905b815481529060010190602001808311610c2857829003601f168201915b50505050508152505081526020019060010190610b7d565b50505050828281518110610c7357610c73611c76565b60200260200101819052508080610c8990611cdc565b915050610b19565b5060018181805480602002602001604051908101604052809291908181526020016000905b82821015610d62578382906000526020600020018054610cd590611c8c565b80601f0160208091040260200160405190810160405280929190818152602001828054610d0190611c8c565b8015610d4e5780601f10610d2357610100808354040283529160200191610d4e565b820191906000526020600020905b815481529060010190602001808311610d3157829003601f168201915b505050505081526020019060010190610cb6565b50505050915092509250509091565b6000606060028484604051610d87929190611cf5565b90815260405190819003602001902054600003610db65750506040805160208101909152600080825290610ebd565b6000610df785858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061169c92505050565b6040805160608101825282548152600183015460ff1615156020820152600283018054919392840191610e2990611c8c565b80601f0160208091040260200160405190810160405280929190818152602001828054610e5590611c8c565b8015610ea25780601f10610e7757610100808354040283529160200191610ea2565b820191906000526020600020905b815481529060010190602001808311610e8557829003601f168201915b50505050508152505090508060200151816040015192509250505b9250929050565b600060606000600285604051610eda9190611fff565b9081526040519081900360200190205490506000819003610f0e575050604080516020810190915260008082529150610ebd565b6000808290506000600288604051610f269190611fff565b908152602001604051809103902090505b81831015610f94576000610f4b8484611736565b905087828281548110610f6057610f60611c76565b9060005260206000209060030201600001541115610f8057809250610f8e565b610f8b81600161201b565b93505b50610f37565b80610fa0600184611f0a565b81548110610fb057610fb0611c76565b60009182526020909120600160039092020181015460ff16908290610fd59085611f0a565b81548110610fe557610fe5611c76565b906000526020600020906003020160020180805461100290611c8c565b80601f016020809104026020016040519081016040528092919081815260200182805461102e90611c8c565b801561107b5780601f106110505761010080835404028352916020019161107b565b820191906000526020600020905b81548152906001019060200180831161105e57829003601f168201915b5050505050905095509550505050509250929050565b6000546001600160a01b031633146110bb5760405162461bcd60e51b81526004016106c790611d05565b6110c56000611758565b565b6060806000805b6001548110156111b9576000611188600183815481106110f0576110f0611c76565b90600052602060002001805461110590611c8c565b80601f016020809104026020016040519081016040528092919081815260200182805461113190611c8c565b801561117e5780601f106111535761010080835404028352916020019161117e565b820191906000526020600020905b81548152906001019060200180831161116157829003601f168201915b505050505061169c565b600181015490915060ff16156111a657826111a281611cdc565b9350505b50806111b181611cdc565b9150506110ce565b5060008167ffffffffffffffff8111156111d5576111d5611b5c565b60405190808252806020026020018201604052801561120857816020015b60608152602001906001900390816111f35790505b50905060008267ffffffffffffffff81111561122657611226611b5c565b60405190808252806020026020018201604052801561125957816020015b60608152602001906001900390816112445790505b5090506000805b600154811015611421576000611282600183815481106110f0576110f0611c76565b600181015490915060ff161561140e57600182815481106112a5576112a5611c76565b9060005260206000200180546112ba90611c8c565b80601f01602080910402602001604051908101604052809291908181526020018280546112e690611c8c565b80156113335780601f1061130857610100808354040283529160200191611333565b820191906000526020600020905b81548152906001019060200180831161131657829003601f168201915b505050505085848151811061134a5761134a611c76565b602002602001018190525080600201805461136490611c8c565b80601f016020809104026020016040519081016040528092919081815260200182805461139090611c8c565b80156113dd5780601f106113b2576101008083540402835291602001916113dd565b820191906000526020600020905b8154815290600101906020018083116113c057829003601f168201915b50505050508484815181106113f4576113f4611c76565b6020026020010181905250828061140a90611cdc565b9350505b508061141981611cdc565b915050611260565b50919590945092505050565b6000546001600160a01b031633146114575760405162461bcd60e51b81526004016106c790611d05565b6000611463824361201b565b905061147387878787878661069d565b50505050505050565b60606001805480602002602001604051908101604052809291908181526020016000905b8282101561154c5783829060005260206000200180546114bf90611c8c565b80601f01602080910402602001604051908101604052809291908181526020018280546114eb90611c8c565b80156115385780601f1061150d57610100808354040283529160200191611538565b820191906000526020600020905b81548152906001019060200180831161151b57829003601f168201915b5050505050815260200190600101906114a0565b50505050905090565b6001818154811061156557600080fd5b90600052602060002001600091509050805461158090611c8c565b80601f01602080910402602001604051908101604052809291908181526020018280546115ac90611c8c565b80156115f95780601f106115ce576101008083540402835291602001916115f9565b820191906000526020600020905b8154815290600101906020018083116115dc57829003601f168201915b505050505081565b6000546001600160a01b0316331461162b5760405162461bcd60e51b81526004016106c790611d05565b6001600160a01b0381166116905760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016106c7565b61169981611758565b50565b6000806002836040516116af9190611fff565b908152604051908190036020019020805490915043826116d0600184611f0a565b815481106116e0576116e0611c76565b9060005260206000209060030201600001541161172a5781611703600183611f0a565b8154811061171357611713611c76565b906000526020600020906003020192505050919050565b81611703600283611f0a565b6000611745600284841861202e565b6117519084841661201b565b9392505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000602082840312156117ba57600080fd5b5035919050565b60005b838110156117dc5781810151838201526020016117c4565b50506000910152565b600081518084526117fd8160208601602086016117c1565b601f01601f19169290920160200192915050565b600082825180855260208086019550808260051b84010181860160005b8481101561185c57601f1986840301895261184a8383516117e5565b9884019892509083019060010161182e565b5090979650505050505050565b60408152600061187c6040830185611811565b6020838203818501528185518084528284019150828160051b85010183880160005b838110156118cc57601f198784030185526118ba8383516117e5565b9486019492509085019060010161189e565b50909998505050505050505050565b60008083601f8401126118ed57600080fd5b50813567ffffffffffffffff81111561190557600080fd5b602083019150836020828501011115610ebd57600080fd5b6000806020838503121561193057600080fd5b823567ffffffffffffffff81111561194757600080fd5b611953858286016118db565b90969095509350505050565b60006020808301818452808551808352604092508286019150828160051b87010184880160005b838110156119d257888303603f190185528151805184528781015115158885015286015160608785018190526119be818601836117e5565b968901969450505090860190600101611986565b509098975050505050505050565b600080600080600080608087890312156119f957600080fd5b863567ffffffffffffffff80821115611a1157600080fd5b611a1d8a838b016118db565b9098509650602089013591508115158214611a3757600080fd5b90945060408801359080821115611a4d57600080fd5b50611a5a89828a016118db565b979a9699509497949695606090950135949350505050565b604081526000611a856040830185611811565b6020838203818501528185518084528284019150828160051b85010183880160005b838110156118cc57601f1987840381018652825180518086529088019088860190600581901b87018a0160005b82811015611b22578589830301845284516060815184528d82015115158e85015260408201519150806040850152611b0e818501836117e5565b968e0196958e019593505050600101611ad4565b50988a019896505050928701925050600101611aa7565b8215158152604060208201526000611b5460408301846117e5565b949350505050565b634e487b7160e01b600052604160045260246000fd5b60008060408385031215611b8557600080fd5b823567ffffffffffffffff80821115611b9d57600080fd5b818501915085601f830112611bb157600080fd5b813581811115611bc357611bc3611b5c565b604051601f8201601f19908116603f01168101908382118183101715611beb57611beb611b5c565b81604052828152886020848701011115611c0457600080fd5b826020860160208301376000602093820184015298969091013596505050505050565b6020815260006117516020830184611811565b60208152600061175160208301846117e5565b600060208284031215611c5f57600080fd5b81356001600160a01b038116811461175157600080fd5b634e487b7160e01b600052603260045260246000fd5b600181811c90821680611ca057607f821691505b602082108103611cc057634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b600060018201611cee57611cee611cc6565b5060010190565b8183823760009101908152919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b601f821115611d8457600081815260208120601f850160051c81016020861015611d615750805b601f850160051c820191505b81811015611d8057828155600101611d6d565b5050505b505050565b67ffffffffffffffff831115611da157611da1611b5c565b611db583611daf8354611c8c565b83611d3a565b6000601f841160018114611de95760008515611dd15750838201355b600019600387901b1c1916600186901b178355611e43565b600083815260209020601f19861690835b82811015611e1a5786850135825560209485019460019092019101611dfa565b5086821015611e375760001960f88860031b161c19848701351681555b505060018560011b0183555b5050505050565b815167ffffffffffffffff811115611e6457611e64611b5c565b611e7881611e728454611c8c565b84611d3a565b602080601f831160018114611ead5760008415611e955750858301515b600019600386901b1c1916600185901b178555611d80565b600085815260208120601f198616915b82811015611edc57888601518255948401946001909101908401611ebd565b5085821015611efa5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b8181038181111561069757610697611cc6565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b608081526000611f5a60808301888a611f1d565b86151560208401528281036040840152611f75818688611f1d565b915050826060830152979650505050505050565b6000808354611f9781611c8c565b60018281168015611faf5760018114611fc457611ff3565b60ff1984168752821515830287019450611ff3565b8760005260208060002060005b85811015611fea5781548a820152908401908201611fd1565b50505082870194505b50929695505050505050565b600082516120118184602087016117c1565b9190910192915050565b8082018082111561069757610697611cc6565b60008261204b57634e487b7160e01b600052601260045260246000fd5b50049056fea2646970667358221220cdbe4d581441e6ee0bb93f642bd3227fceaf3fa2d65c3c8e7d0fe75c3a5d4fa164736f6c63430008110033`
   189  
   190  // GovParamFuncSigs maps the 4-byte function signature to its string representation.
   191  var GovParamFuncSigs = map[string]string{
   192  	"296451d9": "checkpoints(string)",
   193  	"5516c21c": "getAllCheckpoints()",
   194  	"cc4783b6": "getAllParamNames()",
   195  	"a170052e": "getAllParams()",
   196  	"1e31825a": "getAllParamsAt(uint256)",
   197  	"5d4f71d4": "getParam(string)",
   198  	"6a1ec27c": "getParamAt(string,uint256)",
   199  	"8da5cb5b": "owner()",
   200  	"db758754": "paramNames(uint256)",
   201  	"715018a6": "renounceOwnership()",
   202  	"3f8aa624": "setParam(string,bool,bytes,uint256)",
   203  	"b93244a5": "setParamIn(string,bool,bytes,uint256)",
   204  	"f2fde38b": "transferOwnership(address)",
   205  }
   206  
   207  // GovParamBin is the compiled bytecode used for deploying new contracts.
   208  var GovParamBin = "0x608060405234801561001057600080fd5b5061001a3361001f565b61006f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6120868061007e6000396000f3fe608060405234801561001057600080fd5b50600436106100cf5760003560e01c8063715018a61161008c578063b93244a511610066578063b93244a5146101a8578063cc4783b6146101bb578063db758754146101d0578063f2fde38b146101f057600080fd5b8063715018a61461017d5780638da5cb5b14610185578063a170052e146101a057600080fd5b80631e31825a146100d4578063296451d9146100fe5780633f8aa6241461011e5780635516c21c146101335780635d4f71d4146101495780636a1ec27c1461016a575b600080fd5b6100e76100e23660046117a8565b610203565b6040516100f5929190611869565b60405180910390f35b61011161010c36600461191d565b61056e565b6040516100f5919061195f565b61013161012c3660046119e0565b61069d565b005b61013b610abd565b6040516100f5929190611a72565b61015c61015736600461191d565b610d71565b6040516100f5929190611b39565b61015c610178366004611b72565b610ec4565b610131611091565b6000546040516001600160a01b0390911681526020016100f5565b6100e76110c7565b6101316101b63660046119e0565b61142d565b6101c361147c565b6040516100f59190611c27565b6101e36101de3660046117a8565b611555565b6040516100f59190611c3a565b6101316101fe366004611c4d565b611601565b6060806000805b6001548110156102ef5760006102c56001838154811061022c5761022c611c76565b90600052602060002001805461024190611c8c565b80601f016020809104026020016040519081016040528092919081815260200182805461026d90611c8c565b80156102ba5780601f1061028f576101008083540402835291602001916102ba565b820191906000526020600020905b81548152906001019060200180831161029d57829003601f168201915b505050505087610ec4565b50905080156102dc57826102d881611cdc565b9350505b50806102e781611cdc565b91505061020a565b5060008167ffffffffffffffff81111561030b5761030b611b5c565b60405190808252806020026020018201604052801561033e57816020015b60608152602001906001900390816103295790505b50905060008267ffffffffffffffff81111561035c5761035c611b5c565b60405190808252806020026020018201604052801561038f57816020015b606081526020019060019003908161037a5790505b5090506000805b60015481101561056157600080610452600184815481106103b9576103b9611c76565b9060005260206000200180546103ce90611c8c565b80601f01602080910402602001604051908101604052809291908181526020018280546103fa90611c8c565b80156104475780601f1061041c57610100808354040283529160200191610447565b820191906000526020600020905b81548152906001019060200180831161042a57829003601f168201915b50505050508b610ec4565b91509150811561054c576001838154811061046f5761046f611c76565b90600052602060002001805461048490611c8c565b80601f01602080910402602001604051908101604052809291908181526020018280546104b090611c8c565b80156104fd5780601f106104d2576101008083540402835291602001916104fd565b820191906000526020600020905b8154815290600101906020018083116104e057829003601f168201915b505050505086858151811061051457610514611c76565b60200260200101819052508085858151811061053257610532611c76565b6020026020010181905250838061054890611cdc565b9450505b5050808061055990611cdc565b915050610396565b5091969095509350505050565b606060028383604051610582929190611cf5565b9081526020016040518091039020805480602002602001604051908101604052809291908181526020016000905b82821015610690576000848152602090819020604080516060810182526003860290920180548352600181015460ff16151593830193909352600283018054929392918401916105ff90611c8c565b80601f016020809104026020016040519081016040528092919081815260200182805461062b90611c8c565b80156106785780601f1061064d57610100808354040283529160200191610678565b820191906000526020600020905b81548152906001019060200180831161065b57829003601f168201915b505050505081525050815260200190600101906105b0565b5050505090505b92915050565b6000546001600160a01b031633146106d05760405162461bcd60e51b81526004016106c790611d05565b60405180910390fd5b8461071d5760405162461bcd60e51b815260206004820152601e60248201527f476f76506172616d3a206e616d652063616e6e6f7420626520656d707479000060448201526064016106c7565b43811161077f5760405162461bcd60e51b815260206004820152602a60248201527f476f76506172616d3a2061637469766174696f6e206d75737420626520696e206044820152697468652066757475726560b01b60648201526084016106c7565b83158061078b57508115155b6107ee5760405162461bcd60e51b815260206004820152602e60248201527f476f76506172616d3a2076616c206d757374206e6f7420626520656d7074792060448201526d6966206578697374733d7472756560901b60648201526084016106c7565b83806107f8575081155b6108585760405162461bcd60e51b815260206004820152602b60248201527f476f76506172616d3a2076616c206d75737420626520656d707479206966206560448201526a78697374733d66616c736560a81b60648201526084016106c7565b60006040518060600160405280838152602001861515815260200185858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092018290525093909452505060405192935091600291506108c3908a908a90611cf5565b9081526040519081900360200190208054909150600003610988576001805480820182556000919091527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60161091a888a83611d89565b5060408051606081018252600080825260208083018281528451808301865283815294840194855285546001808201885587855292909320845160039094020192835551908201805460ff1916911515919091179055915190919060028201906109849082611e4a565b5050505b805460009061099990600190611f0a565b9050438282815481106109ae576109ae611c76565b90600052602060002090600302016000015411610a185781546001808201845560008481526020908190208651600390940201928355850151908201805460ff191691151591909117905560408401518491906002820190610a109082611e4a565b505050610a71565b82828281548110610a2b57610a2b611c76565b60009182526020918290208351600392909202019081559082015160018201805460ff191691151591909117905560408201516002820190610a6d9082611e4a565b5050505b7f80044a87a0a45f6cc784a3f48077d58f4eb1e7d78243f85daa43ad7a88b6ba85898989898989604051610aaa96959493929190611f46565b60405180910390a1505050505050505050565b606080600060018054905067ffffffffffffffff811115610ae057610ae0611b5c565b604051908082528060200260200182016040528015610b1357816020015b6060815260200190600190039081610afe5790505b50905060005b600154811015610c9157600260018281548110610b3857610b38611c76565b90600052602060002001604051610b4f9190611f89565b9081526020016040518091039020805480602002602001604051908101604052809291908181526020016000905b82821015610c5d576000848152602090819020604080516060810182526003860290920180548352600181015460ff1615159383019390935260028301805492939291840191610bcc90611c8c565b80601f0160208091040260200160405190810160405280929190818152602001828054610bf890611c8c565b8015610c455780601f10610c1a57610100808354040283529160200191610c45565b820191906000526020600020905b815481529060010190602001808311610c2857829003601f168201915b50505050508152505081526020019060010190610b7d565b50505050828281518110610c7357610c73611c76565b60200260200101819052508080610c8990611cdc565b915050610b19565b5060018181805480602002602001604051908101604052809291908181526020016000905b82821015610d62578382906000526020600020018054610cd590611c8c565b80601f0160208091040260200160405190810160405280929190818152602001828054610d0190611c8c565b8015610d4e5780601f10610d2357610100808354040283529160200191610d4e565b820191906000526020600020905b815481529060010190602001808311610d3157829003601f168201915b505050505081526020019060010190610cb6565b50505050915092509250509091565b6000606060028484604051610d87929190611cf5565b90815260405190819003602001902054600003610db65750506040805160208101909152600080825290610ebd565b6000610df785858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061169c92505050565b6040805160608101825282548152600183015460ff1615156020820152600283018054919392840191610e2990611c8c565b80601f0160208091040260200160405190810160405280929190818152602001828054610e5590611c8c565b8015610ea25780601f10610e7757610100808354040283529160200191610ea2565b820191906000526020600020905b815481529060010190602001808311610e8557829003601f168201915b50505050508152505090508060200151816040015192509250505b9250929050565b600060606000600285604051610eda9190611fff565b9081526040519081900360200190205490506000819003610f0e575050604080516020810190915260008082529150610ebd565b6000808290506000600288604051610f269190611fff565b908152602001604051809103902090505b81831015610f94576000610f4b8484611736565b905087828281548110610f6057610f60611c76565b9060005260206000209060030201600001541115610f8057809250610f8e565b610f8b81600161201b565b93505b50610f37565b80610fa0600184611f0a565b81548110610fb057610fb0611c76565b60009182526020909120600160039092020181015460ff16908290610fd59085611f0a565b81548110610fe557610fe5611c76565b906000526020600020906003020160020180805461100290611c8c565b80601f016020809104026020016040519081016040528092919081815260200182805461102e90611c8c565b801561107b5780601f106110505761010080835404028352916020019161107b565b820191906000526020600020905b81548152906001019060200180831161105e57829003601f168201915b5050505050905095509550505050509250929050565b6000546001600160a01b031633146110bb5760405162461bcd60e51b81526004016106c790611d05565b6110c56000611758565b565b6060806000805b6001548110156111b9576000611188600183815481106110f0576110f0611c76565b90600052602060002001805461110590611c8c565b80601f016020809104026020016040519081016040528092919081815260200182805461113190611c8c565b801561117e5780601f106111535761010080835404028352916020019161117e565b820191906000526020600020905b81548152906001019060200180831161116157829003601f168201915b505050505061169c565b600181015490915060ff16156111a657826111a281611cdc565b9350505b50806111b181611cdc565b9150506110ce565b5060008167ffffffffffffffff8111156111d5576111d5611b5c565b60405190808252806020026020018201604052801561120857816020015b60608152602001906001900390816111f35790505b50905060008267ffffffffffffffff81111561122657611226611b5c565b60405190808252806020026020018201604052801561125957816020015b60608152602001906001900390816112445790505b5090506000805b600154811015611421576000611282600183815481106110f0576110f0611c76565b600181015490915060ff161561140e57600182815481106112a5576112a5611c76565b9060005260206000200180546112ba90611c8c565b80601f01602080910402602001604051908101604052809291908181526020018280546112e690611c8c565b80156113335780601f1061130857610100808354040283529160200191611333565b820191906000526020600020905b81548152906001019060200180831161131657829003601f168201915b505050505085848151811061134a5761134a611c76565b602002602001018190525080600201805461136490611c8c565b80601f016020809104026020016040519081016040528092919081815260200182805461139090611c8c565b80156113dd5780601f106113b2576101008083540402835291602001916113dd565b820191906000526020600020905b8154815290600101906020018083116113c057829003601f168201915b50505050508484815181106113f4576113f4611c76565b6020026020010181905250828061140a90611cdc565b9350505b508061141981611cdc565b915050611260565b50919590945092505050565b6000546001600160a01b031633146114575760405162461bcd60e51b81526004016106c790611d05565b6000611463824361201b565b905061147387878787878661069d565b50505050505050565b60606001805480602002602001604051908101604052809291908181526020016000905b8282101561154c5783829060005260206000200180546114bf90611c8c565b80601f01602080910402602001604051908101604052809291908181526020018280546114eb90611c8c565b80156115385780601f1061150d57610100808354040283529160200191611538565b820191906000526020600020905b81548152906001019060200180831161151b57829003601f168201915b5050505050815260200190600101906114a0565b50505050905090565b6001818154811061156557600080fd5b90600052602060002001600091509050805461158090611c8c565b80601f01602080910402602001604051908101604052809291908181526020018280546115ac90611c8c565b80156115f95780601f106115ce576101008083540402835291602001916115f9565b820191906000526020600020905b8154815290600101906020018083116115dc57829003601f168201915b505050505081565b6000546001600160a01b0316331461162b5760405162461bcd60e51b81526004016106c790611d05565b6001600160a01b0381166116905760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016106c7565b61169981611758565b50565b6000806002836040516116af9190611fff565b908152604051908190036020019020805490915043826116d0600184611f0a565b815481106116e0576116e0611c76565b9060005260206000209060030201600001541161172a5781611703600183611f0a565b8154811061171357611713611c76565b906000526020600020906003020192505050919050565b81611703600283611f0a565b6000611745600284841861202e565b6117519084841661201b565b9392505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000602082840312156117ba57600080fd5b5035919050565b60005b838110156117dc5781810151838201526020016117c4565b50506000910152565b600081518084526117fd8160208601602086016117c1565b601f01601f19169290920160200192915050565b600082825180855260208086019550808260051b84010181860160005b8481101561185c57601f1986840301895261184a8383516117e5565b9884019892509083019060010161182e565b5090979650505050505050565b60408152600061187c6040830185611811565b6020838203818501528185518084528284019150828160051b85010183880160005b838110156118cc57601f198784030185526118ba8383516117e5565b9486019492509085019060010161189e565b50909998505050505050505050565b60008083601f8401126118ed57600080fd5b50813567ffffffffffffffff81111561190557600080fd5b602083019150836020828501011115610ebd57600080fd5b6000806020838503121561193057600080fd5b823567ffffffffffffffff81111561194757600080fd5b611953858286016118db565b90969095509350505050565b60006020808301818452808551808352604092508286019150828160051b87010184880160005b838110156119d257888303603f190185528151805184528781015115158885015286015160608785018190526119be818601836117e5565b968901969450505090860190600101611986565b509098975050505050505050565b600080600080600080608087890312156119f957600080fd5b863567ffffffffffffffff80821115611a1157600080fd5b611a1d8a838b016118db565b9098509650602089013591508115158214611a3757600080fd5b90945060408801359080821115611a4d57600080fd5b50611a5a89828a016118db565b979a9699509497949695606090950135949350505050565b604081526000611a856040830185611811565b6020838203818501528185518084528284019150828160051b85010183880160005b838110156118cc57601f1987840381018652825180518086529088019088860190600581901b87018a0160005b82811015611b22578589830301845284516060815184528d82015115158e85015260408201519150806040850152611b0e818501836117e5565b968e0196958e019593505050600101611ad4565b50988a019896505050928701925050600101611aa7565b8215158152604060208201526000611b5460408301846117e5565b949350505050565b634e487b7160e01b600052604160045260246000fd5b60008060408385031215611b8557600080fd5b823567ffffffffffffffff80821115611b9d57600080fd5b818501915085601f830112611bb157600080fd5b813581811115611bc357611bc3611b5c565b604051601f8201601f19908116603f01168101908382118183101715611beb57611beb611b5c565b81604052828152886020848701011115611c0457600080fd5b826020860160208301376000602093820184015298969091013596505050505050565b6020815260006117516020830184611811565b60208152600061175160208301846117e5565b600060208284031215611c5f57600080fd5b81356001600160a01b038116811461175157600080fd5b634e487b7160e01b600052603260045260246000fd5b600181811c90821680611ca057607f821691505b602082108103611cc057634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b600060018201611cee57611cee611cc6565b5060010190565b8183823760009101908152919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b601f821115611d8457600081815260208120601f850160051c81016020861015611d615750805b601f850160051c820191505b81811015611d8057828155600101611d6d565b5050505b505050565b67ffffffffffffffff831115611da157611da1611b5c565b611db583611daf8354611c8c565b83611d3a565b6000601f841160018114611de95760008515611dd15750838201355b600019600387901b1c1916600186901b178355611e43565b600083815260209020601f19861690835b82811015611e1a5786850135825560209485019460019092019101611dfa565b5086821015611e375760001960f88860031b161c19848701351681555b505060018560011b0183555b5050505050565b815167ffffffffffffffff811115611e6457611e64611b5c565b611e7881611e728454611c8c565b84611d3a565b602080601f831160018114611ead5760008415611e955750858301515b600019600386901b1c1916600185901b178555611d80565b600085815260208120601f198616915b82811015611edc57888601518255948401946001909101908401611ebd565b5085821015611efa5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b8181038181111561069757610697611cc6565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b608081526000611f5a60808301888a611f1d565b86151560208401528281036040840152611f75818688611f1d565b915050826060830152979650505050505050565b6000808354611f9781611c8c565b60018281168015611faf5760018114611fc457611ff3565b60ff1984168752821515830287019450611ff3565b8760005260208060002060005b85811015611fea5781548a820152908401908201611fd1565b50505082870194505b50929695505050505050565b600082516120118184602087016117c1565b9190910192915050565b8082018082111561069757610697611cc6565b60008261204b57634e487b7160e01b600052601260045260246000fd5b50049056fea2646970667358221220cdbe4d581441e6ee0bb93f642bd3227fceaf3fa2d65c3c8e7d0fe75c3a5d4fa164736f6c63430008110033"
   209  
   210  // DeployGovParam deploys a new Klaytn contract, binding an instance of GovParam to it.
   211  func DeployGovParam(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *types.Transaction, *GovParam, error) {
   212  	parsed, err := abi.JSON(strings.NewReader(GovParamABI))
   213  	if err != nil {
   214  		return common.Address{}, nil, nil, err
   215  	}
   216  
   217  	address, tx, contract, err := bind.DeployContract(auth, parsed, common.FromHex(GovParamBin), backend)
   218  	if err != nil {
   219  		return common.Address{}, nil, nil, err
   220  	}
   221  	return address, tx, &GovParam{GovParamCaller: GovParamCaller{contract: contract}, GovParamTransactor: GovParamTransactor{contract: contract}, GovParamFilterer: GovParamFilterer{contract: contract}}, nil
   222  }
   223  
   224  // GovParam is an auto generated Go binding around a Klaytn contract.
   225  type GovParam struct {
   226  	GovParamCaller     // Read-only binding to the contract
   227  	GovParamTransactor // Write-only binding to the contract
   228  	GovParamFilterer   // Log filterer for contract events
   229  }
   230  
   231  // GovParamCaller is an auto generated read-only Go binding around a Klaytn contract.
   232  type GovParamCaller struct {
   233  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
   234  }
   235  
   236  // GovParamTransactor is an auto generated write-only Go binding around a Klaytn contract.
   237  type GovParamTransactor struct {
   238  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
   239  }
   240  
   241  // GovParamFilterer is an auto generated log filtering Go binding around a Klaytn contract events.
   242  type GovParamFilterer struct {
   243  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
   244  }
   245  
   246  // GovParamSession is an auto generated Go binding around a Klaytn contract,
   247  // with pre-set call and transact options.
   248  type GovParamSession struct {
   249  	Contract     *GovParam         // Generic contract binding to set the session for
   250  	CallOpts     bind.CallOpts     // Call options to use throughout this session
   251  	TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
   252  }
   253  
   254  // GovParamCallerSession is an auto generated read-only Go binding around a Klaytn contract,
   255  // with pre-set call options.
   256  type GovParamCallerSession struct {
   257  	Contract *GovParamCaller // Generic contract caller binding to set the session for
   258  	CallOpts bind.CallOpts   // Call options to use throughout this session
   259  }
   260  
   261  // GovParamTransactorSession is an auto generated write-only Go binding around a Klaytn contract,
   262  // with pre-set transact options.
   263  type GovParamTransactorSession struct {
   264  	Contract     *GovParamTransactor // Generic contract transactor binding to set the session for
   265  	TransactOpts bind.TransactOpts   // Transaction auth options to use throughout this session
   266  }
   267  
   268  // GovParamRaw is an auto generated low-level Go binding around a Klaytn contract.
   269  type GovParamRaw struct {
   270  	Contract *GovParam // Generic contract binding to access the raw methods on
   271  }
   272  
   273  // GovParamCallerRaw is an auto generated low-level read-only Go binding around a Klaytn contract.
   274  type GovParamCallerRaw struct {
   275  	Contract *GovParamCaller // Generic read-only contract binding to access the raw methods on
   276  }
   277  
   278  // GovParamTransactorRaw is an auto generated low-level write-only Go binding around a Klaytn contract.
   279  type GovParamTransactorRaw struct {
   280  	Contract *GovParamTransactor // Generic write-only contract binding to access the raw methods on
   281  }
   282  
   283  // NewGovParam creates a new instance of GovParam, bound to a specific deployed contract.
   284  func NewGovParam(address common.Address, backend bind.ContractBackend) (*GovParam, error) {
   285  	contract, err := bindGovParam(address, backend, backend, backend)
   286  	if err != nil {
   287  		return nil, err
   288  	}
   289  	return &GovParam{GovParamCaller: GovParamCaller{contract: contract}, GovParamTransactor: GovParamTransactor{contract: contract}, GovParamFilterer: GovParamFilterer{contract: contract}}, nil
   290  }
   291  
   292  // NewGovParamCaller creates a new read-only instance of GovParam, bound to a specific deployed contract.
   293  func NewGovParamCaller(address common.Address, caller bind.ContractCaller) (*GovParamCaller, error) {
   294  	contract, err := bindGovParam(address, caller, nil, nil)
   295  	if err != nil {
   296  		return nil, err
   297  	}
   298  	return &GovParamCaller{contract: contract}, nil
   299  }
   300  
   301  // NewGovParamTransactor creates a new write-only instance of GovParam, bound to a specific deployed contract.
   302  func NewGovParamTransactor(address common.Address, transactor bind.ContractTransactor) (*GovParamTransactor, error) {
   303  	contract, err := bindGovParam(address, nil, transactor, nil)
   304  	if err != nil {
   305  		return nil, err
   306  	}
   307  	return &GovParamTransactor{contract: contract}, nil
   308  }
   309  
   310  // NewGovParamFilterer creates a new log filterer instance of GovParam, bound to a specific deployed contract.
   311  func NewGovParamFilterer(address common.Address, filterer bind.ContractFilterer) (*GovParamFilterer, error) {
   312  	contract, err := bindGovParam(address, nil, nil, filterer)
   313  	if err != nil {
   314  		return nil, err
   315  	}
   316  	return &GovParamFilterer{contract: contract}, nil
   317  }
   318  
   319  // bindGovParam binds a generic wrapper to an already deployed contract.
   320  func bindGovParam(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
   321  	parsed, err := abi.JSON(strings.NewReader(GovParamABI))
   322  	if err != nil {
   323  		return nil, err
   324  	}
   325  	return bind.NewBoundContract(address, parsed, caller, transactor, filterer), nil
   326  }
   327  
   328  // Call invokes the (constant) contract method with params as input values and
   329  // sets the output to result. The result type might be a single field for simple
   330  // returns, a slice of interfaces for anonymous returns and a struct for named
   331  // returns.
   332  func (_GovParam *GovParamRaw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error {
   333  	return _GovParam.Contract.GovParamCaller.contract.Call(opts, result, method, params...)
   334  }
   335  
   336  // Transfer initiates a plain transaction to move funds to the contract, calling
   337  // its default method if one is available.
   338  func (_GovParam *GovParamRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
   339  	return _GovParam.Contract.GovParamTransactor.contract.Transfer(opts)
   340  }
   341  
   342  // Transact invokes the (paid) contract method with params as input values.
   343  func (_GovParam *GovParamRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
   344  	return _GovParam.Contract.GovParamTransactor.contract.Transact(opts, method, params...)
   345  }
   346  
   347  // Call invokes the (constant) contract method with params as input values and
   348  // sets the output to result. The result type might be a single field for simple
   349  // returns, a slice of interfaces for anonymous returns and a struct for named
   350  // returns.
   351  func (_GovParam *GovParamCallerRaw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error {
   352  	return _GovParam.Contract.contract.Call(opts, result, method, params...)
   353  }
   354  
   355  // Transfer initiates a plain transaction to move funds to the contract, calling
   356  // its default method if one is available.
   357  func (_GovParam *GovParamTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
   358  	return _GovParam.Contract.contract.Transfer(opts)
   359  }
   360  
   361  // Transact invokes the (paid) contract method with params as input values.
   362  func (_GovParam *GovParamTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
   363  	return _GovParam.Contract.contract.Transact(opts, method, params...)
   364  }
   365  
   366  // Checkpoints is a free data retrieval call binding the contract method 0x296451d9.
   367  //
   368  // Solidity: function checkpoints(string name) view returns((uint256,bool,bytes)[])
   369  func (_GovParam *GovParamCaller) Checkpoints(opts *bind.CallOpts, name string) ([]IGovParamParam, error) {
   370  	var (
   371  		ret0 = new([]IGovParamParam)
   372  	)
   373  	out := ret0
   374  	err := _GovParam.contract.Call(opts, out, "checkpoints", name)
   375  	return *ret0, err
   376  }
   377  
   378  // Checkpoints is a free data retrieval call binding the contract method 0x296451d9.
   379  //
   380  // Solidity: function checkpoints(string name) view returns((uint256,bool,bytes)[])
   381  func (_GovParam *GovParamSession) Checkpoints(name string) ([]IGovParamParam, error) {
   382  	return _GovParam.Contract.Checkpoints(&_GovParam.CallOpts, name)
   383  }
   384  
   385  // Checkpoints is a free data retrieval call binding the contract method 0x296451d9.
   386  //
   387  // Solidity: function checkpoints(string name) view returns((uint256,bool,bytes)[])
   388  func (_GovParam *GovParamCallerSession) Checkpoints(name string) ([]IGovParamParam, error) {
   389  	return _GovParam.Contract.Checkpoints(&_GovParam.CallOpts, name)
   390  }
   391  
   392  // GetAllCheckpoints is a free data retrieval call binding the contract method 0x5516c21c.
   393  //
   394  // Solidity: function getAllCheckpoints() view returns(string[], (uint256,bool,bytes)[][])
   395  func (_GovParam *GovParamCaller) GetAllCheckpoints(opts *bind.CallOpts) ([]string, [][]IGovParamParam, error) {
   396  	var (
   397  		ret0 = new([]string)
   398  		ret1 = new([][]IGovParamParam)
   399  	)
   400  	out := &[]interface{}{
   401  		ret0,
   402  		ret1,
   403  	}
   404  	err := _GovParam.contract.Call(opts, out, "getAllCheckpoints")
   405  	return *ret0, *ret1, err
   406  }
   407  
   408  // GetAllCheckpoints is a free data retrieval call binding the contract method 0x5516c21c.
   409  //
   410  // Solidity: function getAllCheckpoints() view returns(string[], (uint256,bool,bytes)[][])
   411  func (_GovParam *GovParamSession) GetAllCheckpoints() ([]string, [][]IGovParamParam, error) {
   412  	return _GovParam.Contract.GetAllCheckpoints(&_GovParam.CallOpts)
   413  }
   414  
   415  // GetAllCheckpoints is a free data retrieval call binding the contract method 0x5516c21c.
   416  //
   417  // Solidity: function getAllCheckpoints() view returns(string[], (uint256,bool,bytes)[][])
   418  func (_GovParam *GovParamCallerSession) GetAllCheckpoints() ([]string, [][]IGovParamParam, error) {
   419  	return _GovParam.Contract.GetAllCheckpoints(&_GovParam.CallOpts)
   420  }
   421  
   422  // GetAllParamNames is a free data retrieval call binding the contract method 0xcc4783b6.
   423  //
   424  // Solidity: function getAllParamNames() view returns(string[])
   425  func (_GovParam *GovParamCaller) GetAllParamNames(opts *bind.CallOpts) ([]string, error) {
   426  	var (
   427  		ret0 = new([]string)
   428  	)
   429  	out := ret0
   430  	err := _GovParam.contract.Call(opts, out, "getAllParamNames")
   431  	return *ret0, err
   432  }
   433  
   434  // GetAllParamNames is a free data retrieval call binding the contract method 0xcc4783b6.
   435  //
   436  // Solidity: function getAllParamNames() view returns(string[])
   437  func (_GovParam *GovParamSession) GetAllParamNames() ([]string, error) {
   438  	return _GovParam.Contract.GetAllParamNames(&_GovParam.CallOpts)
   439  }
   440  
   441  // GetAllParamNames is a free data retrieval call binding the contract method 0xcc4783b6.
   442  //
   443  // Solidity: function getAllParamNames() view returns(string[])
   444  func (_GovParam *GovParamCallerSession) GetAllParamNames() ([]string, error) {
   445  	return _GovParam.Contract.GetAllParamNames(&_GovParam.CallOpts)
   446  }
   447  
   448  // GetAllParams is a free data retrieval call binding the contract method 0xa170052e.
   449  //
   450  // Solidity: function getAllParams() view returns(string[], bytes[])
   451  func (_GovParam *GovParamCaller) GetAllParams(opts *bind.CallOpts) ([]string, [][]byte, error) {
   452  	var (
   453  		ret0 = new([]string)
   454  		ret1 = new([][]byte)
   455  	)
   456  	out := &[]interface{}{
   457  		ret0,
   458  		ret1,
   459  	}
   460  	err := _GovParam.contract.Call(opts, out, "getAllParams")
   461  	return *ret0, *ret1, err
   462  }
   463  
   464  // GetAllParams is a free data retrieval call binding the contract method 0xa170052e.
   465  //
   466  // Solidity: function getAllParams() view returns(string[], bytes[])
   467  func (_GovParam *GovParamSession) GetAllParams() ([]string, [][]byte, error) {
   468  	return _GovParam.Contract.GetAllParams(&_GovParam.CallOpts)
   469  }
   470  
   471  // GetAllParams is a free data retrieval call binding the contract method 0xa170052e.
   472  //
   473  // Solidity: function getAllParams() view returns(string[], bytes[])
   474  func (_GovParam *GovParamCallerSession) GetAllParams() ([]string, [][]byte, error) {
   475  	return _GovParam.Contract.GetAllParams(&_GovParam.CallOpts)
   476  }
   477  
   478  // GetAllParamsAt is a free data retrieval call binding the contract method 0x1e31825a.
   479  //
   480  // Solidity: function getAllParamsAt(uint256 blockNumber) view returns(string[], bytes[])
   481  func (_GovParam *GovParamCaller) GetAllParamsAt(opts *bind.CallOpts, blockNumber *big.Int) ([]string, [][]byte, error) {
   482  	var (
   483  		ret0 = new([]string)
   484  		ret1 = new([][]byte)
   485  	)
   486  	out := &[]interface{}{
   487  		ret0,
   488  		ret1,
   489  	}
   490  	err := _GovParam.contract.Call(opts, out, "getAllParamsAt", blockNumber)
   491  	return *ret0, *ret1, err
   492  }
   493  
   494  // GetAllParamsAt is a free data retrieval call binding the contract method 0x1e31825a.
   495  //
   496  // Solidity: function getAllParamsAt(uint256 blockNumber) view returns(string[], bytes[])
   497  func (_GovParam *GovParamSession) GetAllParamsAt(blockNumber *big.Int) ([]string, [][]byte, error) {
   498  	return _GovParam.Contract.GetAllParamsAt(&_GovParam.CallOpts, blockNumber)
   499  }
   500  
   501  // GetAllParamsAt is a free data retrieval call binding the contract method 0x1e31825a.
   502  //
   503  // Solidity: function getAllParamsAt(uint256 blockNumber) view returns(string[], bytes[])
   504  func (_GovParam *GovParamCallerSession) GetAllParamsAt(blockNumber *big.Int) ([]string, [][]byte, error) {
   505  	return _GovParam.Contract.GetAllParamsAt(&_GovParam.CallOpts, blockNumber)
   506  }
   507  
   508  // GetParam is a free data retrieval call binding the contract method 0x5d4f71d4.
   509  //
   510  // Solidity: function getParam(string name) view returns(bool, bytes)
   511  func (_GovParam *GovParamCaller) GetParam(opts *bind.CallOpts, name string) (bool, []byte, error) {
   512  	var (
   513  		ret0 = new(bool)
   514  		ret1 = new([]byte)
   515  	)
   516  	out := &[]interface{}{
   517  		ret0,
   518  		ret1,
   519  	}
   520  	err := _GovParam.contract.Call(opts, out, "getParam", name)
   521  	return *ret0, *ret1, err
   522  }
   523  
   524  // GetParam is a free data retrieval call binding the contract method 0x5d4f71d4.
   525  //
   526  // Solidity: function getParam(string name) view returns(bool, bytes)
   527  func (_GovParam *GovParamSession) GetParam(name string) (bool, []byte, error) {
   528  	return _GovParam.Contract.GetParam(&_GovParam.CallOpts, name)
   529  }
   530  
   531  // GetParam is a free data retrieval call binding the contract method 0x5d4f71d4.
   532  //
   533  // Solidity: function getParam(string name) view returns(bool, bytes)
   534  func (_GovParam *GovParamCallerSession) GetParam(name string) (bool, []byte, error) {
   535  	return _GovParam.Contract.GetParam(&_GovParam.CallOpts, name)
   536  }
   537  
   538  // GetParamAt is a free data retrieval call binding the contract method 0x6a1ec27c.
   539  //
   540  // Solidity: function getParamAt(string name, uint256 blockNumber) view returns(bool, bytes)
   541  func (_GovParam *GovParamCaller) GetParamAt(opts *bind.CallOpts, name string, blockNumber *big.Int) (bool, []byte, error) {
   542  	var (
   543  		ret0 = new(bool)
   544  		ret1 = new([]byte)
   545  	)
   546  	out := &[]interface{}{
   547  		ret0,
   548  		ret1,
   549  	}
   550  	err := _GovParam.contract.Call(opts, out, "getParamAt", name, blockNumber)
   551  	return *ret0, *ret1, err
   552  }
   553  
   554  // GetParamAt is a free data retrieval call binding the contract method 0x6a1ec27c.
   555  //
   556  // Solidity: function getParamAt(string name, uint256 blockNumber) view returns(bool, bytes)
   557  func (_GovParam *GovParamSession) GetParamAt(name string, blockNumber *big.Int) (bool, []byte, error) {
   558  	return _GovParam.Contract.GetParamAt(&_GovParam.CallOpts, name, blockNumber)
   559  }
   560  
   561  // GetParamAt is a free data retrieval call binding the contract method 0x6a1ec27c.
   562  //
   563  // Solidity: function getParamAt(string name, uint256 blockNumber) view returns(bool, bytes)
   564  func (_GovParam *GovParamCallerSession) GetParamAt(name string, blockNumber *big.Int) (bool, []byte, error) {
   565  	return _GovParam.Contract.GetParamAt(&_GovParam.CallOpts, name, blockNumber)
   566  }
   567  
   568  // Owner is a free data retrieval call binding the contract method 0x8da5cb5b.
   569  //
   570  // Solidity: function owner() view returns(address)
   571  func (_GovParam *GovParamCaller) Owner(opts *bind.CallOpts) (common.Address, error) {
   572  	var (
   573  		ret0 = new(common.Address)
   574  	)
   575  	out := ret0
   576  	err := _GovParam.contract.Call(opts, out, "owner")
   577  	return *ret0, err
   578  }
   579  
   580  // Owner is a free data retrieval call binding the contract method 0x8da5cb5b.
   581  //
   582  // Solidity: function owner() view returns(address)
   583  func (_GovParam *GovParamSession) Owner() (common.Address, error) {
   584  	return _GovParam.Contract.Owner(&_GovParam.CallOpts)
   585  }
   586  
   587  // Owner is a free data retrieval call binding the contract method 0x8da5cb5b.
   588  //
   589  // Solidity: function owner() view returns(address)
   590  func (_GovParam *GovParamCallerSession) Owner() (common.Address, error) {
   591  	return _GovParam.Contract.Owner(&_GovParam.CallOpts)
   592  }
   593  
   594  // ParamNames is a free data retrieval call binding the contract method 0xdb758754.
   595  //
   596  // Solidity: function paramNames(uint256 ) view returns(string)
   597  func (_GovParam *GovParamCaller) ParamNames(opts *bind.CallOpts, arg0 *big.Int) (string, error) {
   598  	var (
   599  		ret0 = new(string)
   600  	)
   601  	out := ret0
   602  	err := _GovParam.contract.Call(opts, out, "paramNames", arg0)
   603  	return *ret0, err
   604  }
   605  
   606  // ParamNames is a free data retrieval call binding the contract method 0xdb758754.
   607  //
   608  // Solidity: function paramNames(uint256 ) view returns(string)
   609  func (_GovParam *GovParamSession) ParamNames(arg0 *big.Int) (string, error) {
   610  	return _GovParam.Contract.ParamNames(&_GovParam.CallOpts, arg0)
   611  }
   612  
   613  // ParamNames is a free data retrieval call binding the contract method 0xdb758754.
   614  //
   615  // Solidity: function paramNames(uint256 ) view returns(string)
   616  func (_GovParam *GovParamCallerSession) ParamNames(arg0 *big.Int) (string, error) {
   617  	return _GovParam.Contract.ParamNames(&_GovParam.CallOpts, arg0)
   618  }
   619  
   620  // RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6.
   621  //
   622  // Solidity: function renounceOwnership() returns()
   623  func (_GovParam *GovParamTransactor) RenounceOwnership(opts *bind.TransactOpts) (*types.Transaction, error) {
   624  	return _GovParam.contract.Transact(opts, "renounceOwnership")
   625  }
   626  
   627  // RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6.
   628  //
   629  // Solidity: function renounceOwnership() returns()
   630  func (_GovParam *GovParamSession) RenounceOwnership() (*types.Transaction, error) {
   631  	return _GovParam.Contract.RenounceOwnership(&_GovParam.TransactOpts)
   632  }
   633  
   634  // RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6.
   635  //
   636  // Solidity: function renounceOwnership() returns()
   637  func (_GovParam *GovParamTransactorSession) RenounceOwnership() (*types.Transaction, error) {
   638  	return _GovParam.Contract.RenounceOwnership(&_GovParam.TransactOpts)
   639  }
   640  
   641  // SetParam is a paid mutator transaction binding the contract method 0x3f8aa624.
   642  //
   643  // Solidity: function setParam(string name, bool exists, bytes val, uint256 activation) returns()
   644  func (_GovParam *GovParamTransactor) SetParam(opts *bind.TransactOpts, name string, exists bool, val []byte, activation *big.Int) (*types.Transaction, error) {
   645  	return _GovParam.contract.Transact(opts, "setParam", name, exists, val, activation)
   646  }
   647  
   648  // SetParam is a paid mutator transaction binding the contract method 0x3f8aa624.
   649  //
   650  // Solidity: function setParam(string name, bool exists, bytes val, uint256 activation) returns()
   651  func (_GovParam *GovParamSession) SetParam(name string, exists bool, val []byte, activation *big.Int) (*types.Transaction, error) {
   652  	return _GovParam.Contract.SetParam(&_GovParam.TransactOpts, name, exists, val, activation)
   653  }
   654  
   655  // SetParam is a paid mutator transaction binding the contract method 0x3f8aa624.
   656  //
   657  // Solidity: function setParam(string name, bool exists, bytes val, uint256 activation) returns()
   658  func (_GovParam *GovParamTransactorSession) SetParam(name string, exists bool, val []byte, activation *big.Int) (*types.Transaction, error) {
   659  	return _GovParam.Contract.SetParam(&_GovParam.TransactOpts, name, exists, val, activation)
   660  }
   661  
   662  // SetParamIn is a paid mutator transaction binding the contract method 0xb93244a5.
   663  //
   664  // Solidity: function setParamIn(string name, bool exists, bytes val, uint256 relativeActivation) returns()
   665  func (_GovParam *GovParamTransactor) SetParamIn(opts *bind.TransactOpts, name string, exists bool, val []byte, relativeActivation *big.Int) (*types.Transaction, error) {
   666  	return _GovParam.contract.Transact(opts, "setParamIn", name, exists, val, relativeActivation)
   667  }
   668  
   669  // SetParamIn is a paid mutator transaction binding the contract method 0xb93244a5.
   670  //
   671  // Solidity: function setParamIn(string name, bool exists, bytes val, uint256 relativeActivation) returns()
   672  func (_GovParam *GovParamSession) SetParamIn(name string, exists bool, val []byte, relativeActivation *big.Int) (*types.Transaction, error) {
   673  	return _GovParam.Contract.SetParamIn(&_GovParam.TransactOpts, name, exists, val, relativeActivation)
   674  }
   675  
   676  // SetParamIn is a paid mutator transaction binding the contract method 0xb93244a5.
   677  //
   678  // Solidity: function setParamIn(string name, bool exists, bytes val, uint256 relativeActivation) returns()
   679  func (_GovParam *GovParamTransactorSession) SetParamIn(name string, exists bool, val []byte, relativeActivation *big.Int) (*types.Transaction, error) {
   680  	return _GovParam.Contract.SetParamIn(&_GovParam.TransactOpts, name, exists, val, relativeActivation)
   681  }
   682  
   683  // TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b.
   684  //
   685  // Solidity: function transferOwnership(address newOwner) returns()
   686  func (_GovParam *GovParamTransactor) TransferOwnership(opts *bind.TransactOpts, newOwner common.Address) (*types.Transaction, error) {
   687  	return _GovParam.contract.Transact(opts, "transferOwnership", newOwner)
   688  }
   689  
   690  // TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b.
   691  //
   692  // Solidity: function transferOwnership(address newOwner) returns()
   693  func (_GovParam *GovParamSession) TransferOwnership(newOwner common.Address) (*types.Transaction, error) {
   694  	return _GovParam.Contract.TransferOwnership(&_GovParam.TransactOpts, newOwner)
   695  }
   696  
   697  // TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b.
   698  //
   699  // Solidity: function transferOwnership(address newOwner) returns()
   700  func (_GovParam *GovParamTransactorSession) TransferOwnership(newOwner common.Address) (*types.Transaction, error) {
   701  	return _GovParam.Contract.TransferOwnership(&_GovParam.TransactOpts, newOwner)
   702  }
   703  
   704  // GovParamOwnershipTransferredIterator is returned from FilterOwnershipTransferred and is used to iterate over the raw logs and unpacked data for OwnershipTransferred events raised by the GovParam contract.
   705  type GovParamOwnershipTransferredIterator struct {
   706  	Event *GovParamOwnershipTransferred // Event containing the contract specifics and raw log
   707  
   708  	contract *bind.BoundContract // Generic contract to use for unpacking event data
   709  	event    string              // Event name to use for unpacking event data
   710  
   711  	logs chan types.Log      // Log channel receiving the found contract events
   712  	sub  klaytn.Subscription // Subscription for errors, completion and termination
   713  	done bool                // Whether the subscription completed delivering logs
   714  	fail error               // Occurred error to stop iteration
   715  }
   716  
   717  // Next advances the iterator to the subsequent event, returning whether there
   718  // are any more events found. In case of a retrieval or parsing error, false is
   719  // returned and Error() can be queried for the exact failure.
   720  func (it *GovParamOwnershipTransferredIterator) Next() bool {
   721  	// If the iterator failed, stop iterating
   722  	if it.fail != nil {
   723  		return false
   724  	}
   725  	// If the iterator completed, deliver directly whatever's available
   726  	if it.done {
   727  		select {
   728  		case log := <-it.logs:
   729  			it.Event = new(GovParamOwnershipTransferred)
   730  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
   731  				it.fail = err
   732  				return false
   733  			}
   734  			it.Event.Raw = log
   735  			return true
   736  
   737  		default:
   738  			return false
   739  		}
   740  	}
   741  	// Iterator still in progress, wait for either a data or an error event
   742  	select {
   743  	case log := <-it.logs:
   744  		it.Event = new(GovParamOwnershipTransferred)
   745  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
   746  			it.fail = err
   747  			return false
   748  		}
   749  		it.Event.Raw = log
   750  		return true
   751  
   752  	case err := <-it.sub.Err():
   753  		it.done = true
   754  		it.fail = err
   755  		return it.Next()
   756  	}
   757  }
   758  
   759  // Error returns any retrieval or parsing error occurred during filtering.
   760  func (it *GovParamOwnershipTransferredIterator) Error() error {
   761  	return it.fail
   762  }
   763  
   764  // Close terminates the iteration process, releasing any pending underlying
   765  // resources.
   766  func (it *GovParamOwnershipTransferredIterator) Close() error {
   767  	it.sub.Unsubscribe()
   768  	return nil
   769  }
   770  
   771  // GovParamOwnershipTransferred represents a OwnershipTransferred event raised by the GovParam contract.
   772  type GovParamOwnershipTransferred struct {
   773  	PreviousOwner common.Address
   774  	NewOwner      common.Address
   775  	Raw           types.Log // Blockchain specific contextual infos
   776  }
   777  
   778  // FilterOwnershipTransferred is a free log retrieval operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0.
   779  //
   780  // Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
   781  func (_GovParam *GovParamFilterer) FilterOwnershipTransferred(opts *bind.FilterOpts, previousOwner []common.Address, newOwner []common.Address) (*GovParamOwnershipTransferredIterator, error) {
   782  
   783  	var previousOwnerRule []interface{}
   784  	for _, previousOwnerItem := range previousOwner {
   785  		previousOwnerRule = append(previousOwnerRule, previousOwnerItem)
   786  	}
   787  	var newOwnerRule []interface{}
   788  	for _, newOwnerItem := range newOwner {
   789  		newOwnerRule = append(newOwnerRule, newOwnerItem)
   790  	}
   791  
   792  	logs, sub, err := _GovParam.contract.FilterLogs(opts, "OwnershipTransferred", previousOwnerRule, newOwnerRule)
   793  	if err != nil {
   794  		return nil, err
   795  	}
   796  	return &GovParamOwnershipTransferredIterator{contract: _GovParam.contract, event: "OwnershipTransferred", logs: logs, sub: sub}, nil
   797  }
   798  
   799  // WatchOwnershipTransferred is a free log subscription operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0.
   800  //
   801  // Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
   802  func (_GovParam *GovParamFilterer) WatchOwnershipTransferred(opts *bind.WatchOpts, sink chan<- *GovParamOwnershipTransferred, previousOwner []common.Address, newOwner []common.Address) (event.Subscription, error) {
   803  
   804  	var previousOwnerRule []interface{}
   805  	for _, previousOwnerItem := range previousOwner {
   806  		previousOwnerRule = append(previousOwnerRule, previousOwnerItem)
   807  	}
   808  	var newOwnerRule []interface{}
   809  	for _, newOwnerItem := range newOwner {
   810  		newOwnerRule = append(newOwnerRule, newOwnerItem)
   811  	}
   812  
   813  	logs, sub, err := _GovParam.contract.WatchLogs(opts, "OwnershipTransferred", previousOwnerRule, newOwnerRule)
   814  	if err != nil {
   815  		return nil, err
   816  	}
   817  	return event.NewSubscription(func(quit <-chan struct{}) error {
   818  		defer sub.Unsubscribe()
   819  		for {
   820  			select {
   821  			case log := <-logs:
   822  				// New log arrived, parse the event and forward to the user
   823  				event := new(GovParamOwnershipTransferred)
   824  				if err := _GovParam.contract.UnpackLog(event, "OwnershipTransferred", log); err != nil {
   825  					return err
   826  				}
   827  				event.Raw = log
   828  
   829  				select {
   830  				case sink <- event:
   831  				case err := <-sub.Err():
   832  					return err
   833  				case <-quit:
   834  					return nil
   835  				}
   836  			case err := <-sub.Err():
   837  				return err
   838  			case <-quit:
   839  				return nil
   840  			}
   841  		}
   842  	}), nil
   843  }
   844  
   845  // ParseOwnershipTransferred is a log parse operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0.
   846  //
   847  // Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
   848  func (_GovParam *GovParamFilterer) ParseOwnershipTransferred(log types.Log) (*GovParamOwnershipTransferred, error) {
   849  	event := new(GovParamOwnershipTransferred)
   850  	if err := _GovParam.contract.UnpackLog(event, "OwnershipTransferred", log); err != nil {
   851  		return nil, err
   852  	}
   853  	return event, nil
   854  }
   855  
   856  // GovParamSetParamIterator is returned from FilterSetParam and is used to iterate over the raw logs and unpacked data for SetParam events raised by the GovParam contract.
   857  type GovParamSetParamIterator struct {
   858  	Event *GovParamSetParam // Event containing the contract specifics and raw log
   859  
   860  	contract *bind.BoundContract // Generic contract to use for unpacking event data
   861  	event    string              // Event name to use for unpacking event data
   862  
   863  	logs chan types.Log      // Log channel receiving the found contract events
   864  	sub  klaytn.Subscription // Subscription for errors, completion and termination
   865  	done bool                // Whether the subscription completed delivering logs
   866  	fail error               // Occurred error to stop iteration
   867  }
   868  
   869  // Next advances the iterator to the subsequent event, returning whether there
   870  // are any more events found. In case of a retrieval or parsing error, false is
   871  // returned and Error() can be queried for the exact failure.
   872  func (it *GovParamSetParamIterator) Next() bool {
   873  	// If the iterator failed, stop iterating
   874  	if it.fail != nil {
   875  		return false
   876  	}
   877  	// If the iterator completed, deliver directly whatever's available
   878  	if it.done {
   879  		select {
   880  		case log := <-it.logs:
   881  			it.Event = new(GovParamSetParam)
   882  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
   883  				it.fail = err
   884  				return false
   885  			}
   886  			it.Event.Raw = log
   887  			return true
   888  
   889  		default:
   890  			return false
   891  		}
   892  	}
   893  	// Iterator still in progress, wait for either a data or an error event
   894  	select {
   895  	case log := <-it.logs:
   896  		it.Event = new(GovParamSetParam)
   897  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
   898  			it.fail = err
   899  			return false
   900  		}
   901  		it.Event.Raw = log
   902  		return true
   903  
   904  	case err := <-it.sub.Err():
   905  		it.done = true
   906  		it.fail = err
   907  		return it.Next()
   908  	}
   909  }
   910  
   911  // Error returns any retrieval or parsing error occurred during filtering.
   912  func (it *GovParamSetParamIterator) Error() error {
   913  	return it.fail
   914  }
   915  
   916  // Close terminates the iteration process, releasing any pending underlying
   917  // resources.
   918  func (it *GovParamSetParamIterator) Close() error {
   919  	it.sub.Unsubscribe()
   920  	return nil
   921  }
   922  
   923  // GovParamSetParam represents a SetParam event raised by the GovParam contract.
   924  type GovParamSetParam struct {
   925  	Name       string
   926  	Exists     bool
   927  	Value      []byte
   928  	Activation *big.Int
   929  	Raw        types.Log // Blockchain specific contextual infos
   930  }
   931  
   932  // FilterSetParam is a free log retrieval operation binding the contract event 0x80044a87a0a45f6cc784a3f48077d58f4eb1e7d78243f85daa43ad7a88b6ba85.
   933  //
   934  // Solidity: event SetParam(string name, bool exists, bytes value, uint256 activation)
   935  func (_GovParam *GovParamFilterer) FilterSetParam(opts *bind.FilterOpts) (*GovParamSetParamIterator, error) {
   936  
   937  	logs, sub, err := _GovParam.contract.FilterLogs(opts, "SetParam")
   938  	if err != nil {
   939  		return nil, err
   940  	}
   941  	return &GovParamSetParamIterator{contract: _GovParam.contract, event: "SetParam", logs: logs, sub: sub}, nil
   942  }
   943  
   944  // WatchSetParam is a free log subscription operation binding the contract event 0x80044a87a0a45f6cc784a3f48077d58f4eb1e7d78243f85daa43ad7a88b6ba85.
   945  //
   946  // Solidity: event SetParam(string name, bool exists, bytes value, uint256 activation)
   947  func (_GovParam *GovParamFilterer) WatchSetParam(opts *bind.WatchOpts, sink chan<- *GovParamSetParam) (event.Subscription, error) {
   948  
   949  	logs, sub, err := _GovParam.contract.WatchLogs(opts, "SetParam")
   950  	if err != nil {
   951  		return nil, err
   952  	}
   953  	return event.NewSubscription(func(quit <-chan struct{}) error {
   954  		defer sub.Unsubscribe()
   955  		for {
   956  			select {
   957  			case log := <-logs:
   958  				// New log arrived, parse the event and forward to the user
   959  				event := new(GovParamSetParam)
   960  				if err := _GovParam.contract.UnpackLog(event, "SetParam", log); err != nil {
   961  					return err
   962  				}
   963  				event.Raw = log
   964  
   965  				select {
   966  				case sink <- event:
   967  				case err := <-sub.Err():
   968  					return err
   969  				case <-quit:
   970  					return nil
   971  				}
   972  			case err := <-sub.Err():
   973  				return err
   974  			case <-quit:
   975  				return nil
   976  			}
   977  		}
   978  	}), nil
   979  }
   980  
   981  // ParseSetParam is a log parse operation binding the contract event 0x80044a87a0a45f6cc784a3f48077d58f4eb1e7d78243f85daa43ad7a88b6ba85.
   982  //
   983  // Solidity: event SetParam(string name, bool exists, bytes value, uint256 activation)
   984  func (_GovParam *GovParamFilterer) ParseSetParam(log types.Log) (*GovParamSetParam, error) {
   985  	event := new(GovParamSetParam)
   986  	if err := _GovParam.contract.UnpackLog(event, "SetParam", log); err != nil {
   987  		return nil, err
   988  	}
   989  	return event, nil
   990  }
   991  
   992  // IGovParamABI is the input ABI used to generate the binding from.
   993  const IGovParamABI = "[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"exists\",\"type\":\"bool\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"value\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"activation\",\"type\":\"uint256\"}],\"name\":\"SetParam\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"name\":\"checkpoints\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"activation\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"exists\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"val\",\"type\":\"bytes\"}],\"internalType\":\"structIGovParam.Param[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getAllCheckpoints\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"\",\"type\":\"string[]\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"activation\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"exists\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"val\",\"type\":\"bytes\"}],\"internalType\":\"structIGovParam.Param[][]\",\"name\":\"\",\"type\":\"tuple[][]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getAllParamNames\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getAllParams\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"\",\"type\":\"string[]\"},{\"internalType\":\"bytes[]\",\"name\":\"\",\"type\":\"bytes[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"}],\"name\":\"getAllParamsAt\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"\",\"type\":\"string[]\"},{\"internalType\":\"bytes[]\",\"name\":\"\",\"type\":\"bytes[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"name\":\"getParam\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"}],\"name\":\"getParamAt\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"idx\",\"type\":\"uint256\"}],\"name\":\"paramNames\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"bool\",\"name\":\"exists\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"value\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"activation\",\"type\":\"uint256\"}],\"name\":\"setParam\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"bool\",\"name\":\"exists\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"value\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"relativeActivation\",\"type\":\"uint256\"}],\"name\":\"setParamIn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]"
   994  
   995  // IGovParamBinRuntime is the compiled bytecode used for adding genesis block without deploying code.
   996  const IGovParamBinRuntime = ``
   997  
   998  // IGovParamFuncSigs maps the 4-byte function signature to its string representation.
   999  var IGovParamFuncSigs = map[string]string{
  1000  	"296451d9": "checkpoints(string)",
  1001  	"5516c21c": "getAllCheckpoints()",
  1002  	"cc4783b6": "getAllParamNames()",
  1003  	"a170052e": "getAllParams()",
  1004  	"1e31825a": "getAllParamsAt(uint256)",
  1005  	"5d4f71d4": "getParam(string)",
  1006  	"6a1ec27c": "getParamAt(string,uint256)",
  1007  	"db758754": "paramNames(uint256)",
  1008  	"3f8aa624": "setParam(string,bool,bytes,uint256)",
  1009  	"b93244a5": "setParamIn(string,bool,bytes,uint256)",
  1010  }
  1011  
  1012  // IGovParam is an auto generated Go binding around a Klaytn contract.
  1013  type IGovParam struct {
  1014  	IGovParamCaller     // Read-only binding to the contract
  1015  	IGovParamTransactor // Write-only binding to the contract
  1016  	IGovParamFilterer   // Log filterer for contract events
  1017  }
  1018  
  1019  // IGovParamCaller is an auto generated read-only Go binding around a Klaytn contract.
  1020  type IGovParamCaller struct {
  1021  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  1022  }
  1023  
  1024  // IGovParamTransactor is an auto generated write-only Go binding around a Klaytn contract.
  1025  type IGovParamTransactor struct {
  1026  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  1027  }
  1028  
  1029  // IGovParamFilterer is an auto generated log filtering Go binding around a Klaytn contract events.
  1030  type IGovParamFilterer struct {
  1031  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  1032  }
  1033  
  1034  // IGovParamSession is an auto generated Go binding around a Klaytn contract,
  1035  // with pre-set call and transact options.
  1036  type IGovParamSession struct {
  1037  	Contract     *IGovParam        // Generic contract binding to set the session for
  1038  	CallOpts     bind.CallOpts     // Call options to use throughout this session
  1039  	TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
  1040  }
  1041  
  1042  // IGovParamCallerSession is an auto generated read-only Go binding around a Klaytn contract,
  1043  // with pre-set call options.
  1044  type IGovParamCallerSession struct {
  1045  	Contract *IGovParamCaller // Generic contract caller binding to set the session for
  1046  	CallOpts bind.CallOpts    // Call options to use throughout this session
  1047  }
  1048  
  1049  // IGovParamTransactorSession is an auto generated write-only Go binding around a Klaytn contract,
  1050  // with pre-set transact options.
  1051  type IGovParamTransactorSession struct {
  1052  	Contract     *IGovParamTransactor // Generic contract transactor binding to set the session for
  1053  	TransactOpts bind.TransactOpts    // Transaction auth options to use throughout this session
  1054  }
  1055  
  1056  // IGovParamRaw is an auto generated low-level Go binding around a Klaytn contract.
  1057  type IGovParamRaw struct {
  1058  	Contract *IGovParam // Generic contract binding to access the raw methods on
  1059  }
  1060  
  1061  // IGovParamCallerRaw is an auto generated low-level read-only Go binding around a Klaytn contract.
  1062  type IGovParamCallerRaw struct {
  1063  	Contract *IGovParamCaller // Generic read-only contract binding to access the raw methods on
  1064  }
  1065  
  1066  // IGovParamTransactorRaw is an auto generated low-level write-only Go binding around a Klaytn contract.
  1067  type IGovParamTransactorRaw struct {
  1068  	Contract *IGovParamTransactor // Generic write-only contract binding to access the raw methods on
  1069  }
  1070  
  1071  // NewIGovParam creates a new instance of IGovParam, bound to a specific deployed contract.
  1072  func NewIGovParam(address common.Address, backend bind.ContractBackend) (*IGovParam, error) {
  1073  	contract, err := bindIGovParam(address, backend, backend, backend)
  1074  	if err != nil {
  1075  		return nil, err
  1076  	}
  1077  	return &IGovParam{IGovParamCaller: IGovParamCaller{contract: contract}, IGovParamTransactor: IGovParamTransactor{contract: contract}, IGovParamFilterer: IGovParamFilterer{contract: contract}}, nil
  1078  }
  1079  
  1080  // NewIGovParamCaller creates a new read-only instance of IGovParam, bound to a specific deployed contract.
  1081  func NewIGovParamCaller(address common.Address, caller bind.ContractCaller) (*IGovParamCaller, error) {
  1082  	contract, err := bindIGovParam(address, caller, nil, nil)
  1083  	if err != nil {
  1084  		return nil, err
  1085  	}
  1086  	return &IGovParamCaller{contract: contract}, nil
  1087  }
  1088  
  1089  // NewIGovParamTransactor creates a new write-only instance of IGovParam, bound to a specific deployed contract.
  1090  func NewIGovParamTransactor(address common.Address, transactor bind.ContractTransactor) (*IGovParamTransactor, error) {
  1091  	contract, err := bindIGovParam(address, nil, transactor, nil)
  1092  	if err != nil {
  1093  		return nil, err
  1094  	}
  1095  	return &IGovParamTransactor{contract: contract}, nil
  1096  }
  1097  
  1098  // NewIGovParamFilterer creates a new log filterer instance of IGovParam, bound to a specific deployed contract.
  1099  func NewIGovParamFilterer(address common.Address, filterer bind.ContractFilterer) (*IGovParamFilterer, error) {
  1100  	contract, err := bindIGovParam(address, nil, nil, filterer)
  1101  	if err != nil {
  1102  		return nil, err
  1103  	}
  1104  	return &IGovParamFilterer{contract: contract}, nil
  1105  }
  1106  
  1107  // bindIGovParam binds a generic wrapper to an already deployed contract.
  1108  func bindIGovParam(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
  1109  	parsed, err := abi.JSON(strings.NewReader(IGovParamABI))
  1110  	if err != nil {
  1111  		return nil, err
  1112  	}
  1113  	return bind.NewBoundContract(address, parsed, caller, transactor, filterer), nil
  1114  }
  1115  
  1116  // Call invokes the (constant) contract method with params as input values and
  1117  // sets the output to result. The result type might be a single field for simple
  1118  // returns, a slice of interfaces for anonymous returns and a struct for named
  1119  // returns.
  1120  func (_IGovParam *IGovParamRaw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error {
  1121  	return _IGovParam.Contract.IGovParamCaller.contract.Call(opts, result, method, params...)
  1122  }
  1123  
  1124  // Transfer initiates a plain transaction to move funds to the contract, calling
  1125  // its default method if one is available.
  1126  func (_IGovParam *IGovParamRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
  1127  	return _IGovParam.Contract.IGovParamTransactor.contract.Transfer(opts)
  1128  }
  1129  
  1130  // Transact invokes the (paid) contract method with params as input values.
  1131  func (_IGovParam *IGovParamRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
  1132  	return _IGovParam.Contract.IGovParamTransactor.contract.Transact(opts, method, params...)
  1133  }
  1134  
  1135  // Call invokes the (constant) contract method with params as input values and
  1136  // sets the output to result. The result type might be a single field for simple
  1137  // returns, a slice of interfaces for anonymous returns and a struct for named
  1138  // returns.
  1139  func (_IGovParam *IGovParamCallerRaw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error {
  1140  	return _IGovParam.Contract.contract.Call(opts, result, method, params...)
  1141  }
  1142  
  1143  // Transfer initiates a plain transaction to move funds to the contract, calling
  1144  // its default method if one is available.
  1145  func (_IGovParam *IGovParamTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
  1146  	return _IGovParam.Contract.contract.Transfer(opts)
  1147  }
  1148  
  1149  // Transact invokes the (paid) contract method with params as input values.
  1150  func (_IGovParam *IGovParamTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
  1151  	return _IGovParam.Contract.contract.Transact(opts, method, params...)
  1152  }
  1153  
  1154  // Checkpoints is a free data retrieval call binding the contract method 0x296451d9.
  1155  //
  1156  // Solidity: function checkpoints(string name) view returns((uint256,bool,bytes)[])
  1157  func (_IGovParam *IGovParamCaller) Checkpoints(opts *bind.CallOpts, name string) ([]IGovParamParam, error) {
  1158  	var (
  1159  		ret0 = new([]IGovParamParam)
  1160  	)
  1161  	out := ret0
  1162  	err := _IGovParam.contract.Call(opts, out, "checkpoints", name)
  1163  	return *ret0, err
  1164  }
  1165  
  1166  // Checkpoints is a free data retrieval call binding the contract method 0x296451d9.
  1167  //
  1168  // Solidity: function checkpoints(string name) view returns((uint256,bool,bytes)[])
  1169  func (_IGovParam *IGovParamSession) Checkpoints(name string) ([]IGovParamParam, error) {
  1170  	return _IGovParam.Contract.Checkpoints(&_IGovParam.CallOpts, name)
  1171  }
  1172  
  1173  // Checkpoints is a free data retrieval call binding the contract method 0x296451d9.
  1174  //
  1175  // Solidity: function checkpoints(string name) view returns((uint256,bool,bytes)[])
  1176  func (_IGovParam *IGovParamCallerSession) Checkpoints(name string) ([]IGovParamParam, error) {
  1177  	return _IGovParam.Contract.Checkpoints(&_IGovParam.CallOpts, name)
  1178  }
  1179  
  1180  // GetAllCheckpoints is a free data retrieval call binding the contract method 0x5516c21c.
  1181  //
  1182  // Solidity: function getAllCheckpoints() view returns(string[], (uint256,bool,bytes)[][])
  1183  func (_IGovParam *IGovParamCaller) GetAllCheckpoints(opts *bind.CallOpts) ([]string, [][]IGovParamParam, error) {
  1184  	var (
  1185  		ret0 = new([]string)
  1186  		ret1 = new([][]IGovParamParam)
  1187  	)
  1188  	out := &[]interface{}{
  1189  		ret0,
  1190  		ret1,
  1191  	}
  1192  	err := _IGovParam.contract.Call(opts, out, "getAllCheckpoints")
  1193  	return *ret0, *ret1, err
  1194  }
  1195  
  1196  // GetAllCheckpoints is a free data retrieval call binding the contract method 0x5516c21c.
  1197  //
  1198  // Solidity: function getAllCheckpoints() view returns(string[], (uint256,bool,bytes)[][])
  1199  func (_IGovParam *IGovParamSession) GetAllCheckpoints() ([]string, [][]IGovParamParam, error) {
  1200  	return _IGovParam.Contract.GetAllCheckpoints(&_IGovParam.CallOpts)
  1201  }
  1202  
  1203  // GetAllCheckpoints is a free data retrieval call binding the contract method 0x5516c21c.
  1204  //
  1205  // Solidity: function getAllCheckpoints() view returns(string[], (uint256,bool,bytes)[][])
  1206  func (_IGovParam *IGovParamCallerSession) GetAllCheckpoints() ([]string, [][]IGovParamParam, error) {
  1207  	return _IGovParam.Contract.GetAllCheckpoints(&_IGovParam.CallOpts)
  1208  }
  1209  
  1210  // GetAllParamNames is a free data retrieval call binding the contract method 0xcc4783b6.
  1211  //
  1212  // Solidity: function getAllParamNames() view returns(string[])
  1213  func (_IGovParam *IGovParamCaller) GetAllParamNames(opts *bind.CallOpts) ([]string, error) {
  1214  	var (
  1215  		ret0 = new([]string)
  1216  	)
  1217  	out := ret0
  1218  	err := _IGovParam.contract.Call(opts, out, "getAllParamNames")
  1219  	return *ret0, err
  1220  }
  1221  
  1222  // GetAllParamNames is a free data retrieval call binding the contract method 0xcc4783b6.
  1223  //
  1224  // Solidity: function getAllParamNames() view returns(string[])
  1225  func (_IGovParam *IGovParamSession) GetAllParamNames() ([]string, error) {
  1226  	return _IGovParam.Contract.GetAllParamNames(&_IGovParam.CallOpts)
  1227  }
  1228  
  1229  // GetAllParamNames is a free data retrieval call binding the contract method 0xcc4783b6.
  1230  //
  1231  // Solidity: function getAllParamNames() view returns(string[])
  1232  func (_IGovParam *IGovParamCallerSession) GetAllParamNames() ([]string, error) {
  1233  	return _IGovParam.Contract.GetAllParamNames(&_IGovParam.CallOpts)
  1234  }
  1235  
  1236  // GetAllParams is a free data retrieval call binding the contract method 0xa170052e.
  1237  //
  1238  // Solidity: function getAllParams() view returns(string[], bytes[])
  1239  func (_IGovParam *IGovParamCaller) GetAllParams(opts *bind.CallOpts) ([]string, [][]byte, error) {
  1240  	var (
  1241  		ret0 = new([]string)
  1242  		ret1 = new([][]byte)
  1243  	)
  1244  	out := &[]interface{}{
  1245  		ret0,
  1246  		ret1,
  1247  	}
  1248  	err := _IGovParam.contract.Call(opts, out, "getAllParams")
  1249  	return *ret0, *ret1, err
  1250  }
  1251  
  1252  // GetAllParams is a free data retrieval call binding the contract method 0xa170052e.
  1253  //
  1254  // Solidity: function getAllParams() view returns(string[], bytes[])
  1255  func (_IGovParam *IGovParamSession) GetAllParams() ([]string, [][]byte, error) {
  1256  	return _IGovParam.Contract.GetAllParams(&_IGovParam.CallOpts)
  1257  }
  1258  
  1259  // GetAllParams is a free data retrieval call binding the contract method 0xa170052e.
  1260  //
  1261  // Solidity: function getAllParams() view returns(string[], bytes[])
  1262  func (_IGovParam *IGovParamCallerSession) GetAllParams() ([]string, [][]byte, error) {
  1263  	return _IGovParam.Contract.GetAllParams(&_IGovParam.CallOpts)
  1264  }
  1265  
  1266  // GetAllParamsAt is a free data retrieval call binding the contract method 0x1e31825a.
  1267  //
  1268  // Solidity: function getAllParamsAt(uint256 blockNumber) view returns(string[], bytes[])
  1269  func (_IGovParam *IGovParamCaller) GetAllParamsAt(opts *bind.CallOpts, blockNumber *big.Int) ([]string, [][]byte, error) {
  1270  	var (
  1271  		ret0 = new([]string)
  1272  		ret1 = new([][]byte)
  1273  	)
  1274  	out := &[]interface{}{
  1275  		ret0,
  1276  		ret1,
  1277  	}
  1278  	err := _IGovParam.contract.Call(opts, out, "getAllParamsAt", blockNumber)
  1279  	return *ret0, *ret1, err
  1280  }
  1281  
  1282  // GetAllParamsAt is a free data retrieval call binding the contract method 0x1e31825a.
  1283  //
  1284  // Solidity: function getAllParamsAt(uint256 blockNumber) view returns(string[], bytes[])
  1285  func (_IGovParam *IGovParamSession) GetAllParamsAt(blockNumber *big.Int) ([]string, [][]byte, error) {
  1286  	return _IGovParam.Contract.GetAllParamsAt(&_IGovParam.CallOpts, blockNumber)
  1287  }
  1288  
  1289  // GetAllParamsAt is a free data retrieval call binding the contract method 0x1e31825a.
  1290  //
  1291  // Solidity: function getAllParamsAt(uint256 blockNumber) view returns(string[], bytes[])
  1292  func (_IGovParam *IGovParamCallerSession) GetAllParamsAt(blockNumber *big.Int) ([]string, [][]byte, error) {
  1293  	return _IGovParam.Contract.GetAllParamsAt(&_IGovParam.CallOpts, blockNumber)
  1294  }
  1295  
  1296  // GetParam is a free data retrieval call binding the contract method 0x5d4f71d4.
  1297  //
  1298  // Solidity: function getParam(string name) view returns(bool, bytes)
  1299  func (_IGovParam *IGovParamCaller) GetParam(opts *bind.CallOpts, name string) (bool, []byte, error) {
  1300  	var (
  1301  		ret0 = new(bool)
  1302  		ret1 = new([]byte)
  1303  	)
  1304  	out := &[]interface{}{
  1305  		ret0,
  1306  		ret1,
  1307  	}
  1308  	err := _IGovParam.contract.Call(opts, out, "getParam", name)
  1309  	return *ret0, *ret1, err
  1310  }
  1311  
  1312  // GetParam is a free data retrieval call binding the contract method 0x5d4f71d4.
  1313  //
  1314  // Solidity: function getParam(string name) view returns(bool, bytes)
  1315  func (_IGovParam *IGovParamSession) GetParam(name string) (bool, []byte, error) {
  1316  	return _IGovParam.Contract.GetParam(&_IGovParam.CallOpts, name)
  1317  }
  1318  
  1319  // GetParam is a free data retrieval call binding the contract method 0x5d4f71d4.
  1320  //
  1321  // Solidity: function getParam(string name) view returns(bool, bytes)
  1322  func (_IGovParam *IGovParamCallerSession) GetParam(name string) (bool, []byte, error) {
  1323  	return _IGovParam.Contract.GetParam(&_IGovParam.CallOpts, name)
  1324  }
  1325  
  1326  // GetParamAt is a free data retrieval call binding the contract method 0x6a1ec27c.
  1327  //
  1328  // Solidity: function getParamAt(string name, uint256 blockNumber) view returns(bool, bytes)
  1329  func (_IGovParam *IGovParamCaller) GetParamAt(opts *bind.CallOpts, name string, blockNumber *big.Int) (bool, []byte, error) {
  1330  	var (
  1331  		ret0 = new(bool)
  1332  		ret1 = new([]byte)
  1333  	)
  1334  	out := &[]interface{}{
  1335  		ret0,
  1336  		ret1,
  1337  	}
  1338  	err := _IGovParam.contract.Call(opts, out, "getParamAt", name, blockNumber)
  1339  	return *ret0, *ret1, err
  1340  }
  1341  
  1342  // GetParamAt is a free data retrieval call binding the contract method 0x6a1ec27c.
  1343  //
  1344  // Solidity: function getParamAt(string name, uint256 blockNumber) view returns(bool, bytes)
  1345  func (_IGovParam *IGovParamSession) GetParamAt(name string, blockNumber *big.Int) (bool, []byte, error) {
  1346  	return _IGovParam.Contract.GetParamAt(&_IGovParam.CallOpts, name, blockNumber)
  1347  }
  1348  
  1349  // GetParamAt is a free data retrieval call binding the contract method 0x6a1ec27c.
  1350  //
  1351  // Solidity: function getParamAt(string name, uint256 blockNumber) view returns(bool, bytes)
  1352  func (_IGovParam *IGovParamCallerSession) GetParamAt(name string, blockNumber *big.Int) (bool, []byte, error) {
  1353  	return _IGovParam.Contract.GetParamAt(&_IGovParam.CallOpts, name, blockNumber)
  1354  }
  1355  
  1356  // ParamNames is a free data retrieval call binding the contract method 0xdb758754.
  1357  //
  1358  // Solidity: function paramNames(uint256 idx) view returns(string)
  1359  func (_IGovParam *IGovParamCaller) ParamNames(opts *bind.CallOpts, idx *big.Int) (string, error) {
  1360  	var (
  1361  		ret0 = new(string)
  1362  	)
  1363  	out := ret0
  1364  	err := _IGovParam.contract.Call(opts, out, "paramNames", idx)
  1365  	return *ret0, err
  1366  }
  1367  
  1368  // ParamNames is a free data retrieval call binding the contract method 0xdb758754.
  1369  //
  1370  // Solidity: function paramNames(uint256 idx) view returns(string)
  1371  func (_IGovParam *IGovParamSession) ParamNames(idx *big.Int) (string, error) {
  1372  	return _IGovParam.Contract.ParamNames(&_IGovParam.CallOpts, idx)
  1373  }
  1374  
  1375  // ParamNames is a free data retrieval call binding the contract method 0xdb758754.
  1376  //
  1377  // Solidity: function paramNames(uint256 idx) view returns(string)
  1378  func (_IGovParam *IGovParamCallerSession) ParamNames(idx *big.Int) (string, error) {
  1379  	return _IGovParam.Contract.ParamNames(&_IGovParam.CallOpts, idx)
  1380  }
  1381  
  1382  // SetParam is a paid mutator transaction binding the contract method 0x3f8aa624.
  1383  //
  1384  // Solidity: function setParam(string name, bool exists, bytes value, uint256 activation) returns()
  1385  func (_IGovParam *IGovParamTransactor) SetParam(opts *bind.TransactOpts, name string, exists bool, value []byte, activation *big.Int) (*types.Transaction, error) {
  1386  	return _IGovParam.contract.Transact(opts, "setParam", name, exists, value, activation)
  1387  }
  1388  
  1389  // SetParam is a paid mutator transaction binding the contract method 0x3f8aa624.
  1390  //
  1391  // Solidity: function setParam(string name, bool exists, bytes value, uint256 activation) returns()
  1392  func (_IGovParam *IGovParamSession) SetParam(name string, exists bool, value []byte, activation *big.Int) (*types.Transaction, error) {
  1393  	return _IGovParam.Contract.SetParam(&_IGovParam.TransactOpts, name, exists, value, activation)
  1394  }
  1395  
  1396  // SetParam is a paid mutator transaction binding the contract method 0x3f8aa624.
  1397  //
  1398  // Solidity: function setParam(string name, bool exists, bytes value, uint256 activation) returns()
  1399  func (_IGovParam *IGovParamTransactorSession) SetParam(name string, exists bool, value []byte, activation *big.Int) (*types.Transaction, error) {
  1400  	return _IGovParam.Contract.SetParam(&_IGovParam.TransactOpts, name, exists, value, activation)
  1401  }
  1402  
  1403  // SetParamIn is a paid mutator transaction binding the contract method 0xb93244a5.
  1404  //
  1405  // Solidity: function setParamIn(string name, bool exists, bytes value, uint256 relativeActivation) returns()
  1406  func (_IGovParam *IGovParamTransactor) SetParamIn(opts *bind.TransactOpts, name string, exists bool, value []byte, relativeActivation *big.Int) (*types.Transaction, error) {
  1407  	return _IGovParam.contract.Transact(opts, "setParamIn", name, exists, value, relativeActivation)
  1408  }
  1409  
  1410  // SetParamIn is a paid mutator transaction binding the contract method 0xb93244a5.
  1411  //
  1412  // Solidity: function setParamIn(string name, bool exists, bytes value, uint256 relativeActivation) returns()
  1413  func (_IGovParam *IGovParamSession) SetParamIn(name string, exists bool, value []byte, relativeActivation *big.Int) (*types.Transaction, error) {
  1414  	return _IGovParam.Contract.SetParamIn(&_IGovParam.TransactOpts, name, exists, value, relativeActivation)
  1415  }
  1416  
  1417  // SetParamIn is a paid mutator transaction binding the contract method 0xb93244a5.
  1418  //
  1419  // Solidity: function setParamIn(string name, bool exists, bytes value, uint256 relativeActivation) returns()
  1420  func (_IGovParam *IGovParamTransactorSession) SetParamIn(name string, exists bool, value []byte, relativeActivation *big.Int) (*types.Transaction, error) {
  1421  	return _IGovParam.Contract.SetParamIn(&_IGovParam.TransactOpts, name, exists, value, relativeActivation)
  1422  }
  1423  
  1424  // IGovParamSetParamIterator is returned from FilterSetParam and is used to iterate over the raw logs and unpacked data for SetParam events raised by the IGovParam contract.
  1425  type IGovParamSetParamIterator struct {
  1426  	Event *IGovParamSetParam // Event containing the contract specifics and raw log
  1427  
  1428  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  1429  	event    string              // Event name to use for unpacking event data
  1430  
  1431  	logs chan types.Log      // Log channel receiving the found contract events
  1432  	sub  klaytn.Subscription // Subscription for errors, completion and termination
  1433  	done bool                // Whether the subscription completed delivering logs
  1434  	fail error               // Occurred error to stop iteration
  1435  }
  1436  
  1437  // Next advances the iterator to the subsequent event, returning whether there
  1438  // are any more events found. In case of a retrieval or parsing error, false is
  1439  // returned and Error() can be queried for the exact failure.
  1440  func (it *IGovParamSetParamIterator) Next() bool {
  1441  	// If the iterator failed, stop iterating
  1442  	if it.fail != nil {
  1443  		return false
  1444  	}
  1445  	// If the iterator completed, deliver directly whatever's available
  1446  	if it.done {
  1447  		select {
  1448  		case log := <-it.logs:
  1449  			it.Event = new(IGovParamSetParam)
  1450  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1451  				it.fail = err
  1452  				return false
  1453  			}
  1454  			it.Event.Raw = log
  1455  			return true
  1456  
  1457  		default:
  1458  			return false
  1459  		}
  1460  	}
  1461  	// Iterator still in progress, wait for either a data or an error event
  1462  	select {
  1463  	case log := <-it.logs:
  1464  		it.Event = new(IGovParamSetParam)
  1465  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1466  			it.fail = err
  1467  			return false
  1468  		}
  1469  		it.Event.Raw = log
  1470  		return true
  1471  
  1472  	case err := <-it.sub.Err():
  1473  		it.done = true
  1474  		it.fail = err
  1475  		return it.Next()
  1476  	}
  1477  }
  1478  
  1479  // Error returns any retrieval or parsing error occurred during filtering.
  1480  func (it *IGovParamSetParamIterator) Error() error {
  1481  	return it.fail
  1482  }
  1483  
  1484  // Close terminates the iteration process, releasing any pending underlying
  1485  // resources.
  1486  func (it *IGovParamSetParamIterator) Close() error {
  1487  	it.sub.Unsubscribe()
  1488  	return nil
  1489  }
  1490  
  1491  // IGovParamSetParam represents a SetParam event raised by the IGovParam contract.
  1492  type IGovParamSetParam struct {
  1493  	Name       string
  1494  	Exists     bool
  1495  	Value      []byte
  1496  	Activation *big.Int
  1497  	Raw        types.Log // Blockchain specific contextual infos
  1498  }
  1499  
  1500  // FilterSetParam is a free log retrieval operation binding the contract event 0x80044a87a0a45f6cc784a3f48077d58f4eb1e7d78243f85daa43ad7a88b6ba85.
  1501  //
  1502  // Solidity: event SetParam(string name, bool exists, bytes value, uint256 activation)
  1503  func (_IGovParam *IGovParamFilterer) FilterSetParam(opts *bind.FilterOpts) (*IGovParamSetParamIterator, error) {
  1504  
  1505  	logs, sub, err := _IGovParam.contract.FilterLogs(opts, "SetParam")
  1506  	if err != nil {
  1507  		return nil, err
  1508  	}
  1509  	return &IGovParamSetParamIterator{contract: _IGovParam.contract, event: "SetParam", logs: logs, sub: sub}, nil
  1510  }
  1511  
  1512  // WatchSetParam is a free log subscription operation binding the contract event 0x80044a87a0a45f6cc784a3f48077d58f4eb1e7d78243f85daa43ad7a88b6ba85.
  1513  //
  1514  // Solidity: event SetParam(string name, bool exists, bytes value, uint256 activation)
  1515  func (_IGovParam *IGovParamFilterer) WatchSetParam(opts *bind.WatchOpts, sink chan<- *IGovParamSetParam) (event.Subscription, error) {
  1516  
  1517  	logs, sub, err := _IGovParam.contract.WatchLogs(opts, "SetParam")
  1518  	if err != nil {
  1519  		return nil, err
  1520  	}
  1521  	return event.NewSubscription(func(quit <-chan struct{}) error {
  1522  		defer sub.Unsubscribe()
  1523  		for {
  1524  			select {
  1525  			case log := <-logs:
  1526  				// New log arrived, parse the event and forward to the user
  1527  				event := new(IGovParamSetParam)
  1528  				if err := _IGovParam.contract.UnpackLog(event, "SetParam", log); err != nil {
  1529  					return err
  1530  				}
  1531  				event.Raw = log
  1532  
  1533  				select {
  1534  				case sink <- event:
  1535  				case err := <-sub.Err():
  1536  					return err
  1537  				case <-quit:
  1538  					return nil
  1539  				}
  1540  			case err := <-sub.Err():
  1541  				return err
  1542  			case <-quit:
  1543  				return nil
  1544  			}
  1545  		}
  1546  	}), nil
  1547  }
  1548  
  1549  // ParseSetParam is a log parse operation binding the contract event 0x80044a87a0a45f6cc784a3f48077d58f4eb1e7d78243f85daa43ad7a88b6ba85.
  1550  //
  1551  // Solidity: event SetParam(string name, bool exists, bytes value, uint256 activation)
  1552  func (_IGovParam *IGovParamFilterer) ParseSetParam(log types.Log) (*IGovParamSetParam, error) {
  1553  	event := new(IGovParamSetParam)
  1554  	if err := _IGovParam.contract.UnpackLog(event, "SetParam", log); err != nil {
  1555  		return nil, err
  1556  	}
  1557  	return event, nil
  1558  }
  1559  
  1560  // OwnableABI is the input ABI used to generate the binding from.
  1561  const OwnableABI = "[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]"
  1562  
  1563  // OwnableBinRuntime is the compiled bytecode used for adding genesis block without deploying code.
  1564  const OwnableBinRuntime = ``
  1565  
  1566  // OwnableFuncSigs maps the 4-byte function signature to its string representation.
  1567  var OwnableFuncSigs = map[string]string{
  1568  	"8da5cb5b": "owner()",
  1569  	"715018a6": "renounceOwnership()",
  1570  	"f2fde38b": "transferOwnership(address)",
  1571  }
  1572  
  1573  // Ownable is an auto generated Go binding around a Klaytn contract.
  1574  type Ownable struct {
  1575  	OwnableCaller     // Read-only binding to the contract
  1576  	OwnableTransactor // Write-only binding to the contract
  1577  	OwnableFilterer   // Log filterer for contract events
  1578  }
  1579  
  1580  // OwnableCaller is an auto generated read-only Go binding around a Klaytn contract.
  1581  type OwnableCaller struct {
  1582  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  1583  }
  1584  
  1585  // OwnableTransactor is an auto generated write-only Go binding around a Klaytn contract.
  1586  type OwnableTransactor struct {
  1587  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  1588  }
  1589  
  1590  // OwnableFilterer is an auto generated log filtering Go binding around a Klaytn contract events.
  1591  type OwnableFilterer struct {
  1592  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  1593  }
  1594  
  1595  // OwnableSession is an auto generated Go binding around a Klaytn contract,
  1596  // with pre-set call and transact options.
  1597  type OwnableSession struct {
  1598  	Contract     *Ownable          // Generic contract binding to set the session for
  1599  	CallOpts     bind.CallOpts     // Call options to use throughout this session
  1600  	TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
  1601  }
  1602  
  1603  // OwnableCallerSession is an auto generated read-only Go binding around a Klaytn contract,
  1604  // with pre-set call options.
  1605  type OwnableCallerSession struct {
  1606  	Contract *OwnableCaller // Generic contract caller binding to set the session for
  1607  	CallOpts bind.CallOpts  // Call options to use throughout this session
  1608  }
  1609  
  1610  // OwnableTransactorSession is an auto generated write-only Go binding around a Klaytn contract,
  1611  // with pre-set transact options.
  1612  type OwnableTransactorSession struct {
  1613  	Contract     *OwnableTransactor // Generic contract transactor binding to set the session for
  1614  	TransactOpts bind.TransactOpts  // Transaction auth options to use throughout this session
  1615  }
  1616  
  1617  // OwnableRaw is an auto generated low-level Go binding around a Klaytn contract.
  1618  type OwnableRaw struct {
  1619  	Contract *Ownable // Generic contract binding to access the raw methods on
  1620  }
  1621  
  1622  // OwnableCallerRaw is an auto generated low-level read-only Go binding around a Klaytn contract.
  1623  type OwnableCallerRaw struct {
  1624  	Contract *OwnableCaller // Generic read-only contract binding to access the raw methods on
  1625  }
  1626  
  1627  // OwnableTransactorRaw is an auto generated low-level write-only Go binding around a Klaytn contract.
  1628  type OwnableTransactorRaw struct {
  1629  	Contract *OwnableTransactor // Generic write-only contract binding to access the raw methods on
  1630  }
  1631  
  1632  // NewOwnable creates a new instance of Ownable, bound to a specific deployed contract.
  1633  func NewOwnable(address common.Address, backend bind.ContractBackend) (*Ownable, error) {
  1634  	contract, err := bindOwnable(address, backend, backend, backend)
  1635  	if err != nil {
  1636  		return nil, err
  1637  	}
  1638  	return &Ownable{OwnableCaller: OwnableCaller{contract: contract}, OwnableTransactor: OwnableTransactor{contract: contract}, OwnableFilterer: OwnableFilterer{contract: contract}}, nil
  1639  }
  1640  
  1641  // NewOwnableCaller creates a new read-only instance of Ownable, bound to a specific deployed contract.
  1642  func NewOwnableCaller(address common.Address, caller bind.ContractCaller) (*OwnableCaller, error) {
  1643  	contract, err := bindOwnable(address, caller, nil, nil)
  1644  	if err != nil {
  1645  		return nil, err
  1646  	}
  1647  	return &OwnableCaller{contract: contract}, nil
  1648  }
  1649  
  1650  // NewOwnableTransactor creates a new write-only instance of Ownable, bound to a specific deployed contract.
  1651  func NewOwnableTransactor(address common.Address, transactor bind.ContractTransactor) (*OwnableTransactor, error) {
  1652  	contract, err := bindOwnable(address, nil, transactor, nil)
  1653  	if err != nil {
  1654  		return nil, err
  1655  	}
  1656  	return &OwnableTransactor{contract: contract}, nil
  1657  }
  1658  
  1659  // NewOwnableFilterer creates a new log filterer instance of Ownable, bound to a specific deployed contract.
  1660  func NewOwnableFilterer(address common.Address, filterer bind.ContractFilterer) (*OwnableFilterer, error) {
  1661  	contract, err := bindOwnable(address, nil, nil, filterer)
  1662  	if err != nil {
  1663  		return nil, err
  1664  	}
  1665  	return &OwnableFilterer{contract: contract}, nil
  1666  }
  1667  
  1668  // bindOwnable binds a generic wrapper to an already deployed contract.
  1669  func bindOwnable(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
  1670  	parsed, err := abi.JSON(strings.NewReader(OwnableABI))
  1671  	if err != nil {
  1672  		return nil, err
  1673  	}
  1674  	return bind.NewBoundContract(address, parsed, caller, transactor, filterer), nil
  1675  }
  1676  
  1677  // Call invokes the (constant) contract method with params as input values and
  1678  // sets the output to result. The result type might be a single field for simple
  1679  // returns, a slice of interfaces for anonymous returns and a struct for named
  1680  // returns.
  1681  func (_Ownable *OwnableRaw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error {
  1682  	return _Ownable.Contract.OwnableCaller.contract.Call(opts, result, method, params...)
  1683  }
  1684  
  1685  // Transfer initiates a plain transaction to move funds to the contract, calling
  1686  // its default method if one is available.
  1687  func (_Ownable *OwnableRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
  1688  	return _Ownable.Contract.OwnableTransactor.contract.Transfer(opts)
  1689  }
  1690  
  1691  // Transact invokes the (paid) contract method with params as input values.
  1692  func (_Ownable *OwnableRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
  1693  	return _Ownable.Contract.OwnableTransactor.contract.Transact(opts, method, params...)
  1694  }
  1695  
  1696  // Call invokes the (constant) contract method with params as input values and
  1697  // sets the output to result. The result type might be a single field for simple
  1698  // returns, a slice of interfaces for anonymous returns and a struct for named
  1699  // returns.
  1700  func (_Ownable *OwnableCallerRaw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error {
  1701  	return _Ownable.Contract.contract.Call(opts, result, method, params...)
  1702  }
  1703  
  1704  // Transfer initiates a plain transaction to move funds to the contract, calling
  1705  // its default method if one is available.
  1706  func (_Ownable *OwnableTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
  1707  	return _Ownable.Contract.contract.Transfer(opts)
  1708  }
  1709  
  1710  // Transact invokes the (paid) contract method with params as input values.
  1711  func (_Ownable *OwnableTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
  1712  	return _Ownable.Contract.contract.Transact(opts, method, params...)
  1713  }
  1714  
  1715  // Owner is a free data retrieval call binding the contract method 0x8da5cb5b.
  1716  //
  1717  // Solidity: function owner() view returns(address)
  1718  func (_Ownable *OwnableCaller) Owner(opts *bind.CallOpts) (common.Address, error) {
  1719  	var (
  1720  		ret0 = new(common.Address)
  1721  	)
  1722  	out := ret0
  1723  	err := _Ownable.contract.Call(opts, out, "owner")
  1724  	return *ret0, err
  1725  }
  1726  
  1727  // Owner is a free data retrieval call binding the contract method 0x8da5cb5b.
  1728  //
  1729  // Solidity: function owner() view returns(address)
  1730  func (_Ownable *OwnableSession) Owner() (common.Address, error) {
  1731  	return _Ownable.Contract.Owner(&_Ownable.CallOpts)
  1732  }
  1733  
  1734  // Owner is a free data retrieval call binding the contract method 0x8da5cb5b.
  1735  //
  1736  // Solidity: function owner() view returns(address)
  1737  func (_Ownable *OwnableCallerSession) Owner() (common.Address, error) {
  1738  	return _Ownable.Contract.Owner(&_Ownable.CallOpts)
  1739  }
  1740  
  1741  // RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6.
  1742  //
  1743  // Solidity: function renounceOwnership() returns()
  1744  func (_Ownable *OwnableTransactor) RenounceOwnership(opts *bind.TransactOpts) (*types.Transaction, error) {
  1745  	return _Ownable.contract.Transact(opts, "renounceOwnership")
  1746  }
  1747  
  1748  // RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6.
  1749  //
  1750  // Solidity: function renounceOwnership() returns()
  1751  func (_Ownable *OwnableSession) RenounceOwnership() (*types.Transaction, error) {
  1752  	return _Ownable.Contract.RenounceOwnership(&_Ownable.TransactOpts)
  1753  }
  1754  
  1755  // RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6.
  1756  //
  1757  // Solidity: function renounceOwnership() returns()
  1758  func (_Ownable *OwnableTransactorSession) RenounceOwnership() (*types.Transaction, error) {
  1759  	return _Ownable.Contract.RenounceOwnership(&_Ownable.TransactOpts)
  1760  }
  1761  
  1762  // TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b.
  1763  //
  1764  // Solidity: function transferOwnership(address newOwner) returns()
  1765  func (_Ownable *OwnableTransactor) TransferOwnership(opts *bind.TransactOpts, newOwner common.Address) (*types.Transaction, error) {
  1766  	return _Ownable.contract.Transact(opts, "transferOwnership", newOwner)
  1767  }
  1768  
  1769  // TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b.
  1770  //
  1771  // Solidity: function transferOwnership(address newOwner) returns()
  1772  func (_Ownable *OwnableSession) TransferOwnership(newOwner common.Address) (*types.Transaction, error) {
  1773  	return _Ownable.Contract.TransferOwnership(&_Ownable.TransactOpts, newOwner)
  1774  }
  1775  
  1776  // TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b.
  1777  //
  1778  // Solidity: function transferOwnership(address newOwner) returns()
  1779  func (_Ownable *OwnableTransactorSession) TransferOwnership(newOwner common.Address) (*types.Transaction, error) {
  1780  	return _Ownable.Contract.TransferOwnership(&_Ownable.TransactOpts, newOwner)
  1781  }
  1782  
  1783  // OwnableOwnershipTransferredIterator is returned from FilterOwnershipTransferred and is used to iterate over the raw logs and unpacked data for OwnershipTransferred events raised by the Ownable contract.
  1784  type OwnableOwnershipTransferredIterator struct {
  1785  	Event *OwnableOwnershipTransferred // Event containing the contract specifics and raw log
  1786  
  1787  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  1788  	event    string              // Event name to use for unpacking event data
  1789  
  1790  	logs chan types.Log      // Log channel receiving the found contract events
  1791  	sub  klaytn.Subscription // Subscription for errors, completion and termination
  1792  	done bool                // Whether the subscription completed delivering logs
  1793  	fail error               // Occurred error to stop iteration
  1794  }
  1795  
  1796  // Next advances the iterator to the subsequent event, returning whether there
  1797  // are any more events found. In case of a retrieval or parsing error, false is
  1798  // returned and Error() can be queried for the exact failure.
  1799  func (it *OwnableOwnershipTransferredIterator) Next() bool {
  1800  	// If the iterator failed, stop iterating
  1801  	if it.fail != nil {
  1802  		return false
  1803  	}
  1804  	// If the iterator completed, deliver directly whatever's available
  1805  	if it.done {
  1806  		select {
  1807  		case log := <-it.logs:
  1808  			it.Event = new(OwnableOwnershipTransferred)
  1809  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1810  				it.fail = err
  1811  				return false
  1812  			}
  1813  			it.Event.Raw = log
  1814  			return true
  1815  
  1816  		default:
  1817  			return false
  1818  		}
  1819  	}
  1820  	// Iterator still in progress, wait for either a data or an error event
  1821  	select {
  1822  	case log := <-it.logs:
  1823  		it.Event = new(OwnableOwnershipTransferred)
  1824  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1825  			it.fail = err
  1826  			return false
  1827  		}
  1828  		it.Event.Raw = log
  1829  		return true
  1830  
  1831  	case err := <-it.sub.Err():
  1832  		it.done = true
  1833  		it.fail = err
  1834  		return it.Next()
  1835  	}
  1836  }
  1837  
  1838  // Error returns any retrieval or parsing error occurred during filtering.
  1839  func (it *OwnableOwnershipTransferredIterator) Error() error {
  1840  	return it.fail
  1841  }
  1842  
  1843  // Close terminates the iteration process, releasing any pending underlying
  1844  // resources.
  1845  func (it *OwnableOwnershipTransferredIterator) Close() error {
  1846  	it.sub.Unsubscribe()
  1847  	return nil
  1848  }
  1849  
  1850  // OwnableOwnershipTransferred represents a OwnershipTransferred event raised by the Ownable contract.
  1851  type OwnableOwnershipTransferred struct {
  1852  	PreviousOwner common.Address
  1853  	NewOwner      common.Address
  1854  	Raw           types.Log // Blockchain specific contextual infos
  1855  }
  1856  
  1857  // FilterOwnershipTransferred is a free log retrieval operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0.
  1858  //
  1859  // Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
  1860  func (_Ownable *OwnableFilterer) FilterOwnershipTransferred(opts *bind.FilterOpts, previousOwner []common.Address, newOwner []common.Address) (*OwnableOwnershipTransferredIterator, error) {
  1861  
  1862  	var previousOwnerRule []interface{}
  1863  	for _, previousOwnerItem := range previousOwner {
  1864  		previousOwnerRule = append(previousOwnerRule, previousOwnerItem)
  1865  	}
  1866  	var newOwnerRule []interface{}
  1867  	for _, newOwnerItem := range newOwner {
  1868  		newOwnerRule = append(newOwnerRule, newOwnerItem)
  1869  	}
  1870  
  1871  	logs, sub, err := _Ownable.contract.FilterLogs(opts, "OwnershipTransferred", previousOwnerRule, newOwnerRule)
  1872  	if err != nil {
  1873  		return nil, err
  1874  	}
  1875  	return &OwnableOwnershipTransferredIterator{contract: _Ownable.contract, event: "OwnershipTransferred", logs: logs, sub: sub}, nil
  1876  }
  1877  
  1878  // WatchOwnershipTransferred is a free log subscription operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0.
  1879  //
  1880  // Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
  1881  func (_Ownable *OwnableFilterer) WatchOwnershipTransferred(opts *bind.WatchOpts, sink chan<- *OwnableOwnershipTransferred, previousOwner []common.Address, newOwner []common.Address) (event.Subscription, error) {
  1882  
  1883  	var previousOwnerRule []interface{}
  1884  	for _, previousOwnerItem := range previousOwner {
  1885  		previousOwnerRule = append(previousOwnerRule, previousOwnerItem)
  1886  	}
  1887  	var newOwnerRule []interface{}
  1888  	for _, newOwnerItem := range newOwner {
  1889  		newOwnerRule = append(newOwnerRule, newOwnerItem)
  1890  	}
  1891  
  1892  	logs, sub, err := _Ownable.contract.WatchLogs(opts, "OwnershipTransferred", previousOwnerRule, newOwnerRule)
  1893  	if err != nil {
  1894  		return nil, err
  1895  	}
  1896  	return event.NewSubscription(func(quit <-chan struct{}) error {
  1897  		defer sub.Unsubscribe()
  1898  		for {
  1899  			select {
  1900  			case log := <-logs:
  1901  				// New log arrived, parse the event and forward to the user
  1902  				event := new(OwnableOwnershipTransferred)
  1903  				if err := _Ownable.contract.UnpackLog(event, "OwnershipTransferred", log); err != nil {
  1904  					return err
  1905  				}
  1906  				event.Raw = log
  1907  
  1908  				select {
  1909  				case sink <- event:
  1910  				case err := <-sub.Err():
  1911  					return err
  1912  				case <-quit:
  1913  					return nil
  1914  				}
  1915  			case err := <-sub.Err():
  1916  				return err
  1917  			case <-quit:
  1918  				return nil
  1919  			}
  1920  		}
  1921  	}), nil
  1922  }
  1923  
  1924  // ParseOwnershipTransferred is a log parse operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0.
  1925  //
  1926  // Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
  1927  func (_Ownable *OwnableFilterer) ParseOwnershipTransferred(log types.Log) (*OwnableOwnershipTransferred, error) {
  1928  	event := new(OwnableOwnershipTransferred)
  1929  	if err := _Ownable.contract.UnpackLog(event, "OwnershipTransferred", log); err != nil {
  1930  		return nil, err
  1931  	}
  1932  	return event, nil
  1933  }