github.com/linapex/ethereum-dpos-chinese@v0.0.0-20190316121959-b78b3a4a1ece/contracts/ens/contract/ens.go (about)

     1  
     2  //<developer>
     3  //    <name>linapex 曹一峰</name>
     4  //    <email>linapex@163.com</email>
     5  //    <wx>superexc</wx>
     6  //    <qqgroup>128148617</qqgroup>
     7  //    <url>https://jsq.ink</url>
     8  //    <role>pku engineer</role>
     9  //    <date>2019-03-16 12:09:33</date>
    10  //</624342613549387776>
    11  
    12  //代码生成-不要编辑。
    13  //此文件是生成的绑定,任何手动更改都将丢失。
    14  
    15  package contract
    16  
    17  import (
    18  	"strings"
    19  
    20  	ethereum "github.com/ethereum/go-ethereum"
    21  	"github.com/ethereum/go-ethereum/accounts/abi"
    22  	"github.com/ethereum/go-ethereum/accounts/abi/bind"
    23  	"github.com/ethereum/go-ethereum/common"
    24  	"github.com/ethereum/go-ethereum/core/types"
    25  	"github.com/ethereum/go-ethereum/event"
    26  )
    27  
    28  //ensabi是用于从中生成绑定的输入abi。
    29  const ENSABI = "[{\"constant\":true,\"inputs\":[{\"name\":\"node\",\"type\":\"bytes32\"}],\"name\":\"resolver\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"node\",\"type\":\"bytes32\"}],\"name\":\"owner\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"node\",\"type\":\"bytes32\"},{\"name\":\"label\",\"type\":\"bytes32\"},{\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"setSubnodeOwner\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"node\",\"type\":\"bytes32\"},{\"name\":\"ttl\",\"type\":\"uint64\"}],\"name\":\"setTTL\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"node\",\"type\":\"bytes32\"}],\"name\":\"ttl\",\"outputs\":[{\"name\":\"\",\"type\":\"uint64\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"node\",\"type\":\"bytes32\"},{\"name\":\"resolver\",\"type\":\"address\"}],\"name\":\"setResolver\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"node\",\"type\":\"bytes32\"},{\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"setOwner\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"node\",\"type\":\"bytes32\"},{\"indexed\":true,\"name\":\"label\",\"type\":\"bytes32\"},{\"indexed\":false,\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"NewOwner\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"node\",\"type\":\"bytes32\"},{\"indexed\":false,\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"node\",\"type\":\"bytes32\"},{\"indexed\":false,\"name\":\"resolver\",\"type\":\"address\"}],\"name\":\"NewResolver\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"node\",\"type\":\"bytes32\"},{\"indexed\":false,\"name\":\"ttl\",\"type\":\"uint64\"}],\"name\":\"NewTTL\",\"type\":\"event\"}]"
    30  
    31  //ensbin是用于部署新合同的编译字节码。
    32  const ENSBin = `0x6060604052341561000f57600080fd5b60008080526020527fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb58054600160a060020a033316600160a060020a0319909116179055610503806100626000396000f3006060604052600436106100825763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416630178b8bf811461008757806302571be3146100b957806306ab5923146100cf57806314ab9038146100f657806316a25cbd146101195780631896f70a1461014c5780635b0fc9c31461016e575b600080fd5b341561009257600080fd5b61009d600435610190565b604051600160a060020a03909116815260200160405180910390f35b34156100c457600080fd5b61009d6004356101ae565b34156100da57600080fd5b6100f4600435602435600160a060020a03604435166101c9565b005b341561010157600080fd5b6100f460043567ffffffffffffffff6024351661028b565b341561012457600080fd5b61012f600435610357565b60405167ffffffffffffffff909116815260200160405180910390f35b341561015757600080fd5b6100f4600435600160a060020a036024351661038e565b341561017957600080fd5b6100f4600435600160a060020a0360243516610434565b600090815260208190526040902060010154600160a060020a031690565b600090815260208190526040902054600160a060020a031690565b600083815260208190526040812054849033600160a060020a039081169116146101f257600080fd5b8484604051918252602082015260409081019051908190039020915083857fce0457fe73731f824cc272376169235128c118b49d344817417c6d108d155e8285604051600160a060020a03909116815260200160405180910390a3506000908152602081905260409020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03929092169190911790555050565b600082815260208190526040902054829033600160a060020a039081169116146102b457600080fd5b827f1d4f9bbfc9cab89d66e1a1562f2233ccbf1308cb4f63de2ead5787adddb8fa688360405167ffffffffffffffff909116815260200160405180910390a250600091825260208290526040909120600101805467ffffffffffffffff90921674010000000000000000000000000000000000000000027fffffffff0000000000000000ffffffffffffffffffffffffffffffffffffffff909216919091179055565b60009081526020819052604090206001015474010000000000000000000000000000000000000000900467ffffffffffffffff1690565b600082815260208190526040902054829033600160a060020a039081169116146103b757600080fd5b827f335721b01866dc23fbee8b6b2c7b1e14d6f05c28cd35a2c934239f94095602a083604051600160a060020a03909116815260200160405180910390a250600091825260208290526040909120600101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03909216919091179055565b600082815260208190526040902054829033600160a060020a0390811691161461045d57600080fd5b827fd4735d920b0f87494915f556dd9b54c8f309026070caea5c737245152564d26683604051600160a060020a03909116815260200160405180910390a250600091825260208290526040909120805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039092169190911790555600a165627a7a72305820f4c798d4c84c9912f389f64631e85e8d16c3e6644f8c2e1579936015c7d5f6660029`
    33  
    34  //Deployeens部署一个新的以太坊契约,将ENS实例绑定到它。
    35  func DeployENS(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *types.Transaction, *ENS, error) {
    36  	parsed, err := abi.JSON(strings.NewReader(ENSABI))
    37  	if err != nil {
    38  		return common.Address{}, nil, nil, err
    39  	}
    40  	address, tx, contract, err := bind.DeployContract(auth, parsed, common.FromHex(ENSBin), backend)
    41  	if err != nil {
    42  		return common.Address{}, nil, nil, err
    43  	}
    44  	return address, tx, &ENS{ENSCaller: ENSCaller{contract: contract}, ENSTransactor: ENSTransactor{contract: contract}, ENSFilterer: ENSFilterer{contract: contract}}, nil
    45  }
    46  
    47  //ENS是围绕以太坊合同自动生成的Go绑定。
    48  type ENS struct {
    49  ENSCaller     //对合同具有只读约束力
    50  ENSTransactor //只写对合同有约束力
    51  ENSFilterer   //合同事件的日志筛选程序
    52  }
    53  
    54  //EnsCaller是围绕以太坊契约自动生成的只读Go绑定。
    55  type ENSCaller struct {
    56  contract *bind.BoundContract //用于低级调用的通用协定包装器
    57  }
    58  
    59  //EnsTransactor是围绕以太坊合同自动生成的只写Go绑定。
    60  type ENSTransactor struct {
    61  contract *bind.BoundContract //用于低级调用的通用协定包装器
    62  }
    63  
    64  //EnsFilter是围绕以太坊合同事件自动生成的日志筛选Go绑定。
    65  type ENSFilterer struct {
    66  contract *bind.BoundContract //用于低级调用的通用协定包装器
    67  }
    68  
    69  //EnSession是围绕以太坊合同自动生成的Go绑定,
    70  //具有预设的调用和事务处理选项。
    71  type ENSSession struct {
    72  Contract     *ENS              //为其设置会话的通用约定绑定
    73  CallOpts     bind.CallOpts     //在整个会话中使用的调用选项
    74  TransactOpts bind.TransactOpts //要在此会话中使用的事务验证选项
    75  }
    76  
    77  //EnCallersession是围绕以太坊合约自动生成的只读Go绑定,
    78  //带预设通话选项。
    79  type ENSCallerSession struct {
    80  Contract *ENSCaller    //用于设置会话的通用协定调用方绑定
    81  CallOpts bind.CallOpts //在整个会话中使用的调用选项
    82  }
    83  
    84  //enstransactiorsession是围绕以太坊合同自动生成的只写Go绑定,
    85  //具有预设的Transact选项。
    86  type ENSTransactorSession struct {
    87  Contract     *ENSTransactor    //用于设置会话的通用合同事务处理程序绑定
    88  TransactOpts bind.TransactOpts //要在此会话中使用的事务验证选项
    89  }
    90  
    91  //Ensraw是围绕以太坊合同自动生成的低级Go绑定。
    92  type ENSRaw struct {
    93  Contract *ENS //用于访问上的原始方法的通用合同绑定
    94  }
    95  
    96  //EnsCallerraw是围绕以太坊合约自动生成的低级只读Go绑定。
    97  type ENSCallerRaw struct {
    98  Contract *ENSCaller //用于访问上的原始方法的通用只读协定绑定
    99  }
   100  
   101  //
   102  type ENSTransactorRaw struct {
   103  Contract *ENSTransactor //用于访问上的原始方法的通用只写协定绑定
   104  }
   105  
   106  //new ens创建一个新的ens实例,绑定到特定的已部署契约。
   107  func NewENS(address common.Address, backend bind.ContractBackend) (*ENS, error) {
   108  	contract, err := bindENS(address, backend, backend, backend)
   109  	if err != nil {
   110  		return nil, err
   111  	}
   112  	return &ENS{ENSCaller: ENSCaller{contract: contract}, ENSTransactor: ENSTransactor{contract: contract}, ENSFilterer: ENSFilterer{contract: contract}}, nil
   113  }
   114  
   115  //newenscaller创建一个新的ENS只读实例,绑定到特定的已部署契约。
   116  func NewENSCaller(address common.Address, caller bind.ContractCaller) (*ENSCaller, error) {
   117  	contract, err := bindENS(address, caller, nil, nil)
   118  	if err != nil {
   119  		return nil, err
   120  	}
   121  	return &ENSCaller{contract: contract}, nil
   122  }
   123  
   124  //
   125  func NewENSTransactor(address common.Address, transactor bind.ContractTransactor) (*ENSTransactor, error) {
   126  	contract, err := bindENS(address, nil, transactor, nil)
   127  	if err != nil {
   128  		return nil, err
   129  	}
   130  	return &ENSTransactor{contract: contract}, nil
   131  }
   132  
   133  //newensfilter创建一个新的ens日志筛选器实例,绑定到特定的已部署协定。
   134  func NewENSFilterer(address common.Address, filterer bind.ContractFilterer) (*ENSFilterer, error) {
   135  	contract, err := bindENS(address, nil, nil, filterer)
   136  	if err != nil {
   137  		return nil, err
   138  	}
   139  	return &ENSFilterer{contract: contract}, nil
   140  }
   141  
   142  //bindens将通用包装绑定到已部署的协定。
   143  func bindENS(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
   144  	parsed, err := abi.JSON(strings.NewReader(ENSABI))
   145  	if err != nil {
   146  		return nil, err
   147  	}
   148  	return bind.NewBoundContract(address, parsed, caller, transactor, filterer), nil
   149  }
   150  
   151  //调用调用(常量)contract方法,参数作为输入值,并且
   152  //将输出设置为结果。结果类型可能是用于
   153  //返回、匿名返回的接口切片和命名的结构
   154  //返回。
   155  func (_ENS *ENSRaw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error {
   156  	return _ENS.Contract.ENSCaller.contract.Call(opts, result, method, params...)
   157  }
   158  
   159  //转账启动普通交易以将资金转移到合同,调用
   160  //它的默认方法(如果有)。
   161  func (_ENS *ENSRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
   162  	return _ENS.Contract.ENSTransactor.contract.Transfer(opts)
   163  }
   164  
   165  //Transact使用参数作为输入值调用(付费)Contract方法。
   166  func (_ENS *ENSRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
   167  	return _ENS.Contract.ENSTransactor.contract.Transact(opts, method, params...)
   168  }
   169  
   170  //调用调用(常量)contract方法,参数作为输入值,并且
   171  //将输出设置为结果。结果类型可能是用于
   172  //返回、匿名返回的接口切片和命名的结构
   173  //返回。
   174  func (_ENS *ENSCallerRaw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error {
   175  	return _ENS.Contract.contract.Call(opts, result, method, params...)
   176  }
   177  
   178  //转账启动普通交易以将资金转移到合同,调用
   179  //它的默认方法(如果有)。
   180  func (_ENS *ENSTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
   181  	return _ENS.Contract.contract.Transfer(opts)
   182  }
   183  
   184  //Transact使用参数作为输入值调用(付费)Contract方法。
   185  func (_ENS *ENSTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
   186  	return _ENS.Contract.contract.Transact(opts, method, params...)
   187  }
   188  
   189  //owner是一个绑定契约方法0x02571BE3的免费数据检索调用。
   190  //
   191  //solidity:函数所有者(节点字节32)常量返回(地址)
   192  func (_ENS *ENSCaller) Owner(opts *bind.CallOpts, node [32]byte) (common.Address, error) {
   193  	var (
   194  		ret0 = new(common.Address)
   195  	)
   196  	out := ret0
   197  	err := _ENS.contract.Call(opts, out, "owner", node)
   198  	return *ret0, err
   199  }
   200  
   201  //owner是一个绑定契约方法0x02571BE3的免费数据检索调用。
   202  //
   203  //solidity:函数所有者(节点字节32)常量返回(地址)
   204  func (_ENS *ENSSession) Owner(node [32]byte) (common.Address, error) {
   205  	return _ENS.Contract.Owner(&_ENS.CallOpts, node)
   206  }
   207  
   208  //owner是一个绑定契约方法0x02571BE3的免费数据检索调用。
   209  //
   210  //solidity:函数所有者(节点字节32)常量返回(地址)
   211  func (_ENS *ENSCallerSession) Owner(node [32]byte) (common.Address, error) {
   212  	return _ENS.Contract.Owner(&_ENS.CallOpts, node)
   213  }
   214  
   215  //解析器是一个自由的数据检索调用,绑定契约方法0x0178B8bf。
   216  //
   217  //solidity:函数解析程序(节点字节32)常量返回(地址)
   218  func (_ENS *ENSCaller) Resolver(opts *bind.CallOpts, node [32]byte) (common.Address, error) {
   219  	var (
   220  		ret0 = new(common.Address)
   221  	)
   222  	out := ret0
   223  	err := _ENS.contract.Call(opts, out, "resolver", node)
   224  	return *ret0, err
   225  }
   226  
   227  //解析器是一个自由的数据检索调用,绑定契约方法0x0178B8bf。
   228  //
   229  //solidity:函数解析程序(节点字节32)常量返回(地址)
   230  func (_ENS *ENSSession) Resolver(node [32]byte) (common.Address, error) {
   231  	return _ENS.Contract.Resolver(&_ENS.CallOpts, node)
   232  }
   233  
   234  //解析器是一个自由的数据检索调用,绑定契约方法0x0178B8bf。
   235  //
   236  //solidity:函数解析程序(节点字节32)常量返回(地址)
   237  func (_ENS *ENSCallerSession) Resolver(node [32]byte) (common.Address, error) {
   238  	return _ENS.Contract.Resolver(&_ENS.CallOpts, node)
   239  }
   240  
   241  //TTL是一个绑定契约方法0x16A25CBD的免费数据检索调用。
   242  //
   243  //solidity:函数ttl(节点字节32)常量返回(uint64)
   244  func (_ENS *ENSCaller) Ttl(opts *bind.CallOpts, node [32]byte) (uint64, error) {
   245  	var (
   246  		ret0 = new(uint64)
   247  	)
   248  	out := ret0
   249  	err := _ENS.contract.Call(opts, out, "ttl", node)
   250  	return *ret0, err
   251  }
   252  
   253  //TTL是一个绑定契约方法0x16A25CBD的免费数据检索调用。
   254  //
   255  //solidity:函数ttl(节点字节32)常量返回(uint64)
   256  func (_ENS *ENSSession) Ttl(node [32]byte) (uint64, error) {
   257  	return _ENS.Contract.Ttl(&_ENS.CallOpts, node)
   258  }
   259  
   260  //TTL是一个绑定契约方法0x16A25CBD的免费数据检索调用。
   261  //
   262  //solidity:函数ttl(节点字节32)常量返回(uint64)
   263  func (_ENS *ENSCallerSession) Ttl(node [32]byte) (uint64, error) {
   264  	return _ENS.Contract.Ttl(&_ENS.CallOpts, node)
   265  }
   266  
   267  //setowner是一个受合同方法0x5b0fc9c3约束的付费mutator事务。
   268  //
   269  //Solidity: function setOwner(node bytes32, owner address) returns()
   270  func (_ENS *ENSTransactor) SetOwner(opts *bind.TransactOpts, node [32]byte, owner common.Address) (*types.Transaction, error) {
   271  	return _ENS.contract.Transact(opts, "setOwner", node, owner)
   272  }
   273  
   274  //setowner是一个受合同方法0x5b0fc9c3约束的付费mutator事务。
   275  //
   276  //solidity:函数setowner(node bytes32,owner address)返回()
   277  func (_ENS *ENSSession) SetOwner(node [32]byte, owner common.Address) (*types.Transaction, error) {
   278  	return _ENS.Contract.SetOwner(&_ENS.TransactOpts, node, owner)
   279  }
   280  
   281  //setowner是一个受合同方法0x5b0fc9c3约束的付费mutator事务。
   282  //
   283  //solidity:函数setowner(node bytes32,owner address)返回()
   284  func (_ENS *ENSTransactorSession) SetOwner(node [32]byte, owner common.Address) (*types.Transaction, error) {
   285  	return _ENS.Contract.SetOwner(&_ENS.TransactOpts, node, owner)
   286  }
   287  
   288  //setresolver是一个受契约方法0x1896F70A约束的付费转换器事务。
   289  //
   290  //solidity:函数setresolver(node bytes32,resolver address)返回()
   291  func (_ENS *ENSTransactor) SetResolver(opts *bind.TransactOpts, node [32]byte, resolver common.Address) (*types.Transaction, error) {
   292  	return _ENS.contract.Transact(opts, "setResolver", node, resolver)
   293  }
   294  
   295  //setresolver是一个受契约方法0x1896F70A约束的付费转换器事务。
   296  //
   297  //solidity:函数setresolver(node bytes32,resolver address)返回()
   298  func (_ENS *ENSSession) SetResolver(node [32]byte, resolver common.Address) (*types.Transaction, error) {
   299  	return _ENS.Contract.SetResolver(&_ENS.TransactOpts, node, resolver)
   300  }
   301  
   302  //setresolver是一个受契约方法0x1896F70A约束的付费转换器事务。
   303  //
   304  //solidity:函数setresolver(node bytes32,resolver address)返回()
   305  func (_ENS *ENSTransactorSession) SetResolver(node [32]byte, resolver common.Address) (*types.Transaction, error) {
   306  	return _ENS.Contract.SetResolver(&_ENS.TransactOpts, node, resolver)
   307  }
   308  
   309  //setSubnodeOwner是一个付费的mutator事务,绑定合同方法0x06AB5923。
   310  //
   311  //solidity:函数setSubNodeOwner(node bytes32,label bytes32,owner address)返回()
   312  func (_ENS *ENSTransactor) SetSubnodeOwner(opts *bind.TransactOpts, node [32]byte, label [32]byte, owner common.Address) (*types.Transaction, error) {
   313  	return _ENS.contract.Transact(opts, "setSubnodeOwner", node, label, owner)
   314  }
   315  
   316  //setSubnodeOwner是一个付费的mutator事务,绑定合同方法0x06AB5923。
   317  //
   318  //solidity:函数setSubNodeOwner(node bytes32,label bytes32,owner address)返回()
   319  func (_ENS *ENSSession) SetSubnodeOwner(node [32]byte, label [32]byte, owner common.Address) (*types.Transaction, error) {
   320  	return _ENS.Contract.SetSubnodeOwner(&_ENS.TransactOpts, node, label, owner)
   321  }
   322  
   323  //setSubnodeOwner是一个付费的mutator事务,绑定合同方法0x06AB5923。
   324  //
   325  //solidity:函数setSubNodeOwner(node bytes32,label bytes32,owner address)返回()
   326  func (_ENS *ENSTransactorSession) SetSubnodeOwner(node [32]byte, label [32]byte, owner common.Address) (*types.Transaction, error) {
   327  	return _ENS.Contract.SetSubnodeOwner(&_ENS.TransactOpts, node, label, owner)
   328  }
   329  
   330  //settl是一个受合同方法0x14AB9038约束的付费的转换程序事务。
   331  //
   332  //solidity:函数settl(节点字节32,ttl uint64)返回()
   333  func (_ENS *ENSTransactor) SetTTL(opts *bind.TransactOpts, node [32]byte, ttl uint64) (*types.Transaction, error) {
   334  	return _ENS.contract.Transact(opts, "setTTL", node, ttl)
   335  }
   336  
   337  //settl是一个受合同方法0x14AB9038约束的付费的转换程序事务。
   338  //
   339  //solidity:函数settl(节点字节32,ttl uint64)返回()
   340  func (_ENS *ENSSession) SetTTL(node [32]byte, ttl uint64) (*types.Transaction, error) {
   341  	return _ENS.Contract.SetTTL(&_ENS.TransactOpts, node, ttl)
   342  }
   343  
   344  //settl是一个受合同方法0x14AB9038约束的付费的转换程序事务。
   345  //
   346  //solidity:函数settl(节点字节32,ttl uint64)返回()
   347  func (_ENS *ENSTransactorSession) SetTTL(node [32]byte, ttl uint64) (*types.Transaction, error) {
   348  	return _ENS.Contract.SetTTL(&_ENS.TransactOpts, node, ttl)
   349  }
   350  
   351  //EnsNewOwnerIterator从filterNewOwner返回,用于迭代ENS合同引发的NewOwner事件的原始日志和解包数据。
   352  type ENSNewOwnerIterator struct {
   353  Event *ENSNewOwner //包含合同细节和原始日志的事件
   354  
   355  contract *bind.BoundContract //用于解包事件数据的通用合同
   356  event    string              //用于解包事件数据的事件名称
   357  
   358  logs chan types.Log        //日志通道接收找到的合同事件
   359  sub  ethereum.Subscription //错误、完成和终止订阅
   360  done bool                  //订阅是否完成传递日志
   361  fail error                 //停止迭代时出错
   362  }
   363  
   364  //next将迭代器前进到后续事件,返回是否存在
   365  //是否找到更多事件。在检索或分析错误的情况下,false是
   366  //返回错误(),可以查询错误()的确切错误。
   367  func (it *ENSNewOwnerIterator) Next() bool {
   368  //如果迭代器失败,请停止迭代
   369  	if it.fail != nil {
   370  		return false
   371  	}
   372  //如果迭代器已完成,则直接传递可用的
   373  	if it.done {
   374  		select {
   375  		case log := <-it.logs:
   376  			it.Event = new(ENSNewOwner)
   377  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
   378  				it.fail = err
   379  				return false
   380  			}
   381  			it.Event.Raw = log
   382  			return true
   383  
   384  		default:
   385  			return false
   386  		}
   387  	}
   388  //迭代器仍在进行中,请等待数据或错误事件
   389  	select {
   390  	case log := <-it.logs:
   391  		it.Event = new(ENSNewOwner)
   392  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
   393  			it.fail = err
   394  			return false
   395  		}
   396  		it.Event.Raw = log
   397  		return true
   398  
   399  	case err := <-it.sub.Err():
   400  		it.done = true
   401  		it.fail = err
   402  		return it.Next()
   403  	}
   404  }
   405  
   406  //重试时出错。筛选过程中出现任何检索或分析错误。
   407  func (it *ENSNewOwnerIterator) Error() error {
   408  	return it.fail
   409  }
   410  
   411  //关闭终止迭代过程,释放任何挂起的基础
   412  //资源。
   413  func (it *ENSNewOwnerIterator) Close() error {
   414  	it.sub.Unsubscribe()
   415  	return nil
   416  }
   417  
   418  //EnsNewOwner表示ENS合同引发的NewOwner事件。
   419  type ENSNewOwner struct {
   420  	Node  [32]byte
   421  	Label [32]byte
   422  	Owner common.Address
   423  Raw   types.Log //区块链特定的上下文信息
   424  }
   425  
   426  //FieldNeWOrthor是一个绑定日志事件的免费日志检索操作,绑定了合同事件0xCE047FE737、F824cc26316695128128C118B49 D34 81717417C6D108D155E82.
   427  //
   428  //solidity:事件newowner(节点索引字节32,标签索引字节32,所有者地址)
   429  func (_ENS *ENSFilterer) FilterNewOwner(opts *bind.FilterOpts, node [][32]byte, label [][32]byte) (*ENSNewOwnerIterator, error) {
   430  
   431  	var nodeRule []interface{}
   432  	for _, nodeItem := range node {
   433  		nodeRule = append(nodeRule, nodeItem)
   434  	}
   435  	var labelRule []interface{}
   436  	for _, labelItem := range label {
   437  		labelRule = append(labelRule, labelItem)
   438  	}
   439  
   440  	logs, sub, err := _ENS.contract.FilterLogs(opts, "NewOwner", nodeRule, labelRule)
   441  	if err != nil {
   442  		return nil, err
   443  	}
   444  	return &ENSNewOwnerIterator{contract: _ENS.contract, event: "NewOwner", logs: logs, sub: sub}, nil
   445  }
   446  
   447  //WatchNewOwner是一个绑定合同事件0xCE0457FE73731F824CC27236169235128C118B49D344817417C6D108D155E82的免费日志订阅操作。
   448  //
   449  //solidity:事件newowner(节点索引字节32,标签索引字节32,所有者地址)
   450  func (_ENS *ENSFilterer) WatchNewOwner(opts *bind.WatchOpts, sink chan<- *ENSNewOwner, node [][32]byte, label [][32]byte) (event.Subscription, error) {
   451  
   452  	var nodeRule []interface{}
   453  	for _, nodeItem := range node {
   454  		nodeRule = append(nodeRule, nodeItem)
   455  	}
   456  	var labelRule []interface{}
   457  	for _, labelItem := range label {
   458  		labelRule = append(labelRule, labelItem)
   459  	}
   460  
   461  	logs, sub, err := _ENS.contract.WatchLogs(opts, "NewOwner", nodeRule, labelRule)
   462  	if err != nil {
   463  		return nil, err
   464  	}
   465  	return event.NewSubscription(func(quit <-chan struct{}) error {
   466  		defer sub.Unsubscribe()
   467  		for {
   468  			select {
   469  			case log := <-logs:
   470  //新日志到达,分析事件并转发给用户
   471  				event := new(ENSNewOwner)
   472  				if err := _ENS.contract.UnpackLog(event, "NewOwner", log); err != nil {
   473  					return err
   474  				}
   475  				event.Raw = log
   476  
   477  				select {
   478  				case sink <- event:
   479  				case err := <-sub.Err():
   480  					return err
   481  				case <-quit:
   482  					return nil
   483  				}
   484  			case err := <-sub.Err():
   485  				return err
   486  			case <-quit:
   487  				return nil
   488  			}
   489  		}
   490  	}), nil
   491  }
   492  
   493  //ENSNewResolverIterator is returned from FilterNewResolver and is used to iterate over the raw logs and unpacked data for NewResolver events raised by the ENS contract.
   494  type ENSNewResolverIterator struct {
   495  Event *ENSNewResolver //
   496  
   497  contract *bind.BoundContract //用于解包事件数据的通用合同
   498  event    string              //用于解包事件数据的事件名称
   499  
   500  logs chan types.Log        //日志通道接收找到的合同事件
   501  sub  ethereum.Subscription //错误、完成和终止订阅
   502  done bool                  //订阅是否完成传递日志
   503  fail error                 //停止迭代时出错
   504  }
   505  
   506  //next将迭代器前进到后续事件,返回是否存在
   507  //是否找到更多事件。在检索或分析错误的情况下,false是
   508  //返回错误(),可以查询错误()的确切错误。
   509  func (it *ENSNewResolverIterator) Next() bool {
   510  //如果迭代器失败,请停止迭代
   511  	if it.fail != nil {
   512  		return false
   513  	}
   514  //如果迭代器已完成,则直接传递可用的
   515  	if it.done {
   516  		select {
   517  		case log := <-it.logs:
   518  			it.Event = new(ENSNewResolver)
   519  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
   520  				it.fail = err
   521  				return false
   522  			}
   523  			it.Event.Raw = log
   524  			return true
   525  
   526  		default:
   527  			return false
   528  		}
   529  	}
   530  //迭代器仍在进行中,请等待数据或错误事件
   531  	select {
   532  	case log := <-it.logs:
   533  		it.Event = new(ENSNewResolver)
   534  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
   535  			it.fail = err
   536  			return false
   537  		}
   538  		it.Event.Raw = log
   539  		return true
   540  
   541  	case err := <-it.sub.Err():
   542  		it.done = true
   543  		it.fail = err
   544  		return it.Next()
   545  	}
   546  }
   547  
   548  //重试时出错。筛选过程中出现任何检索或分析错误。
   549  func (it *ENSNewResolverIterator) Error() error {
   550  	return it.fail
   551  }
   552  
   553  //关闭终止迭代过程,释放任何挂起的基础
   554  //资源。
   555  func (it *ENSNewResolverIterator) Close() error {
   556  	it.sub.Unsubscribe()
   557  	return nil
   558  }
   559  
   560  //ens newresolver表示由ens协定引发的newresolver事件。
   561  type ENSNewResolver struct {
   562  	Node     [32]byte
   563  	Resolver common.Address
   564  Raw      types.Log //区块链特定的上下文信息
   565  }
   566  
   567  //filternewresolver是一个自由的日志检索操作,绑定合同事件0x335721b01866dc23fbee8B6b2c7b1e14d6f05c28cd35a2c934239f94095602a0。
   568  //
   569  //
   570  func (_ENS *ENSFilterer) FilterNewResolver(opts *bind.FilterOpts, node [][32]byte) (*ENSNewResolverIterator, error) {
   571  
   572  	var nodeRule []interface{}
   573  	for _, nodeItem := range node {
   574  		nodeRule = append(nodeRule, nodeItem)
   575  	}
   576  
   577  	logs, sub, err := _ENS.contract.FilterLogs(opts, "NewResolver", nodeRule)
   578  	if err != nil {
   579  		return nil, err
   580  	}
   581  	return &ENSNewResolverIterator{contract: _ENS.contract, event: "NewResolver", logs: logs, sub: sub}, nil
   582  }
   583  
   584  //
   585  //
   586  //
   587  func (_ENS *ENSFilterer) WatchNewResolver(opts *bind.WatchOpts, sink chan<- *ENSNewResolver, node [][32]byte) (event.Subscription, error) {
   588  
   589  	var nodeRule []interface{}
   590  	for _, nodeItem := range node {
   591  		nodeRule = append(nodeRule, nodeItem)
   592  	}
   593  
   594  	logs, sub, err := _ENS.contract.WatchLogs(opts, "NewResolver", nodeRule)
   595  	if err != nil {
   596  		return nil, err
   597  	}
   598  	return event.NewSubscription(func(quit <-chan struct{}) error {
   599  		defer sub.Unsubscribe()
   600  		for {
   601  			select {
   602  			case log := <-logs:
   603  //新日志到达,分析事件并转发给用户
   604  				event := new(ENSNewResolver)
   605  				if err := _ENS.contract.UnpackLog(event, "NewResolver", log); err != nil {
   606  					return err
   607  				}
   608  				event.Raw = log
   609  
   610  				select {
   611  				case sink <- event:
   612  				case err := <-sub.Err():
   613  					return err
   614  				case <-quit:
   615  					return nil
   616  				}
   617  			case err := <-sub.Err():
   618  				return err
   619  			case <-quit:
   620  				return nil
   621  			}
   622  		}
   623  	}), nil
   624  }
   625  
   626  //
   627  type ENSNewTTLIterator struct {
   628  Event *ENSNewTTL //包含合同细节和原始日志的事件
   629  
   630  contract *bind.BoundContract //用于解包事件数据的通用合同
   631  event    string              //用于解包事件数据的事件名称
   632  
   633  logs chan types.Log        //日志通道接收找到的合同事件
   634  sub  ethereum.Subscription //错误、完成和终止订阅
   635  done bool                  //订阅是否完成传递日志
   636  fail error                 //停止迭代时出错
   637  }
   638  
   639  //next将迭代器前进到后续事件,返回是否存在
   640  //是否找到更多事件。在检索或分析错误的情况下,false是
   641  //返回错误(),可以查询错误()的确切错误。
   642  func (it *ENSNewTTLIterator) Next() bool {
   643  //如果迭代器失败,请停止迭代
   644  	if it.fail != nil {
   645  		return false
   646  	}
   647  //如果迭代器已完成,则直接传递可用的
   648  	if it.done {
   649  		select {
   650  		case log := <-it.logs:
   651  			it.Event = new(ENSNewTTL)
   652  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
   653  				it.fail = err
   654  				return false
   655  			}
   656  			it.Event.Raw = log
   657  			return true
   658  
   659  		default:
   660  			return false
   661  		}
   662  	}
   663  //迭代器仍在进行中,请等待数据或错误事件
   664  	select {
   665  	case log := <-it.logs:
   666  		it.Event = new(ENSNewTTL)
   667  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
   668  			it.fail = err
   669  			return false
   670  		}
   671  		it.Event.Raw = log
   672  		return true
   673  
   674  	case err := <-it.sub.Err():
   675  		it.done = true
   676  		it.fail = err
   677  		return it.Next()
   678  	}
   679  }
   680  
   681  //重试时出错。筛选过程中出现任何检索或分析错误。
   682  func (it *ENSNewTTLIterator) Error() error {
   683  	return it.fail
   684  }
   685  
   686  //关闭终止迭代过程,释放任何挂起的基础
   687  //资源。
   688  func (it *ENSNewTTLIterator) Close() error {
   689  	it.sub.Unsubscribe()
   690  	return nil
   691  }
   692  
   693  //
   694  type ENSNewTTL struct {
   695  	Node [32]byte
   696  	Ttl  uint64
   697  Raw  types.Log //区块链特定的上下文信息
   698  }
   699  
   700  //
   701  //
   702  //
   703  func (_ENS *ENSFilterer) FilterNewTTL(opts *bind.FilterOpts, node [][32]byte) (*ENSNewTTLIterator, error) {
   704  
   705  	var nodeRule []interface{}
   706  	for _, nodeItem := range node {
   707  		nodeRule = append(nodeRule, nodeItem)
   708  	}
   709  
   710  	logs, sub, err := _ENS.contract.FilterLogs(opts, "NewTTL", nodeRule)
   711  	if err != nil {
   712  		return nil, err
   713  	}
   714  	return &ENSNewTTLIterator{contract: _ENS.contract, event: "NewTTL", logs: logs, sub: sub}, nil
   715  }
   716  
   717  //
   718  //
   719  //solidity:事件newttl(节点索引字节32,ttl uint64)
   720  func (_ENS *ENSFilterer) WatchNewTTL(opts *bind.WatchOpts, sink chan<- *ENSNewTTL, node [][32]byte) (event.Subscription, error) {
   721  
   722  	var nodeRule []interface{}
   723  	for _, nodeItem := range node {
   724  		nodeRule = append(nodeRule, nodeItem)
   725  	}
   726  
   727  	logs, sub, err := _ENS.contract.WatchLogs(opts, "NewTTL", nodeRule)
   728  	if err != nil {
   729  		return nil, err
   730  	}
   731  	return event.NewSubscription(func(quit <-chan struct{}) error {
   732  		defer sub.Unsubscribe()
   733  		for {
   734  			select {
   735  			case log := <-logs:
   736  //新日志到达,分析事件并转发给用户
   737  				event := new(ENSNewTTL)
   738  				if err := _ENS.contract.UnpackLog(event, "NewTTL", log); err != nil {
   739  					return err
   740  				}
   741  				event.Raw = log
   742  
   743  				select {
   744  				case sink <- event:
   745  				case err := <-sub.Err():
   746  					return err
   747  				case <-quit:
   748  					return nil
   749  				}
   750  			case err := <-sub.Err():
   751  				return err
   752  			case <-quit:
   753  				return nil
   754  			}
   755  		}
   756  	}), nil
   757  }
   758  
   759  //enstransferriterator从filtertransfer返回,用于迭代ens协定引发的传输事件的原始日志和解包数据。
   760  type ENSTransferIterator struct {
   761  Event *ENSTransfer //包含合同细节和原始日志的事件
   762  
   763  contract *bind.BoundContract //用于解包事件数据的通用合同
   764  event    string              //用于解包事件数据的事件名称
   765  
   766  logs chan types.Log        //日志通道接收找到的合同事件
   767  sub  ethereum.Subscription //错误、完成和终止订阅
   768  done bool                  //订阅是否完成传递日志
   769  fail error                 //停止迭代时出错
   770  }
   771  
   772  //next将迭代器前进到后续事件,返回是否存在
   773  //是否找到更多事件。在检索或分析错误的情况下,false是
   774  //返回错误(),可以查询错误()的确切错误。
   775  func (it *ENSTransferIterator) Next() bool {
   776  //如果迭代器失败,请停止迭代
   777  	if it.fail != nil {
   778  		return false
   779  	}
   780  //如果迭代器已完成,则直接传递可用的
   781  	if it.done {
   782  		select {
   783  		case log := <-it.logs:
   784  			it.Event = new(ENSTransfer)
   785  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
   786  				it.fail = err
   787  				return false
   788  			}
   789  			it.Event.Raw = log
   790  			return true
   791  
   792  		default:
   793  			return false
   794  		}
   795  	}
   796  //迭代器仍在进行中,请等待数据或错误事件
   797  	select {
   798  	case log := <-it.logs:
   799  		it.Event = new(ENSTransfer)
   800  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
   801  			it.fail = err
   802  			return false
   803  		}
   804  		it.Event.Raw = log
   805  		return true
   806  
   807  	case err := <-it.sub.Err():
   808  		it.done = true
   809  		it.fail = err
   810  		return it.Next()
   811  	}
   812  }
   813  
   814  //重试时出错。筛选过程中出现任何检索或分析错误。
   815  func (it *ENSTransferIterator) Error() error {
   816  	return it.fail
   817  }
   818  
   819  //关闭终止迭代过程,释放任何挂起的基础
   820  //资源。
   821  func (it *ENSTransferIterator) Close() error {
   822  	it.sub.Unsubscribe()
   823  	return nil
   824  }
   825  
   826  //EnsTransfer表示ENS合同引发的转让事件。
   827  type ENSTransfer struct {
   828  	Node  [32]byte
   829  	Owner common.Address
   830  Raw   types.Log //区块链特定的上下文信息
   831  }
   832  
   833  //
   834  //
   835  //
   836  func (_ENS *ENSFilterer) FilterTransfer(opts *bind.FilterOpts, node [][32]byte) (*ENSTransferIterator, error) {
   837  
   838  	var nodeRule []interface{}
   839  	for _, nodeItem := range node {
   840  		nodeRule = append(nodeRule, nodeItem)
   841  	}
   842  
   843  	logs, sub, err := _ENS.contract.FilterLogs(opts, "Transfer", nodeRule)
   844  	if err != nil {
   845  		return nil, err
   846  	}
   847  	return &ENSTransferIterator{contract: _ENS.contract, event: "Transfer", logs: logs, sub: sub}, nil
   848  }
   849  
   850  //
   851  //
   852  //
   853  func (_ENS *ENSFilterer) WatchTransfer(opts *bind.WatchOpts, sink chan<- *ENSTransfer, node [][32]byte) (event.Subscription, error) {
   854  
   855  	var nodeRule []interface{}
   856  	for _, nodeItem := range node {
   857  		nodeRule = append(nodeRule, nodeItem)
   858  	}
   859  
   860  	logs, sub, err := _ENS.contract.WatchLogs(opts, "Transfer", nodeRule)
   861  	if err != nil {
   862  		return nil, err
   863  	}
   864  	return event.NewSubscription(func(quit <-chan struct{}) error {
   865  		defer sub.Unsubscribe()
   866  		for {
   867  			select {
   868  			case log := <-logs:
   869  //新日志到达,分析事件并转发给用户
   870  				event := new(ENSTransfer)
   871  				if err := _ENS.contract.UnpackLog(event, "Transfer", log); err != nil {
   872  					return err
   873  				}
   874  				event.Raw = log
   875  
   876  				select {
   877  				case sink <- event:
   878  				case err := <-sub.Err():
   879  					return err
   880  				case <-quit:
   881  					return nil
   882  				}
   883  			case err := <-sub.Err():
   884  				return err
   885  			case <-quit:
   886  				return nil
   887  			}
   888  		}
   889  	}), nil
   890  }
   891