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 }