github.com/yinchengtsinghua/golang-Eos-dpos-Ethereum@v0.0.0-20190121132951-92cc4225ed8e/contracts/ens/contract/publicresolver.go (about) 1 2 //此源码被清华学神尹成大魔王专业翻译分析并修改 3 //尹成QQ77025077 4 //尹成微信18510341407 5 //尹成所在QQ群721929980 6 //尹成邮箱 yinc13@mails.tsinghua.edu.cn 7 //尹成毕业于清华大学,微软区块链领域全球最有价值专家 8 //https://mvp.microsoft.com/zh-cn/PublicProfile/4033620 9 //代码生成-不要编辑。 10 //此文件是生成的绑定,任何手动更改都将丢失。 11 12 package contract 13 14 import ( 15 "math/big" 16 "strings" 17 18 ethereum "github.com/ethereum/go-ethereum" 19 "github.com/ethereum/go-ethereum/accounts/abi" 20 "github.com/ethereum/go-ethereum/accounts/abi/bind" 21 "github.com/ethereum/go-ethereum/common" 22 "github.com/ethereum/go-ethereum/core/types" 23 "github.com/ethereum/go-ethereum/event" 24 ) 25 26 //publicResolverabi是用于从中生成绑定的输入abi。 27 const PublicResolverABI = "[{\"constant\":true,\"inputs\":[{\"name\":\"interfaceID\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"node\",\"type\":\"bytes32\"},{\"name\":\"key\",\"type\":\"string\"},{\"name\":\"value\",\"type\":\"string\"}],\"name\":\"setText\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"node\",\"type\":\"bytes32\"},{\"name\":\"contentTypes\",\"type\":\"uint256\"}],\"name\":\"ABI\",\"outputs\":[{\"name\":\"contentType\",\"type\":\"uint256\"},{\"name\":\"data\",\"type\":\"bytes\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"node\",\"type\":\"bytes32\"},{\"name\":\"x\",\"type\":\"bytes32\"},{\"name\":\"y\",\"type\":\"bytes32\"}],\"name\":\"setPubkey\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"node\",\"type\":\"bytes32\"}],\"name\":\"content\",\"outputs\":[{\"name\":\"ret\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"node\",\"type\":\"bytes32\"}],\"name\":\"addr\",\"outputs\":[{\"name\":\"ret\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"node\",\"type\":\"bytes32\"},{\"name\":\"key\",\"type\":\"string\"}],\"name\":\"text\",\"outputs\":[{\"name\":\"ret\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"node\",\"type\":\"bytes32\"},{\"name\":\"contentType\",\"type\":\"uint256\"},{\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"setABI\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"node\",\"type\":\"bytes32\"}],\"name\":\"name\",\"outputs\":[{\"name\":\"ret\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"node\",\"type\":\"bytes32\"},{\"name\":\"name\",\"type\":\"string\"}],\"name\":\"setName\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"node\",\"type\":\"bytes32\"},{\"name\":\"hash\",\"type\":\"bytes32\"}],\"name\":\"setContent\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"node\",\"type\":\"bytes32\"}],\"name\":\"pubkey\",\"outputs\":[{\"name\":\"x\",\"type\":\"bytes32\"},{\"name\":\"y\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"node\",\"type\":\"bytes32\"},{\"name\":\"addr\",\"type\":\"address\"}],\"name\":\"setAddr\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"name\":\"ensAddr\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"node\",\"type\":\"bytes32\"},{\"indexed\":false,\"name\":\"a\",\"type\":\"address\"}],\"name\":\"AddrChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"node\",\"type\":\"bytes32\"},{\"indexed\":false,\"name\":\"hash\",\"type\":\"bytes32\"}],\"name\":\"ContentChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"node\",\"type\":\"bytes32\"},{\"indexed\":false,\"name\":\"name\",\"type\":\"string\"}],\"name\":\"NameChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"node\",\"type\":\"bytes32\"},{\"indexed\":true,\"name\":\"contentType\",\"type\":\"uint256\"}],\"name\":\"ABIChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"node\",\"type\":\"bytes32\"},{\"indexed\":false,\"name\":\"x\",\"type\":\"bytes32\"},{\"indexed\":false,\"name\":\"y\",\"type\":\"bytes32\"}],\"name\":\"PubkeyChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"node\",\"type\":\"bytes32\"},{\"indexed\":true,\"name\":\"indexedKey\",\"type\":\"string\"},{\"indexed\":false,\"name\":\"key\",\"type\":\"string\"}],\"name\":\"TextChanged\",\"type\":\"event\"}]" 28 29 //publicResolverbin是用于部署新合同的编译字节码。 30 const PublicResolverBin = `0x6060604052341561000f57600080fd5b6040516020806111b28339810160405280805160008054600160a060020a03909216600160a060020a0319909216919091179055505061115e806100546000396000f3006060604052600436106100ab5763ffffffff60e060020a60003504166301ffc9a781146100b057806310f13a8c146100e45780632203ab561461017e57806329cd62ea146102155780632dff6941146102315780633b3b57de1461025957806359d1d43c1461028b578063623195b014610358578063691f3431146103b457806377372213146103ca578063c3d014d614610420578063c869023314610439578063d5fa2b0014610467575b600080fd5b34156100bb57600080fd5b6100d0600160e060020a031960043516610489565b604051901515815260200160405180910390f35b34156100ef57600080fd5b61017c600480359060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496506105f695505050505050565b005b341561018957600080fd5b610197600435602435610807565b60405182815260406020820181815290820183818151815260200191508051906020019080838360005b838110156101d95780820151838201526020016101c1565b50505050905090810190601f1680156102065780820380516001836020036101000a031916815260200191505b50935050505060405180910390f35b341561022057600080fd5b61017c600435602435604435610931565b341561023c57600080fd5b610247600435610a30565b60405190815260200160405180910390f35b341561026457600080fd5b61026f600435610a46565b604051600160a060020a03909116815260200160405180910390f35b341561029657600080fd5b6102e1600480359060446024803590810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650610a6195505050505050565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561031d578082015183820152602001610305565b50505050905090810190601f16801561034a5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561036357600080fd5b61017c600480359060248035919060649060443590810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650610b8095505050505050565b34156103bf57600080fd5b6102e1600435610c7c565b34156103d557600080fd5b61017c600480359060446024803590810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650610d4295505050505050565b341561042b57600080fd5b61017c600435602435610e8c565b341561044457600080fd5b61044f600435610f65565b60405191825260208201526040908101905180910390f35b341561047257600080fd5b61017c600435600160a060020a0360243516610f82565b6000600160e060020a031982167f3b3b57de0000000000000000000000000000000000000000000000000000000014806104ec5750600160e060020a031982167fd8389dc500000000000000000000000000000000000000000000000000000000145b806105205750600160e060020a031982167f691f343100000000000000000000000000000000000000000000000000000000145b806105545750600160e060020a031982167f2203ab5600000000000000000000000000000000000000000000000000000000145b806105885750600160e060020a031982167fc869023300000000000000000000000000000000000000000000000000000000145b806105bc5750600160e060020a031982167f59d1d43c00000000000000000000000000000000000000000000000000000000145b806105f05750600160e060020a031982167f01ffc9a700000000000000000000000000000000000000000000000000000000145b92915050565b600080548491600160a060020a033381169216906302571be39084906040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561064f57600080fd5b6102c65a03f1151561066057600080fd5b50505060405180519050600160a060020a031614151561067f57600080fd5b6000848152600160205260409081902083916005909101908590518082805190602001908083835b602083106106c65780518252601f1990920191602091820191016106a7565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902090805161070a929160200190611085565b50826040518082805190602001908083835b6020831061073b5780518252601f19909201916020918201910161071c565b6001836020036101000a0380198251168184511617909252505050919091019250604091505051908190039020847fd8c9334b1a9c2f9da342a0a2b32629c1a229b6445dad78947f674b44444a75508560405160208082528190810183818151815260200191508051906020019080838360005b838110156107c75780820151838201526020016107af565b50505050905090810190601f1680156107f45780820380516001836020036101000a031916815260200191505b509250505060405180910390a350505050565b6000610811611103565b60008481526001602081905260409091209092505b838311610924578284161580159061085f5750600083815260068201602052604081205460026000196101006001841615020190911604115b15610919578060060160008481526020019081526020016000208054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561090d5780601f106108e25761010080835404028352916020019161090d565b820191906000526020600020905b8154815290600101906020018083116108f057829003601f168201915b50505050509150610929565b600290920291610826565b600092505b509250929050565b600080548491600160a060020a033381169216906302571be39084906040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561098a57600080fd5b6102c65a03f1151561099b57600080fd5b50505060405180519050600160a060020a03161415156109ba57600080fd5b6040805190810160409081528482526020808301859052600087815260019091522060030181518155602082015160019091015550837f1d6f5e03d3f63eb58751986629a5439baee5079ff04f345becb66e23eb154e46848460405191825260208201526040908101905180910390a250505050565b6000908152600160208190526040909120015490565b600090815260016020526040902054600160a060020a031690565b610a69611103565b60008381526001602052604090819020600501908390518082805190602001908083835b60208310610aac5780518252601f199092019160209182019101610a8d565b6001836020036101000a03801982511681845116808217855250505050505090500191505090815260200160405180910390208054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610b735780601f10610b4857610100808354040283529160200191610b73565b820191906000526020600020905b815481529060010190602001808311610b5657829003601f168201915b5050505050905092915050565b600080548491600160a060020a033381169216906302571be39084906040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b1515610bd957600080fd5b6102c65a03f11515610bea57600080fd5b50505060405180519050600160a060020a0316141515610c0957600080fd5b6000198301831615610c1a57600080fd5b60008481526001602090815260408083208684526006019091529020828051610c47929160200190611085565b5082847faa121bbeef5f32f5961a2a28966e769023910fc9479059ee3495d4c1a696efe360405160405180910390a350505050565b610c84611103565b6001600083600019166000191681526020019081526020016000206002018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610d365780601f10610d0b57610100808354040283529160200191610d36565b820191906000526020600020905b815481529060010190602001808311610d1957829003601f168201915b50505050509050919050565b600080548391600160a060020a033381169216906302571be39084906040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b1515610d9b57600080fd5b6102c65a03f11515610dac57600080fd5b50505060405180519050600160a060020a0316141515610dcb57600080fd5b6000838152600160205260409020600201828051610ded929160200190611085565b50827fb7d29e911041e8d9b843369e890bcb72c9388692ba48b65ac54e7214c4c348f78360405160208082528190810183818151815260200191508051906020019080838360005b83811015610e4d578082015183820152602001610e35565b50505050905090810190601f168015610e7a5780820380516001836020036101000a031916815260200191505b509250505060405180910390a2505050565b600080548391600160a060020a033381169216906302571be39084906040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b1515610ee557600080fd5b6102c65a03f11515610ef657600080fd5b50505060405180519050600160a060020a0316141515610f1557600080fd5b6000838152600160208190526040918290200183905583907f0424b6fe0d9c3bdbece0e7879dc241bb0c22e900be8b6c168b4ee08bd9bf83bc9084905190815260200160405180910390a2505050565b600090815260016020526040902060038101546004909101549091565b600080548391600160a060020a033381169216906302571be39084906040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b1515610fdb57600080fd5b6102c65a03f11515610fec57600080fd5b50505060405180519050600160a060020a031614151561100b57600080fd5b60008381526001602052604090819020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03851617905583907f52d7d861f09ab3d26239d492e8968629f95e9e318cf0b73bfddc441522a15fd290849051600160a060020a03909116815260200160405180910390a2505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106110c657805160ff19168380011785556110f3565b828001600101855582156110f3579182015b828111156110f35782518255916020019190600101906110d8565b506110ff929150611115565b5090565b60206040519081016040526000815290565b61112f91905b808211156110ff576000815560010161111b565b905600a165627a7a723058201ecacbc445b9fbcd91b0ab164389f69d7283b856883bc7437eeed1008345a4920029` 31 32 //部署公共解析器部署一个新的EUTHUM合同,将公共解析器的实例绑定到它。 33 func DeployPublicResolver(auth *bind.TransactOpts, backend bind.ContractBackend, ensAddr common.Address) (common.Address, *types.Transaction, *PublicResolver, error) { 34 parsed, err := abi.JSON(strings.NewReader(PublicResolverABI)) 35 if err != nil { 36 return common.Address{}, nil, nil, err 37 } 38 address, tx, contract, err := bind.DeployContract(auth, parsed, common.FromHex(PublicResolverBin), backend, ensAddr) 39 if err != nil { 40 return common.Address{}, nil, nil, err 41 } 42 return address, tx, &PublicResolver{PublicResolverCaller: PublicResolverCaller{contract: contract}, PublicResolverTransactor: PublicResolverTransactor{contract: contract}, PublicResolverFilterer: PublicResolverFilterer{contract: contract}}, nil 43 } 44 45 //PublicResolver是围绕以太坊契约自动生成的Go绑定。 46 type PublicResolver struct { 47 PublicResolverCaller //对合同具有只读约束力 48 PublicResolverTransactor //只写对合同有约束力 49 PublicResolverFilterer //合同事件的日志筛选程序 50 } 51 52 //PublicResolverCaller is an auto generated read-only Go binding around an Ethereum contract. 53 type PublicResolverCaller struct { 54 contract *bind.BoundContract //用于低级调用的通用协定包装器 55 } 56 57 //PublicResolverTransactior是围绕以太坊契约自动生成的只写Go绑定。 58 type PublicResolverTransactor struct { 59 contract *bind.BoundContract //用于低级调用的通用协定包装器 60 } 61 62 //PublicResolverFilter是围绕以太坊契约事件自动生成的日志筛选Go绑定。 63 type PublicResolverFilterer struct { 64 contract *bind.BoundContract //用于低级调用的通用协定包装器 65 } 66 67 //PublicResolverSession是围绕以太坊合同自动生成的Go绑定, 68 //具有预设的调用和事务处理选项。 69 type PublicResolverSession struct { 70 Contract *PublicResolver //为其设置会话的通用约定绑定 71 CallOpts bind.CallOpts //在整个会话中使用的调用选项 72 TransactOpts bind.TransactOpts //要在此会话中使用的事务验证选项 73 } 74 75 //PublicResolverCallersession是围绕以太坊合约自动生成的只读Go绑定, 76 //带预设通话选项。 77 type PublicResolverCallerSession struct { 78 Contract *PublicResolverCaller //用于设置会话的通用协定调用方绑定 79 CallOpts bind.CallOpts //在整个会话中使用的调用选项 80 } 81 82 //PublicResolverTransactiorSession是围绕以太坊合同自动生成的只写Go绑定, 83 //具有预设的Transact选项。 84 type PublicResolverTransactorSession struct { 85 Contract *PublicResolverTransactor //用于设置会话的通用合同事务处理程序绑定 86 TransactOpts bind.TransactOpts //要在此会话中使用的事务验证选项 87 } 88 89 //PublicResolverRaw是围绕以太坊合同自动生成的低级Go绑定。 90 type PublicResolverRaw struct { 91 Contract *PublicResolver //用于访问上的原始方法的通用合同绑定 92 } 93 94 //PublicResolverCallerraw是围绕以太坊契约自动生成的低级别只读Go绑定。 95 type PublicResolverCallerRaw struct { 96 Contract *PublicResolverCaller //用于访问上的原始方法的通用只读协定绑定 97 } 98 99 // 100 type PublicResolverTransactorRaw struct { 101 Contract *PublicResolverTransactor //用于访问上的原始方法的通用只写协定绑定 102 } 103 104 //NewPublicResolver创建绑定到特定部署协定的PublicResolver的新实例。 105 func NewPublicResolver(address common.Address, backend bind.ContractBackend) (*PublicResolver, error) { 106 contract, err := bindPublicResolver(address, backend, backend, backend) 107 if err != nil { 108 return nil, err 109 } 110 return &PublicResolver{PublicResolverCaller: PublicResolverCaller{contract: contract}, PublicResolverTransactor: PublicResolverTransactor{contract: contract}, PublicResolverFilterer: PublicResolverFilterer{contract: contract}}, nil 111 } 112 113 //NewPublicResolver调用程序创建绑定到特定部署协定的PublicResolver的新只读实例。 114 func NewPublicResolverCaller(address common.Address, caller bind.ContractCaller) (*PublicResolverCaller, error) { 115 contract, err := bindPublicResolver(address, caller, nil, nil) 116 if err != nil { 117 return nil, err 118 } 119 return &PublicResolverCaller{contract: contract}, nil 120 } 121 122 //NewPublicResolverTransactior创建绑定到特定部署协定的PublicResolver的新的只写实例。 123 func NewPublicResolverTransactor(address common.Address, transactor bind.ContractTransactor) (*PublicResolverTransactor, error) { 124 contract, err := bindPublicResolver(address, nil, transactor, nil) 125 if err != nil { 126 return nil, err 127 } 128 return &PublicResolverTransactor{contract: contract}, nil 129 } 130 131 //NewPublicResolverFilter创建PublicResolver的新日志筛选器实例,该实例绑定到特定的已部署协定。 132 func NewPublicResolverFilterer(address common.Address, filterer bind.ContractFilterer) (*PublicResolverFilterer, error) { 133 contract, err := bindPublicResolver(address, nil, nil, filterer) 134 if err != nil { 135 return nil, err 136 } 137 return &PublicResolverFilterer{contract: contract}, nil 138 } 139 140 //BindPublicResolver将通用包装绑定到已部署的协定。 141 func bindPublicResolver(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { 142 parsed, err := abi.JSON(strings.NewReader(PublicResolverABI)) 143 if err != nil { 144 return nil, err 145 } 146 return bind.NewBoundContract(address, parsed, caller, transactor, filterer), nil 147 } 148 149 //调用调用(常量)contract方法,参数作为输入值,并且 150 //将输出设置为结果。结果类型可能是用于 151 //返回、匿名返回的接口切片和命名的结构 152 //返回。 153 func (_PublicResolver *PublicResolverRaw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error { 154 return _PublicResolver.Contract.PublicResolverCaller.contract.Call(opts, result, method, params...) 155 } 156 157 //转账启动普通交易以将资金转移到合同,调用 158 //它的默认方法(如果有)。 159 func (_PublicResolver *PublicResolverRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { 160 return _PublicResolver.Contract.PublicResolverTransactor.contract.Transfer(opts) 161 } 162 163 //Transact使用参数作为输入值调用(付费)Contract方法。 164 func (_PublicResolver *PublicResolverRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { 165 return _PublicResolver.Contract.PublicResolverTransactor.contract.Transact(opts, method, params...) 166 } 167 168 //调用调用(常量)contract方法,参数作为输入值,并且 169 //将输出设置为结果。结果类型可能是用于 170 //返回、匿名返回的接口切片和命名的结构 171 // 172 func (_PublicResolver *PublicResolverCallerRaw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error { 173 return _PublicResolver.Contract.contract.Call(opts, result, method, params...) 174 } 175 176 //转账启动普通交易以将资金转移到合同,调用 177 //它的默认方法(如果有)。 178 func (_PublicResolver *PublicResolverTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { 179 return _PublicResolver.Contract.contract.Transfer(opts) 180 } 181 182 //Transact使用参数作为输入值调用(付费)Contract方法。 183 func (_PublicResolver *PublicResolverTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { 184 return _PublicResolver.Contract.contract.Transact(opts, method, params...) 185 } 186 187 //ABI是一个绑定契约方法0x2203ab56的免费数据检索调用。 188 // 189 //solidity:函数abi(node bytes32,contenttype uint256)常量返回(contenttype uint256,data bytes) 190 func (_PublicResolver *PublicResolverCaller) ABI(opts *bind.CallOpts, node [32]byte, contentTypes *big.Int) (struct { 191 ContentType *big.Int 192 Data []byte 193 }, error) { 194 ret := new(struct { 195 ContentType *big.Int 196 Data []byte 197 }) 198 out := ret 199 err := _PublicResolver.contract.Call(opts, out, "ABI", node, contentTypes) 200 return *ret, err 201 } 202 203 //ABI是一个绑定契约方法0x2203ab56的免费数据检索调用。 204 // 205 //solidity:函数abi(node bytes32,contenttype uint256)常量返回(contenttype uint256,data bytes) 206 func (_PublicResolver *PublicResolverSession) ABI(node [32]byte, contentTypes *big.Int) (struct { 207 ContentType *big.Int 208 Data []byte 209 }, error) { 210 return _PublicResolver.Contract.ABI(&_PublicResolver.CallOpts, node, contentTypes) 211 } 212 213 //ABI是一个绑定契约方法0x2203ab56的免费数据检索调用。 214 // 215 //solidity:函数abi(node bytes32,contenttype uint256)常量返回(contenttype uint256,data bytes) 216 func (_PublicResolver *PublicResolverCallerSession) ABI(node [32]byte, contentTypes *big.Int) (struct { 217 ContentType *big.Int 218 Data []byte 219 }, error) { 220 return _PublicResolver.Contract.ABI(&_PublicResolver.CallOpts, node, contentTypes) 221 } 222 223 //addr是绑定contract方法0x3b3b57de的自由数据检索调用。 224 // 225 //solidity:函数addr(node bytes32)常量返回(ret address) 226 func (_PublicResolver *PublicResolverCaller) Addr(opts *bind.CallOpts, node [32]byte) (common.Address, error) { 227 var ( 228 ret0 = new(common.Address) 229 ) 230 out := ret0 231 err := _PublicResolver.contract.Call(opts, out, "addr", node) 232 return *ret0, err 233 } 234 235 //addr是绑定contract方法0x3b3b57de的自由数据检索调用。 236 // 237 //solidity:函数addr(node bytes32)常量返回(ret address) 238 func (_PublicResolver *PublicResolverSession) Addr(node [32]byte) (common.Address, error) { 239 return _PublicResolver.Contract.Addr(&_PublicResolver.CallOpts, node) 240 } 241 242 //addr是绑定contract方法0x3b3b57de的自由数据检索调用。 243 // 244 //solidity:函数addr(node bytes32)常量返回(ret address) 245 func (_PublicResolver *PublicResolverCallerSession) Addr(node [32]byte) (common.Address, error) { 246 return _PublicResolver.Contract.Addr(&_PublicResolver.CallOpts, node) 247 } 248 249 //content是一个绑定contract方法0x2dff6941的免费数据检索调用。 250 // 251 //solidity:函数内容(节点字节32)常量返回(ret字节32) 252 func (_PublicResolver *PublicResolverCaller) Content(opts *bind.CallOpts, node [32]byte) ([32]byte, error) { 253 var ( 254 ret0 = new([32]byte) 255 ) 256 out := ret0 257 err := _PublicResolver.contract.Call(opts, out, "content", node) 258 return *ret0, err 259 } 260 261 //content是一个绑定contract方法0x2dff6941的免费数据检索调用。 262 // 263 //solidity:函数内容(节点字节32)常量返回(ret字节32) 264 func (_PublicResolver *PublicResolverSession) Content(node [32]byte) ([32]byte, error) { 265 return _PublicResolver.Contract.Content(&_PublicResolver.CallOpts, node) 266 } 267 268 //content是一个绑定contract方法0x2dff6941的免费数据检索调用。 269 // 270 //solidity:函数内容(节点字节32)常量返回(ret字节32) 271 func (_PublicResolver *PublicResolverCallerSession) Content(node [32]byte) ([32]byte, error) { 272 return _PublicResolver.Contract.Content(&_PublicResolver.CallOpts, node) 273 } 274 275 //name是绑定协定方法0x691F3431的免费数据检索调用。 276 // 277 //solidity:函数名(node bytes32)常量返回(ret string) 278 func (_PublicResolver *PublicResolverCaller) Name(opts *bind.CallOpts, node [32]byte) (string, error) { 279 var ( 280 ret0 = new(string) 281 ) 282 out := ret0 283 err := _PublicResolver.contract.Call(opts, out, "name", node) 284 return *ret0, err 285 } 286 287 //name是绑定协定方法0x691F3431的免费数据检索调用。 288 // 289 //solidity:函数名(node bytes32)常量返回(ret string) 290 func (_PublicResolver *PublicResolverSession) Name(node [32]byte) (string, error) { 291 return _PublicResolver.Contract.Name(&_PublicResolver.CallOpts, node) 292 } 293 294 //name是绑定协定方法0x691F3431的免费数据检索调用。 295 // 296 //solidity:函数名(node bytes32)常量返回(ret string) 297 func (_PublicResolver *PublicResolverCallerSession) Name(node [32]byte) (string, error) { 298 return _PublicResolver.Contract.Name(&_PublicResolver.CallOpts, node) 299 } 300 301 //pubkey是绑定契约方法0xC8690233的免费数据检索调用。 302 // 303 //solidity:函数pubkey(node bytes 32)常量返回(x bytes 32,y bytes 32) 304 func (_PublicResolver *PublicResolverCaller) Pubkey(opts *bind.CallOpts, node [32]byte) (struct { 305 X [32]byte 306 Y [32]byte 307 }, error) { 308 ret := new(struct { 309 X [32]byte 310 Y [32]byte 311 }) 312 out := ret 313 err := _PublicResolver.contract.Call(opts, out, "pubkey", node) 314 return *ret, err 315 } 316 317 //pubkey是绑定契约方法0xC8690233的免费数据检索调用。 318 // 319 //solidity:函数pubkey(node bytes 32)常量返回(x bytes 32,y bytes 32) 320 func (_PublicResolver *PublicResolverSession) Pubkey(node [32]byte) (struct { 321 X [32]byte 322 Y [32]byte 323 }, error) { 324 return _PublicResolver.Contract.Pubkey(&_PublicResolver.CallOpts, node) 325 } 326 327 //pubkey是绑定契约方法0xC8690233的免费数据检索调用。 328 // 329 //solidity:函数pubkey(node bytes 32)常量返回(x bytes 32,y bytes 32) 330 func (_PublicResolver *PublicResolverCallerSession) Pubkey(node [32]byte) (struct { 331 X [32]byte 332 Y [32]byte 333 }, error) { 334 return _PublicResolver.Contract.Pubkey(&_PublicResolver.CallOpts, node) 335 } 336 337 //SUPPORTSInterface是一个绑定契约方法0x01FC9A7的免费数据检索调用。 338 // 339 //solidity:函数支持接口(interfaceid bytes 4)常量返回(bool) 340 func (_PublicResolver *PublicResolverCaller) SupportsInterface(opts *bind.CallOpts, interfaceID [4]byte) (bool, error) { 341 var ( 342 ret0 = new(bool) 343 ) 344 out := ret0 345 err := _PublicResolver.contract.Call(opts, out, "supportsInterface", interfaceID) 346 return *ret0, err 347 } 348 349 //SUPPORTSInterface是一个绑定契约方法0x01FC9A7的免费数据检索调用。 350 // 351 //solidity:函数支持接口(interfaceid bytes 4)常量返回(bool) 352 func (_PublicResolver *PublicResolverSession) SupportsInterface(interfaceID [4]byte) (bool, error) { 353 return _PublicResolver.Contract.SupportsInterface(&_PublicResolver.CallOpts, interfaceID) 354 } 355 356 //SUPPORTSInterface是一个绑定契约方法0x01FC9A7的免费数据检索调用。 357 // 358 //solidity:函数支持接口(interfaceid bytes 4)常量返回(bool) 359 func (_PublicResolver *PublicResolverCallerSession) SupportsInterface(interfaceID [4]byte) (bool, error) { 360 return _PublicResolver.Contract.SupportsInterface(&_PublicResolver.CallOpts, interfaceID) 361 } 362 363 // 364 // 365 //solidity:函数文本(节点字节32,键字符串)常量返回(ret字符串) 366 func (_PublicResolver *PublicResolverCaller) Text(opts *bind.CallOpts, node [32]byte, key string) (string, error) { 367 var ( 368 ret0 = new(string) 369 ) 370 out := ret0 371 err := _PublicResolver.contract.Call(opts, out, "text", node, key) 372 return *ret0, err 373 } 374 375 //文本是绑定契约方法0x59D1D43C的免费数据检索调用。 376 // 377 //solidity:函数文本(节点字节32,键字符串)常量返回(ret字符串) 378 func (_PublicResolver *PublicResolverSession) Text(node [32]byte, key string) (string, error) { 379 return _PublicResolver.Contract.Text(&_PublicResolver.CallOpts, node, key) 380 } 381 382 //文本是绑定契约方法0x59D1D43C的免费数据检索调用。 383 // 384 //solidity:函数文本(节点字节32,键字符串)常量返回(ret字符串) 385 func (_PublicResolver *PublicResolverCallerSession) Text(node [32]byte, key string) (string, error) { 386 return _PublicResolver.Contract.Text(&_PublicResolver.CallOpts, node, key) 387 } 388 389 //setabi是一个受合同方法0x623195b0约束的付费变元事务。 390 // 391 //solidity:函数setabi(node bytes 32,contenttype uint256,data bytes)返回() 392 func (_PublicResolver *PublicResolverTransactor) SetABI(opts *bind.TransactOpts, node [32]byte, contentType *big.Int, data []byte) (*types.Transaction, error) { 393 return _PublicResolver.contract.Transact(opts, "setABI", node, contentType, data) 394 } 395 396 //setabi是一个受合同方法0x623195b0约束的付费变元事务。 397 // 398 //solidity:函数setabi(node bytes 32,contenttype uint256,data bytes)返回() 399 func (_PublicResolver *PublicResolverSession) SetABI(node [32]byte, contentType *big.Int, data []byte) (*types.Transaction, error) { 400 return _PublicResolver.Contract.SetABI(&_PublicResolver.TransactOpts, node, contentType, data) 401 } 402 403 //setabi是一个受合同方法0x623195b0约束的付费变元事务。 404 // 405 //solidity:函数setabi(node bytes 32,contenttype uint256,data bytes)返回() 406 func (_PublicResolver *PublicResolverTransactorSession) SetABI(node [32]byte, contentType *big.Int, data []byte) (*types.Transaction, error) { 407 return _PublicResolver.Contract.SetABI(&_PublicResolver.TransactOpts, node, contentType, data) 408 } 409 410 //setaddr是一个付费的mutator事务,绑定合同方法0xD5FA2B00。 411 // 412 //solidity:函数setaddr(node bytes32,addr address)返回() 413 func (_PublicResolver *PublicResolverTransactor) SetAddr(opts *bind.TransactOpts, node [32]byte, addr common.Address) (*types.Transaction, error) { 414 return _PublicResolver.contract.Transact(opts, "setAddr", node, addr) 415 } 416 417 //setaddr是一个付费的mutator事务,绑定合同方法0xD5FA2B00。 418 // 419 //solidity:函数setaddr(node bytes32,addr address)返回() 420 func (_PublicResolver *PublicResolverSession) SetAddr(node [32]byte, addr common.Address) (*types.Transaction, error) { 421 return _PublicResolver.Contract.SetAddr(&_PublicResolver.TransactOpts, node, addr) 422 } 423 424 //setaddr是一个付费的mutator事务,绑定合同方法0xD5FA2B00。 425 // 426 //solidity:函数setaddr(node bytes32,addr address)返回() 427 func (_PublicResolver *PublicResolverTransactorSession) SetAddr(node [32]byte, addr common.Address) (*types.Transaction, error) { 428 return _PublicResolver.Contract.SetAddr(&_PublicResolver.TransactOpts, node, addr) 429 } 430 431 //setContent是一个付费的mutator事务,绑定合同方法0xc3d014d6。 432 // 433 // 434 func (_PublicResolver *PublicResolverTransactor) SetContent(opts *bind.TransactOpts, node [32]byte, hash [32]byte) (*types.Transaction, error) { 435 return _PublicResolver.contract.Transact(opts, "setContent", node, hash) 436 } 437 438 //setContent是一个付费的mutator事务,绑定合同方法0xc3d014d6。 439 // 440 //solidity:函数setcontent(node bytes 32,hash bytes 32)返回() 441 func (_PublicResolver *PublicResolverSession) SetContent(node [32]byte, hash [32]byte) (*types.Transaction, error) { 442 return _PublicResolver.Contract.SetContent(&_PublicResolver.TransactOpts, node, hash) 443 } 444 445 //setContent是一个付费的mutator事务,绑定合同方法0xc3d014d6。 446 // 447 //solidity:函数setcontent(node bytes 32,hash bytes 32)返回() 448 func (_PublicResolver *PublicResolverTransactorSession) SetContent(node [32]byte, hash [32]byte) (*types.Transaction, error) { 449 return _PublicResolver.Contract.SetContent(&_PublicResolver.TransactOpts, node, hash) 450 } 451 452 //setname是一个付费的mutator事务,绑定合同方法0x77372213。 453 // 454 //solidity:函数setname(node bytes32,name string)返回() 455 func (_PublicResolver *PublicResolverTransactor) SetName(opts *bind.TransactOpts, node [32]byte, name string) (*types.Transaction, error) { 456 return _PublicResolver.contract.Transact(opts, "setName", node, name) 457 } 458 459 //setname是一个付费的mutator事务,绑定合同方法0x77372213。 460 // 461 //solidity:函数setname(node bytes32,name string)返回() 462 func (_PublicResolver *PublicResolverSession) SetName(node [32]byte, name string) (*types.Transaction, error) { 463 return _PublicResolver.Contract.SetName(&_PublicResolver.TransactOpts, node, name) 464 } 465 466 //setname是一个付费的mutator事务,绑定合同方法0x77372213。 467 // 468 //solidity:函数setname(node bytes32,name string)返回() 469 func (_PublicResolver *PublicResolverTransactorSession) SetName(node [32]byte, name string) (*types.Transaction, error) { 470 return _PublicResolver.Contract.SetName(&_PublicResolver.TransactOpts, node, name) 471 } 472 473 //setpubkey是一个付费的mutator事务,绑定合同方法0x29CD62EA。 474 // 475 //solidity:函数setpubkey(node bytes 32,x bytes 32,y bytes 32)返回() 476 func (_PublicResolver *PublicResolverTransactor) SetPubkey(opts *bind.TransactOpts, node [32]byte, x [32]byte, y [32]byte) (*types.Transaction, error) { 477 return _PublicResolver.contract.Transact(opts, "setPubkey", node, x, y) 478 } 479 480 //setpubkey是一个付费的mutator事务,绑定合同方法0x29CD62EA。 481 // 482 //solidity:函数setpubkey(node bytes 32,x bytes 32,y bytes 32)返回() 483 func (_PublicResolver *PublicResolverSession) SetPubkey(node [32]byte, x [32]byte, y [32]byte) (*types.Transaction, error) { 484 return _PublicResolver.Contract.SetPubkey(&_PublicResolver.TransactOpts, node, x, y) 485 } 486 487 //setpubkey是一个付费的mutator事务,绑定合同方法0x29CD62EA。 488 // 489 //solidity:函数setpubkey(node bytes 32,x bytes 32,y bytes 32)返回() 490 func (_PublicResolver *PublicResolverTransactorSession) SetPubkey(node [32]byte, x [32]byte, y [32]byte) (*types.Transaction, error) { 491 return _PublicResolver.Contract.SetPubkey(&_PublicResolver.TransactOpts, node, x, y) 492 } 493 494 //settext是一个付费的mutator事务,绑定合同方法0x10F13A8C。 495 // 496 //solidity:函数settext(node bytes 32,key string,value string)返回() 497 func (_PublicResolver *PublicResolverTransactor) SetText(opts *bind.TransactOpts, node [32]byte, key string, value string) (*types.Transaction, error) { 498 return _PublicResolver.contract.Transact(opts, "setText", node, key, value) 499 } 500 501 //settext是一个付费的mutator事务,绑定合同方法0x10F13A8C。 502 // 503 //solidity:函数settext(node bytes 32,key string,value string)返回() 504 func (_PublicResolver *PublicResolverSession) SetText(node [32]byte, key string, value string) (*types.Transaction, error) { 505 return _PublicResolver.Contract.SetText(&_PublicResolver.TransactOpts, node, key, value) 506 } 507 508 //settext是一个付费的mutator事务,绑定合同方法0x10F13A8C。 509 // 510 //solidity:函数settext(node bytes 32,key string,value string)返回() 511 func (_PublicResolver *PublicResolverTransactorSession) SetText(node [32]byte, key string, value string) (*types.Transaction, error) { 512 return _PublicResolver.Contract.SetText(&_PublicResolver.TransactOpts, node, key, value) 513 } 514 515 //publicResolvabicChangedEditor从filterabichanged返回,用于对publicResolver协定引发的abichanged事件的原始日志和解包数据进行迭代。 516 type PublicResolverABIChangedIterator struct { 517 Event *PublicResolverABIChanged //包含合同细节和原始日志的事件 518 519 contract *bind.BoundContract //用于解包事件数据的通用合同 520 event string //用于解包事件数据的事件名称 521 522 logs chan types.Log //日志通道接收找到的合同事件 523 sub ethereum.Subscription //错误、完成和终止订阅 524 done bool //订阅是否完成传递日志 525 fail error //停止迭代时出错 526 } 527 528 //next将迭代器前进到后续事件,返回是否存在 529 //是否找到更多事件。在检索或分析错误的情况下,false是 530 //返回错误(),可以查询错误()的确切错误。 531 func (it *PublicResolverABIChangedIterator) Next() bool { 532 //如果迭代器失败,请停止迭代 533 if it.fail != nil { 534 return false 535 } 536 //如果迭代器已完成,则直接传递可用的 537 if it.done { 538 select { 539 case log := <-it.logs: 540 it.Event = new(PublicResolverABIChanged) 541 if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { 542 it.fail = err 543 return false 544 } 545 it.Event.Raw = log 546 return true 547 548 default: 549 return false 550 } 551 } 552 //迭代器仍在进行中,请等待数据或错误事件 553 select { 554 case log := <-it.logs: 555 it.Event = new(PublicResolverABIChanged) 556 if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { 557 it.fail = err 558 return false 559 } 560 it.Event.Raw = log 561 return true 562 563 case err := <-it.sub.Err(): 564 it.done = true 565 it.fail = err 566 return it.Next() 567 } 568 } 569 570 //重试时出错。筛选过程中出现任何检索或分析错误。 571 func (it *PublicResolverABIChangedIterator) Error() error { 572 return it.fail 573 } 574 575 //关闭终止迭代过程,释放任何挂起的基础 576 //资源。 577 func (it *PublicResolverABIChangedIterator) Close() error { 578 it.sub.Unsubscribe() 579 return nil 580 } 581 582 //PublicResolverAbiChanged表示PublicResolver协定引发的AbiChanged事件。 583 type PublicResolverABIChanged struct { 584 Node [32]byte 585 ContentType *big.Int 586 Raw types.Log //区块链特定的上下文信息 587 } 588 589 //filterabichanged是绑定合同事件0xaa121bbeef5f32f5961a2896e769023910fc9479059ee3495d4c1a696efe3的自由日志检索操作。 590 // 591 //solidity:事件abichanged(节点索引字节32,内容类型索引uint256) 592 func (_PublicResolver *PublicResolverFilterer) FilterABIChanged(opts *bind.FilterOpts, node [][32]byte, contentType []*big.Int) (*PublicResolverABIChangedIterator, error) { 593 594 var nodeRule []interface{} 595 for _, nodeItem := range node { 596 nodeRule = append(nodeRule, nodeItem) 597 } 598 var contentTypeRule []interface{} 599 for _, contentTypeItem := range contentType { 600 contentTypeRule = append(contentTypeRule, contentTypeItem) 601 } 602 603 logs, sub, err := _PublicResolver.contract.FilterLogs(opts, "ABIChanged", nodeRule, contentTypeRule) 604 if err != nil { 605 return nil, err 606 } 607 return &PublicResolverABIChangedIterator{contract: _PublicResolver.contract, event: "ABIChanged", logs: logs, sub: sub}, nil 608 } 609 610 //watchabiChanged是一个绑定合同事件0xaa121bbeef5f32f5961a2896e769023910fc9479059ee3495d4c1a696efe3的自由日志订阅操作。 611 // 612 //solidity:事件abichanged(节点索引字节32,内容类型索引uint256) 613 func (_PublicResolver *PublicResolverFilterer) WatchABIChanged(opts *bind.WatchOpts, sink chan<- *PublicResolverABIChanged, node [][32]byte, contentType []*big.Int) (event.Subscription, error) { 614 615 var nodeRule []interface{} 616 for _, nodeItem := range node { 617 nodeRule = append(nodeRule, nodeItem) 618 } 619 var contentTypeRule []interface{} 620 for _, contentTypeItem := range contentType { 621 contentTypeRule = append(contentTypeRule, contentTypeItem) 622 } 623 624 logs, sub, err := _PublicResolver.contract.WatchLogs(opts, "ABIChanged", nodeRule, contentTypeRule) 625 if err != nil { 626 return nil, err 627 } 628 return event.NewSubscription(func(quit <-chan struct{}) error { 629 defer sub.Unsubscribe() 630 for { 631 select { 632 case log := <-logs: 633 //新日志到达,分析事件并转发给用户 634 event := new(PublicResolverABIChanged) 635 if err := _PublicResolver.contract.UnpackLog(event, "ABIChanged", log); err != nil { 636 return err 637 } 638 event.Raw = log 639 640 select { 641 case sink <- event: 642 case err := <-sub.Err(): 643 return err 644 case <-quit: 645 return nil 646 } 647 case err := <-sub.Err(): 648 return err 649 case <-quit: 650 return nil 651 } 652 } 653 }), nil 654 } 655 656 //publicResolver addrChangediterator从filterAddrChanged返回,用于迭代publicResolver协定引发的addrChanged事件的原始日志和解包数据。 657 type PublicResolverAddrChangedIterator struct { 658 Event *PublicResolverAddrChanged //包含合同细节和原始日志的事件 659 660 contract *bind.BoundContract //用于解包事件数据的通用合同 661 event string //用于解包事件数据的事件名称 662 663 logs chan types.Log //日志通道接收找到的合同事件 664 sub ethereum.Subscription //错误、完成和终止订阅 665 done bool //订阅是否完成传递日志 666 fail error //停止迭代时出错 667 } 668 669 //next将迭代器前进到后续事件,返回是否存在 670 //是否找到更多事件。在检索或分析错误的情况下,false是 671 //返回错误(),可以查询错误()的确切错误。 672 func (it *PublicResolverAddrChangedIterator) Next() bool { 673 //如果迭代器失败,请停止迭代 674 if it.fail != nil { 675 return false 676 } 677 //如果迭代器已完成,则直接传递可用的 678 if it.done { 679 select { 680 case log := <-it.logs: 681 it.Event = new(PublicResolverAddrChanged) 682 if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { 683 it.fail = err 684 return false 685 } 686 it.Event.Raw = log 687 return true 688 689 default: 690 return false 691 } 692 } 693 //迭代器仍在进行中,请等待数据或错误事件 694 select { 695 case log := <-it.logs: 696 it.Event = new(PublicResolverAddrChanged) 697 if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { 698 it.fail = err 699 return false 700 } 701 it.Event.Raw = log 702 return true 703 704 case err := <-it.sub.Err(): 705 it.done = true 706 it.fail = err 707 return it.Next() 708 } 709 } 710 711 //重试时出错。筛选过程中出现任何检索或分析错误。 712 func (it *PublicResolverAddrChangedIterator) Error() error { 713 return it.fail 714 } 715 716 //关闭终止迭代过程,释放任何挂起的基础 717 //资源。 718 func (it *PublicResolverAddrChangedIterator) Close() error { 719 it.sub.Unsubscribe() 720 return nil 721 } 722 723 //PublicResolverAddrChanged表示PublicResolver协定引发的AddrChanged事件。 724 type PublicResolverAddrChanged struct { 725 Node [32]byte 726 A common.Address 727 Raw types.Log //区块链特定的上下文信息 728 } 729 730 //filterAddrChanged是一个绑定合同事件0x52d7d861f09ab3d26239d492e8968629f95e9e318cf0b73bfddc441522a15fd2的免费日志检索操作。 731 // 732 // 733 func (_PublicResolver *PublicResolverFilterer) FilterAddrChanged(opts *bind.FilterOpts, node [][32]byte) (*PublicResolverAddrChangedIterator, error) { 734 735 var nodeRule []interface{} 736 for _, nodeItem := range node { 737 nodeRule = append(nodeRule, nodeItem) 738 } 739 740 logs, sub, err := _PublicResolver.contract.FilterLogs(opts, "AddrChanged", nodeRule) 741 if err != nil { 742 return nil, err 743 } 744 return &PublicResolverAddrChangedIterator{contract: _PublicResolver.contract, event: "AddrChanged", logs: logs, sub: sub}, nil 745 } 746 747 //watchAddrChanged是绑定合同事件0x52d7d861f09ab3d26239d492e8968629f95e9e318cf0b73bfddc441522a15fd2的免费日志订阅操作。 748 // 749 //solidity:事件addrChanged(节点索引字节32,地址) 750 func (_PublicResolver *PublicResolverFilterer) WatchAddrChanged(opts *bind.WatchOpts, sink chan<- *PublicResolverAddrChanged, node [][32]byte) (event.Subscription, error) { 751 752 var nodeRule []interface{} 753 for _, nodeItem := range node { 754 nodeRule = append(nodeRule, nodeItem) 755 } 756 757 logs, sub, err := _PublicResolver.contract.WatchLogs(opts, "AddrChanged", nodeRule) 758 if err != nil { 759 return nil, err 760 } 761 return event.NewSubscription(func(quit <-chan struct{}) error { 762 defer sub.Unsubscribe() 763 for { 764 select { 765 case log := <-logs: 766 //新日志到达,分析事件并转发给用户 767 event := new(PublicResolverAddrChanged) 768 if err := _PublicResolver.contract.UnpackLog(event, "AddrChanged", log); err != nil { 769 return err 770 } 771 event.Raw = log 772 773 select { 774 case sink <- event: 775 case err := <-sub.Err(): 776 return err 777 case <-quit: 778 return nil 779 } 780 case err := <-sub.Err(): 781 return err 782 case <-quit: 783 return nil 784 } 785 } 786 }), nil 787 } 788 789 // 790 type PublicResolverContentChangedIterator struct { 791 Event *PublicResolverContentChanged //包含合同细节和原始日志的事件 792 793 contract *bind.BoundContract //用于解包事件数据的通用合同 794 event string //用于解包事件数据的事件名称 795 796 logs chan types.Log //日志通道接收找到的合同事件 797 sub ethereum.Subscription //错误、完成和终止订阅 798 done bool //订阅是否完成传递日志 799 fail error //停止迭代时出错 800 } 801 802 //next将迭代器前进到后续事件,返回是否存在 803 //是否找到更多事件。在检索或分析错误的情况下,false是 804 //返回错误(),可以查询错误()的确切错误。 805 func (it *PublicResolverContentChangedIterator) Next() bool { 806 //如果迭代器失败,请停止迭代 807 if it.fail != nil { 808 return false 809 } 810 //如果迭代器已完成,则直接传递可用的 811 if it.done { 812 select { 813 case log := <-it.logs: 814 it.Event = new(PublicResolverContentChanged) 815 if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { 816 it.fail = err 817 return false 818 } 819 it.Event.Raw = log 820 return true 821 822 default: 823 return false 824 } 825 } 826 //迭代器仍在进行中,请等待数据或错误事件 827 select { 828 case log := <-it.logs: 829 it.Event = new(PublicResolverContentChanged) 830 if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { 831 it.fail = err 832 return false 833 } 834 it.Event.Raw = log 835 return true 836 837 case err := <-it.sub.Err(): 838 it.done = true 839 it.fail = err 840 return it.Next() 841 } 842 } 843 844 //重试时出错。筛选过程中出现任何检索或分析错误。 845 func (it *PublicResolverContentChangedIterator) Error() error { 846 return it.fail 847 } 848 849 //关闭终止迭代过程,释放任何挂起的基础 850 //资源。 851 func (it *PublicResolverContentChangedIterator) Close() error { 852 it.sub.Unsubscribe() 853 return nil 854 } 855 856 //PublicResolverContentChanged表示PublicResolver协定引发的ContentChanged事件。 857 type PublicResolverContentChanged struct { 858 Node [32]byte 859 Hash [32]byte 860 Raw types.Log //区块链特定的上下文信息 861 } 862 863 //filterContentChanged是绑定合同事件0x0424B6FE0D9c3bBece07799dc241bb0c22e900be8b6c168b4ee08bd9bf83bc的自由日志检索操作。 864 // 865 //solidity:事件内容已更改(节点索引字节32、哈希字节32) 866 func (_PublicResolver *PublicResolverFilterer) FilterContentChanged(opts *bind.FilterOpts, node [][32]byte) (*PublicResolverContentChangedIterator, error) { 867 868 var nodeRule []interface{} 869 for _, nodeItem := range node { 870 nodeRule = append(nodeRule, nodeItem) 871 } 872 873 logs, sub, err := _PublicResolver.contract.FilterLogs(opts, "ContentChanged", nodeRule) 874 if err != nil { 875 return nil, err 876 } 877 return &PublicResolverContentChangedIterator{contract: _PublicResolver.contract, event: "ContentChanged", logs: logs, sub: sub}, nil 878 } 879 880 //watchContentChanged是绑定合同事件0x0424B6FE0D9c3bBece07799dc241bb0c22e900be8b6c168b4ee08bd9bf83bc的自由日志订阅操作。 881 // 882 //solidity:事件内容已更改(节点索引字节32、哈希字节32) 883 func (_PublicResolver *PublicResolverFilterer) WatchContentChanged(opts *bind.WatchOpts, sink chan<- *PublicResolverContentChanged, node [][32]byte) (event.Subscription, error) { 884 885 var nodeRule []interface{} 886 for _, nodeItem := range node { 887 nodeRule = append(nodeRule, nodeItem) 888 } 889 890 logs, sub, err := _PublicResolver.contract.WatchLogs(opts, "ContentChanged", nodeRule) 891 if err != nil { 892 return nil, err 893 } 894 return event.NewSubscription(func(quit <-chan struct{}) error { 895 defer sub.Unsubscribe() 896 for { 897 select { 898 case log := <-logs: 899 //新日志到达,分析事件并转发给用户 900 event := new(PublicResolverContentChanged) 901 if err := _PublicResolver.contract.UnpackLog(event, "ContentChanged", log); err != nil { 902 return err 903 } 904 event.Raw = log 905 906 select { 907 case sink <- event: 908 case err := <-sub.Err(): 909 return err 910 case <-quit: 911 return nil 912 } 913 case err := <-sub.Err(): 914 return err 915 case <-quit: 916 return nil 917 } 918 } 919 }), nil 920 } 921 922 //publicResolverNameChangedEditor从filterNameChanged返回,用于迭代publicResolver协定引发的名称更改事件的原始日志和解包数据。 923 type PublicResolverNameChangedIterator struct { 924 Event *PublicResolverNameChanged //包含合同细节和原始日志的事件 925 926 contract *bind.BoundContract //用于解包事件数据的通用合同 927 event string //用于解包事件数据的事件名称 928 929 logs chan types.Log //日志通道接收找到的合同事件 930 sub ethereum.Subscription //错误、完成和终止订阅 931 done bool //订阅是否完成传递日志 932 fail error //停止迭代时出错 933 } 934 935 //next将迭代器前进到后续事件,返回是否存在 936 //是否找到更多事件。在检索或分析错误的情况下,false是 937 //返回错误(),可以查询错误()的确切错误。 938 func (it *PublicResolverNameChangedIterator) Next() bool { 939 //如果迭代器失败,请停止迭代 940 if it.fail != nil { 941 return false 942 } 943 //如果迭代器已完成,则直接传递可用的 944 if it.done { 945 select { 946 case log := <-it.logs: 947 it.Event = new(PublicResolverNameChanged) 948 if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { 949 it.fail = err 950 return false 951 } 952 it.Event.Raw = log 953 return true 954 955 default: 956 return false 957 } 958 } 959 //迭代器仍在进行中,请等待数据或错误事件 960 select { 961 case log := <-it.logs: 962 it.Event = new(PublicResolverNameChanged) 963 if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { 964 it.fail = err 965 return false 966 } 967 it.Event.Raw = log 968 return true 969 970 case err := <-it.sub.Err(): 971 it.done = true 972 it.fail = err 973 return it.Next() 974 } 975 } 976 977 //重试时出错。筛选过程中出现任何检索或分析错误。 978 func (it *PublicResolverNameChangedIterator) Error() error { 979 return it.fail 980 } 981 982 //关闭终止迭代过程,释放任何挂起的基础 983 //资源。 984 func (it *PublicResolverNameChangedIterator) Close() error { 985 it.sub.Unsubscribe() 986 return nil 987 } 988 989 //PublicResolverNameChanged表示PublicResolver协定引发的NameChanged事件。 990 type PublicResolverNameChanged struct { 991 Node [32]byte 992 Name string 993 Raw types.Log //区块链特定的上下文信息 994 } 995 996 //filternamechanged是绑定合同事件0xb7d29e911041e8d9b843369e890bcb72c9388692ba48b65ac54e724c4c348f7的自由日志检索操作。 997 // 998 //solidity:事件名称已更改(节点索引字节32,名称字符串) 999 func (_PublicResolver *PublicResolverFilterer) FilterNameChanged(opts *bind.FilterOpts, node [][32]byte) (*PublicResolverNameChangedIterator, error) { 1000 1001 var nodeRule []interface{} 1002 for _, nodeItem := range node { 1003 nodeRule = append(nodeRule, nodeItem) 1004 } 1005 1006 logs, sub, err := _PublicResolver.contract.FilterLogs(opts, "NameChanged", nodeRule) 1007 if err != nil { 1008 return nil, err 1009 } 1010 return &PublicResolverNameChangedIterator{contract: _PublicResolver.contract, event: "NameChanged", logs: logs, sub: sub}, nil 1011 } 1012 1013 //watchnamechanged是绑定合同事件0xb7d29e911041e8d9b843369e890bcb72c9388692ba48b65ac54e724c4c348f7的免费日志订阅操作。 1014 // 1015 //solidity:事件名称已更改(节点索引字节32,名称字符串) 1016 func (_PublicResolver *PublicResolverFilterer) WatchNameChanged(opts *bind.WatchOpts, sink chan<- *PublicResolverNameChanged, node [][32]byte) (event.Subscription, error) { 1017 1018 var nodeRule []interface{} 1019 for _, nodeItem := range node { 1020 nodeRule = append(nodeRule, nodeItem) 1021 } 1022 1023 logs, sub, err := _PublicResolver.contract.WatchLogs(opts, "NameChanged", nodeRule) 1024 if err != nil { 1025 return nil, err 1026 } 1027 return event.NewSubscription(func(quit <-chan struct{}) error { 1028 defer sub.Unsubscribe() 1029 for { 1030 select { 1031 case log := <-logs: 1032 //新日志到达,分析事件并转发给用户 1033 event := new(PublicResolverNameChanged) 1034 if err := _PublicResolver.contract.UnpackLog(event, "NameChanged", log); err != nil { 1035 return err 1036 } 1037 event.Raw = log 1038 1039 select { 1040 case sink <- event: 1041 case err := <-sub.Err(): 1042 return err 1043 case <-quit: 1044 return nil 1045 } 1046 case err := <-sub.Err(): 1047 return err 1048 case <-quit: 1049 return nil 1050 } 1051 } 1052 }), nil 1053 } 1054 1055 //PublicResolverPubKeyChangedEditor从filterPubKeyChanged返回,用于迭代PublicResolver协定引发的PubKeyChanged事件的原始日志和解包数据。 1056 type PublicResolverPubkeyChangedIterator struct { 1057 Event *PublicResolverPubkeyChanged //包含合同细节和原始日志的事件 1058 1059 contract *bind.BoundContract //用于解包事件数据的通用合同 1060 event string //用于解包事件数据的事件名称 1061 1062 logs chan types.Log //日志通道接收找到的合同事件 1063 sub ethereum.Subscription //错误、完成和终止订阅 1064 done bool //订阅是否完成传递日志 1065 fail error //停止迭代时出错 1066 } 1067 1068 //next将迭代器前进到后续事件,返回是否存在 1069 //是否找到更多事件。在检索或分析错误的情况下,false是 1070 //返回错误(),可以查询错误()的确切错误。 1071 func (it *PublicResolverPubkeyChangedIterator) Next() bool { 1072 //如果迭代器失败,请停止迭代 1073 if it.fail != nil { 1074 return false 1075 } 1076 //如果迭代器已完成,则直接传递可用的 1077 if it.done { 1078 select { 1079 case log := <-it.logs: 1080 it.Event = new(PublicResolverPubkeyChanged) 1081 if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { 1082 it.fail = err 1083 return false 1084 } 1085 it.Event.Raw = log 1086 return true 1087 1088 default: 1089 return false 1090 } 1091 } 1092 //迭代器仍在进行中,请等待数据或错误事件 1093 select { 1094 case log := <-it.logs: 1095 it.Event = new(PublicResolverPubkeyChanged) 1096 if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { 1097 it.fail = err 1098 return false 1099 } 1100 it.Event.Raw = log 1101 return true 1102 1103 case err := <-it.sub.Err(): 1104 it.done = true 1105 it.fail = err 1106 return it.Next() 1107 } 1108 } 1109 1110 //重试时出错。筛选过程中出现任何检索或分析错误。 1111 func (it *PublicResolverPubkeyChangedIterator) Error() error { 1112 return it.fail 1113 } 1114 1115 //关闭终止迭代过程,释放任何挂起的基础 1116 //资源。 1117 func (it *PublicResolverPubkeyChangedIterator) Close() error { 1118 it.sub.Unsubscribe() 1119 return nil 1120 } 1121 1122 //PublicResolverPubKeyChanged表示PublicResolver协定引发的PubKeyChanged事件。 1123 type PublicResolverPubkeyChanged struct { 1124 Node [32]byte 1125 X [32]byte 1126 Y [32]byte 1127 Raw types.Log //区块链特定的上下文信息 1128 } 1129 1130 //filterPubKeyChanged是一个自由的日志检索操作,绑定合同事件0x1d6f5e03d3f63eb58751986629a5439baee5079ff04f345becb66e23eb154e46。 1131 // 1132 //Solidity:事件PubKeyChanged(节点索引字节32、X字节32、Y字节32) 1133 func (_PublicResolver *PublicResolverFilterer) FilterPubkeyChanged(opts *bind.FilterOpts, node [][32]byte) (*PublicResolverPubkeyChangedIterator, error) { 1134 1135 var nodeRule []interface{} 1136 for _, nodeItem := range node { 1137 nodeRule = append(nodeRule, nodeItem) 1138 } 1139 1140 logs, sub, err := _PublicResolver.contract.FilterLogs(opts, "PubkeyChanged", nodeRule) 1141 if err != nil { 1142 return nil, err 1143 } 1144 return &PublicResolverPubkeyChangedIterator{contract: _PublicResolver.contract, event: "PubkeyChanged", logs: logs, sub: sub}, nil 1145 } 1146 1147 // 1148 // 1149 //Solidity:事件PubKeyChanged(节点索引字节32、X字节32、Y字节32) 1150 func (_PublicResolver *PublicResolverFilterer) WatchPubkeyChanged(opts *bind.WatchOpts, sink chan<- *PublicResolverPubkeyChanged, node [][32]byte) (event.Subscription, error) { 1151 1152 var nodeRule []interface{} 1153 for _, nodeItem := range node { 1154 nodeRule = append(nodeRule, nodeItem) 1155 } 1156 1157 logs, sub, err := _PublicResolver.contract.WatchLogs(opts, "PubkeyChanged", nodeRule) 1158 if err != nil { 1159 return nil, err 1160 } 1161 return event.NewSubscription(func(quit <-chan struct{}) error { 1162 defer sub.Unsubscribe() 1163 for { 1164 select { 1165 case log := <-logs: 1166 //新日志到达,分析事件并转发给用户 1167 event := new(PublicResolverPubkeyChanged) 1168 if err := _PublicResolver.contract.UnpackLog(event, "PubkeyChanged", log); err != nil { 1169 return err 1170 } 1171 event.Raw = log 1172 1173 select { 1174 case sink <- event: 1175 case err := <-sub.Err(): 1176 return err 1177 case <-quit: 1178 return nil 1179 } 1180 case err := <-sub.Err(): 1181 return err 1182 case <-quit: 1183 return nil 1184 } 1185 } 1186 }), nil 1187 } 1188 1189 //publicResolverTextChangedEditor从filterTextChanged返回,用于为publicResolver协定引发的textChanged事件迭代原始日志和解包数据。 1190 type PublicResolverTextChangedIterator struct { 1191 Event *PublicResolverTextChanged //包含合同细节和原始日志的事件 1192 1193 contract *bind.BoundContract //用于解包事件数据的通用合同 1194 event string //用于解包事件数据的事件名称 1195 1196 logs chan types.Log //日志通道接收找到的合同事件 1197 sub ethereum.Subscription //错误、完成和终止订阅 1198 done bool //订阅是否完成传递日志 1199 fail error //停止迭代时出错 1200 } 1201 1202 //next将迭代器前进到后续事件,返回是否存在 1203 //是否找到更多事件。在检索或分析错误的情况下,false是 1204 //返回错误(),可以查询错误()的确切错误。 1205 func (it *PublicResolverTextChangedIterator) Next() bool { 1206 //如果迭代器失败,请停止迭代 1207 if it.fail != nil { 1208 return false 1209 } 1210 //如果迭代器已完成,则直接传递可用的 1211 if it.done { 1212 select { 1213 case log := <-it.logs: 1214 it.Event = new(PublicResolverTextChanged) 1215 if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { 1216 it.fail = err 1217 return false 1218 } 1219 it.Event.Raw = log 1220 return true 1221 1222 default: 1223 return false 1224 } 1225 } 1226 //迭代器仍在进行中,请等待数据或错误事件 1227 select { 1228 case log := <-it.logs: 1229 it.Event = new(PublicResolverTextChanged) 1230 if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { 1231 it.fail = err 1232 return false 1233 } 1234 it.Event.Raw = log 1235 return true 1236 1237 case err := <-it.sub.Err(): 1238 it.done = true 1239 it.fail = err 1240 return it.Next() 1241 } 1242 } 1243 1244 //重试时出错。筛选过程中出现任何检索或分析错误。 1245 func (it *PublicResolverTextChangedIterator) Error() error { 1246 return it.fail 1247 } 1248 1249 //关闭终止迭代过程,释放任何挂起的基础 1250 //资源。 1251 func (it *PublicResolverTextChangedIterator) Close() error { 1252 it.sub.Unsubscribe() 1253 return nil 1254 } 1255 1256 //PublicResolverTextChanged represents a TextChanged event raised by the PublicResolver contract. 1257 type PublicResolverTextChanged struct { 1258 Node [32]byte 1259 IndexedKey common.Hash 1260 Key string 1261 Raw types.Log //区块链特定的上下文信息 1262 } 1263 1264 //filtertextchanged是绑定合同事件0xD8C9334B1A9C2F9DA342A2A232629C1A229B6445DAD78947F674B44444A7550的自由日志检索操作。 1265 // 1266 //solidity:事件文本已更改(节点索引字节32、索引键索引字符串、键字符串) 1267 func (_PublicResolver *PublicResolverFilterer) FilterTextChanged(opts *bind.FilterOpts, node [][32]byte, indexedKey []string) (*PublicResolverTextChangedIterator, error) { 1268 1269 var nodeRule []interface{} 1270 for _, nodeItem := range node { 1271 nodeRule = append(nodeRule, nodeItem) 1272 } 1273 var indexedKeyRule []interface{} 1274 for _, indexedKeyItem := range indexedKey { 1275 indexedKeyRule = append(indexedKeyRule, indexedKeyItem) 1276 } 1277 1278 logs, sub, err := _PublicResolver.contract.FilterLogs(opts, "TextChanged", nodeRule, indexedKeyRule) 1279 if err != nil { 1280 return nil, err 1281 } 1282 return &PublicResolverTextChangedIterator{contract: _PublicResolver.contract, event: "TextChanged", logs: logs, sub: sub}, nil 1283 } 1284 1285 //watchTextChanged是一个绑定合同事件0xD8C9334B1A9C2F9DA342A2A232629C1A229B6445DAD78947F674B44444A7550的免费日志订阅操作。 1286 // 1287 //solidity:事件文本已更改(节点索引字节32、索引键索引字符串、键字符串) 1288 func (_PublicResolver *PublicResolverFilterer) WatchTextChanged(opts *bind.WatchOpts, sink chan<- *PublicResolverTextChanged, node [][32]byte, indexedKey []string) (event.Subscription, error) { 1289 1290 var nodeRule []interface{} 1291 for _, nodeItem := range node { 1292 nodeRule = append(nodeRule, nodeItem) 1293 } 1294 var indexedKeyRule []interface{} 1295 for _, indexedKeyItem := range indexedKey { 1296 indexedKeyRule = append(indexedKeyRule, indexedKeyItem) 1297 } 1298 1299 logs, sub, err := _PublicResolver.contract.WatchLogs(opts, "TextChanged", nodeRule, indexedKeyRule) 1300 if err != nil { 1301 return nil, err 1302 } 1303 return event.NewSubscription(func(quit <-chan struct{}) error { 1304 defer sub.Unsubscribe() 1305 for { 1306 select { 1307 case log := <-logs: 1308 //新日志到达,分析事件并转发给用户 1309 event := new(PublicResolverTextChanged) 1310 if err := _PublicResolver.contract.UnpackLog(event, "TextChanged", log); err != nil { 1311 return err 1312 } 1313 event.Raw = log 1314 1315 select { 1316 case sink <- event: 1317 case err := <-sub.Err(): 1318 return err 1319 case <-quit: 1320 return nil 1321 } 1322 case err := <-sub.Err(): 1323 return err 1324 case <-quit: 1325 return nil 1326 } 1327 } 1328 }), nil 1329 }