status-go/mailserver/registry/registry.go

536 lines
24 KiB
Go

// Code generated - DO NOT EDIT.
// This file is a generated binding and any manual changes will be lost.
package registry
import (
"strings"
ethereum "github.com/ethereum/go-ethereum"
"github.com/ethereum/go-ethereum/accounts/abi"
"github.com/ethereum/go-ethereum/accounts/abi/bind"
"github.com/ethereum/go-ethereum/common"
"github.com/ethereum/go-ethereum/core/types"
"github.com/ethereum/go-ethereum/event"
)
// RegistryABI is the input ABI used to generate the binding from.
const RegistryABI = "[{\"constant\":false,\"inputs\":[{\"name\":\"_newController\",\"type\":\"address\"}],\"name\":\"changeController\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"a\",\"type\":\"bytes\"}],\"name\":\"remove\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"a\",\"type\":\"bytes\"}],\"name\":\"exists\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"a\",\"type\":\"bytes\"}],\"name\":\"add\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"controller\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"a\",\"type\":\"bytes\"}],\"name\":\"MailServerAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"a\",\"type\":\"bytes\"}],\"name\":\"MailServerRemoved\",\"type\":\"event\"}]"
// RegistryBin is the compiled bytecode used for deploying new contracts.
const RegistryBin = `6080604052336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610511806100536000396000f30060806040526004361061006d576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680633cebb8231461007257806358edef4c146100b557806379fc09a2146100f0578063ba65811114610143578063f77c47911461017e575b600080fd5b34801561007e57600080fd5b506100b3600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506101d5565b005b3480156100c157600080fd5b506100ee600480360381019080803590602001908201803590602001919091929391929390505050610273565b005b3480156100fc57600080fd5b50610129600480360381019080803590602001908201803590602001919091929391929390505050610396565b604051808215151515815260200191505060405180910390f35b34801561014f57600080fd5b5061017c6004803603810190808035906020019082018035906020019190919293919293905050506103d3565b005b34801561018a57600080fd5b506101936104c0565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561023057600080fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156102ce57600080fd5b6001828260405180838380828437820191505092505050908152602001604051809103902060009054906101000a900460ff16151561030c57600080fd5b6001828260405180838380828437820191505092505050908152602001604051809103902060006101000a81549060ff02191690557f44e7d85a87eeb950b8bdc144d44b0b474be610d1953607251a0130edc10a222b8282604051808060200182810382528484828181526020019250808284378201915050935050505060405180910390a15050565b60006001838360405180838380828437820191505092505050908152602001604051809103902060009054906101000a900460ff16905092915050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561042e57600080fd5b600180838360405180838380828437820191505092505050908152602001604051809103902060006101000a81548160ff0219169083151502179055507fcb379cb5890ec9889055734e1561cdc353a342d46d8d650c8c3a8d66383c29cd8282604051808060200182810382528484828181526020019250808284378201915050935050505060405180910390a15050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff16815600a165627a7a723058205234376a4ed154ce31a74225ac2258d6a4a82fd5fef967aaaf17c005c40b6f370029`
// DeployRegistry deploys a new Ethereum contract, binding an instance of Registry to it.
func DeployRegistry(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *types.Transaction, *Registry, error) {
parsed, err := abi.JSON(strings.NewReader(RegistryABI))
if err != nil {
return common.Address{}, nil, nil, err
}
address, tx, contract, err := bind.DeployContract(auth, parsed, common.FromHex(RegistryBin), backend)
if err != nil {
return common.Address{}, nil, nil, err
}
return address, tx, &Registry{RegistryCaller: RegistryCaller{contract: contract}, RegistryTransactor: RegistryTransactor{contract: contract}, RegistryFilterer: RegistryFilterer{contract: contract}}, nil
}
// Registry is an auto generated Go binding around an Ethereum contract.
type Registry struct {
RegistryCaller // Read-only binding to the contract
RegistryTransactor // Write-only binding to the contract
RegistryFilterer // Log filterer for contract events
}
// RegistryCaller is an auto generated read-only Go binding around an Ethereum contract.
type RegistryCaller struct {
contract *bind.BoundContract // Generic contract wrapper for the low level calls
}
// RegistryTransactor is an auto generated write-only Go binding around an Ethereum contract.
type RegistryTransactor struct {
contract *bind.BoundContract // Generic contract wrapper for the low level calls
}
// RegistryFilterer is an auto generated log filtering Go binding around an Ethereum contract events.
type RegistryFilterer struct {
contract *bind.BoundContract // Generic contract wrapper for the low level calls
}
// RegistrySession is an auto generated Go binding around an Ethereum contract,
// with pre-set call and transact options.
type RegistrySession struct {
Contract *Registry // Generic contract binding to set the session for
CallOpts bind.CallOpts // Call options to use throughout this session
TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
}
// RegistryCallerSession is an auto generated read-only Go binding around an Ethereum contract,
// with pre-set call options.
type RegistryCallerSession struct {
Contract *RegistryCaller // Generic contract caller binding to set the session for
CallOpts bind.CallOpts // Call options to use throughout this session
}
// RegistryTransactorSession is an auto generated write-only Go binding around an Ethereum contract,
// with pre-set transact options.
type RegistryTransactorSession struct {
Contract *RegistryTransactor // Generic contract transactor binding to set the session for
TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
}
// RegistryRaw is an auto generated low-level Go binding around an Ethereum contract.
type RegistryRaw struct {
Contract *Registry // Generic contract binding to access the raw methods on
}
// RegistryCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract.
type RegistryCallerRaw struct {
Contract *RegistryCaller // Generic read-only contract binding to access the raw methods on
}
// RegistryTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract.
type RegistryTransactorRaw struct {
Contract *RegistryTransactor // Generic write-only contract binding to access the raw methods on
}
// NewRegistry creates a new instance of Registry, bound to a specific deployed contract.
func NewRegistry(address common.Address, backend bind.ContractBackend) (*Registry, error) {
contract, err := bindRegistry(address, backend, backend, backend)
if err != nil {
return nil, err
}
return &Registry{RegistryCaller: RegistryCaller{contract: contract}, RegistryTransactor: RegistryTransactor{contract: contract}, RegistryFilterer: RegistryFilterer{contract: contract}}, nil
}
// NewRegistryCaller creates a new read-only instance of Registry, bound to a specific deployed contract.
func NewRegistryCaller(address common.Address, caller bind.ContractCaller) (*RegistryCaller, error) {
contract, err := bindRegistry(address, caller, nil, nil)
if err != nil {
return nil, err
}
return &RegistryCaller{contract: contract}, nil
}
// NewRegistryTransactor creates a new write-only instance of Registry, bound to a specific deployed contract.
func NewRegistryTransactor(address common.Address, transactor bind.ContractTransactor) (*RegistryTransactor, error) {
contract, err := bindRegistry(address, nil, transactor, nil)
if err != nil {
return nil, err
}
return &RegistryTransactor{contract: contract}, nil
}
// NewRegistryFilterer creates a new log filterer instance of Registry, bound to a specific deployed contract.
func NewRegistryFilterer(address common.Address, filterer bind.ContractFilterer) (*RegistryFilterer, error) {
contract, err := bindRegistry(address, nil, nil, filterer)
if err != nil {
return nil, err
}
return &RegistryFilterer{contract: contract}, nil
}
// bindRegistry binds a generic wrapper to an already deployed contract.
func bindRegistry(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
parsed, err := abi.JSON(strings.NewReader(RegistryABI))
if err != nil {
return nil, err
}
return bind.NewBoundContract(address, parsed, caller, transactor, filterer), nil
}
// Call invokes the (constant) contract method with params as input values and
// sets the output to result. The result type might be a single field for simple
// returns, a slice of interfaces for anonymous returns and a struct for named
// returns.
func (_Registry *RegistryRaw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error {
return _Registry.Contract.RegistryCaller.contract.Call(opts, result, method, params...)
}
// Transfer initiates a plain transaction to move funds to the contract, calling
// its default method if one is available.
func (_Registry *RegistryRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
return _Registry.Contract.RegistryTransactor.contract.Transfer(opts)
}
// Transact invokes the (paid) contract method with params as input values.
func (_Registry *RegistryRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
return _Registry.Contract.RegistryTransactor.contract.Transact(opts, method, params...)
}
// Call invokes the (constant) contract method with params as input values and
// sets the output to result. The result type might be a single field for simple
// returns, a slice of interfaces for anonymous returns and a struct for named
// returns.
func (_Registry *RegistryCallerRaw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error {
return _Registry.Contract.contract.Call(opts, result, method, params...)
}
// Transfer initiates a plain transaction to move funds to the contract, calling
// its default method if one is available.
func (_Registry *RegistryTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
return _Registry.Contract.contract.Transfer(opts)
}
// Transact invokes the (paid) contract method with params as input values.
func (_Registry *RegistryTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
return _Registry.Contract.contract.Transact(opts, method, params...)
}
// Controller is a free data retrieval call binding the contract method 0xf77c4791.
//
// Solidity: function controller() constant returns(address)
func (_Registry *RegistryCaller) Controller(opts *bind.CallOpts) (common.Address, error) {
var (
ret0 = new(common.Address)
)
out := ret0
err := _Registry.contract.Call(opts, out, "controller")
return *ret0, err
}
// Controller is a free data retrieval call binding the contract method 0xf77c4791.
//
// Solidity: function controller() constant returns(address)
func (_Registry *RegistrySession) Controller() (common.Address, error) {
return _Registry.Contract.Controller(&_Registry.CallOpts)
}
// Controller is a free data retrieval call binding the contract method 0xf77c4791.
//
// Solidity: function controller() constant returns(address)
func (_Registry *RegistryCallerSession) Controller() (common.Address, error) {
return _Registry.Contract.Controller(&_Registry.CallOpts)
}
// Exists is a free data retrieval call binding the contract method 0x79fc09a2.
//
// Solidity: function exists(a bytes) constant returns(bool)
func (_Registry *RegistryCaller) Exists(opts *bind.CallOpts, a []byte) (bool, error) {
var (
ret0 = new(bool)
)
out := ret0
err := _Registry.contract.Call(opts, out, "exists", a)
return *ret0, err
}
// Exists is a free data retrieval call binding the contract method 0x79fc09a2.
//
// Solidity: function exists(a bytes) constant returns(bool)
func (_Registry *RegistrySession) Exists(a []byte) (bool, error) {
return _Registry.Contract.Exists(&_Registry.CallOpts, a)
}
// Exists is a free data retrieval call binding the contract method 0x79fc09a2.
//
// Solidity: function exists(a bytes) constant returns(bool)
func (_Registry *RegistryCallerSession) Exists(a []byte) (bool, error) {
return _Registry.Contract.Exists(&_Registry.CallOpts, a)
}
// Add is a paid mutator transaction binding the contract method 0xba658111.
//
// Solidity: function add(a bytes) returns()
func (_Registry *RegistryTransactor) Add(opts *bind.TransactOpts, a []byte) (*types.Transaction, error) {
return _Registry.contract.Transact(opts, "add", a)
}
// Add is a paid mutator transaction binding the contract method 0xba658111.
//
// Solidity: function add(a bytes) returns()
func (_Registry *RegistrySession) Add(a []byte) (*types.Transaction, error) {
return _Registry.Contract.Add(&_Registry.TransactOpts, a)
}
// Add is a paid mutator transaction binding the contract method 0xba658111.
//
// Solidity: function add(a bytes) returns()
func (_Registry *RegistryTransactorSession) Add(a []byte) (*types.Transaction, error) {
return _Registry.Contract.Add(&_Registry.TransactOpts, a)
}
// ChangeController is a paid mutator transaction binding the contract method 0x3cebb823.
//
// Solidity: function changeController(_newController address) returns()
func (_Registry *RegistryTransactor) ChangeController(opts *bind.TransactOpts, _newController common.Address) (*types.Transaction, error) {
return _Registry.contract.Transact(opts, "changeController", _newController)
}
// ChangeController is a paid mutator transaction binding the contract method 0x3cebb823.
//
// Solidity: function changeController(_newController address) returns()
func (_Registry *RegistrySession) ChangeController(_newController common.Address) (*types.Transaction, error) {
return _Registry.Contract.ChangeController(&_Registry.TransactOpts, _newController)
}
// ChangeController is a paid mutator transaction binding the contract method 0x3cebb823.
//
// Solidity: function changeController(_newController address) returns()
func (_Registry *RegistryTransactorSession) ChangeController(_newController common.Address) (*types.Transaction, error) {
return _Registry.Contract.ChangeController(&_Registry.TransactOpts, _newController)
}
// Remove is a paid mutator transaction binding the contract method 0x58edef4c.
//
// Solidity: function remove(a bytes) returns()
func (_Registry *RegistryTransactor) Remove(opts *bind.TransactOpts, a []byte) (*types.Transaction, error) {
return _Registry.contract.Transact(opts, "remove", a)
}
// Remove is a paid mutator transaction binding the contract method 0x58edef4c.
//
// Solidity: function remove(a bytes) returns()
func (_Registry *RegistrySession) Remove(a []byte) (*types.Transaction, error) {
return _Registry.Contract.Remove(&_Registry.TransactOpts, a)
}
// Remove is a paid mutator transaction binding the contract method 0x58edef4c.
//
// Solidity: function remove(a bytes) returns()
func (_Registry *RegistryTransactorSession) Remove(a []byte) (*types.Transaction, error) {
return _Registry.Contract.Remove(&_Registry.TransactOpts, a)
}
// RegistryMailServerAddedIterator is returned from FilterMailServerAdded and is used to iterate over the raw logs and unpacked data for MailServerAdded events raised by the Registry contract.
type RegistryMailServerAddedIterator struct {
Event *RegistryMailServerAdded // Event containing the contract specifics and raw log
contract *bind.BoundContract // Generic contract to use for unpacking event data
event string // Event name to use for unpacking event data
logs chan types.Log // Log channel receiving the found contract events
sub ethereum.Subscription // Subscription for errors, completion and termination
done bool // Whether the subscription completed delivering logs
fail error // Occurred error to stop iteration
}
// Next advances the iterator to the subsequent event, returning whether there
// are any more events found. In case of a retrieval or parsing error, false is
// returned and Error() can be queried for the exact failure.
func (it *RegistryMailServerAddedIterator) Next() bool {
// If the iterator failed, stop iterating
if it.fail != nil {
return false
}
// If the iterator completed, deliver directly whatever's available
if it.done {
select {
case log := <-it.logs:
it.Event = new(RegistryMailServerAdded)
if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
it.fail = err
return false
}
it.Event.Raw = log
return true
default:
return false
}
}
// Iterator still in progress, wait for either a data or an error event
select {
case log := <-it.logs:
it.Event = new(RegistryMailServerAdded)
if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
it.fail = err
return false
}
it.Event.Raw = log
return true
case err := <-it.sub.Err():
it.done = true
it.fail = err
return it.Next()
}
}
// Error returns any retrieval or parsing error occurred during filtering.
func (it *RegistryMailServerAddedIterator) Error() error {
return it.fail
}
// Close terminates the iteration process, releasing any pending underlying
// resources.
func (it *RegistryMailServerAddedIterator) Close() error {
it.sub.Unsubscribe()
return nil
}
// RegistryMailServerAdded represents a MailServerAdded event raised by the Registry contract.
type RegistryMailServerAdded struct {
A []byte
Raw types.Log // Blockchain specific contextual infos
}
// FilterMailServerAdded is a free log retrieval operation binding the contract event 0xcb379cb5890ec9889055734e1561cdc353a342d46d8d650c8c3a8d66383c29cd.
//
// Solidity: e MailServerAdded(a bytes)
func (_Registry *RegistryFilterer) FilterMailServerAdded(opts *bind.FilterOpts) (*RegistryMailServerAddedIterator, error) {
logs, sub, err := _Registry.contract.FilterLogs(opts, "MailServerAdded")
if err != nil {
return nil, err
}
return &RegistryMailServerAddedIterator{contract: _Registry.contract, event: "MailServerAdded", logs: logs, sub: sub}, nil
}
// WatchMailServerAdded is a free log subscription operation binding the contract event 0xcb379cb5890ec9889055734e1561cdc353a342d46d8d650c8c3a8d66383c29cd.
//
// Solidity: e MailServerAdded(a bytes)
func (_Registry *RegistryFilterer) WatchMailServerAdded(opts *bind.WatchOpts, sink chan<- *RegistryMailServerAdded) (event.Subscription, error) {
logs, sub, err := _Registry.contract.WatchLogs(opts, "MailServerAdded")
if err != nil {
return nil, err
}
return event.NewSubscription(func(quit <-chan struct{}) error {
defer sub.Unsubscribe()
for {
select {
case log := <-logs:
// New log arrived, parse the event and forward to the user
event := new(RegistryMailServerAdded)
if err := _Registry.contract.UnpackLog(event, "MailServerAdded", log); err != nil {
return err
}
event.Raw = log
select {
case sink <- event:
case err := <-sub.Err():
return err
case <-quit:
return nil
}
case err := <-sub.Err():
return err
case <-quit:
return nil
}
}
}), nil
}
// RegistryMailServerRemovedIterator is returned from FilterMailServerRemoved and is used to iterate over the raw logs and unpacked data for MailServerRemoved events raised by the Registry contract.
type RegistryMailServerRemovedIterator struct {
Event *RegistryMailServerRemoved // Event containing the contract specifics and raw log
contract *bind.BoundContract // Generic contract to use for unpacking event data
event string // Event name to use for unpacking event data
logs chan types.Log // Log channel receiving the found contract events
sub ethereum.Subscription // Subscription for errors, completion and termination
done bool // Whether the subscription completed delivering logs
fail error // Occurred error to stop iteration
}
// Next advances the iterator to the subsequent event, returning whether there
// are any more events found. In case of a retrieval or parsing error, false is
// returned and Error() can be queried for the exact failure.
func (it *RegistryMailServerRemovedIterator) Next() bool {
// If the iterator failed, stop iterating
if it.fail != nil {
return false
}
// If the iterator completed, deliver directly whatever's available
if it.done {
select {
case log := <-it.logs:
it.Event = new(RegistryMailServerRemoved)
if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
it.fail = err
return false
}
it.Event.Raw = log
return true
default:
return false
}
}
// Iterator still in progress, wait for either a data or an error event
select {
case log := <-it.logs:
it.Event = new(RegistryMailServerRemoved)
if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
it.fail = err
return false
}
it.Event.Raw = log
return true
case err := <-it.sub.Err():
it.done = true
it.fail = err
return it.Next()
}
}
// Error returns any retrieval or parsing error occurred during filtering.
func (it *RegistryMailServerRemovedIterator) Error() error {
return it.fail
}
// Close terminates the iteration process, releasing any pending underlying
// resources.
func (it *RegistryMailServerRemovedIterator) Close() error {
it.sub.Unsubscribe()
return nil
}
// RegistryMailServerRemoved represents a MailServerRemoved event raised by the Registry contract.
type RegistryMailServerRemoved struct {
A []byte
Raw types.Log // Blockchain specific contextual infos
}
// FilterMailServerRemoved is a free log retrieval operation binding the contract event 0x44e7d85a87eeb950b8bdc144d44b0b474be610d1953607251a0130edc10a222b.
//
// Solidity: e MailServerRemoved(a bytes)
func (_Registry *RegistryFilterer) FilterMailServerRemoved(opts *bind.FilterOpts) (*RegistryMailServerRemovedIterator, error) {
logs, sub, err := _Registry.contract.FilterLogs(opts, "MailServerRemoved")
if err != nil {
return nil, err
}
return &RegistryMailServerRemovedIterator{contract: _Registry.contract, event: "MailServerRemoved", logs: logs, sub: sub}, nil
}
// WatchMailServerRemoved is a free log subscription operation binding the contract event 0x44e7d85a87eeb950b8bdc144d44b0b474be610d1953607251a0130edc10a222b.
//
// Solidity: e MailServerRemoved(a bytes)
func (_Registry *RegistryFilterer) WatchMailServerRemoved(opts *bind.WatchOpts, sink chan<- *RegistryMailServerRemoved) (event.Subscription, error) {
logs, sub, err := _Registry.contract.WatchLogs(opts, "MailServerRemoved")
if err != nil {
return nil, err
}
return event.NewSubscription(func(quit <-chan struct{}) error {
defer sub.Unsubscribe()
for {
select {
case log := <-logs:
// New log arrived, parse the event and forward to the user
event := new(RegistryMailServerRemoved)
if err := _Registry.contract.UnpackLog(event, "MailServerRemoved", log); err != nil {
return err
}
event.Raw = log
select {
case sink <- event:
case err := <-sub.Err():
return err
case <-quit:
return nil
}
case err := <-sub.Err():
return err
case <-quit:
return nil
}
}
}), nil
}