github.com/energicryptocurrency/go-energi@v1.1.7/energi/abi/HardforkRegistryV1.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 abi
     5  
     6  import (
     7  	"math/big"
     8  	"strings"
     9  
    10  	ethereum "github.com/energicryptocurrency/go-energi"
    11  	"github.com/energicryptocurrency/go-energi/accounts/abi"
    12  	"github.com/energicryptocurrency/go-energi/accounts/abi/bind"
    13  	"github.com/energicryptocurrency/go-energi/common"
    14  	"github.com/energicryptocurrency/go-energi/core/types"
    15  	"github.com/energicryptocurrency/go-energi/event"
    16  )
    17  
    18  // Reference imports to suppress errors if they are not otherwise used.
    19  var (
    20  	_ = big.NewInt
    21  	_ = strings.NewReader
    22  	_ = ethereum.NotFound
    23  	_ = abi.U256
    24  	_ = bind.Bind
    25  	_ = common.Big1
    26  	_ = types.BloomLookup
    27  	_ = event.NewSubscription
    28  )
    29  
    30  // HardforkRegistryV1ABI is the input ABI used to generate the binding from.
    31  const HardforkRegistryV1ABI = "[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_proxy\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_hf_signer\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_finalization_confirmations\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"name\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"block_number\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"sw_features\",\"type\":\"uint256\"}],\"name\":\"HardforkCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"name\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"block_number\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"block_hash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"sw_features\",\"type\":\"uint256\"}],\"name\":\"HardforkFinalized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"name\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"unindexed_name\",\"type\":\"bytes32\"}],\"name\":\"HardforkRemoved\",\"type\":\"event\"},{\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"name\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"block_number\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"sw_features\",\"type\":\"uint256\"}],\"name\":\"add\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"contractIGovernedContract\",\"name\":\"_newImpl\",\"type\":\"address\"}],\"name\":\"destroy\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"enumerate\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"enumerateActive\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"enumeratePending\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"name\",\"type\":\"bytes32\"}],\"name\":\"finalize\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"name\",\"type\":\"bytes32\"}],\"name\":\"get\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"block_number\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"block_hash\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"sw_features\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"hf_signer\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"name\",\"type\":\"bytes32\"}],\"name\":\"isActive\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"contractIGovernedContract\",\"name\":\"_oldImpl\",\"type\":\"address\"}],\"name\":\"migrate\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"proxy\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"name\",\"type\":\"bytes32\"}],\"name\":\"remove\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"v1storage\",\"outputs\":[{\"internalType\":\"contractStorageHardforkRegistryV1\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"}]"
    32  
    33  // HardforkRegistryV1Bin is the compiled bytecode used for deploying new contracts.
    34  const HardforkRegistryV1Bin = `60806040523480156200001157600080fd5b506040516200388538038062003885833981810160405260608110156200003757600080fd5b5080516020820151604090920151600080546001600160a01b0319166001600160a01b0384169081179091559192918390620000d557306103056040516200007f906200013c565b6001600160a01b03928316815291166020820152604080519182900301906000f080158015620000b3573d6000803e3d6000fd5b50600080546001600160a01b0319166001600160a01b03929092169190911790555b50604051620000e4906200014a565b604051809103906000f08015801562000101573d6000803e3d6000fd5b50600380546001600160a01b039283166001600160a01b03199182161790915560028054949092169316929092179091556004555062000158565b6112ea806200180783390190565b610d948062002af183390190565b61169f80620001686000396000f3fe6080604052600436106100d15760003560e01c8063a216cbe51161007f578063ce5494bb11610059578063ce5494bb14610342578063e1d6f43a14610382578063ec55688914610397578063ff9f78b3146103ac576100d1565b8063a216cbe514610292578063aa61604f146102a7578063ca89ad5f146102dd576100d1565b80638eaa6ac0116100b05780638eaa6ac0146101f657806392584d801461023e57806395bc267314610268576100d1565b8062f55d9d146101385780632d0593051461017a5780635c36901c146101b8575b604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600d60248201527f4e6f7420737570706f7274656400000000000000000000000000000000000000604482015290519081900360640190fd5b34801561014457600080fd5b506101786004803603602081101561015b57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166103c1565b005b34801561018657600080fd5b5061018f610469565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b3480156101c457600080fd5b506101e2600480360360208110156101db57600080fd5b5035610485565b604080519115158252519081900360200190f35b34801561020257600080fd5b506102206004803603602081101561021957600080fd5b503561054f565b60408051938452602084019290925282820152519081900360600190f35b34801561024a57600080fd5b506101786004803603602081101561026157600080fd5b5035610683565b34801561027457600080fd5b506101e26004803603602081101561028b57600080fd5b50356108a2565b34801561029e57600080fd5b5061018f610a1d565b3480156102b357600080fd5b50610178600480360360608110156102ca57600080fd5b5080359060208101359060400135610a39565b3480156102e957600080fd5b506102f2610bb9565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561032e578181015183820152602001610316565b505050509050019250505060405180910390f35b34801561034e57600080fd5b506101786004803603602081101561036557600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610eff565b34801561038e57600080fd5b506102f2610f91565b3480156103a357600080fd5b5061018f6112c9565b3480156103b857600080fd5b506102f26112e5565b60005473ffffffffffffffffffffffffffffffffffffffff16331461044757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f4e6f742070726f78790000000000000000000000000000000000000000000000604482015290519081900360640190fd5b6104508161143c565b8073ffffffffffffffffffffffffffffffffffffffff16ff5b60035473ffffffffffffffffffffffffffffffffffffffff1681565b600354604080517f1e914cfd0000000000000000000000000000000000000000000000000000000081526004810184905290516000928392839273ffffffffffffffffffffffffffffffffffffffff90921691631e914cfd91602480820192608092909190829003018186803b1580156104fe57600080fd5b505afa158015610512573d6000803e3d6000fd5b505050506040513d608081101561052857600080fd5b508051602090910151909250905043811180159061054557508115155b925050505b919050565b600354604080517f1e914cfd00000000000000000000000000000000000000000000000000000000815260048101849052905160009283928392839273ffffffffffffffffffffffffffffffffffffffff1691631e914cfd916024808301926080929190829003018186803b1580156105c757600080fd5b505afa1580156105db573d6000803e3d6000fd5b505050506040513d60808110156105f157600080fd5b5080516020820151604083015160609093015190965091945090925090508061067b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f6e6f2073756368206861726420666f726b000000000000000000000000000000604482015290519081900360640190fd5b509193909250565b60025473ffffffffffffffffffffffffffffffffffffffff166106a46114cb565b73ffffffffffffffffffffffffffffffffffffffff1614610710576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602f81526020018061163c602f913960400191505060405180910390fd5b60035460048054604080517fe9812d7100000000000000000000000000000000000000000000000000000000815292830185905260248301919091525173ffffffffffffffffffffffffffffffffffffffff9092169163e9812d719160448082019260009290919082900301818387803b15801561078d57600080fd5b505af11580156107a1573d6000803e3d6000fd5b5050600354604080517f1e914cfd00000000000000000000000000000000000000000000000000000000815260048101869052905160009450849350839273ffffffffffffffffffffffffffffffffffffffff1691631e914cfd916024808301926080929190829003018186803b15801561081b57600080fd5b505afa15801561082f573d6000803e3d6000fd5b505050506040513d608081101561084557600080fd5b50602080820151604080840151606094850151825184815294850182905284830181905291519297509550935086927f6dc459fd769bc8043e2a9bf76cf8ca708f41158bb7d40566a9f488a8fc6c87da928290030190a250505050565b60025460009073ffffffffffffffffffffffffffffffffffffffff166108c66114cb565b73ffffffffffffffffffffffffffffffffffffffff1614610932576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602f81526020018061163c602f913960400191505060405180910390fd5b600354604080517f95bc267300000000000000000000000000000000000000000000000000000000815260048101859052905173ffffffffffffffffffffffffffffffffffffffff909216916395bc2673916024808201926020929091908290030181600087803b1580156109a657600080fd5b505af11580156109ba573d6000803e3d6000fd5b505050506040513d60208110156109d057600080fd5b505115610a155760408051838152905183917f9e405a3cec329c3a3b1fce0ce501b60d6a7714e185d57047ab1d1970ba9f8fea919081900360200190a250600161054a565b506000919050565b60025473ffffffffffffffffffffffffffffffffffffffff1681565b60025473ffffffffffffffffffffffffffffffffffffffff16610a5a6114cb565b73ffffffffffffffffffffffffffffffffffffffff1614610ac6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602f81526020018061163c602f913960400191505060405180910390fd5b600354604080517f359c351d000000000000000000000000000000000000000000000000000000008152600481018690526024810185905260448101849052905173ffffffffffffffffffffffffffffffffffffffff9092169163359c351d916064808201926020929091908290030181600087803b158015610b4857600080fd5b505af1158015610b5c573d6000803e3d6000fd5b505050506040513d6020811015610b7257600080fd5b505115610bb4576040805183815260208101839052815185927f33bbb09eb0e71b49dacc2c0e0f73dd640a1314f0d08d5f8efa5c12eac770c4c3928290030190a25b505050565b606080600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632402c9826040518163ffffffff1660e01b815260040160006040518083038186803b158015610c2457600080fd5b505afa158015610c38573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682016040526020811015610c7f57600080fd5b8101908080516040519392919084640100000000821115610c9f57600080fd5b908301906020820185811115610cb457600080fd5b8251866020820283011164010000000082111715610cd157600080fd5b82525081516020918201928201910280838360005b83811015610cfe578181015183820152602001610ce6565b505050509190910160405250508251929350600091508190505b82811015610dd657600354845160009173ffffffffffffffffffffffffffffffffffffffff1690631e914cfd90879085908110610d5157fe5b60200260200101516040518263ffffffff1660e01b81526004018082815260200191505060806040518083038186803b158015610d8d57600080fd5b505afa158015610da1573d6000803e3d6000fd5b505050506040513d6080811015610db757600080fd5b5060200151905043811115610dcd576001909201915b50600101610d18565b50606081604051908082528060200260200182016040528015610e03578160200160208202803883390190505b5090506000805b84811015610ef357600354865160009173ffffffffffffffffffffffffffffffffffffffff1690631e914cfd90899085908110610e4357fe5b60200260200101516040518263ffffffff1660e01b81526004018082815260200191505060806040518083038186803b158015610e7f57600080fd5b505afa158015610e93573d6000803e3d6000fd5b505050506040513d6080811015610ea957600080fd5b5060200151905043811115610eea57868281518110610ec457fe5b6020026020010151848481518110610ed857fe5b60209081029190910101526001909201915b50600101610e0a565b50909450505050505b90565b60005473ffffffffffffffffffffffffffffffffffffffff163314610f8557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f4e6f742070726f78790000000000000000000000000000000000000000000000604482015290519081900360640190fd5b610f8e816114fa565b50565b606080600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632402c9826040518163ffffffff1660e01b815260040160006040518083038186803b158015610ffc57600080fd5b505afa158015611010573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201604052602081101561105757600080fd5b810190808051604051939291908464010000000082111561107757600080fd5b90830190602082018581111561108c57600080fd5b82518660208202830111640100000000821117156110a957600080fd5b82525081516020918201928201910280838360005b838110156110d65781810151838201526020016110be565b505050509190910160405250508251929350600091508190505b828110156111ad57600354845160009173ffffffffffffffffffffffffffffffffffffffff1690631e914cfd9087908590811061112957fe5b60200260200101516040518263ffffffff1660e01b81526004018082815260200191505060806040518083038186803b15801561116557600080fd5b505afa158015611179573d6000803e3d6000fd5b505050506040513d608081101561118f57600080fd5b506020015190504381116111a4576001909201915b506001016110f0565b506060816040519080825280602002602001820160405280156111da578160200160208202803883390190505b5090506000805b84811015610ef357600354865160009173ffffffffffffffffffffffffffffffffffffffff1690631e914cfd9089908590811061121a57fe5b60200260200101516040518263ffffffff1660e01b81526004018082815260200191505060806040518083038186803b15801561125657600080fd5b505afa15801561126a573d6000803e3d6000fd5b505050506040513d608081101561128057600080fd5b506020015190504381116112c05786828151811061129a57fe5b60200260200101518484815181106112ae57fe5b60209081029190910101526001909201915b506001016111e1565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600354604080517f2402c982000000000000000000000000000000000000000000000000000000008152905160609273ffffffffffffffffffffffffffffffffffffffff1691632402c982916004808301926000929190829003018186803b15801561135057600080fd5b505afa158015611364573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016820160405260208110156113ab57600080fd5b81019080805160405193929190846401000000008211156113cb57600080fd5b9083019060208201858111156113e057600080fd5b82518660208202830111640100000000821117156113fd57600080fd5b82525081516020918201928201910280838360005b8381101561142a578181015183820152602001611412565b50505050905001604052505050905090565b600354604080517f13af403500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8481166004830152915191909216916313af403591602480830192600092919082900301818387803b1580156114b057600080fd5b505af11580156114c4573d6000803e3d6000fd5b5050505050565b6000805473ffffffffffffffffffffffffffffffffffffffff163314156114f3575032610efc565b5033610efc565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166341c0e1b56040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561156457600080fd5b505af1158015611578573d6000803e3d6000fd5b5050505060008190508073ffffffffffffffffffffffffffffffffffffffff16632d0593056040518163ffffffff1660e01b815260040160206040518083038186803b1580156115c757600080fd5b505afa1580156115db573d6000803e3d6000fd5b505050506040513d60208110156115f157600080fd5b5051600380547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff909216919091179055505056fe6f6e6c792068665f7369676e657220697320616c6c6f77656420746f2063616c6c20746869732066756e6374696f6ea265627a7a7231582003216a73ccdd2ed880990ef9bc5cd4783e94552814ca97f2a59031d5fff917b064736f6c63430005100032608060405234801561001057600080fd5b506040516112ea3803806112ea8339818101604052604081101561003357600080fd5b508051602090910151600180546001600160a01b039384166001600160a01b031991821617909155600280549390921692169190911790556112708061007a6000396000f3fe6080604052600436106100c65760003560e01c80638abf607711610074578063ce5494bb1161004e578063ce5494bb14610179578063dd6a851d146103c1578063ec556889146103d6576100c6565b80638abf607714610307578063a1b0e4761461031c578063b364595e1461035c576100c6565b80635b6dee4c116100a55780635b6dee4c146102645780636d5b6c441461029d5780636fa09ab0146102dd576100c6565b8062f55d9d146101795780630900f010146101bb57806332e3a905146101fb575b32331461013457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f4f6e6c79206469726563742063616c6c732061726520616c6c6f776564210000604482015290519081900360640190fd5b60015460405173ffffffffffffffffffffffffffffffffffffffff909116903660008237600080368334866127105a03f13d6000833e808015610175573d83f35b3d83fd5b34801561018557600080fd5b506101b96004803603602081101561019c57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166103eb565b005b3480156101c757600080fd5b506101b9600480360360208110156101de57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610452565b34801561020757600080fd5b5061023b6004803603602081101561021e57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166108c5565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b61023b6004803603604081101561027a57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001356108ed565b3480156102a957600080fd5b5061023b600480360360208110156102c057600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610d84565b3480156102e957600080fd5b5061023b6004803603602081101561030057600080fd5b5035610daf565b34801561031357600080fd5b5061023b610de3565b34801561032857600080fd5b506101b96004803603602081101561033f57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610dff565b34801561036857600080fd5b50610371610fc3565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156103ad578181015183820152602001610395565b505050509050019250505060405180910390f35b3480156103cd57600080fd5b5061023b611077565b3480156103e257600080fd5b5061023b611093565b604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600860248201527f476f6f6420747279000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b600054156104c157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600760248201527f5265656e74727900000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b6001600081815573ffffffffffffffffffffffffffffffffffffffff808416825260036020526040909120549154918116911681141561056257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f416c726561647920616374697665210000000000000000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff81166105e457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f4e6f742072656769737465726564210000000000000000000000000000000000604482015290519081900360640190fd5b8173ffffffffffffffffffffffffffffffffffffffff16635051a5ec6040518163ffffffff1660e01b815260040160206040518083038186803b15801561062a57600080fd5b505afa15801561063e573d6000803e3d6000fd5b505050506040513d602081101561065457600080fd5b50516106c157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600d60248201527f4e6f742061636365707465642100000000000000000000000000000000000000604482015290519081900360640190fd5b600154604080517fce5494bb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff928316600482018190529151919284169163ce5494bb9160248082019260009290919082900301818387803b15801561073857600080fd5b505af115801561074c573d6000803e3d6000fd5b5050600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff868116918217909255604080517ef55d9d000000000000000000000000000000000000000000000000000000008152600481019290925251918516935062f55d9d925060248082019260009290919082900301818387803b1580156107ed57600080fd5b505af1158015610801573d6000803e3d6000fd5b5050505061080e83611097565b8273ffffffffffffffffffffffffffffffffffffffff166383197ef06040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561085657600080fd5b505af115801561086a573d6000803e3d6000fd5b50506040805173ffffffffffffffffffffffffffffffffffffffff8781168252915191861693507f5d611f318680d00598bb735d61bacf0c514c6b50e1e5ad30040a4df2b12791c7925081900360200190a250506000805550565b60036020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b600032331461095d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f4f6e6c79206469726563742063616c6c732061726520616c6c6f776564210000604482015290519081900360640190fd5b600054156109cc57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600760248201527f5265656e74727900000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b600160008190555473ffffffffffffffffffffffffffffffffffffffff84811691161415610a5b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f416c726561647920616374697665210000000000000000000000000000000000604482015290519081900360640190fd5b3073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1663ec5568896040518163ffffffff1660e01b8152600401602060405180830381600087803b158015610aba57600080fd5b505af1158015610ace573d6000803e3d6000fd5b505050506040513d6020811015610ae457600080fd5b505173ffffffffffffffffffffffffffffffffffffffff1614610b6857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f57726f6e672070726f7879210000000000000000000000000000000000000000604482015290519081900360640190fd5b600254604080517f8abf6077000000000000000000000000000000000000000000000000000000008152905160009273ffffffffffffffffffffffffffffffffffffffff1691638abf6077916004808301926020929190829003018186803b158015610bd357600080fd5b505afa158015610be7573d6000803e3d6000fd5b505050506040513d6020811015610bfd57600080fd5b5051604080517f62877ccd00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8781166004830152602482018790523360448301529151929350600092918416916362877ccd913491606480830192602092919082900301818588803b158015610c8457600080fd5b505af1158015610c98573d6000803e3d6000fd5b50505050506040513d6020811015610caf57600080fd5b505173ffffffffffffffffffffffffffffffffffffffff80821660008181526003602090815260408083208054958c167fffffffffffffffffffffffff000000000000000000000000000000000000000096871681179091556004805460018101825594527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b9093018054909516841790945583519283529251939450927f812eb2689eecf94cfb55caf4a123ea76c6d93eef07dd54a5273b7a4949f7d763929181900390910190a260008055949350505050565b73ffffffffffffffffffffffffffffffffffffffff9081166000908152600360205260409020541690565b60048181548110610dbc57fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff16905081565b60015473ffffffffffffffffffffffffffffffffffffffff1681565b60005415610e6e57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600760248201527f5265656e74727900000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b6001600090815573ffffffffffffffffffffffffffffffffffffffff808316825260036020526040909120541680610f0757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f4e6f742072656769737465726564210000000000000000000000000000000000604482015290519081900360640190fd5b8173ffffffffffffffffffffffffffffffffffffffff1663e52253816040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610f4f57600080fd5b505af1158015610f63573d6000803e3d6000fd5b50505073ffffffffffffffffffffffffffffffffffffffff8316600090815260036020526040902080547fffffffffffffffffffffffff000000000000000000000000000000000000000016905550610fbb82611097565b505060008055565b60045460408051828152602080840282010190915260609190818015610ff3578160200160208202803883390190505b50915060005b81811015611072576004818154811061100e57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683828151811061104557fe5b73ffffffffffffffffffffffffffffffffffffffff90921660209283029190910190910152600101610ff9565b505090565b60025473ffffffffffffffffffffffffffffffffffffffff1681565b3090565b73ffffffffffffffffffffffffffffffffffffffff8116600090815260036020526040812080547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055600454905b81811015611236578273ffffffffffffffffffffffffffffffffffffffff166004828154811061111357fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff16141561122e576004600183038154811061114b57fe5b6000918252602090912001546004805473ffffffffffffffffffffffffffffffffffffffff909216918390811061117e57fe5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060048054806111d157fe5b60008281526020902081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90810180547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055019055611236565b6001016110e7565b50505056fea265627a7a723158204304b03a5396fe82ee304678afd1117363d8bf64e4ea1478069ae0ce99c2319a64736f6c634300051000326080604052600080546001600160a01b03191633179055610d6f806100256000396000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c806341c0e1b51161005b57806341c0e1b51461019a57806368be0cdc146101a257806395bc2673146101d1578063e9812d71146101ee57610088565b806313af40351461008d5780631e914cfd146100c25780632402c98214610105578063359c351d1461015d575b600080fd5b6100c0600480360360208110156100a357600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610211565b005b6100df600480360360208110156100d857600080fd5b50356102de565b604080519485526020850193909352838301919091526060830152519081900360800190f35b61010d610307565b60408051602080825283518183015283519192839290830191858101910280838360005b83811015610149578181015183820152602001610131565b505050509050019250505060405180910390f35b6101866004803603606081101561017357600080fd5b50803590602081013590604001356103e6565b604080519115158252519081900360200190f35b6100c0610707565b6101bf600480360360208110156101b857600080fd5b5035610790565b60408051918252519081900360200190f35b610186600480360360208110156101e757600080fd5b50356107ae565b6100c06004803603604081101561020457600080fd5b5080359060200135610a9b565b60005473ffffffffffffffffffffffffffffffffffffffff16331461029757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600a60248201527f4e6f74206f776e65722100000000000000000000000000000000000000000000604482015290519081900360640190fd5b600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b600260208190526000918252604090912080546001820154928201546003909201549092919084565b60005460609073ffffffffffffffffffffffffffffffffffffffff16331461039057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600a60248201527f4e6f74206f776e65722100000000000000000000000000000000000000000000604482015290519081900360640190fd5b60018054806020026020016040519081016040528092919081815260200182805480156103dc57602002820191906000526020600020905b8154815260200190600101908083116103c8575b5050505050905090565b6000805473ffffffffffffffffffffffffffffffffffffffff16331461046d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600a60248201527f4e6f74206f776e65722100000000000000000000000000000000000000000000604482015290519081900360640190fd5b83806104da57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f48617264666f726b206e616d652063616e6e6f7420626520656d707479000000604482015290519081900360640190fd5b600081815260026020526040902080541561054b574381600101541161054b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180610ce9602e913960400191505060405180910390fd5b6002810154156105bc57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f48617264666f726b20697320616c72656164792066696e616c697a6564000000604482015290519081900360640190fd5b43851161062a57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f48617264666f726b20697320746f6f20736f6f6e000000000000000000000000604482015290519081900360640190fd5b6000868152600260205260409020805461067b5760018054808201825560008290527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60188905587825593506106f2565b438160010154116106ed57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f43616e6e6f74206d6f64696679206163746976652048617264666f726b000000604482015290519081900360640190fd5b600093505b60018101959095555050600390920155919050565b60005473ffffffffffffffffffffffffffffffffffffffff16331461078d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600a60248201527f4e6f74206f776e65722100000000000000000000000000000000000000000000604482015290519081900360640190fd5b33ff5b6001818154811061079d57fe5b600091825260209091200154905081565b6000805473ffffffffffffffffffffffffffffffffffffffff16331461083557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600a60248201527f4e6f74206f776e65722100000000000000000000000000000000000000000000604482015290519081900360640190fd5b81806108a257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f48617264666f726b206e616d652063616e6e6f7420626520656d707479000000604482015290519081900360640190fd5b60008181526002602052604090208054156109135743816001015411610913576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180610ce9602e913960400191505060405180910390fd5b60028101541561098457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f48617264666f726b20697320616c72656164792066696e616c697a6564000000604482015290519081900360640190fd5b6000805b600154811015610a925785600182815481106109a057fe5b90600052602060002001541415610a8a5760019150805b6001547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01811015610a1f57600181600101815481106109f357fe5b906000526020600020015460018281548110610a0b57fe5b6000918252602090912001556001016109b7565b506001805480610a2b57fe5b6000828152602080822083017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff908101839055909201909255878252600290819052604082208281556001810183905590810182905560030155610a92565b600101610988565b50949350505050565b60005473ffffffffffffffffffffffffffffffffffffffff163314610b2157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600a60248201527f4e6f74206f776e65722100000000000000000000000000000000000000000000604482015290519081900360640190fd5b60008281526002602052604090208054610b9c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f48617264666f726b20646f65736e277420657869737400000000000000000000604482015290519081900360640190fd5b818160010154014311610bfa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526024815260200180610d176024913960400191505060405180910390fd5b600281015415610c6b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f48617264666f726b20616c72656164792066696e616c697a6564000000000000604482015290519081900360640190fd5b60018101544060028201819055610ce357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f4e6f20626c6f636b206861736820746f2066696e616c697a6500000000000000604482015290519081900360640190fd5b50505056fe48617264666f726b20697320616c726561647920696e20656666656374206f7220646f65736e277420657869737448617264666f726b206e6f7420656c696769626c6520666f722066696e616c697a696e67a265627a7a7231582018d090681df59a55cd730d37932dccc30763f5b7be709602517d16c809a4292b64736f6c63430005100032`
    35  
    36  // DeployHardforkRegistryV1 deploys a new Ethereum contract, binding an instance of HardforkRegistryV1 to it.
    37  func DeployHardforkRegistryV1(auth *bind.TransactOpts, backend bind.ContractBackend, _proxy common.Address, _hf_signer common.Address, _finalization_confirmations *big.Int) (common.Address, *types.Transaction, *HardforkRegistryV1, error) {
    38  	parsed, err := abi.JSON(strings.NewReader(HardforkRegistryV1ABI))
    39  	if err != nil {
    40  		return common.Address{}, nil, nil, err
    41  	}
    42  	address, tx, contract, err := bind.DeployContract(auth, parsed, common.FromHex(HardforkRegistryV1Bin), backend, _proxy, _hf_signer, _finalization_confirmations)
    43  	if err != nil {
    44  		return common.Address{}, nil, nil, err
    45  	}
    46  	return address, tx, &HardforkRegistryV1{HardforkRegistryV1Caller: HardforkRegistryV1Caller{contract: contract}, HardforkRegistryV1Transactor: HardforkRegistryV1Transactor{contract: contract}, HardforkRegistryV1Filterer: HardforkRegistryV1Filterer{contract: contract}}, nil
    47  }
    48  
    49  // HardforkRegistryV1Bin is the compiled bytecode of contract after deployment.
    50  const HardforkRegistryV1RuntimeBin = `6080604052600436106100d15760003560e01c8063a216cbe51161007f578063ce5494bb11610059578063ce5494bb14610342578063e1d6f43a14610382578063ec55688914610397578063ff9f78b3146103ac576100d1565b8063a216cbe514610292578063aa61604f146102a7578063ca89ad5f146102dd576100d1565b80638eaa6ac0116100b05780638eaa6ac0146101f657806392584d801461023e57806395bc267314610268576100d1565b8062f55d9d146101385780632d0593051461017a5780635c36901c146101b8575b604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600d60248201527f4e6f7420737570706f7274656400000000000000000000000000000000000000604482015290519081900360640190fd5b34801561014457600080fd5b506101786004803603602081101561015b57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166103c1565b005b34801561018657600080fd5b5061018f610469565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b3480156101c457600080fd5b506101e2600480360360208110156101db57600080fd5b5035610485565b604080519115158252519081900360200190f35b34801561020257600080fd5b506102206004803603602081101561021957600080fd5b503561054f565b60408051938452602084019290925282820152519081900360600190f35b34801561024a57600080fd5b506101786004803603602081101561026157600080fd5b5035610683565b34801561027457600080fd5b506101e26004803603602081101561028b57600080fd5b50356108a2565b34801561029e57600080fd5b5061018f610a1d565b3480156102b357600080fd5b50610178600480360360608110156102ca57600080fd5b5080359060208101359060400135610a39565b3480156102e957600080fd5b506102f2610bb9565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561032e578181015183820152602001610316565b505050509050019250505060405180910390f35b34801561034e57600080fd5b506101786004803603602081101561036557600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610eff565b34801561038e57600080fd5b506102f2610f91565b3480156103a357600080fd5b5061018f6112c9565b3480156103b857600080fd5b506102f26112e5565b60005473ffffffffffffffffffffffffffffffffffffffff16331461044757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f4e6f742070726f78790000000000000000000000000000000000000000000000604482015290519081900360640190fd5b6104508161143c565b8073ffffffffffffffffffffffffffffffffffffffff16ff5b60035473ffffffffffffffffffffffffffffffffffffffff1681565b600354604080517f1e914cfd0000000000000000000000000000000000000000000000000000000081526004810184905290516000928392839273ffffffffffffffffffffffffffffffffffffffff90921691631e914cfd91602480820192608092909190829003018186803b1580156104fe57600080fd5b505afa158015610512573d6000803e3d6000fd5b505050506040513d608081101561052857600080fd5b508051602090910151909250905043811180159061054557508115155b925050505b919050565b600354604080517f1e914cfd00000000000000000000000000000000000000000000000000000000815260048101849052905160009283928392839273ffffffffffffffffffffffffffffffffffffffff1691631e914cfd916024808301926080929190829003018186803b1580156105c757600080fd5b505afa1580156105db573d6000803e3d6000fd5b505050506040513d60808110156105f157600080fd5b5080516020820151604083015160609093015190965091945090925090508061067b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f6e6f2073756368206861726420666f726b000000000000000000000000000000604482015290519081900360640190fd5b509193909250565b60025473ffffffffffffffffffffffffffffffffffffffff166106a46114cb565b73ffffffffffffffffffffffffffffffffffffffff1614610710576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602f81526020018061163c602f913960400191505060405180910390fd5b60035460048054604080517fe9812d7100000000000000000000000000000000000000000000000000000000815292830185905260248301919091525173ffffffffffffffffffffffffffffffffffffffff9092169163e9812d719160448082019260009290919082900301818387803b15801561078d57600080fd5b505af11580156107a1573d6000803e3d6000fd5b5050600354604080517f1e914cfd00000000000000000000000000000000000000000000000000000000815260048101869052905160009450849350839273ffffffffffffffffffffffffffffffffffffffff1691631e914cfd916024808301926080929190829003018186803b15801561081b57600080fd5b505afa15801561082f573d6000803e3d6000fd5b505050506040513d608081101561084557600080fd5b50602080820151604080840151606094850151825184815294850182905284830181905291519297509550935086927f6dc459fd769bc8043e2a9bf76cf8ca708f41158bb7d40566a9f488a8fc6c87da928290030190a250505050565b60025460009073ffffffffffffffffffffffffffffffffffffffff166108c66114cb565b73ffffffffffffffffffffffffffffffffffffffff1614610932576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602f81526020018061163c602f913960400191505060405180910390fd5b600354604080517f95bc267300000000000000000000000000000000000000000000000000000000815260048101859052905173ffffffffffffffffffffffffffffffffffffffff909216916395bc2673916024808201926020929091908290030181600087803b1580156109a657600080fd5b505af11580156109ba573d6000803e3d6000fd5b505050506040513d60208110156109d057600080fd5b505115610a155760408051838152905183917f9e405a3cec329c3a3b1fce0ce501b60d6a7714e185d57047ab1d1970ba9f8fea919081900360200190a250600161054a565b506000919050565b60025473ffffffffffffffffffffffffffffffffffffffff1681565b60025473ffffffffffffffffffffffffffffffffffffffff16610a5a6114cb565b73ffffffffffffffffffffffffffffffffffffffff1614610ac6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602f81526020018061163c602f913960400191505060405180910390fd5b600354604080517f359c351d000000000000000000000000000000000000000000000000000000008152600481018690526024810185905260448101849052905173ffffffffffffffffffffffffffffffffffffffff9092169163359c351d916064808201926020929091908290030181600087803b158015610b4857600080fd5b505af1158015610b5c573d6000803e3d6000fd5b505050506040513d6020811015610b7257600080fd5b505115610bb4576040805183815260208101839052815185927f33bbb09eb0e71b49dacc2c0e0f73dd640a1314f0d08d5f8efa5c12eac770c4c3928290030190a25b505050565b606080600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632402c9826040518163ffffffff1660e01b815260040160006040518083038186803b158015610c2457600080fd5b505afa158015610c38573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682016040526020811015610c7f57600080fd5b8101908080516040519392919084640100000000821115610c9f57600080fd5b908301906020820185811115610cb457600080fd5b8251866020820283011164010000000082111715610cd157600080fd5b82525081516020918201928201910280838360005b83811015610cfe578181015183820152602001610ce6565b505050509190910160405250508251929350600091508190505b82811015610dd657600354845160009173ffffffffffffffffffffffffffffffffffffffff1690631e914cfd90879085908110610d5157fe5b60200260200101516040518263ffffffff1660e01b81526004018082815260200191505060806040518083038186803b158015610d8d57600080fd5b505afa158015610da1573d6000803e3d6000fd5b505050506040513d6080811015610db757600080fd5b5060200151905043811115610dcd576001909201915b50600101610d18565b50606081604051908082528060200260200182016040528015610e03578160200160208202803883390190505b5090506000805b84811015610ef357600354865160009173ffffffffffffffffffffffffffffffffffffffff1690631e914cfd90899085908110610e4357fe5b60200260200101516040518263ffffffff1660e01b81526004018082815260200191505060806040518083038186803b158015610e7f57600080fd5b505afa158015610e93573d6000803e3d6000fd5b505050506040513d6080811015610ea957600080fd5b5060200151905043811115610eea57868281518110610ec457fe5b6020026020010151848481518110610ed857fe5b60209081029190910101526001909201915b50600101610e0a565b50909450505050505b90565b60005473ffffffffffffffffffffffffffffffffffffffff163314610f8557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f4e6f742070726f78790000000000000000000000000000000000000000000000604482015290519081900360640190fd5b610f8e816114fa565b50565b606080600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632402c9826040518163ffffffff1660e01b815260040160006040518083038186803b158015610ffc57600080fd5b505afa158015611010573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201604052602081101561105757600080fd5b810190808051604051939291908464010000000082111561107757600080fd5b90830190602082018581111561108c57600080fd5b82518660208202830111640100000000821117156110a957600080fd5b82525081516020918201928201910280838360005b838110156110d65781810151838201526020016110be565b505050509190910160405250508251929350600091508190505b828110156111ad57600354845160009173ffffffffffffffffffffffffffffffffffffffff1690631e914cfd9087908590811061112957fe5b60200260200101516040518263ffffffff1660e01b81526004018082815260200191505060806040518083038186803b15801561116557600080fd5b505afa158015611179573d6000803e3d6000fd5b505050506040513d608081101561118f57600080fd5b506020015190504381116111a4576001909201915b506001016110f0565b506060816040519080825280602002602001820160405280156111da578160200160208202803883390190505b5090506000805b84811015610ef357600354865160009173ffffffffffffffffffffffffffffffffffffffff1690631e914cfd9089908590811061121a57fe5b60200260200101516040518263ffffffff1660e01b81526004018082815260200191505060806040518083038186803b15801561125657600080fd5b505afa15801561126a573d6000803e3d6000fd5b505050506040513d608081101561128057600080fd5b506020015190504381116112c05786828151811061129a57fe5b60200260200101518484815181106112ae57fe5b60209081029190910101526001909201915b506001016111e1565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600354604080517f2402c982000000000000000000000000000000000000000000000000000000008152905160609273ffffffffffffffffffffffffffffffffffffffff1691632402c982916004808301926000929190829003018186803b15801561135057600080fd5b505afa158015611364573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016820160405260208110156113ab57600080fd5b81019080805160405193929190846401000000008211156113cb57600080fd5b9083019060208201858111156113e057600080fd5b82518660208202830111640100000000821117156113fd57600080fd5b82525081516020918201928201910280838360005b8381101561142a578181015183820152602001611412565b50505050905001604052505050905090565b600354604080517f13af403500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8481166004830152915191909216916313af403591602480830192600092919082900301818387803b1580156114b057600080fd5b505af11580156114c4573d6000803e3d6000fd5b5050505050565b6000805473ffffffffffffffffffffffffffffffffffffffff163314156114f3575032610efc565b5033610efc565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166341c0e1b56040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561156457600080fd5b505af1158015611578573d6000803e3d6000fd5b5050505060008190508073ffffffffffffffffffffffffffffffffffffffff16632d0593056040518163ffffffff1660e01b815260040160206040518083038186803b1580156115c757600080fd5b505afa1580156115db573d6000803e3d6000fd5b505050506040513d60208110156115f157600080fd5b5051600380547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff909216919091179055505056fe6f6e6c792068665f7369676e657220697320616c6c6f77656420746f2063616c6c20746869732066756e6374696f6ea265627a7a7231582003216a73ccdd2ed880990ef9bc5cd4783e94552814ca97f2a59031d5fff917b064736f6c63430005100032`
    51  
    52  // HardforkRegistryV1 is an auto generated Go binding around an Ethereum contract.
    53  type HardforkRegistryV1 struct {
    54  	HardforkRegistryV1Caller     // Read-only binding to the contract
    55  	HardforkRegistryV1Transactor // Write-only binding to the contract
    56  	HardforkRegistryV1Filterer   // Log filterer for contract events
    57  }
    58  
    59  // HardforkRegistryV1Caller is an auto generated read-only Go binding around an Ethereum contract.
    60  type HardforkRegistryV1Caller struct {
    61  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
    62  }
    63  
    64  // HardforkRegistryV1Transactor is an auto generated write-only Go binding around an Ethereum contract.
    65  type HardforkRegistryV1Transactor struct {
    66  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
    67  }
    68  
    69  // HardforkRegistryV1Filterer is an auto generated log filtering Go binding around an Ethereum contract events.
    70  type HardforkRegistryV1Filterer struct {
    71  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
    72  }
    73  
    74  // HardforkRegistryV1Session is an auto generated Go binding around an Ethereum contract,
    75  // with pre-set call and transact options.
    76  type HardforkRegistryV1Session struct {
    77  	Contract     *HardforkRegistryV1 // Generic contract binding to set the session for
    78  	CallOpts     bind.CallOpts       // Call options to use throughout this session
    79  	TransactOpts bind.TransactOpts   // Transaction auth options to use throughout this session
    80  }
    81  
    82  // HardforkRegistryV1CallerSession is an auto generated read-only Go binding around an Ethereum contract,
    83  // with pre-set call options.
    84  type HardforkRegistryV1CallerSession struct {
    85  	Contract *HardforkRegistryV1Caller // Generic contract caller binding to set the session for
    86  	CallOpts bind.CallOpts             // Call options to use throughout this session
    87  }
    88  
    89  // HardforkRegistryV1TransactorSession is an auto generated write-only Go binding around an Ethereum contract,
    90  // with pre-set transact options.
    91  type HardforkRegistryV1TransactorSession struct {
    92  	Contract     *HardforkRegistryV1Transactor // Generic contract transactor binding to set the session for
    93  	TransactOpts bind.TransactOpts             // Transaction auth options to use throughout this session
    94  }
    95  
    96  // HardforkRegistryV1Raw is an auto generated low-level Go binding around an Ethereum contract.
    97  type HardforkRegistryV1Raw struct {
    98  	Contract *HardforkRegistryV1 // Generic contract binding to access the raw methods on
    99  }
   100  
   101  // HardforkRegistryV1CallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract.
   102  type HardforkRegistryV1CallerRaw struct {
   103  	Contract *HardforkRegistryV1Caller // Generic read-only contract binding to access the raw methods on
   104  }
   105  
   106  // HardforkRegistryV1TransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract.
   107  type HardforkRegistryV1TransactorRaw struct {
   108  	Contract *HardforkRegistryV1Transactor // Generic write-only contract binding to access the raw methods on
   109  }
   110  
   111  // NewHardforkRegistryV1 creates a new instance of HardforkRegistryV1, bound to a specific deployed contract.
   112  func NewHardforkRegistryV1(address common.Address, backend bind.ContractBackend) (*HardforkRegistryV1, error) {
   113  	contract, err := bindHardforkRegistryV1(address, backend, backend, backend)
   114  	if err != nil {
   115  		return nil, err
   116  	}
   117  	return &HardforkRegistryV1{HardforkRegistryV1Caller: HardforkRegistryV1Caller{contract: contract}, HardforkRegistryV1Transactor: HardforkRegistryV1Transactor{contract: contract}, HardforkRegistryV1Filterer: HardforkRegistryV1Filterer{contract: contract}}, nil
   118  }
   119  
   120  // NewHardforkRegistryV1Caller creates a new read-only instance of HardforkRegistryV1, bound to a specific deployed contract.
   121  func NewHardforkRegistryV1Caller(address common.Address, caller bind.ContractCaller) (*HardforkRegistryV1Caller, error) {
   122  	contract, err := bindHardforkRegistryV1(address, caller, nil, nil)
   123  	if err != nil {
   124  		return nil, err
   125  	}
   126  	return &HardforkRegistryV1Caller{contract: contract}, nil
   127  }
   128  
   129  // NewHardforkRegistryV1Transactor creates a new write-only instance of HardforkRegistryV1, bound to a specific deployed contract.
   130  func NewHardforkRegistryV1Transactor(address common.Address, transactor bind.ContractTransactor) (*HardforkRegistryV1Transactor, error) {
   131  	contract, err := bindHardforkRegistryV1(address, nil, transactor, nil)
   132  	if err != nil {
   133  		return nil, err
   134  	}
   135  	return &HardforkRegistryV1Transactor{contract: contract}, nil
   136  }
   137  
   138  // NewHardforkRegistryV1Filterer creates a new log filterer instance of HardforkRegistryV1, bound to a specific deployed contract.
   139  func NewHardforkRegistryV1Filterer(address common.Address, filterer bind.ContractFilterer) (*HardforkRegistryV1Filterer, error) {
   140  	contract, err := bindHardforkRegistryV1(address, nil, nil, filterer)
   141  	if err != nil {
   142  		return nil, err
   143  	}
   144  	return &HardforkRegistryV1Filterer{contract: contract}, nil
   145  }
   146  
   147  // bindHardforkRegistryV1 binds a generic wrapper to an already deployed contract.
   148  func bindHardforkRegistryV1(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
   149  	parsed, err := abi.JSON(strings.NewReader(HardforkRegistryV1ABI))
   150  	if err != nil {
   151  		return nil, err
   152  	}
   153  	return bind.NewBoundContract(address, parsed, caller, transactor, filterer), nil
   154  }
   155  
   156  // Call invokes the (constant) contract method with params as input values and
   157  // sets the output to result. The result type might be a single field for simple
   158  // returns, a slice of interfaces for anonymous returns and a struct for named
   159  // returns.
   160  func (_HardforkRegistryV1 *HardforkRegistryV1Raw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error {
   161  	return _HardforkRegistryV1.Contract.HardforkRegistryV1Caller.contract.Call(opts, result, method, params...)
   162  }
   163  
   164  // Transfer initiates a plain transaction to move funds to the contract, calling
   165  // its default method if one is available.
   166  func (_HardforkRegistryV1 *HardforkRegistryV1Raw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
   167  	return _HardforkRegistryV1.Contract.HardforkRegistryV1Transactor.contract.Transfer(opts)
   168  }
   169  
   170  // Transact invokes the (paid) contract method with params as input values.
   171  func (_HardforkRegistryV1 *HardforkRegistryV1Raw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
   172  	return _HardforkRegistryV1.Contract.HardforkRegistryV1Transactor.contract.Transact(opts, method, params...)
   173  }
   174  
   175  // Call invokes the (constant) contract method with params as input values and
   176  // sets the output to result. The result type might be a single field for simple
   177  // returns, a slice of interfaces for anonymous returns and a struct for named
   178  // returns.
   179  func (_HardforkRegistryV1 *HardforkRegistryV1CallerRaw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error {
   180  	return _HardforkRegistryV1.Contract.contract.Call(opts, result, method, params...)
   181  }
   182  
   183  // Transfer initiates a plain transaction to move funds to the contract, calling
   184  // its default method if one is available.
   185  func (_HardforkRegistryV1 *HardforkRegistryV1TransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
   186  	return _HardforkRegistryV1.Contract.contract.Transfer(opts)
   187  }
   188  
   189  // Transact invokes the (paid) contract method with params as input values.
   190  func (_HardforkRegistryV1 *HardforkRegistryV1TransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
   191  	return _HardforkRegistryV1.Contract.contract.Transact(opts, method, params...)
   192  }
   193  
   194  // Enumerate is a free data retrieval call binding the contract method 0xff9f78b3.
   195  //
   196  // Solidity: function enumerate() constant returns(bytes32[])
   197  func (_HardforkRegistryV1 *HardforkRegistryV1Caller) Enumerate(opts *bind.CallOpts) ([][32]byte, error) {
   198  	var (
   199  		ret0 = new([][32]byte)
   200  	)
   201  	out := ret0
   202  	err := _HardforkRegistryV1.contract.Call(opts, out, "enumerate")
   203  	return *ret0, err
   204  }
   205  
   206  // Enumerate is a free data retrieval call binding the contract method 0xff9f78b3.
   207  //
   208  // Solidity: function enumerate() constant returns(bytes32[])
   209  func (_HardforkRegistryV1 *HardforkRegistryV1Session) Enumerate() ([][32]byte, error) {
   210  	return _HardforkRegistryV1.Contract.Enumerate(&_HardforkRegistryV1.CallOpts)
   211  }
   212  
   213  // Enumerate is a free data retrieval call binding the contract method 0xff9f78b3.
   214  //
   215  // Solidity: function enumerate() constant returns(bytes32[])
   216  func (_HardforkRegistryV1 *HardforkRegistryV1CallerSession) Enumerate() ([][32]byte, error) {
   217  	return _HardforkRegistryV1.Contract.Enumerate(&_HardforkRegistryV1.CallOpts)
   218  }
   219  
   220  // EnumerateActive is a free data retrieval call binding the contract method 0xe1d6f43a.
   221  //
   222  // Solidity: function enumerateActive() constant returns(bytes32[])
   223  func (_HardforkRegistryV1 *HardforkRegistryV1Caller) EnumerateActive(opts *bind.CallOpts) ([][32]byte, error) {
   224  	var (
   225  		ret0 = new([][32]byte)
   226  	)
   227  	out := ret0
   228  	err := _HardforkRegistryV1.contract.Call(opts, out, "enumerateActive")
   229  	return *ret0, err
   230  }
   231  
   232  // EnumerateActive is a free data retrieval call binding the contract method 0xe1d6f43a.
   233  //
   234  // Solidity: function enumerateActive() constant returns(bytes32[])
   235  func (_HardforkRegistryV1 *HardforkRegistryV1Session) EnumerateActive() ([][32]byte, error) {
   236  	return _HardforkRegistryV1.Contract.EnumerateActive(&_HardforkRegistryV1.CallOpts)
   237  }
   238  
   239  // EnumerateActive is a free data retrieval call binding the contract method 0xe1d6f43a.
   240  //
   241  // Solidity: function enumerateActive() constant returns(bytes32[])
   242  func (_HardforkRegistryV1 *HardforkRegistryV1CallerSession) EnumerateActive() ([][32]byte, error) {
   243  	return _HardforkRegistryV1.Contract.EnumerateActive(&_HardforkRegistryV1.CallOpts)
   244  }
   245  
   246  // EnumeratePending is a free data retrieval call binding the contract method 0xca89ad5f.
   247  //
   248  // Solidity: function enumeratePending() constant returns(bytes32[])
   249  func (_HardforkRegistryV1 *HardforkRegistryV1Caller) EnumeratePending(opts *bind.CallOpts) ([][32]byte, error) {
   250  	var (
   251  		ret0 = new([][32]byte)
   252  	)
   253  	out := ret0
   254  	err := _HardforkRegistryV1.contract.Call(opts, out, "enumeratePending")
   255  	return *ret0, err
   256  }
   257  
   258  // EnumeratePending is a free data retrieval call binding the contract method 0xca89ad5f.
   259  //
   260  // Solidity: function enumeratePending() constant returns(bytes32[])
   261  func (_HardforkRegistryV1 *HardforkRegistryV1Session) EnumeratePending() ([][32]byte, error) {
   262  	return _HardforkRegistryV1.Contract.EnumeratePending(&_HardforkRegistryV1.CallOpts)
   263  }
   264  
   265  // EnumeratePending is a free data retrieval call binding the contract method 0xca89ad5f.
   266  //
   267  // Solidity: function enumeratePending() constant returns(bytes32[])
   268  func (_HardforkRegistryV1 *HardforkRegistryV1CallerSession) EnumeratePending() ([][32]byte, error) {
   269  	return _HardforkRegistryV1.Contract.EnumeratePending(&_HardforkRegistryV1.CallOpts)
   270  }
   271  
   272  // Get is a free data retrieval call binding the contract method 0x8eaa6ac0.
   273  //
   274  // Solidity: function get(bytes32 name) constant returns(uint256 block_number, bytes32 block_hash, uint256 sw_features)
   275  func (_HardforkRegistryV1 *HardforkRegistryV1Caller) Get(opts *bind.CallOpts, name [32]byte) (struct {
   276  	BlockNumber *big.Int
   277  	BlockHash   [32]byte
   278  	SwFeatures  *big.Int
   279  }, error) {
   280  	ret := new(struct {
   281  		BlockNumber *big.Int
   282  		BlockHash   [32]byte
   283  		SwFeatures  *big.Int
   284  	})
   285  	out := ret
   286  	err := _HardforkRegistryV1.contract.Call(opts, out, "get", name)
   287  	return *ret, err
   288  }
   289  
   290  // Get is a free data retrieval call binding the contract method 0x8eaa6ac0.
   291  //
   292  // Solidity: function get(bytes32 name) constant returns(uint256 block_number, bytes32 block_hash, uint256 sw_features)
   293  func (_HardforkRegistryV1 *HardforkRegistryV1Session) Get(name [32]byte) (struct {
   294  	BlockNumber *big.Int
   295  	BlockHash   [32]byte
   296  	SwFeatures  *big.Int
   297  }, error) {
   298  	return _HardforkRegistryV1.Contract.Get(&_HardforkRegistryV1.CallOpts, name)
   299  }
   300  
   301  // Get is a free data retrieval call binding the contract method 0x8eaa6ac0.
   302  //
   303  // Solidity: function get(bytes32 name) constant returns(uint256 block_number, bytes32 block_hash, uint256 sw_features)
   304  func (_HardforkRegistryV1 *HardforkRegistryV1CallerSession) Get(name [32]byte) (struct {
   305  	BlockNumber *big.Int
   306  	BlockHash   [32]byte
   307  	SwFeatures  *big.Int
   308  }, error) {
   309  	return _HardforkRegistryV1.Contract.Get(&_HardforkRegistryV1.CallOpts, name)
   310  }
   311  
   312  // HfSigner is a free data retrieval call binding the contract method 0xa216cbe5.
   313  //
   314  // Solidity: function hf_signer() constant returns(address)
   315  func (_HardforkRegistryV1 *HardforkRegistryV1Caller) HfSigner(opts *bind.CallOpts) (common.Address, error) {
   316  	var (
   317  		ret0 = new(common.Address)
   318  	)
   319  	out := ret0
   320  	err := _HardforkRegistryV1.contract.Call(opts, out, "hf_signer")
   321  	return *ret0, err
   322  }
   323  
   324  // HfSigner is a free data retrieval call binding the contract method 0xa216cbe5.
   325  //
   326  // Solidity: function hf_signer() constant returns(address)
   327  func (_HardforkRegistryV1 *HardforkRegistryV1Session) HfSigner() (common.Address, error) {
   328  	return _HardforkRegistryV1.Contract.HfSigner(&_HardforkRegistryV1.CallOpts)
   329  }
   330  
   331  // HfSigner is a free data retrieval call binding the contract method 0xa216cbe5.
   332  //
   333  // Solidity: function hf_signer() constant returns(address)
   334  func (_HardforkRegistryV1 *HardforkRegistryV1CallerSession) HfSigner() (common.Address, error) {
   335  	return _HardforkRegistryV1.Contract.HfSigner(&_HardforkRegistryV1.CallOpts)
   336  }
   337  
   338  // IsActive is a free data retrieval call binding the contract method 0x5c36901c.
   339  //
   340  // Solidity: function isActive(bytes32 name) constant returns(bool)
   341  func (_HardforkRegistryV1 *HardforkRegistryV1Caller) IsActive(opts *bind.CallOpts, name [32]byte) (bool, error) {
   342  	var (
   343  		ret0 = new(bool)
   344  	)
   345  	out := ret0
   346  	err := _HardforkRegistryV1.contract.Call(opts, out, "isActive", name)
   347  	return *ret0, err
   348  }
   349  
   350  // IsActive is a free data retrieval call binding the contract method 0x5c36901c.
   351  //
   352  // Solidity: function isActive(bytes32 name) constant returns(bool)
   353  func (_HardforkRegistryV1 *HardforkRegistryV1Session) IsActive(name [32]byte) (bool, error) {
   354  	return _HardforkRegistryV1.Contract.IsActive(&_HardforkRegistryV1.CallOpts, name)
   355  }
   356  
   357  // IsActive is a free data retrieval call binding the contract method 0x5c36901c.
   358  //
   359  // Solidity: function isActive(bytes32 name) constant returns(bool)
   360  func (_HardforkRegistryV1 *HardforkRegistryV1CallerSession) IsActive(name [32]byte) (bool, error) {
   361  	return _HardforkRegistryV1.Contract.IsActive(&_HardforkRegistryV1.CallOpts, name)
   362  }
   363  
   364  // Proxy is a free data retrieval call binding the contract method 0xec556889.
   365  //
   366  // Solidity: function proxy() constant returns(address)
   367  func (_HardforkRegistryV1 *HardforkRegistryV1Caller) Proxy(opts *bind.CallOpts) (common.Address, error) {
   368  	var (
   369  		ret0 = new(common.Address)
   370  	)
   371  	out := ret0
   372  	err := _HardforkRegistryV1.contract.Call(opts, out, "proxy")
   373  	return *ret0, err
   374  }
   375  
   376  // Proxy is a free data retrieval call binding the contract method 0xec556889.
   377  //
   378  // Solidity: function proxy() constant returns(address)
   379  func (_HardforkRegistryV1 *HardforkRegistryV1Session) Proxy() (common.Address, error) {
   380  	return _HardforkRegistryV1.Contract.Proxy(&_HardforkRegistryV1.CallOpts)
   381  }
   382  
   383  // Proxy is a free data retrieval call binding the contract method 0xec556889.
   384  //
   385  // Solidity: function proxy() constant returns(address)
   386  func (_HardforkRegistryV1 *HardforkRegistryV1CallerSession) Proxy() (common.Address, error) {
   387  	return _HardforkRegistryV1.Contract.Proxy(&_HardforkRegistryV1.CallOpts)
   388  }
   389  
   390  // V1storage is a free data retrieval call binding the contract method 0x2d059305.
   391  //
   392  // Solidity: function v1storage() constant returns(address)
   393  func (_HardforkRegistryV1 *HardforkRegistryV1Caller) V1storage(opts *bind.CallOpts) (common.Address, error) {
   394  	var (
   395  		ret0 = new(common.Address)
   396  	)
   397  	out := ret0
   398  	err := _HardforkRegistryV1.contract.Call(opts, out, "v1storage")
   399  	return *ret0, err
   400  }
   401  
   402  // V1storage is a free data retrieval call binding the contract method 0x2d059305.
   403  //
   404  // Solidity: function v1storage() constant returns(address)
   405  func (_HardforkRegistryV1 *HardforkRegistryV1Session) V1storage() (common.Address, error) {
   406  	return _HardforkRegistryV1.Contract.V1storage(&_HardforkRegistryV1.CallOpts)
   407  }
   408  
   409  // V1storage is a free data retrieval call binding the contract method 0x2d059305.
   410  //
   411  // Solidity: function v1storage() constant returns(address)
   412  func (_HardforkRegistryV1 *HardforkRegistryV1CallerSession) V1storage() (common.Address, error) {
   413  	return _HardforkRegistryV1.Contract.V1storage(&_HardforkRegistryV1.CallOpts)
   414  }
   415  
   416  // Add is a paid mutator transaction binding the contract method 0xaa61604f.
   417  //
   418  // Solidity: function add(bytes32 name, uint256 block_number, uint256 sw_features) returns()
   419  func (_HardforkRegistryV1 *HardforkRegistryV1Transactor) Add(opts *bind.TransactOpts, name [32]byte, block_number *big.Int, sw_features *big.Int) (*types.Transaction, error) {
   420  	return _HardforkRegistryV1.contract.Transact(opts, "add", name, block_number, sw_features)
   421  }
   422  
   423  // Add is a paid mutator transaction binding the contract method 0xaa61604f.
   424  //
   425  // Solidity: function add(bytes32 name, uint256 block_number, uint256 sw_features) returns()
   426  func (_HardforkRegistryV1 *HardforkRegistryV1Session) Add(name [32]byte, block_number *big.Int, sw_features *big.Int) (*types.Transaction, error) {
   427  	return _HardforkRegistryV1.Contract.Add(&_HardforkRegistryV1.TransactOpts, name, block_number, sw_features)
   428  }
   429  
   430  // Add is a paid mutator transaction binding the contract method 0xaa61604f.
   431  //
   432  // Solidity: function add(bytes32 name, uint256 block_number, uint256 sw_features) returns()
   433  func (_HardforkRegistryV1 *HardforkRegistryV1TransactorSession) Add(name [32]byte, block_number *big.Int, sw_features *big.Int) (*types.Transaction, error) {
   434  	return _HardforkRegistryV1.Contract.Add(&_HardforkRegistryV1.TransactOpts, name, block_number, sw_features)
   435  }
   436  
   437  // Destroy is a paid mutator transaction binding the contract method 0x00f55d9d.
   438  //
   439  // Solidity: function destroy(address _newImpl) returns()
   440  func (_HardforkRegistryV1 *HardforkRegistryV1Transactor) Destroy(opts *bind.TransactOpts, _newImpl common.Address) (*types.Transaction, error) {
   441  	return _HardforkRegistryV1.contract.Transact(opts, "destroy", _newImpl)
   442  }
   443  
   444  // Destroy is a paid mutator transaction binding the contract method 0x00f55d9d.
   445  //
   446  // Solidity: function destroy(address _newImpl) returns()
   447  func (_HardforkRegistryV1 *HardforkRegistryV1Session) Destroy(_newImpl common.Address) (*types.Transaction, error) {
   448  	return _HardforkRegistryV1.Contract.Destroy(&_HardforkRegistryV1.TransactOpts, _newImpl)
   449  }
   450  
   451  // Destroy is a paid mutator transaction binding the contract method 0x00f55d9d.
   452  //
   453  // Solidity: function destroy(address _newImpl) returns()
   454  func (_HardforkRegistryV1 *HardforkRegistryV1TransactorSession) Destroy(_newImpl common.Address) (*types.Transaction, error) {
   455  	return _HardforkRegistryV1.Contract.Destroy(&_HardforkRegistryV1.TransactOpts, _newImpl)
   456  }
   457  
   458  // Finalize is a paid mutator transaction binding the contract method 0x92584d80.
   459  //
   460  // Solidity: function finalize(bytes32 name) returns()
   461  func (_HardforkRegistryV1 *HardforkRegistryV1Transactor) Finalize(opts *bind.TransactOpts, name [32]byte) (*types.Transaction, error) {
   462  	return _HardforkRegistryV1.contract.Transact(opts, "finalize", name)
   463  }
   464  
   465  // Finalize is a paid mutator transaction binding the contract method 0x92584d80.
   466  //
   467  // Solidity: function finalize(bytes32 name) returns()
   468  func (_HardforkRegistryV1 *HardforkRegistryV1Session) Finalize(name [32]byte) (*types.Transaction, error) {
   469  	return _HardforkRegistryV1.Contract.Finalize(&_HardforkRegistryV1.TransactOpts, name)
   470  }
   471  
   472  // Finalize is a paid mutator transaction binding the contract method 0x92584d80.
   473  //
   474  // Solidity: function finalize(bytes32 name) returns()
   475  func (_HardforkRegistryV1 *HardforkRegistryV1TransactorSession) Finalize(name [32]byte) (*types.Transaction, error) {
   476  	return _HardforkRegistryV1.Contract.Finalize(&_HardforkRegistryV1.TransactOpts, name)
   477  }
   478  
   479  // Migrate is a paid mutator transaction binding the contract method 0xce5494bb.
   480  //
   481  // Solidity: function migrate(address _oldImpl) returns()
   482  func (_HardforkRegistryV1 *HardforkRegistryV1Transactor) Migrate(opts *bind.TransactOpts, _oldImpl common.Address) (*types.Transaction, error) {
   483  	return _HardforkRegistryV1.contract.Transact(opts, "migrate", _oldImpl)
   484  }
   485  
   486  // Migrate is a paid mutator transaction binding the contract method 0xce5494bb.
   487  //
   488  // Solidity: function migrate(address _oldImpl) returns()
   489  func (_HardforkRegistryV1 *HardforkRegistryV1Session) Migrate(_oldImpl common.Address) (*types.Transaction, error) {
   490  	return _HardforkRegistryV1.Contract.Migrate(&_HardforkRegistryV1.TransactOpts, _oldImpl)
   491  }
   492  
   493  // Migrate is a paid mutator transaction binding the contract method 0xce5494bb.
   494  //
   495  // Solidity: function migrate(address _oldImpl) returns()
   496  func (_HardforkRegistryV1 *HardforkRegistryV1TransactorSession) Migrate(_oldImpl common.Address) (*types.Transaction, error) {
   497  	return _HardforkRegistryV1.Contract.Migrate(&_HardforkRegistryV1.TransactOpts, _oldImpl)
   498  }
   499  
   500  // Remove is a paid mutator transaction binding the contract method 0x95bc2673.
   501  //
   502  // Solidity: function remove(bytes32 name) returns(bool)
   503  func (_HardforkRegistryV1 *HardforkRegistryV1Transactor) Remove(opts *bind.TransactOpts, name [32]byte) (*types.Transaction, error) {
   504  	return _HardforkRegistryV1.contract.Transact(opts, "remove", name)
   505  }
   506  
   507  // Remove is a paid mutator transaction binding the contract method 0x95bc2673.
   508  //
   509  // Solidity: function remove(bytes32 name) returns(bool)
   510  func (_HardforkRegistryV1 *HardforkRegistryV1Session) Remove(name [32]byte) (*types.Transaction, error) {
   511  	return _HardforkRegistryV1.Contract.Remove(&_HardforkRegistryV1.TransactOpts, name)
   512  }
   513  
   514  // Remove is a paid mutator transaction binding the contract method 0x95bc2673.
   515  //
   516  // Solidity: function remove(bytes32 name) returns(bool)
   517  func (_HardforkRegistryV1 *HardforkRegistryV1TransactorSession) Remove(name [32]byte) (*types.Transaction, error) {
   518  	return _HardforkRegistryV1.Contract.Remove(&_HardforkRegistryV1.TransactOpts, name)
   519  }
   520  
   521  // HardforkRegistryV1HardforkCreatedIterator is returned from FilterHardforkCreated and is used to iterate over the raw logs and unpacked data for HardforkCreated events raised by the HardforkRegistryV1 contract.
   522  type HardforkRegistryV1HardforkCreatedIterator struct {
   523  	Event *HardforkRegistryV1HardforkCreated // Event containing the contract specifics and raw log
   524  
   525  	contract *bind.BoundContract // Generic contract to use for unpacking event data
   526  	event    string              // Event name to use for unpacking event data
   527  
   528  	logs chan types.Log        // Log channel receiving the found contract events
   529  	sub  ethereum.Subscription // Subscription for errors, completion and termination
   530  	done bool                  // Whether the subscription completed delivering logs
   531  	fail error                 // Occurred error to stop iteration
   532  }
   533  
   534  // Next advances the iterator to the subsequent event, returning whether there
   535  // are any more events found. In case of a retrieval or parsing error, false is
   536  // returned and Error() can be queried for the exact failure.
   537  func (it *HardforkRegistryV1HardforkCreatedIterator) Next() bool {
   538  	// If the iterator failed, stop iterating
   539  	if it.fail != nil {
   540  		return false
   541  	}
   542  	// If the iterator completed, deliver directly whatever's available
   543  	if it.done {
   544  		select {
   545  		case log := <-it.logs:
   546  			it.Event = new(HardforkRegistryV1HardforkCreated)
   547  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
   548  				it.fail = err
   549  				return false
   550  			}
   551  			it.Event.Raw = log
   552  			return true
   553  
   554  		default:
   555  			return false
   556  		}
   557  	}
   558  	// Iterator still in progress, wait for either a data or an error event
   559  	select {
   560  	case log := <-it.logs:
   561  		it.Event = new(HardforkRegistryV1HardforkCreated)
   562  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
   563  			it.fail = err
   564  			return false
   565  		}
   566  		it.Event.Raw = log
   567  		return true
   568  
   569  	case err := <-it.sub.Err():
   570  		it.done = true
   571  		it.fail = err
   572  		return it.Next()
   573  	}
   574  }
   575  
   576  // Error returns any retrieval or parsing error occurred during filtering.
   577  func (it *HardforkRegistryV1HardforkCreatedIterator) Error() error {
   578  	return it.fail
   579  }
   580  
   581  // Close terminates the iteration process, releasing any pending underlying
   582  // resources.
   583  func (it *HardforkRegistryV1HardforkCreatedIterator) Close() error {
   584  	it.sub.Unsubscribe()
   585  	return nil
   586  }
   587  
   588  // HardforkRegistryV1HardforkCreated represents a HardforkCreated event raised by the HardforkRegistryV1 contract.
   589  type HardforkRegistryV1HardforkCreated struct {
   590  	Name        [32]byte
   591  	BlockNumber *big.Int
   592  	SwFeatures  *big.Int
   593  	Raw         types.Log // Blockchain specific contextual infos
   594  }
   595  
   596  // FilterHardforkCreated is a free log retrieval operation binding the contract event 0x33bbb09eb0e71b49dacc2c0e0f73dd640a1314f0d08d5f8efa5c12eac770c4c3.
   597  //
   598  // Solidity: event HardforkCreated(bytes32 indexed name, uint256 block_number, uint256 sw_features)
   599  func (_HardforkRegistryV1 *HardforkRegistryV1Filterer) FilterHardforkCreated(opts *bind.FilterOpts, name [][32]byte) (*HardforkRegistryV1HardforkCreatedIterator, error) {
   600  
   601  	var nameRule []interface{}
   602  	for _, nameItem := range name {
   603  		nameRule = append(nameRule, nameItem)
   604  	}
   605  
   606  	logs, sub, err := _HardforkRegistryV1.contract.FilterLogs(opts, "HardforkCreated", nameRule)
   607  	if err != nil {
   608  		return nil, err
   609  	}
   610  	return &HardforkRegistryV1HardforkCreatedIterator{contract: _HardforkRegistryV1.contract, event: "HardforkCreated", logs: logs, sub: sub}, nil
   611  }
   612  
   613  // WatchHardforkCreated is a free log subscription operation binding the contract event 0x33bbb09eb0e71b49dacc2c0e0f73dd640a1314f0d08d5f8efa5c12eac770c4c3.
   614  //
   615  // Solidity: event HardforkCreated(bytes32 indexed name, uint256 block_number, uint256 sw_features)
   616  func (_HardforkRegistryV1 *HardforkRegistryV1Filterer) WatchHardforkCreated(opts *bind.WatchOpts, sink chan<- *HardforkRegistryV1HardforkCreated, name [][32]byte) (event.Subscription, error) {
   617  
   618  	var nameRule []interface{}
   619  	for _, nameItem := range name {
   620  		nameRule = append(nameRule, nameItem)
   621  	}
   622  
   623  	logs, sub, err := _HardforkRegistryV1.contract.WatchLogs(opts, "HardforkCreated", nameRule)
   624  	if err != nil {
   625  		return nil, err
   626  	}
   627  	return event.NewSubscription(func(quit <-chan struct{}) error {
   628  		defer sub.Unsubscribe()
   629  		for {
   630  			select {
   631  			case log := <-logs:
   632  				// New log arrived, parse the event and forward to the user
   633  				event := new(HardforkRegistryV1HardforkCreated)
   634  				if err := _HardforkRegistryV1.contract.UnpackLog(event, "HardforkCreated", log); err != nil {
   635  					return err
   636  				}
   637  				event.Raw = log
   638  
   639  				select {
   640  				case sink <- event:
   641  				case err := <-sub.Err():
   642  					return err
   643  				case <-quit:
   644  					return nil
   645  				}
   646  			case err := <-sub.Err():
   647  				return err
   648  			case <-quit:
   649  				return nil
   650  			}
   651  		}
   652  	}), nil
   653  }
   654  
   655  // HardforkRegistryV1HardforkFinalizedIterator is returned from FilterHardforkFinalized and is used to iterate over the raw logs and unpacked data for HardforkFinalized events raised by the HardforkRegistryV1 contract.
   656  type HardforkRegistryV1HardforkFinalizedIterator struct {
   657  	Event *HardforkRegistryV1HardforkFinalized // Event containing the contract specifics and raw log
   658  
   659  	contract *bind.BoundContract // Generic contract to use for unpacking event data
   660  	event    string              // Event name to use for unpacking event data
   661  
   662  	logs chan types.Log        // Log channel receiving the found contract events
   663  	sub  ethereum.Subscription // Subscription for errors, completion and termination
   664  	done bool                  // Whether the subscription completed delivering logs
   665  	fail error                 // Occurred error to stop iteration
   666  }
   667  
   668  // Next advances the iterator to the subsequent event, returning whether there
   669  // are any more events found. In case of a retrieval or parsing error, false is
   670  // returned and Error() can be queried for the exact failure.
   671  func (it *HardforkRegistryV1HardforkFinalizedIterator) Next() bool {
   672  	// If the iterator failed, stop iterating
   673  	if it.fail != nil {
   674  		return false
   675  	}
   676  	// If the iterator completed, deliver directly whatever's available
   677  	if it.done {
   678  		select {
   679  		case log := <-it.logs:
   680  			it.Event = new(HardforkRegistryV1HardforkFinalized)
   681  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
   682  				it.fail = err
   683  				return false
   684  			}
   685  			it.Event.Raw = log
   686  			return true
   687  
   688  		default:
   689  			return false
   690  		}
   691  	}
   692  	// Iterator still in progress, wait for either a data or an error event
   693  	select {
   694  	case log := <-it.logs:
   695  		it.Event = new(HardforkRegistryV1HardforkFinalized)
   696  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
   697  			it.fail = err
   698  			return false
   699  		}
   700  		it.Event.Raw = log
   701  		return true
   702  
   703  	case err := <-it.sub.Err():
   704  		it.done = true
   705  		it.fail = err
   706  		return it.Next()
   707  	}
   708  }
   709  
   710  // Error returns any retrieval or parsing error occurred during filtering.
   711  func (it *HardforkRegistryV1HardforkFinalizedIterator) Error() error {
   712  	return it.fail
   713  }
   714  
   715  // Close terminates the iteration process, releasing any pending underlying
   716  // resources.
   717  func (it *HardforkRegistryV1HardforkFinalizedIterator) Close() error {
   718  	it.sub.Unsubscribe()
   719  	return nil
   720  }
   721  
   722  // HardforkRegistryV1HardforkFinalized represents a HardforkFinalized event raised by the HardforkRegistryV1 contract.
   723  type HardforkRegistryV1HardforkFinalized struct {
   724  	Name        [32]byte
   725  	BlockNumber *big.Int
   726  	BlockHash   [32]byte
   727  	SwFeatures  *big.Int
   728  	Raw         types.Log // Blockchain specific contextual infos
   729  }
   730  
   731  // FilterHardforkFinalized is a free log retrieval operation binding the contract event 0x6dc459fd769bc8043e2a9bf76cf8ca708f41158bb7d40566a9f488a8fc6c87da.
   732  //
   733  // Solidity: event HardforkFinalized(bytes32 indexed name, uint256 block_number, bytes32 block_hash, uint256 sw_features)
   734  func (_HardforkRegistryV1 *HardforkRegistryV1Filterer) FilterHardforkFinalized(opts *bind.FilterOpts, name [][32]byte) (*HardforkRegistryV1HardforkFinalizedIterator, error) {
   735  
   736  	var nameRule []interface{}
   737  	for _, nameItem := range name {
   738  		nameRule = append(nameRule, nameItem)
   739  	}
   740  
   741  	logs, sub, err := _HardforkRegistryV1.contract.FilterLogs(opts, "HardforkFinalized", nameRule)
   742  	if err != nil {
   743  		return nil, err
   744  	}
   745  	return &HardforkRegistryV1HardforkFinalizedIterator{contract: _HardforkRegistryV1.contract, event: "HardforkFinalized", logs: logs, sub: sub}, nil
   746  }
   747  
   748  // WatchHardforkFinalized is a free log subscription operation binding the contract event 0x6dc459fd769bc8043e2a9bf76cf8ca708f41158bb7d40566a9f488a8fc6c87da.
   749  //
   750  // Solidity: event HardforkFinalized(bytes32 indexed name, uint256 block_number, bytes32 block_hash, uint256 sw_features)
   751  func (_HardforkRegistryV1 *HardforkRegistryV1Filterer) WatchHardforkFinalized(opts *bind.WatchOpts, sink chan<- *HardforkRegistryV1HardforkFinalized, name [][32]byte) (event.Subscription, error) {
   752  
   753  	var nameRule []interface{}
   754  	for _, nameItem := range name {
   755  		nameRule = append(nameRule, nameItem)
   756  	}
   757  
   758  	logs, sub, err := _HardforkRegistryV1.contract.WatchLogs(opts, "HardforkFinalized", nameRule)
   759  	if err != nil {
   760  		return nil, err
   761  	}
   762  	return event.NewSubscription(func(quit <-chan struct{}) error {
   763  		defer sub.Unsubscribe()
   764  		for {
   765  			select {
   766  			case log := <-logs:
   767  				// New log arrived, parse the event and forward to the user
   768  				event := new(HardforkRegistryV1HardforkFinalized)
   769  				if err := _HardforkRegistryV1.contract.UnpackLog(event, "HardforkFinalized", log); err != nil {
   770  					return err
   771  				}
   772  				event.Raw = log
   773  
   774  				select {
   775  				case sink <- event:
   776  				case err := <-sub.Err():
   777  					return err
   778  				case <-quit:
   779  					return nil
   780  				}
   781  			case err := <-sub.Err():
   782  				return err
   783  			case <-quit:
   784  				return nil
   785  			}
   786  		}
   787  	}), nil
   788  }
   789  
   790  // HardforkRegistryV1HardforkRemovedIterator is returned from FilterHardforkRemoved and is used to iterate over the raw logs and unpacked data for HardforkRemoved events raised by the HardforkRegistryV1 contract.
   791  type HardforkRegistryV1HardforkRemovedIterator struct {
   792  	Event *HardforkRegistryV1HardforkRemoved // Event containing the contract specifics and raw log
   793  
   794  	contract *bind.BoundContract // Generic contract to use for unpacking event data
   795  	event    string              // Event name to use for unpacking event data
   796  
   797  	logs chan types.Log        // Log channel receiving the found contract events
   798  	sub  ethereum.Subscription // Subscription for errors, completion and termination
   799  	done bool                  // Whether the subscription completed delivering logs
   800  	fail error                 // Occurred error to stop iteration
   801  }
   802  
   803  // Next advances the iterator to the subsequent event, returning whether there
   804  // are any more events found. In case of a retrieval or parsing error, false is
   805  // returned and Error() can be queried for the exact failure.
   806  func (it *HardforkRegistryV1HardforkRemovedIterator) Next() bool {
   807  	// If the iterator failed, stop iterating
   808  	if it.fail != nil {
   809  		return false
   810  	}
   811  	// If the iterator completed, deliver directly whatever's available
   812  	if it.done {
   813  		select {
   814  		case log := <-it.logs:
   815  			it.Event = new(HardforkRegistryV1HardforkRemoved)
   816  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
   817  				it.fail = err
   818  				return false
   819  			}
   820  			it.Event.Raw = log
   821  			return true
   822  
   823  		default:
   824  			return false
   825  		}
   826  	}
   827  	// Iterator still in progress, wait for either a data or an error event
   828  	select {
   829  	case log := <-it.logs:
   830  		it.Event = new(HardforkRegistryV1HardforkRemoved)
   831  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
   832  			it.fail = err
   833  			return false
   834  		}
   835  		it.Event.Raw = log
   836  		return true
   837  
   838  	case err := <-it.sub.Err():
   839  		it.done = true
   840  		it.fail = err
   841  		return it.Next()
   842  	}
   843  }
   844  
   845  // Error returns any retrieval or parsing error occurred during filtering.
   846  func (it *HardforkRegistryV1HardforkRemovedIterator) Error() error {
   847  	return it.fail
   848  }
   849  
   850  // Close terminates the iteration process, releasing any pending underlying
   851  // resources.
   852  func (it *HardforkRegistryV1HardforkRemovedIterator) Close() error {
   853  	it.sub.Unsubscribe()
   854  	return nil
   855  }
   856  
   857  // HardforkRegistryV1HardforkRemoved represents a HardforkRemoved event raised by the HardforkRegistryV1 contract.
   858  type HardforkRegistryV1HardforkRemoved struct {
   859  	Name          [32]byte
   860  	UnindexedName [32]byte
   861  	Raw           types.Log // Blockchain specific contextual infos
   862  }
   863  
   864  // FilterHardforkRemoved is a free log retrieval operation binding the contract event 0x9e405a3cec329c3a3b1fce0ce501b60d6a7714e185d57047ab1d1970ba9f8fea.
   865  //
   866  // Solidity: event HardforkRemoved(bytes32 indexed name, bytes32 unindexed_name)
   867  func (_HardforkRegistryV1 *HardforkRegistryV1Filterer) FilterHardforkRemoved(opts *bind.FilterOpts, name [][32]byte) (*HardforkRegistryV1HardforkRemovedIterator, error) {
   868  
   869  	var nameRule []interface{}
   870  	for _, nameItem := range name {
   871  		nameRule = append(nameRule, nameItem)
   872  	}
   873  
   874  	logs, sub, err := _HardforkRegistryV1.contract.FilterLogs(opts, "HardforkRemoved", nameRule)
   875  	if err != nil {
   876  		return nil, err
   877  	}
   878  	return &HardforkRegistryV1HardforkRemovedIterator{contract: _HardforkRegistryV1.contract, event: "HardforkRemoved", logs: logs, sub: sub}, nil
   879  }
   880  
   881  // WatchHardforkRemoved is a free log subscription operation binding the contract event 0x9e405a3cec329c3a3b1fce0ce501b60d6a7714e185d57047ab1d1970ba9f8fea.
   882  //
   883  // Solidity: event HardforkRemoved(bytes32 indexed name, bytes32 unindexed_name)
   884  func (_HardforkRegistryV1 *HardforkRegistryV1Filterer) WatchHardforkRemoved(opts *bind.WatchOpts, sink chan<- *HardforkRegistryV1HardforkRemoved, name [][32]byte) (event.Subscription, error) {
   885  
   886  	var nameRule []interface{}
   887  	for _, nameItem := range name {
   888  		nameRule = append(nameRule, nameItem)
   889  	}
   890  
   891  	logs, sub, err := _HardforkRegistryV1.contract.WatchLogs(opts, "HardforkRemoved", nameRule)
   892  	if err != nil {
   893  		return nil, err
   894  	}
   895  	return event.NewSubscription(func(quit <-chan struct{}) error {
   896  		defer sub.Unsubscribe()
   897  		for {
   898  			select {
   899  			case log := <-logs:
   900  				// New log arrived, parse the event and forward to the user
   901  				event := new(HardforkRegistryV1HardforkRemoved)
   902  				if err := _HardforkRegistryV1.contract.UnpackLog(event, "HardforkRemoved", log); err != nil {
   903  					return err
   904  				}
   905  				event.Raw = log
   906  
   907  				select {
   908  				case sink <- event:
   909  				case err := <-sub.Err():
   910  					return err
   911  				case <-quit:
   912  					return nil
   913  				}
   914  			case err := <-sub.Err():
   915  				return err
   916  			case <-quit:
   917  				return nil
   918  			}
   919  		}
   920  	}), nil
   921  }