publicresolver.go 63 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322
  1. // Code generated - DO NOT EDIT.
  2. // This file is a generated binding and any manual changes will be lost.
  3. package contract
  4. import (
  5. "math/big"
  6. "strings"
  7. ethereum "github.com/ethereum/go-ethereum"
  8. "github.com/ethereum/go-ethereum/accounts/abi"
  9. "github.com/ethereum/go-ethereum/accounts/abi/bind"
  10. "github.com/ethereum/go-ethereum/common"
  11. "github.com/ethereum/go-ethereum/core/types"
  12. "github.com/ethereum/go-ethereum/event"
  13. )
  14. // PublicResolverABI is the input ABI used to generate the binding from.
  15. 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\"}]"
  16. // PublicResolverBin is the compiled bytecode used for deploying new contracts.
  17. const PublicResolverBin = `0x6060604052341561000f57600080fd5b6040516020806111b28339810160405280805160008054600160a060020a03909216600160a060020a0319909216919091179055505061115e806100546000396000f3006060604052600436106100ab5763ffffffff60e060020a60003504166301ffc9a781146100b057806310f13a8c146100e45780632203ab561461017e57806329cd62ea146102155780632dff6941146102315780633b3b57de1461025957806359d1d43c1461028b578063623195b014610358578063691f3431146103b457806377372213146103ca578063c3d014d614610420578063c869023314610439578063d5fa2b0014610467575b600080fd5b34156100bb57600080fd5b6100d0600160e060020a031960043516610489565b604051901515815260200160405180910390f35b34156100ef57600080fd5b61017c600480359060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496506105f695505050505050565b005b341561018957600080fd5b610197600435602435610807565b60405182815260406020820181815290820183818151815260200191508051906020019080838360005b838110156101d95780820151838201526020016101c1565b50505050905090810190601f1680156102065780820380516001836020036101000a031916815260200191505b50935050505060405180910390f35b341561022057600080fd5b61017c600435602435604435610931565b341561023c57600080fd5b610247600435610a30565b60405190815260200160405180910390f35b341561026457600080fd5b61026f600435610a46565b604051600160a060020a03909116815260200160405180910390f35b341561029657600080fd5b6102e1600480359060446024803590810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650610a6195505050505050565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561031d578082015183820152602001610305565b50505050905090810190601f16801561034a5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561036357600080fd5b61017c600480359060248035919060649060443590810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650610b8095505050505050565b34156103bf57600080fd5b6102e1600435610c7c565b34156103d557600080fd5b61017c600480359060446024803590810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650610d4295505050505050565b341561042b57600080fd5b61017c600435602435610e8c565b341561044457600080fd5b61044f600435610f65565b60405191825260208201526040908101905180910390f35b341561047257600080fd5b61017c600435600160a060020a0360243516610f82565b6000600160e060020a031982167f3b3b57de0000000000000000000000000000000000000000000000000000000014806104ec5750600160e060020a031982167fd8389dc500000000000000000000000000000000000000000000000000000000145b806105205750600160e060020a031982167f691f343100000000000000000000000000000000000000000000000000000000145b806105545750600160e060020a031982167f2203ab5600000000000000000000000000000000000000000000000000000000145b806105885750600160e060020a031982167fc869023300000000000000000000000000000000000000000000000000000000145b806105bc5750600160e060020a031982167f59d1d43c00000000000000000000000000000000000000000000000000000000145b806105f05750600160e060020a031982167f01ffc9a700000000000000000000000000000000000000000000000000000000145b92915050565b600080548491600160a060020a033381169216906302571be39084906040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561064f57600080fd5b6102c65a03f1151561066057600080fd5b50505060405180519050600160a060020a031614151561067f57600080fd5b6000848152600160205260409081902083916005909101908590518082805190602001908083835b602083106106c65780518252601f1990920191602091820191016106a7565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902090805161070a929160200190611085565b50826040518082805190602001908083835b6020831061073b5780518252601f19909201916020918201910161071c565b6001836020036101000a0380198251168184511617909252505050919091019250604091505051908190039020847fd8c9334b1a9c2f9da342a0a2b32629c1a229b6445dad78947f674b44444a75508560405160208082528190810183818151815260200191508051906020019080838360005b838110156107c75780820151838201526020016107af565b50505050905090810190601f1680156107f45780820380516001836020036101000a031916815260200191505b509250505060405180910390a350505050565b6000610811611103565b60008481526001602081905260409091209092505b838311610924578284161580159061085f5750600083815260068201602052604081205460026000196101006001841615020190911604115b15610919578060060160008481526020019081526020016000208054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561090d5780601f106108e25761010080835404028352916020019161090d565b820191906000526020600020905b8154815290600101906020018083116108f057829003601f168201915b50505050509150610929565b600290920291610826565b600092505b509250929050565b600080548491600160a060020a033381169216906302571be39084906040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561098a57600080fd5b6102c65a03f1151561099b57600080fd5b50505060405180519050600160a060020a03161415156109ba57600080fd5b6040805190810160409081528482526020808301859052600087815260019091522060030181518155602082015160019091015550837f1d6f5e03d3f63eb58751986629a5439baee5079ff04f345becb66e23eb154e46848460405191825260208201526040908101905180910390a250505050565b6000908152600160208190526040909120015490565b600090815260016020526040902054600160a060020a031690565b610a69611103565b60008381526001602052604090819020600501908390518082805190602001908083835b60208310610aac5780518252601f199092019160209182019101610a8d565b6001836020036101000a03801982511681845116808217855250505050505090500191505090815260200160405180910390208054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610b735780601f10610b4857610100808354040283529160200191610b73565b820191906000526020600020905b815481529060010190602001808311610b5657829003601f168201915b5050505050905092915050565b600080548491600160a060020a033381169216906302571be39084906040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b1515610bd957600080fd5b6102c65a03f11515610bea57600080fd5b50505060405180519050600160a060020a0316141515610c0957600080fd5b6000198301831615610c1a57600080fd5b60008481526001602090815260408083208684526006019091529020828051610c47929160200190611085565b5082847faa121bbeef5f32f5961a2a28966e769023910fc9479059ee3495d4c1a696efe360405160405180910390a350505050565b610c84611103565b6001600083600019166000191681526020019081526020016000206002018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610d365780601f10610d0b57610100808354040283529160200191610d36565b820191906000526020600020905b815481529060010190602001808311610d1957829003601f168201915b50505050509050919050565b600080548391600160a060020a033381169216906302571be39084906040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b1515610d9b57600080fd5b6102c65a03f11515610dac57600080fd5b50505060405180519050600160a060020a0316141515610dcb57600080fd5b6000838152600160205260409020600201828051610ded929160200190611085565b50827fb7d29e911041e8d9b843369e890bcb72c9388692ba48b65ac54e7214c4c348f78360405160208082528190810183818151815260200191508051906020019080838360005b83811015610e4d578082015183820152602001610e35565b50505050905090810190601f168015610e7a5780820380516001836020036101000a031916815260200191505b509250505060405180910390a2505050565b600080548391600160a060020a033381169216906302571be39084906040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b1515610ee557600080fd5b6102c65a03f11515610ef657600080fd5b50505060405180519050600160a060020a0316141515610f1557600080fd5b6000838152600160208190526040918290200183905583907f0424b6fe0d9c3bdbece0e7879dc241bb0c22e900be8b6c168b4ee08bd9bf83bc9084905190815260200160405180910390a2505050565b600090815260016020526040902060038101546004909101549091565b600080548391600160a060020a033381169216906302571be39084906040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b1515610fdb57600080fd5b6102c65a03f11515610fec57600080fd5b50505060405180519050600160a060020a031614151561100b57600080fd5b60008381526001602052604090819020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03851617905583907f52d7d861f09ab3d26239d492e8968629f95e9e318cf0b73bfddc441522a15fd290849051600160a060020a03909116815260200160405180910390a2505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106110c657805160ff19168380011785556110f3565b828001600101855582156110f3579182015b828111156110f35782518255916020019190600101906110d8565b506110ff929150611115565b5090565b60206040519081016040526000815290565b61112f91905b808211156110ff576000815560010161111b565b905600a165627a7a723058201ecacbc445b9fbcd91b0ab164389f69d7283b856883bc7437eeed1008345a4920029`
  18. // DeployPublicResolver deploys a new Ethereum contract, binding an instance of PublicResolver to it.
  19. func DeployPublicResolver(auth *bind.TransactOpts, backend bind.ContractBackend, ensAddr common.Address) (common.Address, *types.Transaction, *PublicResolver, error) {
  20. parsed, err := abi.JSON(strings.NewReader(PublicResolverABI))
  21. if err != nil {
  22. return common.Address{}, nil, nil, err
  23. }
  24. address, tx, contract, err := bind.DeployContract(auth, parsed, common.FromHex(PublicResolverBin), backend, ensAddr)
  25. if err != nil {
  26. return common.Address{}, nil, nil, err
  27. }
  28. return address, tx, &PublicResolver{PublicResolverCaller: PublicResolverCaller{contract: contract}, PublicResolverTransactor: PublicResolverTransactor{contract: contract}, PublicResolverFilterer: PublicResolverFilterer{contract: contract}}, nil
  29. }
  30. // PublicResolver is an auto generated Go binding around an Ethereum contract.
  31. type PublicResolver struct {
  32. PublicResolverCaller // Read-only binding to the contract
  33. PublicResolverTransactor // Write-only binding to the contract
  34. PublicResolverFilterer // Log filterer for contract events
  35. }
  36. // PublicResolverCaller is an auto generated read-only Go binding around an Ethereum contract.
  37. type PublicResolverCaller struct {
  38. contract *bind.BoundContract // Generic contract wrapper for the low level calls
  39. }
  40. // PublicResolverTransactor is an auto generated write-only Go binding around an Ethereum contract.
  41. type PublicResolverTransactor struct {
  42. contract *bind.BoundContract // Generic contract wrapper for the low level calls
  43. }
  44. // PublicResolverFilterer is an auto generated log filtering Go binding around an Ethereum contract events.
  45. type PublicResolverFilterer struct {
  46. contract *bind.BoundContract // Generic contract wrapper for the low level calls
  47. }
  48. // PublicResolverSession is an auto generated Go binding around an Ethereum contract,
  49. // with pre-set call and transact options.
  50. type PublicResolverSession struct {
  51. Contract *PublicResolver // Generic contract binding to set the session for
  52. CallOpts bind.CallOpts // Call options to use throughout this session
  53. TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
  54. }
  55. // PublicResolverCallerSession is an auto generated read-only Go binding around an Ethereum contract,
  56. // with pre-set call options.
  57. type PublicResolverCallerSession struct {
  58. Contract *PublicResolverCaller // Generic contract caller binding to set the session for
  59. CallOpts bind.CallOpts // Call options to use throughout this session
  60. }
  61. // PublicResolverTransactorSession is an auto generated write-only Go binding around an Ethereum contract,
  62. // with pre-set transact options.
  63. type PublicResolverTransactorSession struct {
  64. Contract *PublicResolverTransactor // Generic contract transactor binding to set the session for
  65. TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
  66. }
  67. // PublicResolverRaw is an auto generated low-level Go binding around an Ethereum contract.
  68. type PublicResolverRaw struct {
  69. Contract *PublicResolver // Generic contract binding to access the raw methods on
  70. }
  71. // PublicResolverCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract.
  72. type PublicResolverCallerRaw struct {
  73. Contract *PublicResolverCaller // Generic read-only contract binding to access the raw methods on
  74. }
  75. // PublicResolverTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract.
  76. type PublicResolverTransactorRaw struct {
  77. Contract *PublicResolverTransactor // Generic write-only contract binding to access the raw methods on
  78. }
  79. // NewPublicResolver creates a new instance of PublicResolver, bound to a specific deployed contract.
  80. func NewPublicResolver(address common.Address, backend bind.ContractBackend) (*PublicResolver, error) {
  81. contract, err := bindPublicResolver(address, backend, backend, backend)
  82. if err != nil {
  83. return nil, err
  84. }
  85. return &PublicResolver{PublicResolverCaller: PublicResolverCaller{contract: contract}, PublicResolverTransactor: PublicResolverTransactor{contract: contract}, PublicResolverFilterer: PublicResolverFilterer{contract: contract}}, nil
  86. }
  87. // NewPublicResolverCaller creates a new read-only instance of PublicResolver, bound to a specific deployed contract.
  88. func NewPublicResolverCaller(address common.Address, caller bind.ContractCaller) (*PublicResolverCaller, error) {
  89. contract, err := bindPublicResolver(address, caller, nil, nil)
  90. if err != nil {
  91. return nil, err
  92. }
  93. return &PublicResolverCaller{contract: contract}, nil
  94. }
  95. // NewPublicResolverTransactor creates a new write-only instance of PublicResolver, bound to a specific deployed contract.
  96. func NewPublicResolverTransactor(address common.Address, transactor bind.ContractTransactor) (*PublicResolverTransactor, error) {
  97. contract, err := bindPublicResolver(address, nil, transactor, nil)
  98. if err != nil {
  99. return nil, err
  100. }
  101. return &PublicResolverTransactor{contract: contract}, nil
  102. }
  103. // NewPublicResolverFilterer creates a new log filterer instance of PublicResolver, bound to a specific deployed contract.
  104. func NewPublicResolverFilterer(address common.Address, filterer bind.ContractFilterer) (*PublicResolverFilterer, error) {
  105. contract, err := bindPublicResolver(address, nil, nil, filterer)
  106. if err != nil {
  107. return nil, err
  108. }
  109. return &PublicResolverFilterer{contract: contract}, nil
  110. }
  111. // bindPublicResolver binds a generic wrapper to an already deployed contract.
  112. func bindPublicResolver(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
  113. parsed, err := abi.JSON(strings.NewReader(PublicResolverABI))
  114. if err != nil {
  115. return nil, err
  116. }
  117. return bind.NewBoundContract(address, parsed, caller, transactor, filterer), nil
  118. }
  119. // Call invokes the (constant) contract method with params as input values and
  120. // sets the output to result. The result type might be a single field for simple
  121. // returns, a slice of interfaces for anonymous returns and a struct for named
  122. // returns.
  123. func (_PublicResolver *PublicResolverRaw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error {
  124. return _PublicResolver.Contract.PublicResolverCaller.contract.Call(opts, result, method, params...)
  125. }
  126. // Transfer initiates a plain transaction to move funds to the contract, calling
  127. // its default method if one is available.
  128. func (_PublicResolver *PublicResolverRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
  129. return _PublicResolver.Contract.PublicResolverTransactor.contract.Transfer(opts)
  130. }
  131. // Transact invokes the (paid) contract method with params as input values.
  132. func (_PublicResolver *PublicResolverRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
  133. return _PublicResolver.Contract.PublicResolverTransactor.contract.Transact(opts, method, params...)
  134. }
  135. // Call invokes the (constant) contract method with params as input values and
  136. // sets the output to result. The result type might be a single field for simple
  137. // returns, a slice of interfaces for anonymous returns and a struct for named
  138. // returns.
  139. func (_PublicResolver *PublicResolverCallerRaw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error {
  140. return _PublicResolver.Contract.contract.Call(opts, result, method, params...)
  141. }
  142. // Transfer initiates a plain transaction to move funds to the contract, calling
  143. // its default method if one is available.
  144. func (_PublicResolver *PublicResolverTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
  145. return _PublicResolver.Contract.contract.Transfer(opts)
  146. }
  147. // Transact invokes the (paid) contract method with params as input values.
  148. func (_PublicResolver *PublicResolverTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
  149. return _PublicResolver.Contract.contract.Transact(opts, method, params...)
  150. }
  151. // ABI is a free data retrieval call binding the contract method 0x2203ab56.
  152. //
  153. // Solidity: function ABI(node bytes32, contentTypes uint256) constant returns(contentType uint256, data bytes)
  154. func (_PublicResolver *PublicResolverCaller) ABI(opts *bind.CallOpts, node [32]byte, contentTypes *big.Int) (struct {
  155. ContentType *big.Int
  156. Data []byte
  157. }, error) {
  158. ret := new(struct {
  159. ContentType *big.Int
  160. Data []byte
  161. })
  162. out := ret
  163. err := _PublicResolver.contract.Call(opts, out, "ABI", node, contentTypes)
  164. return *ret, err
  165. }
  166. // ABI is a free data retrieval call binding the contract method 0x2203ab56.
  167. //
  168. // Solidity: function ABI(node bytes32, contentTypes uint256) constant returns(contentType uint256, data bytes)
  169. func (_PublicResolver *PublicResolverSession) ABI(node [32]byte, contentTypes *big.Int) (struct {
  170. ContentType *big.Int
  171. Data []byte
  172. }, error) {
  173. return _PublicResolver.Contract.ABI(&_PublicResolver.CallOpts, node, contentTypes)
  174. }
  175. // ABI is a free data retrieval call binding the contract method 0x2203ab56.
  176. //
  177. // Solidity: function ABI(node bytes32, contentTypes uint256) constant returns(contentType uint256, data bytes)
  178. func (_PublicResolver *PublicResolverCallerSession) ABI(node [32]byte, contentTypes *big.Int) (struct {
  179. ContentType *big.Int
  180. Data []byte
  181. }, error) {
  182. return _PublicResolver.Contract.ABI(&_PublicResolver.CallOpts, node, contentTypes)
  183. }
  184. // Addr is a free data retrieval call binding the contract method 0x3b3b57de.
  185. //
  186. // Solidity: function addr(node bytes32) constant returns(ret address)
  187. func (_PublicResolver *PublicResolverCaller) Addr(opts *bind.CallOpts, node [32]byte) (common.Address, error) {
  188. var (
  189. ret0 = new(common.Address)
  190. )
  191. out := ret0
  192. err := _PublicResolver.contract.Call(opts, out, "addr", node)
  193. return *ret0, err
  194. }
  195. // Addr is a free data retrieval call binding the contract method 0x3b3b57de.
  196. //
  197. // Solidity: function addr(node bytes32) constant returns(ret address)
  198. func (_PublicResolver *PublicResolverSession) Addr(node [32]byte) (common.Address, error) {
  199. return _PublicResolver.Contract.Addr(&_PublicResolver.CallOpts, node)
  200. }
  201. // Addr is a free data retrieval call binding the contract method 0x3b3b57de.
  202. //
  203. // Solidity: function addr(node bytes32) constant returns(ret address)
  204. func (_PublicResolver *PublicResolverCallerSession) Addr(node [32]byte) (common.Address, error) {
  205. return _PublicResolver.Contract.Addr(&_PublicResolver.CallOpts, node)
  206. }
  207. // Content is a free data retrieval call binding the contract method 0x2dff6941.
  208. //
  209. // Solidity: function content(node bytes32) constant returns(ret bytes32)
  210. func (_PublicResolver *PublicResolverCaller) Content(opts *bind.CallOpts, node [32]byte) ([32]byte, error) {
  211. var (
  212. ret0 = new([32]byte)
  213. )
  214. out := ret0
  215. err := _PublicResolver.contract.Call(opts, out, "content", node)
  216. return *ret0, err
  217. }
  218. // Content is a free data retrieval call binding the contract method 0x2dff6941.
  219. //
  220. // Solidity: function content(node bytes32) constant returns(ret bytes32)
  221. func (_PublicResolver *PublicResolverSession) Content(node [32]byte) ([32]byte, error) {
  222. return _PublicResolver.Contract.Content(&_PublicResolver.CallOpts, node)
  223. }
  224. // Content is a free data retrieval call binding the contract method 0x2dff6941.
  225. //
  226. // Solidity: function content(node bytes32) constant returns(ret bytes32)
  227. func (_PublicResolver *PublicResolverCallerSession) Content(node [32]byte) ([32]byte, error) {
  228. return _PublicResolver.Contract.Content(&_PublicResolver.CallOpts, node)
  229. }
  230. // Name is a free data retrieval call binding the contract method 0x691f3431.
  231. //
  232. // Solidity: function name(node bytes32) constant returns(ret string)
  233. func (_PublicResolver *PublicResolverCaller) Name(opts *bind.CallOpts, node [32]byte) (string, error) {
  234. var (
  235. ret0 = new(string)
  236. )
  237. out := ret0
  238. err := _PublicResolver.contract.Call(opts, out, "name", node)
  239. return *ret0, err
  240. }
  241. // Name is a free data retrieval call binding the contract method 0x691f3431.
  242. //
  243. // Solidity: function name(node bytes32) constant returns(ret string)
  244. func (_PublicResolver *PublicResolverSession) Name(node [32]byte) (string, error) {
  245. return _PublicResolver.Contract.Name(&_PublicResolver.CallOpts, node)
  246. }
  247. // Name is a free data retrieval call binding the contract method 0x691f3431.
  248. //
  249. // Solidity: function name(node bytes32) constant returns(ret string)
  250. func (_PublicResolver *PublicResolverCallerSession) Name(node [32]byte) (string, error) {
  251. return _PublicResolver.Contract.Name(&_PublicResolver.CallOpts, node)
  252. }
  253. // Pubkey is a free data retrieval call binding the contract method 0xc8690233.
  254. //
  255. // Solidity: function pubkey(node bytes32) constant returns(x bytes32, y bytes32)
  256. func (_PublicResolver *PublicResolverCaller) Pubkey(opts *bind.CallOpts, node [32]byte) (struct {
  257. X [32]byte
  258. Y [32]byte
  259. }, error) {
  260. ret := new(struct {
  261. X [32]byte
  262. Y [32]byte
  263. })
  264. out := ret
  265. err := _PublicResolver.contract.Call(opts, out, "pubkey", node)
  266. return *ret, err
  267. }
  268. // Pubkey is a free data retrieval call binding the contract method 0xc8690233.
  269. //
  270. // Solidity: function pubkey(node bytes32) constant returns(x bytes32, y bytes32)
  271. func (_PublicResolver *PublicResolverSession) Pubkey(node [32]byte) (struct {
  272. X [32]byte
  273. Y [32]byte
  274. }, error) {
  275. return _PublicResolver.Contract.Pubkey(&_PublicResolver.CallOpts, node)
  276. }
  277. // Pubkey is a free data retrieval call binding the contract method 0xc8690233.
  278. //
  279. // Solidity: function pubkey(node bytes32) constant returns(x bytes32, y bytes32)
  280. func (_PublicResolver *PublicResolverCallerSession) Pubkey(node [32]byte) (struct {
  281. X [32]byte
  282. Y [32]byte
  283. }, error) {
  284. return _PublicResolver.Contract.Pubkey(&_PublicResolver.CallOpts, node)
  285. }
  286. // SupportsInterface is a free data retrieval call binding the contract method 0x01ffc9a7.
  287. //
  288. // Solidity: function supportsInterface(interfaceID bytes4) constant returns(bool)
  289. func (_PublicResolver *PublicResolverCaller) SupportsInterface(opts *bind.CallOpts, interfaceID [4]byte) (bool, error) {
  290. var (
  291. ret0 = new(bool)
  292. )
  293. out := ret0
  294. err := _PublicResolver.contract.Call(opts, out, "supportsInterface", interfaceID)
  295. return *ret0, err
  296. }
  297. // SupportsInterface is a free data retrieval call binding the contract method 0x01ffc9a7.
  298. //
  299. // Solidity: function supportsInterface(interfaceID bytes4) constant returns(bool)
  300. func (_PublicResolver *PublicResolverSession) SupportsInterface(interfaceID [4]byte) (bool, error) {
  301. return _PublicResolver.Contract.SupportsInterface(&_PublicResolver.CallOpts, interfaceID)
  302. }
  303. // SupportsInterface is a free data retrieval call binding the contract method 0x01ffc9a7.
  304. //
  305. // Solidity: function supportsInterface(interfaceID bytes4) constant returns(bool)
  306. func (_PublicResolver *PublicResolverCallerSession) SupportsInterface(interfaceID [4]byte) (bool, error) {
  307. return _PublicResolver.Contract.SupportsInterface(&_PublicResolver.CallOpts, interfaceID)
  308. }
  309. // Text is a free data retrieval call binding the contract method 0x59d1d43c.
  310. //
  311. // Solidity: function text(node bytes32, key string) constant returns(ret string)
  312. func (_PublicResolver *PublicResolverCaller) Text(opts *bind.CallOpts, node [32]byte, key string) (string, error) {
  313. var (
  314. ret0 = new(string)
  315. )
  316. out := ret0
  317. err := _PublicResolver.contract.Call(opts, out, "text", node, key)
  318. return *ret0, err
  319. }
  320. // Text is a free data retrieval call binding the contract method 0x59d1d43c.
  321. //
  322. // Solidity: function text(node bytes32, key string) constant returns(ret string)
  323. func (_PublicResolver *PublicResolverSession) Text(node [32]byte, key string) (string, error) {
  324. return _PublicResolver.Contract.Text(&_PublicResolver.CallOpts, node, key)
  325. }
  326. // Text is a free data retrieval call binding the contract method 0x59d1d43c.
  327. //
  328. // Solidity: function text(node bytes32, key string) constant returns(ret string)
  329. func (_PublicResolver *PublicResolverCallerSession) Text(node [32]byte, key string) (string, error) {
  330. return _PublicResolver.Contract.Text(&_PublicResolver.CallOpts, node, key)
  331. }
  332. // SetABI is a paid mutator transaction binding the contract method 0x623195b0.
  333. //
  334. // Solidity: function setABI(node bytes32, contentType uint256, data bytes) returns()
  335. func (_PublicResolver *PublicResolverTransactor) SetABI(opts *bind.TransactOpts, node [32]byte, contentType *big.Int, data []byte) (*types.Transaction, error) {
  336. return _PublicResolver.contract.Transact(opts, "setABI", node, contentType, data)
  337. }
  338. // SetABI is a paid mutator transaction binding the contract method 0x623195b0.
  339. //
  340. // Solidity: function setABI(node bytes32, contentType uint256, data bytes) returns()
  341. func (_PublicResolver *PublicResolverSession) SetABI(node [32]byte, contentType *big.Int, data []byte) (*types.Transaction, error) {
  342. return _PublicResolver.Contract.SetABI(&_PublicResolver.TransactOpts, node, contentType, data)
  343. }
  344. // SetABI is a paid mutator transaction binding the contract method 0x623195b0.
  345. //
  346. // Solidity: function setABI(node bytes32, contentType uint256, data bytes) returns()
  347. func (_PublicResolver *PublicResolverTransactorSession) SetABI(node [32]byte, contentType *big.Int, data []byte) (*types.Transaction, error) {
  348. return _PublicResolver.Contract.SetABI(&_PublicResolver.TransactOpts, node, contentType, data)
  349. }
  350. // SetAddr is a paid mutator transaction binding the contract method 0xd5fa2b00.
  351. //
  352. // Solidity: function setAddr(node bytes32, addr address) returns()
  353. func (_PublicResolver *PublicResolverTransactor) SetAddr(opts *bind.TransactOpts, node [32]byte, addr common.Address) (*types.Transaction, error) {
  354. return _PublicResolver.contract.Transact(opts, "setAddr", node, addr)
  355. }
  356. // SetAddr is a paid mutator transaction binding the contract method 0xd5fa2b00.
  357. //
  358. // Solidity: function setAddr(node bytes32, addr address) returns()
  359. func (_PublicResolver *PublicResolverSession) SetAddr(node [32]byte, addr common.Address) (*types.Transaction, error) {
  360. return _PublicResolver.Contract.SetAddr(&_PublicResolver.TransactOpts, node, addr)
  361. }
  362. // SetAddr is a paid mutator transaction binding the contract method 0xd5fa2b00.
  363. //
  364. // Solidity: function setAddr(node bytes32, addr address) returns()
  365. func (_PublicResolver *PublicResolverTransactorSession) SetAddr(node [32]byte, addr common.Address) (*types.Transaction, error) {
  366. return _PublicResolver.Contract.SetAddr(&_PublicResolver.TransactOpts, node, addr)
  367. }
  368. // SetContent is a paid mutator transaction binding the contract method 0xc3d014d6.
  369. //
  370. // Solidity: function setContent(node bytes32, hash bytes32) returns()
  371. func (_PublicResolver *PublicResolverTransactor) SetContent(opts *bind.TransactOpts, node [32]byte, hash [32]byte) (*types.Transaction, error) {
  372. return _PublicResolver.contract.Transact(opts, "setContent", node, hash)
  373. }
  374. // SetContent is a paid mutator transaction binding the contract method 0xc3d014d6.
  375. //
  376. // Solidity: function setContent(node bytes32, hash bytes32) returns()
  377. func (_PublicResolver *PublicResolverSession) SetContent(node [32]byte, hash [32]byte) (*types.Transaction, error) {
  378. return _PublicResolver.Contract.SetContent(&_PublicResolver.TransactOpts, node, hash)
  379. }
  380. // SetContent is a paid mutator transaction binding the contract method 0xc3d014d6.
  381. //
  382. // Solidity: function setContent(node bytes32, hash bytes32) returns()
  383. func (_PublicResolver *PublicResolverTransactorSession) SetContent(node [32]byte, hash [32]byte) (*types.Transaction, error) {
  384. return _PublicResolver.Contract.SetContent(&_PublicResolver.TransactOpts, node, hash)
  385. }
  386. // SetName is a paid mutator transaction binding the contract method 0x77372213.
  387. //
  388. // Solidity: function setName(node bytes32, name string) returns()
  389. func (_PublicResolver *PublicResolverTransactor) SetName(opts *bind.TransactOpts, node [32]byte, name string) (*types.Transaction, error) {
  390. return _PublicResolver.contract.Transact(opts, "setName", node, name)
  391. }
  392. // SetName is a paid mutator transaction binding the contract method 0x77372213.
  393. //
  394. // Solidity: function setName(node bytes32, name string) returns()
  395. func (_PublicResolver *PublicResolverSession) SetName(node [32]byte, name string) (*types.Transaction, error) {
  396. return _PublicResolver.Contract.SetName(&_PublicResolver.TransactOpts, node, name)
  397. }
  398. // SetName is a paid mutator transaction binding the contract method 0x77372213.
  399. //
  400. // Solidity: function setName(node bytes32, name string) returns()
  401. func (_PublicResolver *PublicResolverTransactorSession) SetName(node [32]byte, name string) (*types.Transaction, error) {
  402. return _PublicResolver.Contract.SetName(&_PublicResolver.TransactOpts, node, name)
  403. }
  404. // SetPubkey is a paid mutator transaction binding the contract method 0x29cd62ea.
  405. //
  406. // Solidity: function setPubkey(node bytes32, x bytes32, y bytes32) returns()
  407. func (_PublicResolver *PublicResolverTransactor) SetPubkey(opts *bind.TransactOpts, node [32]byte, x [32]byte, y [32]byte) (*types.Transaction, error) {
  408. return _PublicResolver.contract.Transact(opts, "setPubkey", node, x, y)
  409. }
  410. // SetPubkey is a paid mutator transaction binding the contract method 0x29cd62ea.
  411. //
  412. // Solidity: function setPubkey(node bytes32, x bytes32, y bytes32) returns()
  413. func (_PublicResolver *PublicResolverSession) SetPubkey(node [32]byte, x [32]byte, y [32]byte) (*types.Transaction, error) {
  414. return _PublicResolver.Contract.SetPubkey(&_PublicResolver.TransactOpts, node, x, y)
  415. }
  416. // SetPubkey is a paid mutator transaction binding the contract method 0x29cd62ea.
  417. //
  418. // Solidity: function setPubkey(node bytes32, x bytes32, y bytes32) returns()
  419. func (_PublicResolver *PublicResolverTransactorSession) SetPubkey(node [32]byte, x [32]byte, y [32]byte) (*types.Transaction, error) {
  420. return _PublicResolver.Contract.SetPubkey(&_PublicResolver.TransactOpts, node, x, y)
  421. }
  422. // SetText is a paid mutator transaction binding the contract method 0x10f13a8c.
  423. //
  424. // Solidity: function setText(node bytes32, key string, value string) returns()
  425. func (_PublicResolver *PublicResolverTransactor) SetText(opts *bind.TransactOpts, node [32]byte, key string, value string) (*types.Transaction, error) {
  426. return _PublicResolver.contract.Transact(opts, "setText", node, key, value)
  427. }
  428. // SetText is a paid mutator transaction binding the contract method 0x10f13a8c.
  429. //
  430. // Solidity: function setText(node bytes32, key string, value string) returns()
  431. func (_PublicResolver *PublicResolverSession) SetText(node [32]byte, key string, value string) (*types.Transaction, error) {
  432. return _PublicResolver.Contract.SetText(&_PublicResolver.TransactOpts, node, key, value)
  433. }
  434. // SetText is a paid mutator transaction binding the contract method 0x10f13a8c.
  435. //
  436. // Solidity: function setText(node bytes32, key string, value string) returns()
  437. func (_PublicResolver *PublicResolverTransactorSession) SetText(node [32]byte, key string, value string) (*types.Transaction, error) {
  438. return _PublicResolver.Contract.SetText(&_PublicResolver.TransactOpts, node, key, value)
  439. }
  440. // PublicResolverABIChangedIterator is returned from FilterABIChanged and is used to iterate over the raw logs and unpacked data for ABIChanged events raised by the PublicResolver contract.
  441. type PublicResolverABIChangedIterator struct {
  442. Event *PublicResolverABIChanged // Event containing the contract specifics and raw log
  443. contract *bind.BoundContract // Generic contract to use for unpacking event data
  444. event string // Event name to use for unpacking event data
  445. logs chan types.Log // Log channel receiving the found contract events
  446. sub ethereum.Subscription // Subscription for errors, completion and termination
  447. done bool // Whether the subscription completed delivering logs
  448. fail error // Occurred error to stop iteration
  449. }
  450. // Next advances the iterator to the subsequent event, returning whether there
  451. // are any more events found. In case of a retrieval or parsing error, false is
  452. // returned and Error() can be queried for the exact failure.
  453. func (it *PublicResolverABIChangedIterator) Next() bool {
  454. // If the iterator failed, stop iterating
  455. if it.fail != nil {
  456. return false
  457. }
  458. // If the iterator completed, deliver directly whatever's available
  459. if it.done {
  460. select {
  461. case log := <-it.logs:
  462. it.Event = new(PublicResolverABIChanged)
  463. if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  464. it.fail = err
  465. return false
  466. }
  467. it.Event.Raw = log
  468. return true
  469. default:
  470. return false
  471. }
  472. }
  473. // Iterator still in progress, wait for either a data or an error event
  474. select {
  475. case log := <-it.logs:
  476. it.Event = new(PublicResolverABIChanged)
  477. if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  478. it.fail = err
  479. return false
  480. }
  481. it.Event.Raw = log
  482. return true
  483. case err := <-it.sub.Err():
  484. it.done = true
  485. it.fail = err
  486. return it.Next()
  487. }
  488. }
  489. // Error retruned any retrieval or parsing error occurred during filtering.
  490. func (it *PublicResolverABIChangedIterator) Error() error {
  491. return it.fail
  492. }
  493. // Close terminates the iteration process, releasing any pending underlying
  494. // resources.
  495. func (it *PublicResolverABIChangedIterator) Close() error {
  496. it.sub.Unsubscribe()
  497. return nil
  498. }
  499. // PublicResolverABIChanged represents a ABIChanged event raised by the PublicResolver contract.
  500. type PublicResolverABIChanged struct {
  501. Node [32]byte
  502. ContentType *big.Int
  503. Raw types.Log // Blockchain specific contextual infos
  504. }
  505. // FilterABIChanged is a free log retrieval operation binding the contract event 0xaa121bbeef5f32f5961a2a28966e769023910fc9479059ee3495d4c1a696efe3.
  506. //
  507. // Solidity: event ABIChanged(node indexed bytes32, contentType indexed uint256)
  508. func (_PublicResolver *PublicResolverFilterer) FilterABIChanged(opts *bind.FilterOpts, node [][32]byte, contentType []*big.Int) (*PublicResolverABIChangedIterator, error) {
  509. var nodeRule []interface{}
  510. for _, nodeItem := range node {
  511. nodeRule = append(nodeRule, nodeItem)
  512. }
  513. var contentTypeRule []interface{}
  514. for _, contentTypeItem := range contentType {
  515. contentTypeRule = append(contentTypeRule, contentTypeItem)
  516. }
  517. logs, sub, err := _PublicResolver.contract.FilterLogs(opts, "ABIChanged", nodeRule, contentTypeRule)
  518. if err != nil {
  519. return nil, err
  520. }
  521. return &PublicResolverABIChangedIterator{contract: _PublicResolver.contract, event: "ABIChanged", logs: logs, sub: sub}, nil
  522. }
  523. // WatchABIChanged is a free log subscription operation binding the contract event 0xaa121bbeef5f32f5961a2a28966e769023910fc9479059ee3495d4c1a696efe3.
  524. //
  525. // Solidity: event ABIChanged(node indexed bytes32, contentType indexed uint256)
  526. func (_PublicResolver *PublicResolverFilterer) WatchABIChanged(opts *bind.WatchOpts, sink chan<- *PublicResolverABIChanged, node [][32]byte, contentType []*big.Int) (event.Subscription, error) {
  527. var nodeRule []interface{}
  528. for _, nodeItem := range node {
  529. nodeRule = append(nodeRule, nodeItem)
  530. }
  531. var contentTypeRule []interface{}
  532. for _, contentTypeItem := range contentType {
  533. contentTypeRule = append(contentTypeRule, contentTypeItem)
  534. }
  535. logs, sub, err := _PublicResolver.contract.WatchLogs(opts, "ABIChanged", nodeRule, contentTypeRule)
  536. if err != nil {
  537. return nil, err
  538. }
  539. return event.NewSubscription(func(quit <-chan struct{}) error {
  540. defer sub.Unsubscribe()
  541. for {
  542. select {
  543. case log := <-logs:
  544. // New log arrived, parse the event and forward to the user
  545. event := new(PublicResolverABIChanged)
  546. if err := _PublicResolver.contract.UnpackLog(event, "ABIChanged", log); err != nil {
  547. return err
  548. }
  549. event.Raw = log
  550. select {
  551. case sink <- event:
  552. case err := <-sub.Err():
  553. return err
  554. case <-quit:
  555. return nil
  556. }
  557. case err := <-sub.Err():
  558. return err
  559. case <-quit:
  560. return nil
  561. }
  562. }
  563. }), nil
  564. }
  565. // PublicResolverAddrChangedIterator is returned from FilterAddrChanged and is used to iterate over the raw logs and unpacked data for AddrChanged events raised by the PublicResolver contract.
  566. type PublicResolverAddrChangedIterator struct {
  567. Event *PublicResolverAddrChanged // Event containing the contract specifics and raw log
  568. contract *bind.BoundContract // Generic contract to use for unpacking event data
  569. event string // Event name to use for unpacking event data
  570. logs chan types.Log // Log channel receiving the found contract events
  571. sub ethereum.Subscription // Subscription for errors, completion and termination
  572. done bool // Whether the subscription completed delivering logs
  573. fail error // Occurred error to stop iteration
  574. }
  575. // Next advances the iterator to the subsequent event, returning whether there
  576. // are any more events found. In case of a retrieval or parsing error, false is
  577. // returned and Error() can be queried for the exact failure.
  578. func (it *PublicResolverAddrChangedIterator) Next() bool {
  579. // If the iterator failed, stop iterating
  580. if it.fail != nil {
  581. return false
  582. }
  583. // If the iterator completed, deliver directly whatever's available
  584. if it.done {
  585. select {
  586. case log := <-it.logs:
  587. it.Event = new(PublicResolverAddrChanged)
  588. if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  589. it.fail = err
  590. return false
  591. }
  592. it.Event.Raw = log
  593. return true
  594. default:
  595. return false
  596. }
  597. }
  598. // Iterator still in progress, wait for either a data or an error event
  599. select {
  600. case log := <-it.logs:
  601. it.Event = new(PublicResolverAddrChanged)
  602. if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  603. it.fail = err
  604. return false
  605. }
  606. it.Event.Raw = log
  607. return true
  608. case err := <-it.sub.Err():
  609. it.done = true
  610. it.fail = err
  611. return it.Next()
  612. }
  613. }
  614. // Error retruned any retrieval or parsing error occurred during filtering.
  615. func (it *PublicResolverAddrChangedIterator) Error() error {
  616. return it.fail
  617. }
  618. // Close terminates the iteration process, releasing any pending underlying
  619. // resources.
  620. func (it *PublicResolverAddrChangedIterator) Close() error {
  621. it.sub.Unsubscribe()
  622. return nil
  623. }
  624. // PublicResolverAddrChanged represents a AddrChanged event raised by the PublicResolver contract.
  625. type PublicResolverAddrChanged struct {
  626. Node [32]byte
  627. A common.Address
  628. Raw types.Log // Blockchain specific contextual infos
  629. }
  630. // FilterAddrChanged is a free log retrieval operation binding the contract event 0x52d7d861f09ab3d26239d492e8968629f95e9e318cf0b73bfddc441522a15fd2.
  631. //
  632. // Solidity: event AddrChanged(node indexed bytes32, a address)
  633. func (_PublicResolver *PublicResolverFilterer) FilterAddrChanged(opts *bind.FilterOpts, node [][32]byte) (*PublicResolverAddrChangedIterator, error) {
  634. var nodeRule []interface{}
  635. for _, nodeItem := range node {
  636. nodeRule = append(nodeRule, nodeItem)
  637. }
  638. logs, sub, err := _PublicResolver.contract.FilterLogs(opts, "AddrChanged", nodeRule)
  639. if err != nil {
  640. return nil, err
  641. }
  642. return &PublicResolverAddrChangedIterator{contract: _PublicResolver.contract, event: "AddrChanged", logs: logs, sub: sub}, nil
  643. }
  644. // WatchAddrChanged is a free log subscription operation binding the contract event 0x52d7d861f09ab3d26239d492e8968629f95e9e318cf0b73bfddc441522a15fd2.
  645. //
  646. // Solidity: event AddrChanged(node indexed bytes32, a address)
  647. func (_PublicResolver *PublicResolverFilterer) WatchAddrChanged(opts *bind.WatchOpts, sink chan<- *PublicResolverAddrChanged, node [][32]byte) (event.Subscription, error) {
  648. var nodeRule []interface{}
  649. for _, nodeItem := range node {
  650. nodeRule = append(nodeRule, nodeItem)
  651. }
  652. logs, sub, err := _PublicResolver.contract.WatchLogs(opts, "AddrChanged", nodeRule)
  653. if err != nil {
  654. return nil, err
  655. }
  656. return event.NewSubscription(func(quit <-chan struct{}) error {
  657. defer sub.Unsubscribe()
  658. for {
  659. select {
  660. case log := <-logs:
  661. // New log arrived, parse the event and forward to the user
  662. event := new(PublicResolverAddrChanged)
  663. if err := _PublicResolver.contract.UnpackLog(event, "AddrChanged", log); err != nil {
  664. return err
  665. }
  666. event.Raw = log
  667. select {
  668. case sink <- event:
  669. case err := <-sub.Err():
  670. return err
  671. case <-quit:
  672. return nil
  673. }
  674. case err := <-sub.Err():
  675. return err
  676. case <-quit:
  677. return nil
  678. }
  679. }
  680. }), nil
  681. }
  682. // PublicResolverContentChangedIterator is returned from FilterContentChanged and is used to iterate over the raw logs and unpacked data for ContentChanged events raised by the PublicResolver contract.
  683. type PublicResolverContentChangedIterator struct {
  684. Event *PublicResolverContentChanged // Event containing the contract specifics and raw log
  685. contract *bind.BoundContract // Generic contract to use for unpacking event data
  686. event string // Event name to use for unpacking event data
  687. logs chan types.Log // Log channel receiving the found contract events
  688. sub ethereum.Subscription // Subscription for errors, completion and termination
  689. done bool // Whether the subscription completed delivering logs
  690. fail error // Occurred error to stop iteration
  691. }
  692. // Next advances the iterator to the subsequent event, returning whether there
  693. // are any more events found. In case of a retrieval or parsing error, false is
  694. // returned and Error() can be queried for the exact failure.
  695. func (it *PublicResolverContentChangedIterator) Next() bool {
  696. // If the iterator failed, stop iterating
  697. if it.fail != nil {
  698. return false
  699. }
  700. // If the iterator completed, deliver directly whatever's available
  701. if it.done {
  702. select {
  703. case log := <-it.logs:
  704. it.Event = new(PublicResolverContentChanged)
  705. if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  706. it.fail = err
  707. return false
  708. }
  709. it.Event.Raw = log
  710. return true
  711. default:
  712. return false
  713. }
  714. }
  715. // Iterator still in progress, wait for either a data or an error event
  716. select {
  717. case log := <-it.logs:
  718. it.Event = new(PublicResolverContentChanged)
  719. if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  720. it.fail = err
  721. return false
  722. }
  723. it.Event.Raw = log
  724. return true
  725. case err := <-it.sub.Err():
  726. it.done = true
  727. it.fail = err
  728. return it.Next()
  729. }
  730. }
  731. // Error retruned any retrieval or parsing error occurred during filtering.
  732. func (it *PublicResolverContentChangedIterator) Error() error {
  733. return it.fail
  734. }
  735. // Close terminates the iteration process, releasing any pending underlying
  736. // resources.
  737. func (it *PublicResolverContentChangedIterator) Close() error {
  738. it.sub.Unsubscribe()
  739. return nil
  740. }
  741. // PublicResolverContentChanged represents a ContentChanged event raised by the PublicResolver contract.
  742. type PublicResolverContentChanged struct {
  743. Node [32]byte
  744. Hash [32]byte
  745. Raw types.Log // Blockchain specific contextual infos
  746. }
  747. // FilterContentChanged is a free log retrieval operation binding the contract event 0x0424b6fe0d9c3bdbece0e7879dc241bb0c22e900be8b6c168b4ee08bd9bf83bc.
  748. //
  749. // Solidity: event ContentChanged(node indexed bytes32, hash bytes32)
  750. func (_PublicResolver *PublicResolverFilterer) FilterContentChanged(opts *bind.FilterOpts, node [][32]byte) (*PublicResolverContentChangedIterator, error) {
  751. var nodeRule []interface{}
  752. for _, nodeItem := range node {
  753. nodeRule = append(nodeRule, nodeItem)
  754. }
  755. logs, sub, err := _PublicResolver.contract.FilterLogs(opts, "ContentChanged", nodeRule)
  756. if err != nil {
  757. return nil, err
  758. }
  759. return &PublicResolverContentChangedIterator{contract: _PublicResolver.contract, event: "ContentChanged", logs: logs, sub: sub}, nil
  760. }
  761. // WatchContentChanged is a free log subscription operation binding the contract event 0x0424b6fe0d9c3bdbece0e7879dc241bb0c22e900be8b6c168b4ee08bd9bf83bc.
  762. //
  763. // Solidity: event ContentChanged(node indexed bytes32, hash bytes32)
  764. func (_PublicResolver *PublicResolverFilterer) WatchContentChanged(opts *bind.WatchOpts, sink chan<- *PublicResolverContentChanged, node [][32]byte) (event.Subscription, error) {
  765. var nodeRule []interface{}
  766. for _, nodeItem := range node {
  767. nodeRule = append(nodeRule, nodeItem)
  768. }
  769. logs, sub, err := _PublicResolver.contract.WatchLogs(opts, "ContentChanged", nodeRule)
  770. if err != nil {
  771. return nil, err
  772. }
  773. return event.NewSubscription(func(quit <-chan struct{}) error {
  774. defer sub.Unsubscribe()
  775. for {
  776. select {
  777. case log := <-logs:
  778. // New log arrived, parse the event and forward to the user
  779. event := new(PublicResolverContentChanged)
  780. if err := _PublicResolver.contract.UnpackLog(event, "ContentChanged", log); err != nil {
  781. return err
  782. }
  783. event.Raw = log
  784. select {
  785. case sink <- event:
  786. case err := <-sub.Err():
  787. return err
  788. case <-quit:
  789. return nil
  790. }
  791. case err := <-sub.Err():
  792. return err
  793. case <-quit:
  794. return nil
  795. }
  796. }
  797. }), nil
  798. }
  799. // PublicResolverNameChangedIterator is returned from FilterNameChanged and is used to iterate over the raw logs and unpacked data for NameChanged events raised by the PublicResolver contract.
  800. type PublicResolverNameChangedIterator struct {
  801. Event *PublicResolverNameChanged // Event containing the contract specifics and raw log
  802. contract *bind.BoundContract // Generic contract to use for unpacking event data
  803. event string // Event name to use for unpacking event data
  804. logs chan types.Log // Log channel receiving the found contract events
  805. sub ethereum.Subscription // Subscription for errors, completion and termination
  806. done bool // Whether the subscription completed delivering logs
  807. fail error // Occurred error to stop iteration
  808. }
  809. // Next advances the iterator to the subsequent event, returning whether there
  810. // are any more events found. In case of a retrieval or parsing error, false is
  811. // returned and Error() can be queried for the exact failure.
  812. func (it *PublicResolverNameChangedIterator) Next() bool {
  813. // If the iterator failed, stop iterating
  814. if it.fail != nil {
  815. return false
  816. }
  817. // If the iterator completed, deliver directly whatever's available
  818. if it.done {
  819. select {
  820. case log := <-it.logs:
  821. it.Event = new(PublicResolverNameChanged)
  822. if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  823. it.fail = err
  824. return false
  825. }
  826. it.Event.Raw = log
  827. return true
  828. default:
  829. return false
  830. }
  831. }
  832. // Iterator still in progress, wait for either a data or an error event
  833. select {
  834. case log := <-it.logs:
  835. it.Event = new(PublicResolverNameChanged)
  836. if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  837. it.fail = err
  838. return false
  839. }
  840. it.Event.Raw = log
  841. return true
  842. case err := <-it.sub.Err():
  843. it.done = true
  844. it.fail = err
  845. return it.Next()
  846. }
  847. }
  848. // Error retruned any retrieval or parsing error occurred during filtering.
  849. func (it *PublicResolverNameChangedIterator) Error() error {
  850. return it.fail
  851. }
  852. // Close terminates the iteration process, releasing any pending underlying
  853. // resources.
  854. func (it *PublicResolverNameChangedIterator) Close() error {
  855. it.sub.Unsubscribe()
  856. return nil
  857. }
  858. // PublicResolverNameChanged represents a NameChanged event raised by the PublicResolver contract.
  859. type PublicResolverNameChanged struct {
  860. Node [32]byte
  861. Name string
  862. Raw types.Log // Blockchain specific contextual infos
  863. }
  864. // FilterNameChanged is a free log retrieval operation binding the contract event 0xb7d29e911041e8d9b843369e890bcb72c9388692ba48b65ac54e7214c4c348f7.
  865. //
  866. // Solidity: event NameChanged(node indexed bytes32, name string)
  867. func (_PublicResolver *PublicResolverFilterer) FilterNameChanged(opts *bind.FilterOpts, node [][32]byte) (*PublicResolverNameChangedIterator, error) {
  868. var nodeRule []interface{}
  869. for _, nodeItem := range node {
  870. nodeRule = append(nodeRule, nodeItem)
  871. }
  872. logs, sub, err := _PublicResolver.contract.FilterLogs(opts, "NameChanged", nodeRule)
  873. if err != nil {
  874. return nil, err
  875. }
  876. return &PublicResolverNameChangedIterator{contract: _PublicResolver.contract, event: "NameChanged", logs: logs, sub: sub}, nil
  877. }
  878. // WatchNameChanged is a free log subscription operation binding the contract event 0xb7d29e911041e8d9b843369e890bcb72c9388692ba48b65ac54e7214c4c348f7.
  879. //
  880. // Solidity: event NameChanged(node indexed bytes32, name string)
  881. func (_PublicResolver *PublicResolverFilterer) WatchNameChanged(opts *bind.WatchOpts, sink chan<- *PublicResolverNameChanged, node [][32]byte) (event.Subscription, error) {
  882. var nodeRule []interface{}
  883. for _, nodeItem := range node {
  884. nodeRule = append(nodeRule, nodeItem)
  885. }
  886. logs, sub, err := _PublicResolver.contract.WatchLogs(opts, "NameChanged", nodeRule)
  887. if err != nil {
  888. return nil, err
  889. }
  890. return event.NewSubscription(func(quit <-chan struct{}) error {
  891. defer sub.Unsubscribe()
  892. for {
  893. select {
  894. case log := <-logs:
  895. // New log arrived, parse the event and forward to the user
  896. event := new(PublicResolverNameChanged)
  897. if err := _PublicResolver.contract.UnpackLog(event, "NameChanged", log); err != nil {
  898. return err
  899. }
  900. event.Raw = log
  901. select {
  902. case sink <- event:
  903. case err := <-sub.Err():
  904. return err
  905. case <-quit:
  906. return nil
  907. }
  908. case err := <-sub.Err():
  909. return err
  910. case <-quit:
  911. return nil
  912. }
  913. }
  914. }), nil
  915. }
  916. // PublicResolverPubkeyChangedIterator is returned from FilterPubkeyChanged and is used to iterate over the raw logs and unpacked data for PubkeyChanged events raised by the PublicResolver contract.
  917. type PublicResolverPubkeyChangedIterator struct {
  918. Event *PublicResolverPubkeyChanged // Event containing the contract specifics and raw log
  919. contract *bind.BoundContract // Generic contract to use for unpacking event data
  920. event string // Event name to use for unpacking event data
  921. logs chan types.Log // Log channel receiving the found contract events
  922. sub ethereum.Subscription // Subscription for errors, completion and termination
  923. done bool // Whether the subscription completed delivering logs
  924. fail error // Occurred error to stop iteration
  925. }
  926. // Next advances the iterator to the subsequent event, returning whether there
  927. // are any more events found. In case of a retrieval or parsing error, false is
  928. // returned and Error() can be queried for the exact failure.
  929. func (it *PublicResolverPubkeyChangedIterator) Next() bool {
  930. // If the iterator failed, stop iterating
  931. if it.fail != nil {
  932. return false
  933. }
  934. // If the iterator completed, deliver directly whatever's available
  935. if it.done {
  936. select {
  937. case log := <-it.logs:
  938. it.Event = new(PublicResolverPubkeyChanged)
  939. if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  940. it.fail = err
  941. return false
  942. }
  943. it.Event.Raw = log
  944. return true
  945. default:
  946. return false
  947. }
  948. }
  949. // Iterator still in progress, wait for either a data or an error event
  950. select {
  951. case log := <-it.logs:
  952. it.Event = new(PublicResolverPubkeyChanged)
  953. if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  954. it.fail = err
  955. return false
  956. }
  957. it.Event.Raw = log
  958. return true
  959. case err := <-it.sub.Err():
  960. it.done = true
  961. it.fail = err
  962. return it.Next()
  963. }
  964. }
  965. // Error retruned any retrieval or parsing error occurred during filtering.
  966. func (it *PublicResolverPubkeyChangedIterator) Error() error {
  967. return it.fail
  968. }
  969. // Close terminates the iteration process, releasing any pending underlying
  970. // resources.
  971. func (it *PublicResolverPubkeyChangedIterator) Close() error {
  972. it.sub.Unsubscribe()
  973. return nil
  974. }
  975. // PublicResolverPubkeyChanged represents a PubkeyChanged event raised by the PublicResolver contract.
  976. type PublicResolverPubkeyChanged struct {
  977. Node [32]byte
  978. X [32]byte
  979. Y [32]byte
  980. Raw types.Log // Blockchain specific contextual infos
  981. }
  982. // FilterPubkeyChanged is a free log retrieval operation binding the contract event 0x1d6f5e03d3f63eb58751986629a5439baee5079ff04f345becb66e23eb154e46.
  983. //
  984. // Solidity: event PubkeyChanged(node indexed bytes32, x bytes32, y bytes32)
  985. func (_PublicResolver *PublicResolverFilterer) FilterPubkeyChanged(opts *bind.FilterOpts, node [][32]byte) (*PublicResolverPubkeyChangedIterator, error) {
  986. var nodeRule []interface{}
  987. for _, nodeItem := range node {
  988. nodeRule = append(nodeRule, nodeItem)
  989. }
  990. logs, sub, err := _PublicResolver.contract.FilterLogs(opts, "PubkeyChanged", nodeRule)
  991. if err != nil {
  992. return nil, err
  993. }
  994. return &PublicResolverPubkeyChangedIterator{contract: _PublicResolver.contract, event: "PubkeyChanged", logs: logs, sub: sub}, nil
  995. }
  996. // WatchPubkeyChanged is a free log subscription operation binding the contract event 0x1d6f5e03d3f63eb58751986629a5439baee5079ff04f345becb66e23eb154e46.
  997. //
  998. // Solidity: event PubkeyChanged(node indexed bytes32, x bytes32, y bytes32)
  999. func (_PublicResolver *PublicResolverFilterer) WatchPubkeyChanged(opts *bind.WatchOpts, sink chan<- *PublicResolverPubkeyChanged, node [][32]byte) (event.Subscription, error) {
  1000. var nodeRule []interface{}
  1001. for _, nodeItem := range node {
  1002. nodeRule = append(nodeRule, nodeItem)
  1003. }
  1004. logs, sub, err := _PublicResolver.contract.WatchLogs(opts, "PubkeyChanged", nodeRule)
  1005. if err != nil {
  1006. return nil, err
  1007. }
  1008. return event.NewSubscription(func(quit <-chan struct{}) error {
  1009. defer sub.Unsubscribe()
  1010. for {
  1011. select {
  1012. case log := <-logs:
  1013. // New log arrived, parse the event and forward to the user
  1014. event := new(PublicResolverPubkeyChanged)
  1015. if err := _PublicResolver.contract.UnpackLog(event, "PubkeyChanged", log); err != nil {
  1016. return err
  1017. }
  1018. event.Raw = log
  1019. select {
  1020. case sink <- event:
  1021. case err := <-sub.Err():
  1022. return err
  1023. case <-quit:
  1024. return nil
  1025. }
  1026. case err := <-sub.Err():
  1027. return err
  1028. case <-quit:
  1029. return nil
  1030. }
  1031. }
  1032. }), nil
  1033. }
  1034. // PublicResolverTextChangedIterator is returned from FilterTextChanged and is used to iterate over the raw logs and unpacked data for TextChanged events raised by the PublicResolver contract.
  1035. type PublicResolverTextChangedIterator struct {
  1036. Event *PublicResolverTextChanged // Event containing the contract specifics and raw log
  1037. contract *bind.BoundContract // Generic contract to use for unpacking event data
  1038. event string // Event name to use for unpacking event data
  1039. logs chan types.Log // Log channel receiving the found contract events
  1040. sub ethereum.Subscription // Subscription for errors, completion and termination
  1041. done bool // Whether the subscription completed delivering logs
  1042. fail error // Occurred error to stop iteration
  1043. }
  1044. // Next advances the iterator to the subsequent event, returning whether there
  1045. // are any more events found. In case of a retrieval or parsing error, false is
  1046. // returned and Error() can be queried for the exact failure.
  1047. func (it *PublicResolverTextChangedIterator) Next() bool {
  1048. // If the iterator failed, stop iterating
  1049. if it.fail != nil {
  1050. return false
  1051. }
  1052. // If the iterator completed, deliver directly whatever's available
  1053. if it.done {
  1054. select {
  1055. case log := <-it.logs:
  1056. it.Event = new(PublicResolverTextChanged)
  1057. if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1058. it.fail = err
  1059. return false
  1060. }
  1061. it.Event.Raw = log
  1062. return true
  1063. default:
  1064. return false
  1065. }
  1066. }
  1067. // Iterator still in progress, wait for either a data or an error event
  1068. select {
  1069. case log := <-it.logs:
  1070. it.Event = new(PublicResolverTextChanged)
  1071. if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1072. it.fail = err
  1073. return false
  1074. }
  1075. it.Event.Raw = log
  1076. return true
  1077. case err := <-it.sub.Err():
  1078. it.done = true
  1079. it.fail = err
  1080. return it.Next()
  1081. }
  1082. }
  1083. // Error retruned any retrieval or parsing error occurred during filtering.
  1084. func (it *PublicResolverTextChangedIterator) Error() error {
  1085. return it.fail
  1086. }
  1087. // Close terminates the iteration process, releasing any pending underlying
  1088. // resources.
  1089. func (it *PublicResolverTextChangedIterator) Close() error {
  1090. it.sub.Unsubscribe()
  1091. return nil
  1092. }
  1093. // PublicResolverTextChanged represents a TextChanged event raised by the PublicResolver contract.
  1094. type PublicResolverTextChanged struct {
  1095. Node [32]byte
  1096. IndexedKey common.Hash
  1097. Key string
  1098. Raw types.Log // Blockchain specific contextual infos
  1099. }
  1100. // FilterTextChanged is a free log retrieval operation binding the contract event 0xd8c9334b1a9c2f9da342a0a2b32629c1a229b6445dad78947f674b44444a7550.
  1101. //
  1102. // Solidity: event TextChanged(node indexed bytes32, indexedKey indexed string, key string)
  1103. func (_PublicResolver *PublicResolverFilterer) FilterTextChanged(opts *bind.FilterOpts, node [][32]byte, indexedKey []string) (*PublicResolverTextChangedIterator, error) {
  1104. var nodeRule []interface{}
  1105. for _, nodeItem := range node {
  1106. nodeRule = append(nodeRule, nodeItem)
  1107. }
  1108. var indexedKeyRule []interface{}
  1109. for _, indexedKeyItem := range indexedKey {
  1110. indexedKeyRule = append(indexedKeyRule, indexedKeyItem)
  1111. }
  1112. logs, sub, err := _PublicResolver.contract.FilterLogs(opts, "TextChanged", nodeRule, indexedKeyRule)
  1113. if err != nil {
  1114. return nil, err
  1115. }
  1116. return &PublicResolverTextChangedIterator{contract: _PublicResolver.contract, event: "TextChanged", logs: logs, sub: sub}, nil
  1117. }
  1118. // WatchTextChanged is a free log subscription operation binding the contract event 0xd8c9334b1a9c2f9da342a0a2b32629c1a229b6445dad78947f674b44444a7550.
  1119. //
  1120. // Solidity: event TextChanged(node indexed bytes32, indexedKey indexed string, key string)
  1121. func (_PublicResolver *PublicResolverFilterer) WatchTextChanged(opts *bind.WatchOpts, sink chan<- *PublicResolverTextChanged, node [][32]byte, indexedKey []string) (event.Subscription, error) {
  1122. var nodeRule []interface{}
  1123. for _, nodeItem := range node {
  1124. nodeRule = append(nodeRule, nodeItem)
  1125. }
  1126. var indexedKeyRule []interface{}
  1127. for _, indexedKeyItem := range indexedKey {
  1128. indexedKeyRule = append(indexedKeyRule, indexedKeyItem)
  1129. }
  1130. logs, sub, err := _PublicResolver.contract.WatchLogs(opts, "TextChanged", nodeRule, indexedKeyRule)
  1131. if err != nil {
  1132. return nil, err
  1133. }
  1134. return event.NewSubscription(func(quit <-chan struct{}) error {
  1135. defer sub.Unsubscribe()
  1136. for {
  1137. select {
  1138. case log := <-logs:
  1139. // New log arrived, parse the event and forward to the user
  1140. event := new(PublicResolverTextChanged)
  1141. if err := _PublicResolver.contract.UnpackLog(event, "TextChanged", log); err != nil {
  1142. return err
  1143. }
  1144. event.Raw = log
  1145. select {
  1146. case sink <- event:
  1147. case err := <-sub.Err():
  1148. return err
  1149. case <-quit:
  1150. return nil
  1151. }
  1152. case err := <-sub.Err():
  1153. return err
  1154. case <-quit:
  1155. return nil
  1156. }
  1157. }
  1158. }), nil
  1159. }