2019-11-04 10:08:22 +00:00
// Code generated - DO NOT EDIT.
// This file is a generated binding and any manual changes will be lost.
package dnsregistrar
import (
"math/big"
"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"
)
// Reference imports to suppress errors if they are not otherwise used.
var (
_ = big . NewInt
_ = strings . NewReader
_ = ethereum . NotFound
_ = bind . Bind
_ = common . Big1
_ = types . BloomLookup
_ = event . NewSubscription
)
// ContractABI is the input ABI used to generate the binding from.
const ContractABI = "[{\"constant\":true,\"inputs\":[{\"name\":\"interfaceID\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"ens\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"oracle\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"name\",\"type\":\"bytes\"},{\"name\":\"proof\",\"type\":\"bytes\"}],\"name\":\"claim\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"name\",\"type\":\"bytes\"},{\"name\":\"input\",\"type\":\"bytes\"},{\"name\":\"proof\",\"type\":\"bytes\"}],\"name\":\"proveAndClaim\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"name\":\"_dnssec\",\"type\":\"address\"},{\"name\":\"_ens\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"node\",\"type\":\"bytes32\"},{\"indexed\":true,\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"dnsname\",\"type\":\"bytes\"}],\"name\":\"Claim\",\"type\":\"event\"}]"
// Contract is an auto generated Go binding around an Ethereum contract.
type Contract struct {
ContractCaller // Read-only binding to the contract
ContractTransactor // Write-only binding to the contract
ContractFilterer // Log filterer for contract events
}
// ContractCaller is an auto generated read-only Go binding around an Ethereum contract.
type ContractCaller struct {
contract * bind . BoundContract // Generic contract wrapper for the low level calls
}
// ContractTransactor is an auto generated write-only Go binding around an Ethereum contract.
type ContractTransactor struct {
contract * bind . BoundContract // Generic contract wrapper for the low level calls
}
// ContractFilterer is an auto generated log filtering Go binding around an Ethereum contract events.
type ContractFilterer struct {
contract * bind . BoundContract // Generic contract wrapper for the low level calls
}
// ContractSession is an auto generated Go binding around an Ethereum contract,
// with pre-set call and transact options.
type ContractSession struct {
Contract * Contract // 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
}
// ContractCallerSession is an auto generated read-only Go binding around an Ethereum contract,
// with pre-set call options.
type ContractCallerSession struct {
Contract * ContractCaller // Generic contract caller binding to set the session for
CallOpts bind . CallOpts // Call options to use throughout this session
}
// ContractTransactorSession is an auto generated write-only Go binding around an Ethereum contract,
// with pre-set transact options.
type ContractTransactorSession struct {
Contract * ContractTransactor // Generic contract transactor binding to set the session for
TransactOpts bind . TransactOpts // Transaction auth options to use throughout this session
}
// ContractRaw is an auto generated low-level Go binding around an Ethereum contract.
type ContractRaw struct {
Contract * Contract // Generic contract binding to access the raw methods on
}
// ContractCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract.
type ContractCallerRaw struct {
Contract * ContractCaller // Generic read-only contract binding to access the raw methods on
}
// ContractTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract.
type ContractTransactorRaw struct {
Contract * ContractTransactor // Generic write-only contract binding to access the raw methods on
}
// NewContract creates a new instance of Contract, bound to a specific deployed contract.
func NewContract ( address common . Address , backend bind . ContractBackend ) ( * Contract , error ) {
contract , err := bindContract ( address , backend , backend , backend )
if err != nil {
return nil , err
}
return & Contract { ContractCaller : ContractCaller { contract : contract } , ContractTransactor : ContractTransactor { contract : contract } , ContractFilterer : ContractFilterer { contract : contract } } , nil
}
// NewContractCaller creates a new read-only instance of Contract, bound to a specific deployed contract.
func NewContractCaller ( address common . Address , caller bind . ContractCaller ) ( * ContractCaller , error ) {
contract , err := bindContract ( address , caller , nil , nil )
if err != nil {
return nil , err
}
return & ContractCaller { contract : contract } , nil
}
// NewContractTransactor creates a new write-only instance of Contract, bound to a specific deployed contract.
func NewContractTransactor ( address common . Address , transactor bind . ContractTransactor ) ( * ContractTransactor , error ) {
contract , err := bindContract ( address , nil , transactor , nil )
if err != nil {
return nil , err
}
return & ContractTransactor { contract : contract } , nil
}
// NewContractFilterer creates a new log filterer instance of Contract, bound to a specific deployed contract.
func NewContractFilterer ( address common . Address , filterer bind . ContractFilterer ) ( * ContractFilterer , error ) {
contract , err := bindContract ( address , nil , nil , filterer )
if err != nil {
return nil , err
}
return & ContractFilterer { contract : contract } , nil
}
// bindContract binds a generic wrapper to an already deployed contract.
func bindContract ( address common . Address , caller bind . ContractCaller , transactor bind . ContractTransactor , filterer bind . ContractFilterer ) ( * bind . BoundContract , error ) {
parsed , err := abi . JSON ( strings . NewReader ( ContractABI ) )
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.
2021-06-28 06:53:50 +00:00
func ( _Contract * ContractRaw ) Call ( opts * bind . CallOpts , result * [ ] interface { } , method string , params ... interface { } ) error {
2019-11-04 10:08:22 +00:00
return _Contract . Contract . ContractCaller . 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 ( _Contract * ContractRaw ) Transfer ( opts * bind . TransactOpts ) ( * types . Transaction , error ) {
return _Contract . Contract . ContractTransactor . contract . Transfer ( opts )
}
// Transact invokes the (paid) contract method with params as input values.
func ( _Contract * ContractRaw ) Transact ( opts * bind . TransactOpts , method string , params ... interface { } ) ( * types . Transaction , error ) {
return _Contract . Contract . ContractTransactor . 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.
2021-06-28 06:53:50 +00:00
func ( _Contract * ContractCallerRaw ) Call ( opts * bind . CallOpts , result * [ ] interface { } , method string , params ... interface { } ) error {
2019-11-04 10:08:22 +00:00
return _Contract . 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 ( _Contract * ContractTransactorRaw ) Transfer ( opts * bind . TransactOpts ) ( * types . Transaction , error ) {
return _Contract . Contract . contract . Transfer ( opts )
}
// Transact invokes the (paid) contract method with params as input values.
func ( _Contract * ContractTransactorRaw ) Transact ( opts * bind . TransactOpts , method string , params ... interface { } ) ( * types . Transaction , error ) {
return _Contract . Contract . contract . Transact ( opts , method , params ... )
}
// Ens is a free data retrieval call binding the contract method 0x3f15457f.
//
2021-06-28 06:53:50 +00:00
// Solidity: function ens() view returns(address)
2019-11-04 10:08:22 +00:00
func ( _Contract * ContractCaller ) Ens ( opts * bind . CallOpts ) ( common . Address , error ) {
2021-06-28 06:53:50 +00:00
var out [ ] interface { }
err := _Contract . contract . Call ( opts , & out , "ens" )
if err != nil {
return * new ( common . Address ) , err
}
out0 := * abi . ConvertType ( out [ 0 ] , new ( common . Address ) ) . ( * common . Address )
return out0 , err
2019-11-04 10:08:22 +00:00
}
// Ens is a free data retrieval call binding the contract method 0x3f15457f.
//
2021-06-28 06:53:50 +00:00
// Solidity: function ens() view returns(address)
2019-11-04 10:08:22 +00:00
func ( _Contract * ContractSession ) Ens ( ) ( common . Address , error ) {
return _Contract . Contract . Ens ( & _Contract . CallOpts )
}
// Ens is a free data retrieval call binding the contract method 0x3f15457f.
//
2021-06-28 06:53:50 +00:00
// Solidity: function ens() view returns(address)
2019-11-04 10:08:22 +00:00
func ( _Contract * ContractCallerSession ) Ens ( ) ( common . Address , error ) {
return _Contract . Contract . Ens ( & _Contract . CallOpts )
}
// Oracle is a free data retrieval call binding the contract method 0x7dc0d1d0.
//
2021-06-28 06:53:50 +00:00
// Solidity: function oracle() view returns(address)
2019-11-04 10:08:22 +00:00
func ( _Contract * ContractCaller ) Oracle ( opts * bind . CallOpts ) ( common . Address , error ) {
2021-06-28 06:53:50 +00:00
var out [ ] interface { }
err := _Contract . contract . Call ( opts , & out , "oracle" )
if err != nil {
return * new ( common . Address ) , err
}
out0 := * abi . ConvertType ( out [ 0 ] , new ( common . Address ) ) . ( * common . Address )
return out0 , err
2019-11-04 10:08:22 +00:00
}
// Oracle is a free data retrieval call binding the contract method 0x7dc0d1d0.
//
2021-06-28 06:53:50 +00:00
// Solidity: function oracle() view returns(address)
2019-11-04 10:08:22 +00:00
func ( _Contract * ContractSession ) Oracle ( ) ( common . Address , error ) {
return _Contract . Contract . Oracle ( & _Contract . CallOpts )
}
// Oracle is a free data retrieval call binding the contract method 0x7dc0d1d0.
//
2021-06-28 06:53:50 +00:00
// Solidity: function oracle() view returns(address)
2019-11-04 10:08:22 +00:00
func ( _Contract * ContractCallerSession ) Oracle ( ) ( common . Address , error ) {
return _Contract . Contract . Oracle ( & _Contract . CallOpts )
}
// SupportsInterface is a free data retrieval call binding the contract method 0x01ffc9a7.
//
2021-06-28 06:53:50 +00:00
// Solidity: function supportsInterface(bytes4 interfaceID) pure returns(bool)
2019-11-04 10:08:22 +00:00
func ( _Contract * ContractCaller ) SupportsInterface ( opts * bind . CallOpts , interfaceID [ 4 ] byte ) ( bool , error ) {
2021-06-28 06:53:50 +00:00
var out [ ] interface { }
err := _Contract . contract . Call ( opts , & out , "supportsInterface" , interfaceID )
if err != nil {
return * new ( bool ) , err
}
out0 := * abi . ConvertType ( out [ 0 ] , new ( bool ) ) . ( * bool )
return out0 , err
2019-11-04 10:08:22 +00:00
}
// SupportsInterface is a free data retrieval call binding the contract method 0x01ffc9a7.
//
2021-06-28 06:53:50 +00:00
// Solidity: function supportsInterface(bytes4 interfaceID) pure returns(bool)
2019-11-04 10:08:22 +00:00
func ( _Contract * ContractSession ) SupportsInterface ( interfaceID [ 4 ] byte ) ( bool , error ) {
return _Contract . Contract . SupportsInterface ( & _Contract . CallOpts , interfaceID )
}
// SupportsInterface is a free data retrieval call binding the contract method 0x01ffc9a7.
//
2021-06-28 06:53:50 +00:00
// Solidity: function supportsInterface(bytes4 interfaceID) pure returns(bool)
2019-11-04 10:08:22 +00:00
func ( _Contract * ContractCallerSession ) SupportsInterface ( interfaceID [ 4 ] byte ) ( bool , error ) {
return _Contract . Contract . SupportsInterface ( & _Contract . CallOpts , interfaceID )
}
// Claim is a paid mutator transaction binding the contract method 0xbe27b22c.
//
// Solidity: function claim(bytes name, bytes proof) returns()
func ( _Contract * ContractTransactor ) Claim ( opts * bind . TransactOpts , name [ ] byte , proof [ ] byte ) ( * types . Transaction , error ) {
return _Contract . contract . Transact ( opts , "claim" , name , proof )
}
// Claim is a paid mutator transaction binding the contract method 0xbe27b22c.
//
// Solidity: function claim(bytes name, bytes proof) returns()
func ( _Contract * ContractSession ) Claim ( name [ ] byte , proof [ ] byte ) ( * types . Transaction , error ) {
return _Contract . Contract . Claim ( & _Contract . TransactOpts , name , proof )
}
// Claim is a paid mutator transaction binding the contract method 0xbe27b22c.
//
// Solidity: function claim(bytes name, bytes proof) returns()
func ( _Contract * ContractTransactorSession ) Claim ( name [ ] byte , proof [ ] byte ) ( * types . Transaction , error ) {
return _Contract . Contract . Claim ( & _Contract . TransactOpts , name , proof )
}
// ProveAndClaim is a paid mutator transaction binding the contract method 0xd94585bd.
//
// Solidity: function proveAndClaim(bytes name, bytes input, bytes proof) returns()
func ( _Contract * ContractTransactor ) ProveAndClaim ( opts * bind . TransactOpts , name [ ] byte , input [ ] byte , proof [ ] byte ) ( * types . Transaction , error ) {
return _Contract . contract . Transact ( opts , "proveAndClaim" , name , input , proof )
}
// ProveAndClaim is a paid mutator transaction binding the contract method 0xd94585bd.
//
// Solidity: function proveAndClaim(bytes name, bytes input, bytes proof) returns()
func ( _Contract * ContractSession ) ProveAndClaim ( name [ ] byte , input [ ] byte , proof [ ] byte ) ( * types . Transaction , error ) {
return _Contract . Contract . ProveAndClaim ( & _Contract . TransactOpts , name , input , proof )
}
// ProveAndClaim is a paid mutator transaction binding the contract method 0xd94585bd.
//
// Solidity: function proveAndClaim(bytes name, bytes input, bytes proof) returns()
func ( _Contract * ContractTransactorSession ) ProveAndClaim ( name [ ] byte , input [ ] byte , proof [ ] byte ) ( * types . Transaction , error ) {
return _Contract . Contract . ProveAndClaim ( & _Contract . TransactOpts , name , input , proof )
}
// ContractClaimIterator is returned from FilterClaim and is used to iterate over the raw logs and unpacked data for Claim events raised by the Contract contract.
type ContractClaimIterator struct {
Event * ContractClaim // 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 * ContractClaimIterator ) 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 ( ContractClaim )
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 ( ContractClaim )
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 * ContractClaimIterator ) Error ( ) error {
return it . fail
}
// Close terminates the iteration process, releasing any pending underlying
// resources.
func ( it * ContractClaimIterator ) Close ( ) error {
it . sub . Unsubscribe ( )
return nil
}
// ContractClaim represents a Claim event raised by the Contract contract.
type ContractClaim struct {
Node [ 32 ] byte
Owner common . Address
Dnsname [ ] byte
Raw types . Log // Blockchain specific contextual infos
}
// FilterClaim is a free log retrieval operation binding the contract event 0xa2e66ce20e6fb2c4f61339c364ad79f15160cf5307230c8bc4d628adbca2ba39.
//
// Solidity: event Claim(bytes32 indexed node, address indexed owner, bytes dnsname)
func ( _Contract * ContractFilterer ) FilterClaim ( opts * bind . FilterOpts , node [ ] [ 32 ] byte , owner [ ] common . Address ) ( * ContractClaimIterator , error ) {
var nodeRule [ ] interface { }
for _ , nodeItem := range node {
nodeRule = append ( nodeRule , nodeItem )
}
var ownerRule [ ] interface { }
for _ , ownerItem := range owner {
ownerRule = append ( ownerRule , ownerItem )
}
logs , sub , err := _Contract . contract . FilterLogs ( opts , "Claim" , nodeRule , ownerRule )
if err != nil {
return nil , err
}
return & ContractClaimIterator { contract : _Contract . contract , event : "Claim" , logs : logs , sub : sub } , nil
}
// WatchClaim is a free log subscription operation binding the contract event 0xa2e66ce20e6fb2c4f61339c364ad79f15160cf5307230c8bc4d628adbca2ba39.
//
// Solidity: event Claim(bytes32 indexed node, address indexed owner, bytes dnsname)
func ( _Contract * ContractFilterer ) WatchClaim ( opts * bind . WatchOpts , sink chan <- * ContractClaim , node [ ] [ 32 ] byte , owner [ ] common . Address ) ( event . Subscription , error ) {
var nodeRule [ ] interface { }
for _ , nodeItem := range node {
nodeRule = append ( nodeRule , nodeItem )
}
var ownerRule [ ] interface { }
for _ , ownerItem := range owner {
ownerRule = append ( ownerRule , ownerItem )
}
logs , sub , err := _Contract . contract . WatchLogs ( opts , "Claim" , nodeRule , ownerRule )
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 ( ContractClaim )
if err := _Contract . contract . UnpackLog ( event , "Claim" , 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
}
2021-06-28 06:53:50 +00:00
// ParseClaim is a log parse operation binding the contract event 0xa2e66ce20e6fb2c4f61339c364ad79f15160cf5307230c8bc4d628adbca2ba39.
//
// Solidity: event Claim(bytes32 indexed node, address indexed owner, bytes dnsname)
func ( _Contract * ContractFilterer ) ParseClaim ( log types . Log ) ( * ContractClaim , error ) {
event := new ( ContractClaim )
if err := _Contract . contract . UnpackLog ( event , "Claim" , log ) ; err != nil {
return nil , err
}
return event , nil
}