github.com/status-im/status-go@v1.1.0/contracts/community-tokens/deployer/CommunityTokenDeployer.go (about)

     1  // Code generated - DO NOT EDIT.
     2  // This file is a generated binding and any manual changes will be lost.
     3  
     4  package communitytokendeployer
     5  
     6  import (
     7  	"errors"
     8  	"math/big"
     9  	"strings"
    10  
    11  	ethereum "github.com/ethereum/go-ethereum"
    12  	"github.com/ethereum/go-ethereum/accounts/abi"
    13  	"github.com/ethereum/go-ethereum/accounts/abi/bind"
    14  	"github.com/ethereum/go-ethereum/common"
    15  	"github.com/ethereum/go-ethereum/core/types"
    16  	"github.com/ethereum/go-ethereum/event"
    17  )
    18  
    19  // Reference imports to suppress errors if they are not otherwise used.
    20  var (
    21  	_ = errors.New
    22  	_ = big.NewInt
    23  	_ = strings.NewReader
    24  	_ = ethereum.NotFound
    25  	_ = bind.Bind
    26  	_ = common.Big1
    27  	_ = types.BloomLookup
    28  	_ = event.NewSubscription
    29  	_ = abi.ConvertType
    30  )
    31  
    32  // CommunityTokenDeployerDeploymentSignature is an auto generated low-level Go binding around an user-defined struct.
    33  type CommunityTokenDeployerDeploymentSignature struct {
    34  	Signer   common.Address
    35  	Deployer common.Address
    36  	V        uint8
    37  	R        [32]byte
    38  	S        [32]byte
    39  }
    40  
    41  // CommunityTokenDeployerTokenConfig is an auto generated low-level Go binding around an user-defined struct.
    42  type CommunityTokenDeployerTokenConfig struct {
    43  	Name    string
    44  	Symbol  string
    45  	BaseURI string
    46  }
    47  
    48  // CommunityTokenDeployerMetaData contains all meta data concerning the CommunityTokenDeployer contract.
    49  var CommunityTokenDeployerMetaData = &bind.MetaData{
    50  	ABI: "[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_registry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_ownerTokenFactory\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_masterTokenFactory\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"CommunityTokenDeployer_AlreadyDeployed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CommunityTokenDeployer_EqualFactoryAddresses\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CommunityTokenDeployer_InvalidDeployerAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CommunityTokenDeployer_InvalidDeploymentRegistryAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CommunityTokenDeployer_InvalidDeploymentSignature\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CommunityTokenDeployer_InvalidSignerKeyOrCommunityAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CommunityTokenDeployer_InvalidTokenFactoryAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CommunityTokenDeployer_InvalidTokenMetadata\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidShortString\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"str\",\"type\":\"string\"}],\"name\":\"StringTooLong\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"DeployMasterToken\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"DeployOwnerToken\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"DeploymentRegistryAddressChange\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"EIP712DomainChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"MasterTokenFactoryAddressChange\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"OwnerTokenFactoryAddressChange\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferStarted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DEPLOYMENT_SIGNATURE_TYPEHASH\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DOMAIN_SEPARATOR\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"acceptOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"baseURI\",\"type\":\"string\"}],\"internalType\":\"structCommunityTokenDeployer.TokenConfig\",\"name\":\"_ownerToken\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"baseURI\",\"type\":\"string\"}],\"internalType\":\"structCommunityTokenDeployer.TokenConfig\",\"name\":\"_masterToken\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"signer\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"deployer\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"internalType\":\"structCommunityTokenDeployer.DeploymentSignature\",\"name\":\"_signature\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"_signerPublicKey\",\"type\":\"bytes\"}],\"name\":\"deploy\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"deploymentRegistry\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"eip712Domain\",\"outputs\":[{\"internalType\":\"bytes1\",\"name\":\"fields\",\"type\":\"bytes1\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"version\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"verifyingContract\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"},{\"internalType\":\"uint256[]\",\"name\":\"extensions\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"masterTokenFactory\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ownerTokenFactory\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pendingOwner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_deploymentRegistry\",\"type\":\"address\"}],\"name\":\"setDeploymentRegistryAddress\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_masterTokenFactory\",\"type\":\"address\"}],\"name\":\"setMasterTokenFactoryAddress\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_ownerTokenFactory\",\"type\":\"address\"}],\"name\":\"setOwnerTokenFactoryAddress\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]",
    51  	Bin: "0x6101606040523480156200001257600080fd5b50604051620020df380380620020df833981016040819052620000359162000372565b6040518060400160405280601681526020017f436f6d6d756e697479546f6b656e4465706c6f79657200000000000000000000815250604051806040016040528060018152602001603160f81b815250620000a06000836200023a60201b62000c0e1790919060201c565b61012052620000bd8160016200023a602090811b62000c0e17901c565b61014052815160208084019190912060e052815190820120610100524660a0526200014b60e05161010051604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60208201529081019290925260608201524660808201523060a082015260009060c00160405160208183030381529060405280519060200120905090565b60805250503060c0526200015f336200028a565b6001600160a01b03831662000187576040516333a066b160e11b815260040160405180910390fd5b6001600160a01b0382161580620001a557506001600160a01b038116155b15620001c457604051633b901c6960e11b815260040160405180910390fd5b806001600160a01b0316826001600160a01b031603620001f757604051631b08426360e11b815260040160405180910390fd5b600480546001600160a01b039485166001600160a01b031991821617909155600580549385169382169390931790925560068054919093169116179055620005a2565b60006020835110156200025a576200025283620002b4565b905062000284565b8262000271836200030060201b62000c411760201c565b906200027e908262000461565b5060ff90505b92915050565b600380546001600160a01b0319169055620002b18162000303602090811b62000c4417901c565b50565b600080829050601f81511115620002eb578260405163305a27a960e01b8152600401620002e291906200052d565b60405180910390fd5b8051620002f8826200057d565b179392505050565b90565b600280546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b80516001600160a01b03811681146200036d57600080fd5b919050565b6000806000606084860312156200038857600080fd5b620003938462000355565b9250620003a36020850162000355565b9150620003b36040850162000355565b90509250925092565b634e487b7160e01b600052604160045260246000fd5b600181811c90821680620003e757607f821691505b6020821081036200040857634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200045c57600081815260208120601f850160051c81016020861015620004375750805b601f850160051c820191505b81811015620004585782815560010162000443565b5050505b505050565b81516001600160401b038111156200047d576200047d620003bc565b62000495816200048e8454620003d2565b846200040e565b602080601f831160018114620004cd5760008415620004b45750858301515b600019600386901b1c1916600185901b17855562000458565b600085815260208120601f198616915b82811015620004fe57888601518255948401946001909101908401620004dd565b50858210156200051d5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600060208083528351808285015260005b818110156200055c578581018301518582016040015282016200053e565b506000604082860101526040601f19601f8301168501019250505092915050565b80516020808301519190811015620004085760001960209190910360031b1b16919050565b60805160a05160c05160e051610100516101205161014051611ae2620005fd60003960006103cb015260006103a101526000610da201526000610d7a01526000610cd501526000610cff01526000610d290152611ae26000f3fe608060405234801561001057600080fd5b50600436106100f55760003560e01c80639ff02d1811610097578063c663109211610066578063c663109214610252578063e30c397814610272578063f2fde38b14610290578063f8851475146102a357600080fd5b80639ff02d18146101c5578063a53b2bdb146101d8578063a825483c146101eb578063b0f95f281461021257600080fd5b806379ba5097116100d357806379ba509714610164578063830c26261461016c57806384b0196e1461018c5780638da5cb5b146101a757600080fd5b80633644e515146100fa57806362457f5914610115578063715018a61461015a575b600080fd5b6101026102b6565b6040519081526020015b60405180910390f35b6005546101359073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161010c565b6101626102c5565b005b6101626102d9565b6006546101359073ffffffffffffffffffffffffffffffffffffffff1681565b610194610393565b60405161010c979695949392919061148a565b60025473ffffffffffffffffffffffffffffffffffffffff16610135565b6101626101d336600461156b565b610437565b6101626101e636600461156b565b6104fb565b6101027fdd91c30357aafeb2792b5f0facbd83995943c1ea113a906ebbeb58bfeb27dfc281565b6102256102203660046115d6565b6105bf565b6040805173ffffffffffffffffffffffffffffffffffffffff93841681529290911660208301520161010c565b6004546101359073ffffffffffffffffffffffffffffffffffffffff1681565b60035473ffffffffffffffffffffffffffffffffffffffff16610135565b61016261029e36600461156b565b610a9a565b6101626102b136600461156b565b610b4a565b60006102c0610cbb565b905090565b6102cd610df3565b6102d76000610e74565b565b600354339073ffffffffffffffffffffffffffffffffffffffff168114610387576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f74207468652060448201527f6e6577206f776e6572000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b61039081610e74565b50565b6000606080828080836103c67f000000000000000000000000000000000000000000000000000000000000000083610ea5565b6103f17f00000000000000000000000000000000000000000000000000000000000000006001610ea5565b604080516000808252602082019092527f0f000000000000000000000000000000000000000000000000000000000000009b939a50919850469750309650945092509050565b61043f610df3565b73ffffffffffffffffffffffffffffffffffffffff811661048c576040517f772038d200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600580547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040517f17ae1257210039eb267be68929104e6c28fc9ebb9dc6aaa84be39b45eb6f376790600090a250565b610503610df3565b73ffffffffffffffffffffffffffffffffffffffff8116610550576040517f772038d200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600680547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040517f184513c31b135bda32c81b8586d52ad5bdbc7b7e4ec5847eee48374ee07e8e4890600090a250565b600080806105d0602086018661156b565b73ffffffffffffffffffffffffffffffffffffffff1614806105f157508251155b15610628576040517fb5709c7f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b33610639604086016020870161156b565b73ffffffffffffffffffffffffffffffffffffffff1614610686576040517f3137f20700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60045460009073ffffffffffffffffffffffffffffffffffffffff16637db6a4e46106b4602088018861156b565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b16815273ffffffffffffffffffffffffffffffffffffffff90911660048201526024016020604051808303816000875af115801561071f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610743919061172b565b73ffffffffffffffffffffffffffffffffffffffff1614610790576040517f1f58274700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61079984610f49565b6107cf576040517f18f68bed00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60055460009073ffffffffffffffffffffffffffffffffffffffff1663cc3c79756107fa8980611748565b61080760208c018c611748565b61081460408e018e611748565b338c6040518963ffffffff1660e01b81526004016108399897969594939291906117fd565b6020604051808303816000875af1158015610858573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061087c919061172b565b60405190915073ffffffffffffffffffffffffffffffffffffffff8216907f6f60871ce1ae7c2bc82a9fca785cdf029fa7c9984afe96eaa106d1b7b19c632290600090a260065460009073ffffffffffffffffffffffffffffffffffffffff1663cc3c79756108eb8980611748565b6108f860208c018c611748565b61090560408e018e611748565b604080516020810182526000815290517fffffffff0000000000000000000000000000000000000000000000000000000060e08a901b168152610952979695949392918c916004016117fd565b6020604051808303816000875af1158015610971573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610995919061172b565b60405190915073ffffffffffffffffffffffffffffffffffffffff8216907f1464afef6e77413c9c3201405b55530340d684e2a19f3a9d83bc604d4aa3a25590600090a260045473ffffffffffffffffffffffffffffffffffffffff1663a7a95840610a04602089018961156b565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b16815273ffffffffffffffffffffffffffffffffffffffff91821660048201529085166024820152604401600060405180830381600087803b158015610a7257600080fd5b505af1158015610a86573d6000803e3d6000fd5b509395509193505050505b94509492505050565b610aa2610df3565b6003805473ffffffffffffffffffffffffffffffffffffffff83167fffffffffffffffffffffffff00000000000000000000000000000000000000009091168117909155610b0560025473ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b610b52610df3565b73ffffffffffffffffffffffffffffffffffffffff8116610b9f576040517f6740cd6200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600480547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040517f8f3be421db34ad7dfa5c7fb9391b363b444007c7b26f0a22c58aad6e130b935e90600090a250565b6000602083511015610c2a57610c2383611040565b9050610c3b565b81610c358482611914565b5060ff90505b92915050565b90565b6002805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60003073ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016148015610d2157507f000000000000000000000000000000000000000000000000000000000000000046145b15610d4b57507f000000000000000000000000000000000000000000000000000000000000000090565b6102c0604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60208201527f0000000000000000000000000000000000000000000000000000000000000000918101919091527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a082015260009060c00160405160208183030381529060405280519060200120905090565b60025473ffffffffffffffffffffffffffffffffffffffff1633146102d7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161037e565b600380547fffffffffffffffffffffffff000000000000000000000000000000000000000016905561039081610c44565b606060ff8314610eb857610c2383611097565b818054610ec490611878565b80601f0160208091040260200160405190810160405280929190818152602001828054610ef090611878565b8015610f3d5780601f10610f1257610100808354040283529160200191610f3d565b820191906000526020600020905b815481529060010190602001808311610f2057829003601f168201915b50505050509050610c3b565b600080610fd97fdd91c30357aafeb2792b5f0facbd83995943c1ea113a906ebbeb58bfeb27dfc2610f7d602086018661156b565b610f8d604087016020880161156b565b60408051602081019490945273ffffffffffffffffffffffffffffffffffffffff92831690840152166060820152608001604051602081830303815290604052805190602001206110d6565b9050610fff610fee6060850160408601611a2e565b82906060860135608087013561111e565b73ffffffffffffffffffffffffffffffffffffffff16611022602085018561156b565b73ffffffffffffffffffffffffffffffffffffffff16149392505050565b600080829050601f8151111561108457826040517f305a27a900000000000000000000000000000000000000000000000000000000815260040161037e9190611a51565b805161108f82611a64565b179392505050565b606060006110a483611146565b604080516020808252818301909252919250600091906020820181803683375050509182525060208101929092525090565b6000610c3b6110e3610cbb565b836040517f19010000000000000000000000000000000000000000000000000000000000008152600281019290925260228201526042902090565b600080600061112f87878787611187565b9150915061113c81611273565b5095945050505050565b600060ff8216601f811115610c3b576040517fb3512b0c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156111be5750600090506003610a91565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015611212573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff811661126657600060019250925050610a91565b9660009650945050505050565b600081600481111561128757611287611aa6565b0361128f5750565b60018160048111156112a3576112a3611aa6565b0361130a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f45434453413a20696e76616c6964207369676e61747572650000000000000000604482015260640161037e565b600281600481111561131e5761131e611aa6565b03611385576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e67746800604482015260640161037e565b600381600481111561139957611399611aa6565b03610390576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c60448201527f7565000000000000000000000000000000000000000000000000000000000000606482015260840161037e565b6000815180845260005b8181101561144c57602081850181015186830182015201611430565b5060006020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b7fff00000000000000000000000000000000000000000000000000000000000000881681526000602060e0818401526114c660e084018a611426565b83810360408501526114d8818a611426565b6060850189905273ffffffffffffffffffffffffffffffffffffffff8816608086015260a0850187905284810360c0860152855180825283870192509083019060005b818110156115375783518352928401929184019160010161151b565b50909c9b505050505050505050505050565b73ffffffffffffffffffffffffffffffffffffffff8116811461039057600080fd5b60006020828403121561157d57600080fd5b813561158881611549565b9392505050565b6000606082840312156115a157600080fd5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000806000808486036101008112156115ee57600080fd5b853567ffffffffffffffff8082111561160657600080fd5b61161289838a0161158f565b9650602088013591508082111561162857600080fd5b61163489838a0161158f565b955060a07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc08401121561166657600080fd5b60408801945060e088013592508083111561168057600080fd5b828801925088601f84011261169457600080fd5b82359150808211156116a8576116a86115a7565b604051601f83017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f011681019082821181831017156116ee576116ee6115a7565b816040528381528a602085870101111561170757600080fd5b83602086016020830137600060208583010152809550505050505092959194509250565b60006020828403121561173d57600080fd5b815161158881611549565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe184360301811261177d57600080fd5b83018035915067ffffffffffffffff82111561179857600080fd5b6020019150368190038213156117ad57600080fd5b9250929050565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b60a08152600061181160a083018a8c6117b4565b828103602084015261182481898b6117b4565b905082810360408401526118398187896117b4565b905073ffffffffffffffffffffffffffffffffffffffff8516606084015282810360808401526118698185611426565b9b9a5050505050505050505050565b600181811c9082168061188c57607f821691505b6020821081036115a1577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b601f82111561190f57600081815260208120601f850160051c810160208610156118ec5750805b601f850160051c820191505b8181101561190b578281556001016118f8565b5050505b505050565b815167ffffffffffffffff81111561192e5761192e6115a7565b6119428161193c8454611878565b846118c5565b602080601f831160018114611995576000841561195f5750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b17855561190b565b6000858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08616915b828110156119e2578886015182559484019460019091019084016119c3565b5085821015611a1e57878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b5050505050600190811b01905550565b600060208284031215611a4057600080fd5b813560ff8116811461158857600080fd5b6020815260006115886020830184611426565b805160208083015191908110156115a1577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60209190910360031b1b16919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fdfea164736f6c6343000811000a",
    52  }
    53  
    54  // CommunityTokenDeployerABI is the input ABI used to generate the binding from.
    55  // Deprecated: Use CommunityTokenDeployerMetaData.ABI instead.
    56  var CommunityTokenDeployerABI = CommunityTokenDeployerMetaData.ABI
    57  
    58  // CommunityTokenDeployerBin is the compiled bytecode used for deploying new contracts.
    59  // Deprecated: Use CommunityTokenDeployerMetaData.Bin instead.
    60  var CommunityTokenDeployerBin = CommunityTokenDeployerMetaData.Bin
    61  
    62  // DeployCommunityTokenDeployer deploys a new Ethereum contract, binding an instance of CommunityTokenDeployer to it.
    63  func DeployCommunityTokenDeployer(auth *bind.TransactOpts, backend bind.ContractBackend, _registry common.Address, _ownerTokenFactory common.Address, _masterTokenFactory common.Address) (common.Address, *types.Transaction, *CommunityTokenDeployer, error) {
    64  	parsed, err := CommunityTokenDeployerMetaData.GetAbi()
    65  	if err != nil {
    66  		return common.Address{}, nil, nil, err
    67  	}
    68  	if parsed == nil {
    69  		return common.Address{}, nil, nil, errors.New("GetABI returned nil")
    70  	}
    71  
    72  	address, tx, contract, err := bind.DeployContract(auth, *parsed, common.FromHex(CommunityTokenDeployerBin), backend, _registry, _ownerTokenFactory, _masterTokenFactory)
    73  	if err != nil {
    74  		return common.Address{}, nil, nil, err
    75  	}
    76  	return address, tx, &CommunityTokenDeployer{CommunityTokenDeployerCaller: CommunityTokenDeployerCaller{contract: contract}, CommunityTokenDeployerTransactor: CommunityTokenDeployerTransactor{contract: contract}, CommunityTokenDeployerFilterer: CommunityTokenDeployerFilterer{contract: contract}}, nil
    77  }
    78  
    79  // CommunityTokenDeployer is an auto generated Go binding around an Ethereum contract.
    80  type CommunityTokenDeployer struct {
    81  	CommunityTokenDeployerCaller     // Read-only binding to the contract
    82  	CommunityTokenDeployerTransactor // Write-only binding to the contract
    83  	CommunityTokenDeployerFilterer   // Log filterer for contract events
    84  }
    85  
    86  // CommunityTokenDeployerCaller is an auto generated read-only Go binding around an Ethereum contract.
    87  type CommunityTokenDeployerCaller struct {
    88  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
    89  }
    90  
    91  // CommunityTokenDeployerTransactor is an auto generated write-only Go binding around an Ethereum contract.
    92  type CommunityTokenDeployerTransactor struct {
    93  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
    94  }
    95  
    96  // CommunityTokenDeployerFilterer is an auto generated log filtering Go binding around an Ethereum contract events.
    97  type CommunityTokenDeployerFilterer struct {
    98  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
    99  }
   100  
   101  // CommunityTokenDeployerSession is an auto generated Go binding around an Ethereum contract,
   102  // with pre-set call and transact options.
   103  type CommunityTokenDeployerSession struct {
   104  	Contract     *CommunityTokenDeployer // Generic contract binding to set the session for
   105  	CallOpts     bind.CallOpts           // Call options to use throughout this session
   106  	TransactOpts bind.TransactOpts       // Transaction auth options to use throughout this session
   107  }
   108  
   109  // CommunityTokenDeployerCallerSession is an auto generated read-only Go binding around an Ethereum contract,
   110  // with pre-set call options.
   111  type CommunityTokenDeployerCallerSession struct {
   112  	Contract *CommunityTokenDeployerCaller // Generic contract caller binding to set the session for
   113  	CallOpts bind.CallOpts                 // Call options to use throughout this session
   114  }
   115  
   116  // CommunityTokenDeployerTransactorSession is an auto generated write-only Go binding around an Ethereum contract,
   117  // with pre-set transact options.
   118  type CommunityTokenDeployerTransactorSession struct {
   119  	Contract     *CommunityTokenDeployerTransactor // Generic contract transactor binding to set the session for
   120  	TransactOpts bind.TransactOpts                 // Transaction auth options to use throughout this session
   121  }
   122  
   123  // CommunityTokenDeployerRaw is an auto generated low-level Go binding around an Ethereum contract.
   124  type CommunityTokenDeployerRaw struct {
   125  	Contract *CommunityTokenDeployer // Generic contract binding to access the raw methods on
   126  }
   127  
   128  // CommunityTokenDeployerCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract.
   129  type CommunityTokenDeployerCallerRaw struct {
   130  	Contract *CommunityTokenDeployerCaller // Generic read-only contract binding to access the raw methods on
   131  }
   132  
   133  // CommunityTokenDeployerTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract.
   134  type CommunityTokenDeployerTransactorRaw struct {
   135  	Contract *CommunityTokenDeployerTransactor // Generic write-only contract binding to access the raw methods on
   136  }
   137  
   138  // NewCommunityTokenDeployer creates a new instance of CommunityTokenDeployer, bound to a specific deployed contract.
   139  func NewCommunityTokenDeployer(address common.Address, backend bind.ContractBackend) (*CommunityTokenDeployer, error) {
   140  	contract, err := bindCommunityTokenDeployer(address, backend, backend, backend)
   141  	if err != nil {
   142  		return nil, err
   143  	}
   144  	return &CommunityTokenDeployer{CommunityTokenDeployerCaller: CommunityTokenDeployerCaller{contract: contract}, CommunityTokenDeployerTransactor: CommunityTokenDeployerTransactor{contract: contract}, CommunityTokenDeployerFilterer: CommunityTokenDeployerFilterer{contract: contract}}, nil
   145  }
   146  
   147  // NewCommunityTokenDeployerCaller creates a new read-only instance of CommunityTokenDeployer, bound to a specific deployed contract.
   148  func NewCommunityTokenDeployerCaller(address common.Address, caller bind.ContractCaller) (*CommunityTokenDeployerCaller, error) {
   149  	contract, err := bindCommunityTokenDeployer(address, caller, nil, nil)
   150  	if err != nil {
   151  		return nil, err
   152  	}
   153  	return &CommunityTokenDeployerCaller{contract: contract}, nil
   154  }
   155  
   156  // NewCommunityTokenDeployerTransactor creates a new write-only instance of CommunityTokenDeployer, bound to a specific deployed contract.
   157  func NewCommunityTokenDeployerTransactor(address common.Address, transactor bind.ContractTransactor) (*CommunityTokenDeployerTransactor, error) {
   158  	contract, err := bindCommunityTokenDeployer(address, nil, transactor, nil)
   159  	if err != nil {
   160  		return nil, err
   161  	}
   162  	return &CommunityTokenDeployerTransactor{contract: contract}, nil
   163  }
   164  
   165  // NewCommunityTokenDeployerFilterer creates a new log filterer instance of CommunityTokenDeployer, bound to a specific deployed contract.
   166  func NewCommunityTokenDeployerFilterer(address common.Address, filterer bind.ContractFilterer) (*CommunityTokenDeployerFilterer, error) {
   167  	contract, err := bindCommunityTokenDeployer(address, nil, nil, filterer)
   168  	if err != nil {
   169  		return nil, err
   170  	}
   171  	return &CommunityTokenDeployerFilterer{contract: contract}, nil
   172  }
   173  
   174  // bindCommunityTokenDeployer binds a generic wrapper to an already deployed contract.
   175  func bindCommunityTokenDeployer(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
   176  	parsed, err := CommunityTokenDeployerMetaData.GetAbi()
   177  	if err != nil {
   178  		return nil, err
   179  	}
   180  	return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil
   181  }
   182  
   183  // Call invokes the (constant) contract method with params as input values and
   184  // sets the output to result. The result type might be a single field for simple
   185  // returns, a slice of interfaces for anonymous returns and a struct for named
   186  // returns.
   187  func (_CommunityTokenDeployer *CommunityTokenDeployerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
   188  	return _CommunityTokenDeployer.Contract.CommunityTokenDeployerCaller.contract.Call(opts, result, method, params...)
   189  }
   190  
   191  // Transfer initiates a plain transaction to move funds to the contract, calling
   192  // its default method if one is available.
   193  func (_CommunityTokenDeployer *CommunityTokenDeployerRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
   194  	return _CommunityTokenDeployer.Contract.CommunityTokenDeployerTransactor.contract.Transfer(opts)
   195  }
   196  
   197  // Transact invokes the (paid) contract method with params as input values.
   198  func (_CommunityTokenDeployer *CommunityTokenDeployerRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
   199  	return _CommunityTokenDeployer.Contract.CommunityTokenDeployerTransactor.contract.Transact(opts, method, params...)
   200  }
   201  
   202  // Call invokes the (constant) contract method with params as input values and
   203  // sets the output to result. The result type might be a single field for simple
   204  // returns, a slice of interfaces for anonymous returns and a struct for named
   205  // returns.
   206  func (_CommunityTokenDeployer *CommunityTokenDeployerCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
   207  	return _CommunityTokenDeployer.Contract.contract.Call(opts, result, method, params...)
   208  }
   209  
   210  // Transfer initiates a plain transaction to move funds to the contract, calling
   211  // its default method if one is available.
   212  func (_CommunityTokenDeployer *CommunityTokenDeployerTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
   213  	return _CommunityTokenDeployer.Contract.contract.Transfer(opts)
   214  }
   215  
   216  // Transact invokes the (paid) contract method with params as input values.
   217  func (_CommunityTokenDeployer *CommunityTokenDeployerTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
   218  	return _CommunityTokenDeployer.Contract.contract.Transact(opts, method, params...)
   219  }
   220  
   221  // DEPLOYMENTSIGNATURETYPEHASH is a free data retrieval call binding the contract method 0xa825483c.
   222  //
   223  // Solidity: function DEPLOYMENT_SIGNATURE_TYPEHASH() view returns(bytes32)
   224  func (_CommunityTokenDeployer *CommunityTokenDeployerCaller) DEPLOYMENTSIGNATURETYPEHASH(opts *bind.CallOpts) ([32]byte, error) {
   225  	var out []interface{}
   226  	err := _CommunityTokenDeployer.contract.Call(opts, &out, "DEPLOYMENT_SIGNATURE_TYPEHASH")
   227  
   228  	if err != nil {
   229  		return *new([32]byte), err
   230  	}
   231  
   232  	out0 := *abi.ConvertType(out[0], new([32]byte)).(*[32]byte)
   233  
   234  	return out0, err
   235  
   236  }
   237  
   238  // DEPLOYMENTSIGNATURETYPEHASH is a free data retrieval call binding the contract method 0xa825483c.
   239  //
   240  // Solidity: function DEPLOYMENT_SIGNATURE_TYPEHASH() view returns(bytes32)
   241  func (_CommunityTokenDeployer *CommunityTokenDeployerSession) DEPLOYMENTSIGNATURETYPEHASH() ([32]byte, error) {
   242  	return _CommunityTokenDeployer.Contract.DEPLOYMENTSIGNATURETYPEHASH(&_CommunityTokenDeployer.CallOpts)
   243  }
   244  
   245  // DEPLOYMENTSIGNATURETYPEHASH is a free data retrieval call binding the contract method 0xa825483c.
   246  //
   247  // Solidity: function DEPLOYMENT_SIGNATURE_TYPEHASH() view returns(bytes32)
   248  func (_CommunityTokenDeployer *CommunityTokenDeployerCallerSession) DEPLOYMENTSIGNATURETYPEHASH() ([32]byte, error) {
   249  	return _CommunityTokenDeployer.Contract.DEPLOYMENTSIGNATURETYPEHASH(&_CommunityTokenDeployer.CallOpts)
   250  }
   251  
   252  // DOMAINSEPARATOR is a free data retrieval call binding the contract method 0x3644e515.
   253  //
   254  // Solidity: function DOMAIN_SEPARATOR() view returns(bytes32)
   255  func (_CommunityTokenDeployer *CommunityTokenDeployerCaller) DOMAINSEPARATOR(opts *bind.CallOpts) ([32]byte, error) {
   256  	var out []interface{}
   257  	err := _CommunityTokenDeployer.contract.Call(opts, &out, "DOMAIN_SEPARATOR")
   258  
   259  	if err != nil {
   260  		return *new([32]byte), err
   261  	}
   262  
   263  	out0 := *abi.ConvertType(out[0], new([32]byte)).(*[32]byte)
   264  
   265  	return out0, err
   266  
   267  }
   268  
   269  // DOMAINSEPARATOR is a free data retrieval call binding the contract method 0x3644e515.
   270  //
   271  // Solidity: function DOMAIN_SEPARATOR() view returns(bytes32)
   272  func (_CommunityTokenDeployer *CommunityTokenDeployerSession) DOMAINSEPARATOR() ([32]byte, error) {
   273  	return _CommunityTokenDeployer.Contract.DOMAINSEPARATOR(&_CommunityTokenDeployer.CallOpts)
   274  }
   275  
   276  // DOMAINSEPARATOR is a free data retrieval call binding the contract method 0x3644e515.
   277  //
   278  // Solidity: function DOMAIN_SEPARATOR() view returns(bytes32)
   279  func (_CommunityTokenDeployer *CommunityTokenDeployerCallerSession) DOMAINSEPARATOR() ([32]byte, error) {
   280  	return _CommunityTokenDeployer.Contract.DOMAINSEPARATOR(&_CommunityTokenDeployer.CallOpts)
   281  }
   282  
   283  // DeploymentRegistry is a free data retrieval call binding the contract method 0xc6631092.
   284  //
   285  // Solidity: function deploymentRegistry() view returns(address)
   286  func (_CommunityTokenDeployer *CommunityTokenDeployerCaller) DeploymentRegistry(opts *bind.CallOpts) (common.Address, error) {
   287  	var out []interface{}
   288  	err := _CommunityTokenDeployer.contract.Call(opts, &out, "deploymentRegistry")
   289  
   290  	if err != nil {
   291  		return *new(common.Address), err
   292  	}
   293  
   294  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
   295  
   296  	return out0, err
   297  
   298  }
   299  
   300  // DeploymentRegistry is a free data retrieval call binding the contract method 0xc6631092.
   301  //
   302  // Solidity: function deploymentRegistry() view returns(address)
   303  func (_CommunityTokenDeployer *CommunityTokenDeployerSession) DeploymentRegistry() (common.Address, error) {
   304  	return _CommunityTokenDeployer.Contract.DeploymentRegistry(&_CommunityTokenDeployer.CallOpts)
   305  }
   306  
   307  // DeploymentRegistry is a free data retrieval call binding the contract method 0xc6631092.
   308  //
   309  // Solidity: function deploymentRegistry() view returns(address)
   310  func (_CommunityTokenDeployer *CommunityTokenDeployerCallerSession) DeploymentRegistry() (common.Address, error) {
   311  	return _CommunityTokenDeployer.Contract.DeploymentRegistry(&_CommunityTokenDeployer.CallOpts)
   312  }
   313  
   314  // Eip712Domain is a free data retrieval call binding the contract method 0x84b0196e.
   315  //
   316  // Solidity: function eip712Domain() view returns(bytes1 fields, string name, string version, uint256 chainId, address verifyingContract, bytes32 salt, uint256[] extensions)
   317  func (_CommunityTokenDeployer *CommunityTokenDeployerCaller) Eip712Domain(opts *bind.CallOpts) (struct {
   318  	Fields            [1]byte
   319  	Name              string
   320  	Version           string
   321  	ChainId           *big.Int
   322  	VerifyingContract common.Address
   323  	Salt              [32]byte
   324  	Extensions        []*big.Int
   325  }, error) {
   326  	var out []interface{}
   327  	err := _CommunityTokenDeployer.contract.Call(opts, &out, "eip712Domain")
   328  
   329  	outstruct := new(struct {
   330  		Fields            [1]byte
   331  		Name              string
   332  		Version           string
   333  		ChainId           *big.Int
   334  		VerifyingContract common.Address
   335  		Salt              [32]byte
   336  		Extensions        []*big.Int
   337  	})
   338  	if err != nil {
   339  		return *outstruct, err
   340  	}
   341  
   342  	outstruct.Fields = *abi.ConvertType(out[0], new([1]byte)).(*[1]byte)
   343  	outstruct.Name = *abi.ConvertType(out[1], new(string)).(*string)
   344  	outstruct.Version = *abi.ConvertType(out[2], new(string)).(*string)
   345  	outstruct.ChainId = *abi.ConvertType(out[3], new(*big.Int)).(**big.Int)
   346  	outstruct.VerifyingContract = *abi.ConvertType(out[4], new(common.Address)).(*common.Address)
   347  	outstruct.Salt = *abi.ConvertType(out[5], new([32]byte)).(*[32]byte)
   348  	outstruct.Extensions = *abi.ConvertType(out[6], new([]*big.Int)).(*[]*big.Int)
   349  
   350  	return *outstruct, err
   351  
   352  }
   353  
   354  // Eip712Domain is a free data retrieval call binding the contract method 0x84b0196e.
   355  //
   356  // Solidity: function eip712Domain() view returns(bytes1 fields, string name, string version, uint256 chainId, address verifyingContract, bytes32 salt, uint256[] extensions)
   357  func (_CommunityTokenDeployer *CommunityTokenDeployerSession) Eip712Domain() (struct {
   358  	Fields            [1]byte
   359  	Name              string
   360  	Version           string
   361  	ChainId           *big.Int
   362  	VerifyingContract common.Address
   363  	Salt              [32]byte
   364  	Extensions        []*big.Int
   365  }, error) {
   366  	return _CommunityTokenDeployer.Contract.Eip712Domain(&_CommunityTokenDeployer.CallOpts)
   367  }
   368  
   369  // Eip712Domain is a free data retrieval call binding the contract method 0x84b0196e.
   370  //
   371  // Solidity: function eip712Domain() view returns(bytes1 fields, string name, string version, uint256 chainId, address verifyingContract, bytes32 salt, uint256[] extensions)
   372  func (_CommunityTokenDeployer *CommunityTokenDeployerCallerSession) Eip712Domain() (struct {
   373  	Fields            [1]byte
   374  	Name              string
   375  	Version           string
   376  	ChainId           *big.Int
   377  	VerifyingContract common.Address
   378  	Salt              [32]byte
   379  	Extensions        []*big.Int
   380  }, error) {
   381  	return _CommunityTokenDeployer.Contract.Eip712Domain(&_CommunityTokenDeployer.CallOpts)
   382  }
   383  
   384  // MasterTokenFactory is a free data retrieval call binding the contract method 0x830c2626.
   385  //
   386  // Solidity: function masterTokenFactory() view returns(address)
   387  func (_CommunityTokenDeployer *CommunityTokenDeployerCaller) MasterTokenFactory(opts *bind.CallOpts) (common.Address, error) {
   388  	var out []interface{}
   389  	err := _CommunityTokenDeployer.contract.Call(opts, &out, "masterTokenFactory")
   390  
   391  	if err != nil {
   392  		return *new(common.Address), err
   393  	}
   394  
   395  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
   396  
   397  	return out0, err
   398  
   399  }
   400  
   401  // MasterTokenFactory is a free data retrieval call binding the contract method 0x830c2626.
   402  //
   403  // Solidity: function masterTokenFactory() view returns(address)
   404  func (_CommunityTokenDeployer *CommunityTokenDeployerSession) MasterTokenFactory() (common.Address, error) {
   405  	return _CommunityTokenDeployer.Contract.MasterTokenFactory(&_CommunityTokenDeployer.CallOpts)
   406  }
   407  
   408  // MasterTokenFactory is a free data retrieval call binding the contract method 0x830c2626.
   409  //
   410  // Solidity: function masterTokenFactory() view returns(address)
   411  func (_CommunityTokenDeployer *CommunityTokenDeployerCallerSession) MasterTokenFactory() (common.Address, error) {
   412  	return _CommunityTokenDeployer.Contract.MasterTokenFactory(&_CommunityTokenDeployer.CallOpts)
   413  }
   414  
   415  // Owner is a free data retrieval call binding the contract method 0x8da5cb5b.
   416  //
   417  // Solidity: function owner() view returns(address)
   418  func (_CommunityTokenDeployer *CommunityTokenDeployerCaller) Owner(opts *bind.CallOpts) (common.Address, error) {
   419  	var out []interface{}
   420  	err := _CommunityTokenDeployer.contract.Call(opts, &out, "owner")
   421  
   422  	if err != nil {
   423  		return *new(common.Address), err
   424  	}
   425  
   426  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
   427  
   428  	return out0, err
   429  
   430  }
   431  
   432  // Owner is a free data retrieval call binding the contract method 0x8da5cb5b.
   433  //
   434  // Solidity: function owner() view returns(address)
   435  func (_CommunityTokenDeployer *CommunityTokenDeployerSession) Owner() (common.Address, error) {
   436  	return _CommunityTokenDeployer.Contract.Owner(&_CommunityTokenDeployer.CallOpts)
   437  }
   438  
   439  // Owner is a free data retrieval call binding the contract method 0x8da5cb5b.
   440  //
   441  // Solidity: function owner() view returns(address)
   442  func (_CommunityTokenDeployer *CommunityTokenDeployerCallerSession) Owner() (common.Address, error) {
   443  	return _CommunityTokenDeployer.Contract.Owner(&_CommunityTokenDeployer.CallOpts)
   444  }
   445  
   446  // OwnerTokenFactory is a free data retrieval call binding the contract method 0x62457f59.
   447  //
   448  // Solidity: function ownerTokenFactory() view returns(address)
   449  func (_CommunityTokenDeployer *CommunityTokenDeployerCaller) OwnerTokenFactory(opts *bind.CallOpts) (common.Address, error) {
   450  	var out []interface{}
   451  	err := _CommunityTokenDeployer.contract.Call(opts, &out, "ownerTokenFactory")
   452  
   453  	if err != nil {
   454  		return *new(common.Address), err
   455  	}
   456  
   457  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
   458  
   459  	return out0, err
   460  
   461  }
   462  
   463  // OwnerTokenFactory is a free data retrieval call binding the contract method 0x62457f59.
   464  //
   465  // Solidity: function ownerTokenFactory() view returns(address)
   466  func (_CommunityTokenDeployer *CommunityTokenDeployerSession) OwnerTokenFactory() (common.Address, error) {
   467  	return _CommunityTokenDeployer.Contract.OwnerTokenFactory(&_CommunityTokenDeployer.CallOpts)
   468  }
   469  
   470  // OwnerTokenFactory is a free data retrieval call binding the contract method 0x62457f59.
   471  //
   472  // Solidity: function ownerTokenFactory() view returns(address)
   473  func (_CommunityTokenDeployer *CommunityTokenDeployerCallerSession) OwnerTokenFactory() (common.Address, error) {
   474  	return _CommunityTokenDeployer.Contract.OwnerTokenFactory(&_CommunityTokenDeployer.CallOpts)
   475  }
   476  
   477  // PendingOwner is a free data retrieval call binding the contract method 0xe30c3978.
   478  //
   479  // Solidity: function pendingOwner() view returns(address)
   480  func (_CommunityTokenDeployer *CommunityTokenDeployerCaller) PendingOwner(opts *bind.CallOpts) (common.Address, error) {
   481  	var out []interface{}
   482  	err := _CommunityTokenDeployer.contract.Call(opts, &out, "pendingOwner")
   483  
   484  	if err != nil {
   485  		return *new(common.Address), err
   486  	}
   487  
   488  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
   489  
   490  	return out0, err
   491  
   492  }
   493  
   494  // PendingOwner is a free data retrieval call binding the contract method 0xe30c3978.
   495  //
   496  // Solidity: function pendingOwner() view returns(address)
   497  func (_CommunityTokenDeployer *CommunityTokenDeployerSession) PendingOwner() (common.Address, error) {
   498  	return _CommunityTokenDeployer.Contract.PendingOwner(&_CommunityTokenDeployer.CallOpts)
   499  }
   500  
   501  // PendingOwner is a free data retrieval call binding the contract method 0xe30c3978.
   502  //
   503  // Solidity: function pendingOwner() view returns(address)
   504  func (_CommunityTokenDeployer *CommunityTokenDeployerCallerSession) PendingOwner() (common.Address, error) {
   505  	return _CommunityTokenDeployer.Contract.PendingOwner(&_CommunityTokenDeployer.CallOpts)
   506  }
   507  
   508  // AcceptOwnership is a paid mutator transaction binding the contract method 0x79ba5097.
   509  //
   510  // Solidity: function acceptOwnership() returns()
   511  func (_CommunityTokenDeployer *CommunityTokenDeployerTransactor) AcceptOwnership(opts *bind.TransactOpts) (*types.Transaction, error) {
   512  	return _CommunityTokenDeployer.contract.Transact(opts, "acceptOwnership")
   513  }
   514  
   515  // AcceptOwnership is a paid mutator transaction binding the contract method 0x79ba5097.
   516  //
   517  // Solidity: function acceptOwnership() returns()
   518  func (_CommunityTokenDeployer *CommunityTokenDeployerSession) AcceptOwnership() (*types.Transaction, error) {
   519  	return _CommunityTokenDeployer.Contract.AcceptOwnership(&_CommunityTokenDeployer.TransactOpts)
   520  }
   521  
   522  // AcceptOwnership is a paid mutator transaction binding the contract method 0x79ba5097.
   523  //
   524  // Solidity: function acceptOwnership() returns()
   525  func (_CommunityTokenDeployer *CommunityTokenDeployerTransactorSession) AcceptOwnership() (*types.Transaction, error) {
   526  	return _CommunityTokenDeployer.Contract.AcceptOwnership(&_CommunityTokenDeployer.TransactOpts)
   527  }
   528  
   529  // Deploy is a paid mutator transaction binding the contract method 0xb0f95f28.
   530  //
   531  // Solidity: function deploy((string,string,string) _ownerToken, (string,string,string) _masterToken, (address,address,uint8,bytes32,bytes32) _signature, bytes _signerPublicKey) returns(address, address)
   532  func (_CommunityTokenDeployer *CommunityTokenDeployerTransactor) Deploy(opts *bind.TransactOpts, _ownerToken CommunityTokenDeployerTokenConfig, _masterToken CommunityTokenDeployerTokenConfig, _signature CommunityTokenDeployerDeploymentSignature, _signerPublicKey []byte) (*types.Transaction, error) {
   533  	return _CommunityTokenDeployer.contract.Transact(opts, "deploy", _ownerToken, _masterToken, _signature, _signerPublicKey)
   534  }
   535  
   536  // Deploy is a paid mutator transaction binding the contract method 0xb0f95f28.
   537  //
   538  // Solidity: function deploy((string,string,string) _ownerToken, (string,string,string) _masterToken, (address,address,uint8,bytes32,bytes32) _signature, bytes _signerPublicKey) returns(address, address)
   539  func (_CommunityTokenDeployer *CommunityTokenDeployerSession) Deploy(_ownerToken CommunityTokenDeployerTokenConfig, _masterToken CommunityTokenDeployerTokenConfig, _signature CommunityTokenDeployerDeploymentSignature, _signerPublicKey []byte) (*types.Transaction, error) {
   540  	return _CommunityTokenDeployer.Contract.Deploy(&_CommunityTokenDeployer.TransactOpts, _ownerToken, _masterToken, _signature, _signerPublicKey)
   541  }
   542  
   543  // Deploy is a paid mutator transaction binding the contract method 0xb0f95f28.
   544  //
   545  // Solidity: function deploy((string,string,string) _ownerToken, (string,string,string) _masterToken, (address,address,uint8,bytes32,bytes32) _signature, bytes _signerPublicKey) returns(address, address)
   546  func (_CommunityTokenDeployer *CommunityTokenDeployerTransactorSession) Deploy(_ownerToken CommunityTokenDeployerTokenConfig, _masterToken CommunityTokenDeployerTokenConfig, _signature CommunityTokenDeployerDeploymentSignature, _signerPublicKey []byte) (*types.Transaction, error) {
   547  	return _CommunityTokenDeployer.Contract.Deploy(&_CommunityTokenDeployer.TransactOpts, _ownerToken, _masterToken, _signature, _signerPublicKey)
   548  }
   549  
   550  // RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6.
   551  //
   552  // Solidity: function renounceOwnership() returns()
   553  func (_CommunityTokenDeployer *CommunityTokenDeployerTransactor) RenounceOwnership(opts *bind.TransactOpts) (*types.Transaction, error) {
   554  	return _CommunityTokenDeployer.contract.Transact(opts, "renounceOwnership")
   555  }
   556  
   557  // RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6.
   558  //
   559  // Solidity: function renounceOwnership() returns()
   560  func (_CommunityTokenDeployer *CommunityTokenDeployerSession) RenounceOwnership() (*types.Transaction, error) {
   561  	return _CommunityTokenDeployer.Contract.RenounceOwnership(&_CommunityTokenDeployer.TransactOpts)
   562  }
   563  
   564  // RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6.
   565  //
   566  // Solidity: function renounceOwnership() returns()
   567  func (_CommunityTokenDeployer *CommunityTokenDeployerTransactorSession) RenounceOwnership() (*types.Transaction, error) {
   568  	return _CommunityTokenDeployer.Contract.RenounceOwnership(&_CommunityTokenDeployer.TransactOpts)
   569  }
   570  
   571  // SetDeploymentRegistryAddress is a paid mutator transaction binding the contract method 0xf8851475.
   572  //
   573  // Solidity: function setDeploymentRegistryAddress(address _deploymentRegistry) returns()
   574  func (_CommunityTokenDeployer *CommunityTokenDeployerTransactor) SetDeploymentRegistryAddress(opts *bind.TransactOpts, _deploymentRegistry common.Address) (*types.Transaction, error) {
   575  	return _CommunityTokenDeployer.contract.Transact(opts, "setDeploymentRegistryAddress", _deploymentRegistry)
   576  }
   577  
   578  // SetDeploymentRegistryAddress is a paid mutator transaction binding the contract method 0xf8851475.
   579  //
   580  // Solidity: function setDeploymentRegistryAddress(address _deploymentRegistry) returns()
   581  func (_CommunityTokenDeployer *CommunityTokenDeployerSession) SetDeploymentRegistryAddress(_deploymentRegistry common.Address) (*types.Transaction, error) {
   582  	return _CommunityTokenDeployer.Contract.SetDeploymentRegistryAddress(&_CommunityTokenDeployer.TransactOpts, _deploymentRegistry)
   583  }
   584  
   585  // SetDeploymentRegistryAddress is a paid mutator transaction binding the contract method 0xf8851475.
   586  //
   587  // Solidity: function setDeploymentRegistryAddress(address _deploymentRegistry) returns()
   588  func (_CommunityTokenDeployer *CommunityTokenDeployerTransactorSession) SetDeploymentRegistryAddress(_deploymentRegistry common.Address) (*types.Transaction, error) {
   589  	return _CommunityTokenDeployer.Contract.SetDeploymentRegistryAddress(&_CommunityTokenDeployer.TransactOpts, _deploymentRegistry)
   590  }
   591  
   592  // SetMasterTokenFactoryAddress is a paid mutator transaction binding the contract method 0xa53b2bdb.
   593  //
   594  // Solidity: function setMasterTokenFactoryAddress(address _masterTokenFactory) returns()
   595  func (_CommunityTokenDeployer *CommunityTokenDeployerTransactor) SetMasterTokenFactoryAddress(opts *bind.TransactOpts, _masterTokenFactory common.Address) (*types.Transaction, error) {
   596  	return _CommunityTokenDeployer.contract.Transact(opts, "setMasterTokenFactoryAddress", _masterTokenFactory)
   597  }
   598  
   599  // SetMasterTokenFactoryAddress is a paid mutator transaction binding the contract method 0xa53b2bdb.
   600  //
   601  // Solidity: function setMasterTokenFactoryAddress(address _masterTokenFactory) returns()
   602  func (_CommunityTokenDeployer *CommunityTokenDeployerSession) SetMasterTokenFactoryAddress(_masterTokenFactory common.Address) (*types.Transaction, error) {
   603  	return _CommunityTokenDeployer.Contract.SetMasterTokenFactoryAddress(&_CommunityTokenDeployer.TransactOpts, _masterTokenFactory)
   604  }
   605  
   606  // SetMasterTokenFactoryAddress is a paid mutator transaction binding the contract method 0xa53b2bdb.
   607  //
   608  // Solidity: function setMasterTokenFactoryAddress(address _masterTokenFactory) returns()
   609  func (_CommunityTokenDeployer *CommunityTokenDeployerTransactorSession) SetMasterTokenFactoryAddress(_masterTokenFactory common.Address) (*types.Transaction, error) {
   610  	return _CommunityTokenDeployer.Contract.SetMasterTokenFactoryAddress(&_CommunityTokenDeployer.TransactOpts, _masterTokenFactory)
   611  }
   612  
   613  // SetOwnerTokenFactoryAddress is a paid mutator transaction binding the contract method 0x9ff02d18.
   614  //
   615  // Solidity: function setOwnerTokenFactoryAddress(address _ownerTokenFactory) returns()
   616  func (_CommunityTokenDeployer *CommunityTokenDeployerTransactor) SetOwnerTokenFactoryAddress(opts *bind.TransactOpts, _ownerTokenFactory common.Address) (*types.Transaction, error) {
   617  	return _CommunityTokenDeployer.contract.Transact(opts, "setOwnerTokenFactoryAddress", _ownerTokenFactory)
   618  }
   619  
   620  // SetOwnerTokenFactoryAddress is a paid mutator transaction binding the contract method 0x9ff02d18.
   621  //
   622  // Solidity: function setOwnerTokenFactoryAddress(address _ownerTokenFactory) returns()
   623  func (_CommunityTokenDeployer *CommunityTokenDeployerSession) SetOwnerTokenFactoryAddress(_ownerTokenFactory common.Address) (*types.Transaction, error) {
   624  	return _CommunityTokenDeployer.Contract.SetOwnerTokenFactoryAddress(&_CommunityTokenDeployer.TransactOpts, _ownerTokenFactory)
   625  }
   626  
   627  // SetOwnerTokenFactoryAddress is a paid mutator transaction binding the contract method 0x9ff02d18.
   628  //
   629  // Solidity: function setOwnerTokenFactoryAddress(address _ownerTokenFactory) returns()
   630  func (_CommunityTokenDeployer *CommunityTokenDeployerTransactorSession) SetOwnerTokenFactoryAddress(_ownerTokenFactory common.Address) (*types.Transaction, error) {
   631  	return _CommunityTokenDeployer.Contract.SetOwnerTokenFactoryAddress(&_CommunityTokenDeployer.TransactOpts, _ownerTokenFactory)
   632  }
   633  
   634  // TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b.
   635  //
   636  // Solidity: function transferOwnership(address newOwner) returns()
   637  func (_CommunityTokenDeployer *CommunityTokenDeployerTransactor) TransferOwnership(opts *bind.TransactOpts, newOwner common.Address) (*types.Transaction, error) {
   638  	return _CommunityTokenDeployer.contract.Transact(opts, "transferOwnership", newOwner)
   639  }
   640  
   641  // TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b.
   642  //
   643  // Solidity: function transferOwnership(address newOwner) returns()
   644  func (_CommunityTokenDeployer *CommunityTokenDeployerSession) TransferOwnership(newOwner common.Address) (*types.Transaction, error) {
   645  	return _CommunityTokenDeployer.Contract.TransferOwnership(&_CommunityTokenDeployer.TransactOpts, newOwner)
   646  }
   647  
   648  // TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b.
   649  //
   650  // Solidity: function transferOwnership(address newOwner) returns()
   651  func (_CommunityTokenDeployer *CommunityTokenDeployerTransactorSession) TransferOwnership(newOwner common.Address) (*types.Transaction, error) {
   652  	return _CommunityTokenDeployer.Contract.TransferOwnership(&_CommunityTokenDeployer.TransactOpts, newOwner)
   653  }
   654  
   655  // CommunityTokenDeployerDeployMasterTokenIterator is returned from FilterDeployMasterToken and is used to iterate over the raw logs and unpacked data for DeployMasterToken events raised by the CommunityTokenDeployer contract.
   656  type CommunityTokenDeployerDeployMasterTokenIterator struct {
   657  	Event *CommunityTokenDeployerDeployMasterToken // Event containing the contract specifics and raw log
   658  
   659  	contract *bind.BoundContract // Generic contract to use for unpacking event data
   660  	event    string              // Event name to use for unpacking event data
   661  
   662  	logs chan types.Log        // Log channel receiving the found contract events
   663  	sub  ethereum.Subscription // Subscription for errors, completion and termination
   664  	done bool                  // Whether the subscription completed delivering logs
   665  	fail error                 // Occurred error to stop iteration
   666  }
   667  
   668  // Next advances the iterator to the subsequent event, returning whether there
   669  // are any more events found. In case of a retrieval or parsing error, false is
   670  // returned and Error() can be queried for the exact failure.
   671  func (it *CommunityTokenDeployerDeployMasterTokenIterator) Next() bool {
   672  	// If the iterator failed, stop iterating
   673  	if it.fail != nil {
   674  		return false
   675  	}
   676  	// If the iterator completed, deliver directly whatever's available
   677  	if it.done {
   678  		select {
   679  		case log := <-it.logs:
   680  			it.Event = new(CommunityTokenDeployerDeployMasterToken)
   681  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
   682  				it.fail = err
   683  				return false
   684  			}
   685  			it.Event.Raw = log
   686  			return true
   687  
   688  		default:
   689  			return false
   690  		}
   691  	}
   692  	// Iterator still in progress, wait for either a data or an error event
   693  	select {
   694  	case log := <-it.logs:
   695  		it.Event = new(CommunityTokenDeployerDeployMasterToken)
   696  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
   697  			it.fail = err
   698  			return false
   699  		}
   700  		it.Event.Raw = log
   701  		return true
   702  
   703  	case err := <-it.sub.Err():
   704  		it.done = true
   705  		it.fail = err
   706  		return it.Next()
   707  	}
   708  }
   709  
   710  // Error returns any retrieval or parsing error occurred during filtering.
   711  func (it *CommunityTokenDeployerDeployMasterTokenIterator) Error() error {
   712  	return it.fail
   713  }
   714  
   715  // Close terminates the iteration process, releasing any pending underlying
   716  // resources.
   717  func (it *CommunityTokenDeployerDeployMasterTokenIterator) Close() error {
   718  	it.sub.Unsubscribe()
   719  	return nil
   720  }
   721  
   722  // CommunityTokenDeployerDeployMasterToken represents a DeployMasterToken event raised by the CommunityTokenDeployer contract.
   723  type CommunityTokenDeployerDeployMasterToken struct {
   724  	Arg0 common.Address
   725  	Raw  types.Log // Blockchain specific contextual infos
   726  }
   727  
   728  // FilterDeployMasterToken is a free log retrieval operation binding the contract event 0x1464afef6e77413c9c3201405b55530340d684e2a19f3a9d83bc604d4aa3a255.
   729  //
   730  // Solidity: event DeployMasterToken(address indexed arg0)
   731  func (_CommunityTokenDeployer *CommunityTokenDeployerFilterer) FilterDeployMasterToken(opts *bind.FilterOpts, arg0 []common.Address) (*CommunityTokenDeployerDeployMasterTokenIterator, error) {
   732  
   733  	var arg0Rule []interface{}
   734  	for _, arg0Item := range arg0 {
   735  		arg0Rule = append(arg0Rule, arg0Item)
   736  	}
   737  
   738  	logs, sub, err := _CommunityTokenDeployer.contract.FilterLogs(opts, "DeployMasterToken", arg0Rule)
   739  	if err != nil {
   740  		return nil, err
   741  	}
   742  	return &CommunityTokenDeployerDeployMasterTokenIterator{contract: _CommunityTokenDeployer.contract, event: "DeployMasterToken", logs: logs, sub: sub}, nil
   743  }
   744  
   745  // WatchDeployMasterToken is a free log subscription operation binding the contract event 0x1464afef6e77413c9c3201405b55530340d684e2a19f3a9d83bc604d4aa3a255.
   746  //
   747  // Solidity: event DeployMasterToken(address indexed arg0)
   748  func (_CommunityTokenDeployer *CommunityTokenDeployerFilterer) WatchDeployMasterToken(opts *bind.WatchOpts, sink chan<- *CommunityTokenDeployerDeployMasterToken, arg0 []common.Address) (event.Subscription, error) {
   749  
   750  	var arg0Rule []interface{}
   751  	for _, arg0Item := range arg0 {
   752  		arg0Rule = append(arg0Rule, arg0Item)
   753  	}
   754  
   755  	logs, sub, err := _CommunityTokenDeployer.contract.WatchLogs(opts, "DeployMasterToken", arg0Rule)
   756  	if err != nil {
   757  		return nil, err
   758  	}
   759  	return event.NewSubscription(func(quit <-chan struct{}) error {
   760  		defer sub.Unsubscribe()
   761  		for {
   762  			select {
   763  			case log := <-logs:
   764  				// New log arrived, parse the event and forward to the user
   765  				event := new(CommunityTokenDeployerDeployMasterToken)
   766  				if err := _CommunityTokenDeployer.contract.UnpackLog(event, "DeployMasterToken", log); err != nil {
   767  					return err
   768  				}
   769  				event.Raw = log
   770  
   771  				select {
   772  				case sink <- event:
   773  				case err := <-sub.Err():
   774  					return err
   775  				case <-quit:
   776  					return nil
   777  				}
   778  			case err := <-sub.Err():
   779  				return err
   780  			case <-quit:
   781  				return nil
   782  			}
   783  		}
   784  	}), nil
   785  }
   786  
   787  // ParseDeployMasterToken is a log parse operation binding the contract event 0x1464afef6e77413c9c3201405b55530340d684e2a19f3a9d83bc604d4aa3a255.
   788  //
   789  // Solidity: event DeployMasterToken(address indexed arg0)
   790  func (_CommunityTokenDeployer *CommunityTokenDeployerFilterer) ParseDeployMasterToken(log types.Log) (*CommunityTokenDeployerDeployMasterToken, error) {
   791  	event := new(CommunityTokenDeployerDeployMasterToken)
   792  	if err := _CommunityTokenDeployer.contract.UnpackLog(event, "DeployMasterToken", log); err != nil {
   793  		return nil, err
   794  	}
   795  	event.Raw = log
   796  	return event, nil
   797  }
   798  
   799  // CommunityTokenDeployerDeployOwnerTokenIterator is returned from FilterDeployOwnerToken and is used to iterate over the raw logs and unpacked data for DeployOwnerToken events raised by the CommunityTokenDeployer contract.
   800  type CommunityTokenDeployerDeployOwnerTokenIterator struct {
   801  	Event *CommunityTokenDeployerDeployOwnerToken // Event containing the contract specifics and raw log
   802  
   803  	contract *bind.BoundContract // Generic contract to use for unpacking event data
   804  	event    string              // Event name to use for unpacking event data
   805  
   806  	logs chan types.Log        // Log channel receiving the found contract events
   807  	sub  ethereum.Subscription // Subscription for errors, completion and termination
   808  	done bool                  // Whether the subscription completed delivering logs
   809  	fail error                 // Occurred error to stop iteration
   810  }
   811  
   812  // Next advances the iterator to the subsequent event, returning whether there
   813  // are any more events found. In case of a retrieval or parsing error, false is
   814  // returned and Error() can be queried for the exact failure.
   815  func (it *CommunityTokenDeployerDeployOwnerTokenIterator) Next() bool {
   816  	// If the iterator failed, stop iterating
   817  	if it.fail != nil {
   818  		return false
   819  	}
   820  	// If the iterator completed, deliver directly whatever's available
   821  	if it.done {
   822  		select {
   823  		case log := <-it.logs:
   824  			it.Event = new(CommunityTokenDeployerDeployOwnerToken)
   825  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
   826  				it.fail = err
   827  				return false
   828  			}
   829  			it.Event.Raw = log
   830  			return true
   831  
   832  		default:
   833  			return false
   834  		}
   835  	}
   836  	// Iterator still in progress, wait for either a data or an error event
   837  	select {
   838  	case log := <-it.logs:
   839  		it.Event = new(CommunityTokenDeployerDeployOwnerToken)
   840  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
   841  			it.fail = err
   842  			return false
   843  		}
   844  		it.Event.Raw = log
   845  		return true
   846  
   847  	case err := <-it.sub.Err():
   848  		it.done = true
   849  		it.fail = err
   850  		return it.Next()
   851  	}
   852  }
   853  
   854  // Error returns any retrieval or parsing error occurred during filtering.
   855  func (it *CommunityTokenDeployerDeployOwnerTokenIterator) Error() error {
   856  	return it.fail
   857  }
   858  
   859  // Close terminates the iteration process, releasing any pending underlying
   860  // resources.
   861  func (it *CommunityTokenDeployerDeployOwnerTokenIterator) Close() error {
   862  	it.sub.Unsubscribe()
   863  	return nil
   864  }
   865  
   866  // CommunityTokenDeployerDeployOwnerToken represents a DeployOwnerToken event raised by the CommunityTokenDeployer contract.
   867  type CommunityTokenDeployerDeployOwnerToken struct {
   868  	Arg0 common.Address
   869  	Raw  types.Log // Blockchain specific contextual infos
   870  }
   871  
   872  // FilterDeployOwnerToken is a free log retrieval operation binding the contract event 0x6f60871ce1ae7c2bc82a9fca785cdf029fa7c9984afe96eaa106d1b7b19c6322.
   873  //
   874  // Solidity: event DeployOwnerToken(address indexed arg0)
   875  func (_CommunityTokenDeployer *CommunityTokenDeployerFilterer) FilterDeployOwnerToken(opts *bind.FilterOpts, arg0 []common.Address) (*CommunityTokenDeployerDeployOwnerTokenIterator, error) {
   876  
   877  	var arg0Rule []interface{}
   878  	for _, arg0Item := range arg0 {
   879  		arg0Rule = append(arg0Rule, arg0Item)
   880  	}
   881  
   882  	logs, sub, err := _CommunityTokenDeployer.contract.FilterLogs(opts, "DeployOwnerToken", arg0Rule)
   883  	if err != nil {
   884  		return nil, err
   885  	}
   886  	return &CommunityTokenDeployerDeployOwnerTokenIterator{contract: _CommunityTokenDeployer.contract, event: "DeployOwnerToken", logs: logs, sub: sub}, nil
   887  }
   888  
   889  // WatchDeployOwnerToken is a free log subscription operation binding the contract event 0x6f60871ce1ae7c2bc82a9fca785cdf029fa7c9984afe96eaa106d1b7b19c6322.
   890  //
   891  // Solidity: event DeployOwnerToken(address indexed arg0)
   892  func (_CommunityTokenDeployer *CommunityTokenDeployerFilterer) WatchDeployOwnerToken(opts *bind.WatchOpts, sink chan<- *CommunityTokenDeployerDeployOwnerToken, arg0 []common.Address) (event.Subscription, error) {
   893  
   894  	var arg0Rule []interface{}
   895  	for _, arg0Item := range arg0 {
   896  		arg0Rule = append(arg0Rule, arg0Item)
   897  	}
   898  
   899  	logs, sub, err := _CommunityTokenDeployer.contract.WatchLogs(opts, "DeployOwnerToken", arg0Rule)
   900  	if err != nil {
   901  		return nil, err
   902  	}
   903  	return event.NewSubscription(func(quit <-chan struct{}) error {
   904  		defer sub.Unsubscribe()
   905  		for {
   906  			select {
   907  			case log := <-logs:
   908  				// New log arrived, parse the event and forward to the user
   909  				event := new(CommunityTokenDeployerDeployOwnerToken)
   910  				if err := _CommunityTokenDeployer.contract.UnpackLog(event, "DeployOwnerToken", log); err != nil {
   911  					return err
   912  				}
   913  				event.Raw = log
   914  
   915  				select {
   916  				case sink <- event:
   917  				case err := <-sub.Err():
   918  					return err
   919  				case <-quit:
   920  					return nil
   921  				}
   922  			case err := <-sub.Err():
   923  				return err
   924  			case <-quit:
   925  				return nil
   926  			}
   927  		}
   928  	}), nil
   929  }
   930  
   931  // ParseDeployOwnerToken is a log parse operation binding the contract event 0x6f60871ce1ae7c2bc82a9fca785cdf029fa7c9984afe96eaa106d1b7b19c6322.
   932  //
   933  // Solidity: event DeployOwnerToken(address indexed arg0)
   934  func (_CommunityTokenDeployer *CommunityTokenDeployerFilterer) ParseDeployOwnerToken(log types.Log) (*CommunityTokenDeployerDeployOwnerToken, error) {
   935  	event := new(CommunityTokenDeployerDeployOwnerToken)
   936  	if err := _CommunityTokenDeployer.contract.UnpackLog(event, "DeployOwnerToken", log); err != nil {
   937  		return nil, err
   938  	}
   939  	event.Raw = log
   940  	return event, nil
   941  }
   942  
   943  // CommunityTokenDeployerDeploymentRegistryAddressChangeIterator is returned from FilterDeploymentRegistryAddressChange and is used to iterate over the raw logs and unpacked data for DeploymentRegistryAddressChange events raised by the CommunityTokenDeployer contract.
   944  type CommunityTokenDeployerDeploymentRegistryAddressChangeIterator struct {
   945  	Event *CommunityTokenDeployerDeploymentRegistryAddressChange // Event containing the contract specifics and raw log
   946  
   947  	contract *bind.BoundContract // Generic contract to use for unpacking event data
   948  	event    string              // Event name to use for unpacking event data
   949  
   950  	logs chan types.Log        // Log channel receiving the found contract events
   951  	sub  ethereum.Subscription // Subscription for errors, completion and termination
   952  	done bool                  // Whether the subscription completed delivering logs
   953  	fail error                 // Occurred error to stop iteration
   954  }
   955  
   956  // Next advances the iterator to the subsequent event, returning whether there
   957  // are any more events found. In case of a retrieval or parsing error, false is
   958  // returned and Error() can be queried for the exact failure.
   959  func (it *CommunityTokenDeployerDeploymentRegistryAddressChangeIterator) Next() bool {
   960  	// If the iterator failed, stop iterating
   961  	if it.fail != nil {
   962  		return false
   963  	}
   964  	// If the iterator completed, deliver directly whatever's available
   965  	if it.done {
   966  		select {
   967  		case log := <-it.logs:
   968  			it.Event = new(CommunityTokenDeployerDeploymentRegistryAddressChange)
   969  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
   970  				it.fail = err
   971  				return false
   972  			}
   973  			it.Event.Raw = log
   974  			return true
   975  
   976  		default:
   977  			return false
   978  		}
   979  	}
   980  	// Iterator still in progress, wait for either a data or an error event
   981  	select {
   982  	case log := <-it.logs:
   983  		it.Event = new(CommunityTokenDeployerDeploymentRegistryAddressChange)
   984  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
   985  			it.fail = err
   986  			return false
   987  		}
   988  		it.Event.Raw = log
   989  		return true
   990  
   991  	case err := <-it.sub.Err():
   992  		it.done = true
   993  		it.fail = err
   994  		return it.Next()
   995  	}
   996  }
   997  
   998  // Error returns any retrieval or parsing error occurred during filtering.
   999  func (it *CommunityTokenDeployerDeploymentRegistryAddressChangeIterator) Error() error {
  1000  	return it.fail
  1001  }
  1002  
  1003  // Close terminates the iteration process, releasing any pending underlying
  1004  // resources.
  1005  func (it *CommunityTokenDeployerDeploymentRegistryAddressChangeIterator) Close() error {
  1006  	it.sub.Unsubscribe()
  1007  	return nil
  1008  }
  1009  
  1010  // CommunityTokenDeployerDeploymentRegistryAddressChange represents a DeploymentRegistryAddressChange event raised by the CommunityTokenDeployer contract.
  1011  type CommunityTokenDeployerDeploymentRegistryAddressChange struct {
  1012  	Arg0 common.Address
  1013  	Raw  types.Log // Blockchain specific contextual infos
  1014  }
  1015  
  1016  // FilterDeploymentRegistryAddressChange is a free log retrieval operation binding the contract event 0x8f3be421db34ad7dfa5c7fb9391b363b444007c7b26f0a22c58aad6e130b935e.
  1017  //
  1018  // Solidity: event DeploymentRegistryAddressChange(address indexed arg0)
  1019  func (_CommunityTokenDeployer *CommunityTokenDeployerFilterer) FilterDeploymentRegistryAddressChange(opts *bind.FilterOpts, arg0 []common.Address) (*CommunityTokenDeployerDeploymentRegistryAddressChangeIterator, error) {
  1020  
  1021  	var arg0Rule []interface{}
  1022  	for _, arg0Item := range arg0 {
  1023  		arg0Rule = append(arg0Rule, arg0Item)
  1024  	}
  1025  
  1026  	logs, sub, err := _CommunityTokenDeployer.contract.FilterLogs(opts, "DeploymentRegistryAddressChange", arg0Rule)
  1027  	if err != nil {
  1028  		return nil, err
  1029  	}
  1030  	return &CommunityTokenDeployerDeploymentRegistryAddressChangeIterator{contract: _CommunityTokenDeployer.contract, event: "DeploymentRegistryAddressChange", logs: logs, sub: sub}, nil
  1031  }
  1032  
  1033  // WatchDeploymentRegistryAddressChange is a free log subscription operation binding the contract event 0x8f3be421db34ad7dfa5c7fb9391b363b444007c7b26f0a22c58aad6e130b935e.
  1034  //
  1035  // Solidity: event DeploymentRegistryAddressChange(address indexed arg0)
  1036  func (_CommunityTokenDeployer *CommunityTokenDeployerFilterer) WatchDeploymentRegistryAddressChange(opts *bind.WatchOpts, sink chan<- *CommunityTokenDeployerDeploymentRegistryAddressChange, arg0 []common.Address) (event.Subscription, error) {
  1037  
  1038  	var arg0Rule []interface{}
  1039  	for _, arg0Item := range arg0 {
  1040  		arg0Rule = append(arg0Rule, arg0Item)
  1041  	}
  1042  
  1043  	logs, sub, err := _CommunityTokenDeployer.contract.WatchLogs(opts, "DeploymentRegistryAddressChange", arg0Rule)
  1044  	if err != nil {
  1045  		return nil, err
  1046  	}
  1047  	return event.NewSubscription(func(quit <-chan struct{}) error {
  1048  		defer sub.Unsubscribe()
  1049  		for {
  1050  			select {
  1051  			case log := <-logs:
  1052  				// New log arrived, parse the event and forward to the user
  1053  				event := new(CommunityTokenDeployerDeploymentRegistryAddressChange)
  1054  				if err := _CommunityTokenDeployer.contract.UnpackLog(event, "DeploymentRegistryAddressChange", log); err != nil {
  1055  					return err
  1056  				}
  1057  				event.Raw = log
  1058  
  1059  				select {
  1060  				case sink <- event:
  1061  				case err := <-sub.Err():
  1062  					return err
  1063  				case <-quit:
  1064  					return nil
  1065  				}
  1066  			case err := <-sub.Err():
  1067  				return err
  1068  			case <-quit:
  1069  				return nil
  1070  			}
  1071  		}
  1072  	}), nil
  1073  }
  1074  
  1075  // ParseDeploymentRegistryAddressChange is a log parse operation binding the contract event 0x8f3be421db34ad7dfa5c7fb9391b363b444007c7b26f0a22c58aad6e130b935e.
  1076  //
  1077  // Solidity: event DeploymentRegistryAddressChange(address indexed arg0)
  1078  func (_CommunityTokenDeployer *CommunityTokenDeployerFilterer) ParseDeploymentRegistryAddressChange(log types.Log) (*CommunityTokenDeployerDeploymentRegistryAddressChange, error) {
  1079  	event := new(CommunityTokenDeployerDeploymentRegistryAddressChange)
  1080  	if err := _CommunityTokenDeployer.contract.UnpackLog(event, "DeploymentRegistryAddressChange", log); err != nil {
  1081  		return nil, err
  1082  	}
  1083  	event.Raw = log
  1084  	return event, nil
  1085  }
  1086  
  1087  // CommunityTokenDeployerEIP712DomainChangedIterator is returned from FilterEIP712DomainChanged and is used to iterate over the raw logs and unpacked data for EIP712DomainChanged events raised by the CommunityTokenDeployer contract.
  1088  type CommunityTokenDeployerEIP712DomainChangedIterator struct {
  1089  	Event *CommunityTokenDeployerEIP712DomainChanged // Event containing the contract specifics and raw log
  1090  
  1091  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  1092  	event    string              // Event name to use for unpacking event data
  1093  
  1094  	logs chan types.Log        // Log channel receiving the found contract events
  1095  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  1096  	done bool                  // Whether the subscription completed delivering logs
  1097  	fail error                 // Occurred error to stop iteration
  1098  }
  1099  
  1100  // Next advances the iterator to the subsequent event, returning whether there
  1101  // are any more events found. In case of a retrieval or parsing error, false is
  1102  // returned and Error() can be queried for the exact failure.
  1103  func (it *CommunityTokenDeployerEIP712DomainChangedIterator) Next() bool {
  1104  	// If the iterator failed, stop iterating
  1105  	if it.fail != nil {
  1106  		return false
  1107  	}
  1108  	// If the iterator completed, deliver directly whatever's available
  1109  	if it.done {
  1110  		select {
  1111  		case log := <-it.logs:
  1112  			it.Event = new(CommunityTokenDeployerEIP712DomainChanged)
  1113  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1114  				it.fail = err
  1115  				return false
  1116  			}
  1117  			it.Event.Raw = log
  1118  			return true
  1119  
  1120  		default:
  1121  			return false
  1122  		}
  1123  	}
  1124  	// Iterator still in progress, wait for either a data or an error event
  1125  	select {
  1126  	case log := <-it.logs:
  1127  		it.Event = new(CommunityTokenDeployerEIP712DomainChanged)
  1128  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1129  			it.fail = err
  1130  			return false
  1131  		}
  1132  		it.Event.Raw = log
  1133  		return true
  1134  
  1135  	case err := <-it.sub.Err():
  1136  		it.done = true
  1137  		it.fail = err
  1138  		return it.Next()
  1139  	}
  1140  }
  1141  
  1142  // Error returns any retrieval or parsing error occurred during filtering.
  1143  func (it *CommunityTokenDeployerEIP712DomainChangedIterator) Error() error {
  1144  	return it.fail
  1145  }
  1146  
  1147  // Close terminates the iteration process, releasing any pending underlying
  1148  // resources.
  1149  func (it *CommunityTokenDeployerEIP712DomainChangedIterator) Close() error {
  1150  	it.sub.Unsubscribe()
  1151  	return nil
  1152  }
  1153  
  1154  // CommunityTokenDeployerEIP712DomainChanged represents a EIP712DomainChanged event raised by the CommunityTokenDeployer contract.
  1155  type CommunityTokenDeployerEIP712DomainChanged struct {
  1156  	Raw types.Log // Blockchain specific contextual infos
  1157  }
  1158  
  1159  // FilterEIP712DomainChanged is a free log retrieval operation binding the contract event 0x0a6387c9ea3628b88a633bb4f3b151770f70085117a15f9bf3787cda53f13d31.
  1160  //
  1161  // Solidity: event EIP712DomainChanged()
  1162  func (_CommunityTokenDeployer *CommunityTokenDeployerFilterer) FilterEIP712DomainChanged(opts *bind.FilterOpts) (*CommunityTokenDeployerEIP712DomainChangedIterator, error) {
  1163  
  1164  	logs, sub, err := _CommunityTokenDeployer.contract.FilterLogs(opts, "EIP712DomainChanged")
  1165  	if err != nil {
  1166  		return nil, err
  1167  	}
  1168  	return &CommunityTokenDeployerEIP712DomainChangedIterator{contract: _CommunityTokenDeployer.contract, event: "EIP712DomainChanged", logs: logs, sub: sub}, nil
  1169  }
  1170  
  1171  // WatchEIP712DomainChanged is a free log subscription operation binding the contract event 0x0a6387c9ea3628b88a633bb4f3b151770f70085117a15f9bf3787cda53f13d31.
  1172  //
  1173  // Solidity: event EIP712DomainChanged()
  1174  func (_CommunityTokenDeployer *CommunityTokenDeployerFilterer) WatchEIP712DomainChanged(opts *bind.WatchOpts, sink chan<- *CommunityTokenDeployerEIP712DomainChanged) (event.Subscription, error) {
  1175  
  1176  	logs, sub, err := _CommunityTokenDeployer.contract.WatchLogs(opts, "EIP712DomainChanged")
  1177  	if err != nil {
  1178  		return nil, err
  1179  	}
  1180  	return event.NewSubscription(func(quit <-chan struct{}) error {
  1181  		defer sub.Unsubscribe()
  1182  		for {
  1183  			select {
  1184  			case log := <-logs:
  1185  				// New log arrived, parse the event and forward to the user
  1186  				event := new(CommunityTokenDeployerEIP712DomainChanged)
  1187  				if err := _CommunityTokenDeployer.contract.UnpackLog(event, "EIP712DomainChanged", log); err != nil {
  1188  					return err
  1189  				}
  1190  				event.Raw = log
  1191  
  1192  				select {
  1193  				case sink <- event:
  1194  				case err := <-sub.Err():
  1195  					return err
  1196  				case <-quit:
  1197  					return nil
  1198  				}
  1199  			case err := <-sub.Err():
  1200  				return err
  1201  			case <-quit:
  1202  				return nil
  1203  			}
  1204  		}
  1205  	}), nil
  1206  }
  1207  
  1208  // ParseEIP712DomainChanged is a log parse operation binding the contract event 0x0a6387c9ea3628b88a633bb4f3b151770f70085117a15f9bf3787cda53f13d31.
  1209  //
  1210  // Solidity: event EIP712DomainChanged()
  1211  func (_CommunityTokenDeployer *CommunityTokenDeployerFilterer) ParseEIP712DomainChanged(log types.Log) (*CommunityTokenDeployerEIP712DomainChanged, error) {
  1212  	event := new(CommunityTokenDeployerEIP712DomainChanged)
  1213  	if err := _CommunityTokenDeployer.contract.UnpackLog(event, "EIP712DomainChanged", log); err != nil {
  1214  		return nil, err
  1215  	}
  1216  	event.Raw = log
  1217  	return event, nil
  1218  }
  1219  
  1220  // CommunityTokenDeployerMasterTokenFactoryAddressChangeIterator is returned from FilterMasterTokenFactoryAddressChange and is used to iterate over the raw logs and unpacked data for MasterTokenFactoryAddressChange events raised by the CommunityTokenDeployer contract.
  1221  type CommunityTokenDeployerMasterTokenFactoryAddressChangeIterator struct {
  1222  	Event *CommunityTokenDeployerMasterTokenFactoryAddressChange // Event containing the contract specifics and raw log
  1223  
  1224  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  1225  	event    string              // Event name to use for unpacking event data
  1226  
  1227  	logs chan types.Log        // Log channel receiving the found contract events
  1228  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  1229  	done bool                  // Whether the subscription completed delivering logs
  1230  	fail error                 // Occurred error to stop iteration
  1231  }
  1232  
  1233  // Next advances the iterator to the subsequent event, returning whether there
  1234  // are any more events found. In case of a retrieval or parsing error, false is
  1235  // returned and Error() can be queried for the exact failure.
  1236  func (it *CommunityTokenDeployerMasterTokenFactoryAddressChangeIterator) Next() bool {
  1237  	// If the iterator failed, stop iterating
  1238  	if it.fail != nil {
  1239  		return false
  1240  	}
  1241  	// If the iterator completed, deliver directly whatever's available
  1242  	if it.done {
  1243  		select {
  1244  		case log := <-it.logs:
  1245  			it.Event = new(CommunityTokenDeployerMasterTokenFactoryAddressChange)
  1246  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1247  				it.fail = err
  1248  				return false
  1249  			}
  1250  			it.Event.Raw = log
  1251  			return true
  1252  
  1253  		default:
  1254  			return false
  1255  		}
  1256  	}
  1257  	// Iterator still in progress, wait for either a data or an error event
  1258  	select {
  1259  	case log := <-it.logs:
  1260  		it.Event = new(CommunityTokenDeployerMasterTokenFactoryAddressChange)
  1261  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1262  			it.fail = err
  1263  			return false
  1264  		}
  1265  		it.Event.Raw = log
  1266  		return true
  1267  
  1268  	case err := <-it.sub.Err():
  1269  		it.done = true
  1270  		it.fail = err
  1271  		return it.Next()
  1272  	}
  1273  }
  1274  
  1275  // Error returns any retrieval or parsing error occurred during filtering.
  1276  func (it *CommunityTokenDeployerMasterTokenFactoryAddressChangeIterator) Error() error {
  1277  	return it.fail
  1278  }
  1279  
  1280  // Close terminates the iteration process, releasing any pending underlying
  1281  // resources.
  1282  func (it *CommunityTokenDeployerMasterTokenFactoryAddressChangeIterator) Close() error {
  1283  	it.sub.Unsubscribe()
  1284  	return nil
  1285  }
  1286  
  1287  // CommunityTokenDeployerMasterTokenFactoryAddressChange represents a MasterTokenFactoryAddressChange event raised by the CommunityTokenDeployer contract.
  1288  type CommunityTokenDeployerMasterTokenFactoryAddressChange struct {
  1289  	Arg0 common.Address
  1290  	Raw  types.Log // Blockchain specific contextual infos
  1291  }
  1292  
  1293  // FilterMasterTokenFactoryAddressChange is a free log retrieval operation binding the contract event 0x184513c31b135bda32c81b8586d52ad5bdbc7b7e4ec5847eee48374ee07e8e48.
  1294  //
  1295  // Solidity: event MasterTokenFactoryAddressChange(address indexed arg0)
  1296  func (_CommunityTokenDeployer *CommunityTokenDeployerFilterer) FilterMasterTokenFactoryAddressChange(opts *bind.FilterOpts, arg0 []common.Address) (*CommunityTokenDeployerMasterTokenFactoryAddressChangeIterator, error) {
  1297  
  1298  	var arg0Rule []interface{}
  1299  	for _, arg0Item := range arg0 {
  1300  		arg0Rule = append(arg0Rule, arg0Item)
  1301  	}
  1302  
  1303  	logs, sub, err := _CommunityTokenDeployer.contract.FilterLogs(opts, "MasterTokenFactoryAddressChange", arg0Rule)
  1304  	if err != nil {
  1305  		return nil, err
  1306  	}
  1307  	return &CommunityTokenDeployerMasterTokenFactoryAddressChangeIterator{contract: _CommunityTokenDeployer.contract, event: "MasterTokenFactoryAddressChange", logs: logs, sub: sub}, nil
  1308  }
  1309  
  1310  // WatchMasterTokenFactoryAddressChange is a free log subscription operation binding the contract event 0x184513c31b135bda32c81b8586d52ad5bdbc7b7e4ec5847eee48374ee07e8e48.
  1311  //
  1312  // Solidity: event MasterTokenFactoryAddressChange(address indexed arg0)
  1313  func (_CommunityTokenDeployer *CommunityTokenDeployerFilterer) WatchMasterTokenFactoryAddressChange(opts *bind.WatchOpts, sink chan<- *CommunityTokenDeployerMasterTokenFactoryAddressChange, arg0 []common.Address) (event.Subscription, error) {
  1314  
  1315  	var arg0Rule []interface{}
  1316  	for _, arg0Item := range arg0 {
  1317  		arg0Rule = append(arg0Rule, arg0Item)
  1318  	}
  1319  
  1320  	logs, sub, err := _CommunityTokenDeployer.contract.WatchLogs(opts, "MasterTokenFactoryAddressChange", arg0Rule)
  1321  	if err != nil {
  1322  		return nil, err
  1323  	}
  1324  	return event.NewSubscription(func(quit <-chan struct{}) error {
  1325  		defer sub.Unsubscribe()
  1326  		for {
  1327  			select {
  1328  			case log := <-logs:
  1329  				// New log arrived, parse the event and forward to the user
  1330  				event := new(CommunityTokenDeployerMasterTokenFactoryAddressChange)
  1331  				if err := _CommunityTokenDeployer.contract.UnpackLog(event, "MasterTokenFactoryAddressChange", log); err != nil {
  1332  					return err
  1333  				}
  1334  				event.Raw = log
  1335  
  1336  				select {
  1337  				case sink <- event:
  1338  				case err := <-sub.Err():
  1339  					return err
  1340  				case <-quit:
  1341  					return nil
  1342  				}
  1343  			case err := <-sub.Err():
  1344  				return err
  1345  			case <-quit:
  1346  				return nil
  1347  			}
  1348  		}
  1349  	}), nil
  1350  }
  1351  
  1352  // ParseMasterTokenFactoryAddressChange is a log parse operation binding the contract event 0x184513c31b135bda32c81b8586d52ad5bdbc7b7e4ec5847eee48374ee07e8e48.
  1353  //
  1354  // Solidity: event MasterTokenFactoryAddressChange(address indexed arg0)
  1355  func (_CommunityTokenDeployer *CommunityTokenDeployerFilterer) ParseMasterTokenFactoryAddressChange(log types.Log) (*CommunityTokenDeployerMasterTokenFactoryAddressChange, error) {
  1356  	event := new(CommunityTokenDeployerMasterTokenFactoryAddressChange)
  1357  	if err := _CommunityTokenDeployer.contract.UnpackLog(event, "MasterTokenFactoryAddressChange", log); err != nil {
  1358  		return nil, err
  1359  	}
  1360  	event.Raw = log
  1361  	return event, nil
  1362  }
  1363  
  1364  // CommunityTokenDeployerOwnerTokenFactoryAddressChangeIterator is returned from FilterOwnerTokenFactoryAddressChange and is used to iterate over the raw logs and unpacked data for OwnerTokenFactoryAddressChange events raised by the CommunityTokenDeployer contract.
  1365  type CommunityTokenDeployerOwnerTokenFactoryAddressChangeIterator struct {
  1366  	Event *CommunityTokenDeployerOwnerTokenFactoryAddressChange // Event containing the contract specifics and raw log
  1367  
  1368  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  1369  	event    string              // Event name to use for unpacking event data
  1370  
  1371  	logs chan types.Log        // Log channel receiving the found contract events
  1372  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  1373  	done bool                  // Whether the subscription completed delivering logs
  1374  	fail error                 // Occurred error to stop iteration
  1375  }
  1376  
  1377  // Next advances the iterator to the subsequent event, returning whether there
  1378  // are any more events found. In case of a retrieval or parsing error, false is
  1379  // returned and Error() can be queried for the exact failure.
  1380  func (it *CommunityTokenDeployerOwnerTokenFactoryAddressChangeIterator) Next() bool {
  1381  	// If the iterator failed, stop iterating
  1382  	if it.fail != nil {
  1383  		return false
  1384  	}
  1385  	// If the iterator completed, deliver directly whatever's available
  1386  	if it.done {
  1387  		select {
  1388  		case log := <-it.logs:
  1389  			it.Event = new(CommunityTokenDeployerOwnerTokenFactoryAddressChange)
  1390  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1391  				it.fail = err
  1392  				return false
  1393  			}
  1394  			it.Event.Raw = log
  1395  			return true
  1396  
  1397  		default:
  1398  			return false
  1399  		}
  1400  	}
  1401  	// Iterator still in progress, wait for either a data or an error event
  1402  	select {
  1403  	case log := <-it.logs:
  1404  		it.Event = new(CommunityTokenDeployerOwnerTokenFactoryAddressChange)
  1405  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1406  			it.fail = err
  1407  			return false
  1408  		}
  1409  		it.Event.Raw = log
  1410  		return true
  1411  
  1412  	case err := <-it.sub.Err():
  1413  		it.done = true
  1414  		it.fail = err
  1415  		return it.Next()
  1416  	}
  1417  }
  1418  
  1419  // Error returns any retrieval or parsing error occurred during filtering.
  1420  func (it *CommunityTokenDeployerOwnerTokenFactoryAddressChangeIterator) Error() error {
  1421  	return it.fail
  1422  }
  1423  
  1424  // Close terminates the iteration process, releasing any pending underlying
  1425  // resources.
  1426  func (it *CommunityTokenDeployerOwnerTokenFactoryAddressChangeIterator) Close() error {
  1427  	it.sub.Unsubscribe()
  1428  	return nil
  1429  }
  1430  
  1431  // CommunityTokenDeployerOwnerTokenFactoryAddressChange represents a OwnerTokenFactoryAddressChange event raised by the CommunityTokenDeployer contract.
  1432  type CommunityTokenDeployerOwnerTokenFactoryAddressChange struct {
  1433  	Arg0 common.Address
  1434  	Raw  types.Log // Blockchain specific contextual infos
  1435  }
  1436  
  1437  // FilterOwnerTokenFactoryAddressChange is a free log retrieval operation binding the contract event 0x17ae1257210039eb267be68929104e6c28fc9ebb9dc6aaa84be39b45eb6f3767.
  1438  //
  1439  // Solidity: event OwnerTokenFactoryAddressChange(address indexed arg0)
  1440  func (_CommunityTokenDeployer *CommunityTokenDeployerFilterer) FilterOwnerTokenFactoryAddressChange(opts *bind.FilterOpts, arg0 []common.Address) (*CommunityTokenDeployerOwnerTokenFactoryAddressChangeIterator, error) {
  1441  
  1442  	var arg0Rule []interface{}
  1443  	for _, arg0Item := range arg0 {
  1444  		arg0Rule = append(arg0Rule, arg0Item)
  1445  	}
  1446  
  1447  	logs, sub, err := _CommunityTokenDeployer.contract.FilterLogs(opts, "OwnerTokenFactoryAddressChange", arg0Rule)
  1448  	if err != nil {
  1449  		return nil, err
  1450  	}
  1451  	return &CommunityTokenDeployerOwnerTokenFactoryAddressChangeIterator{contract: _CommunityTokenDeployer.contract, event: "OwnerTokenFactoryAddressChange", logs: logs, sub: sub}, nil
  1452  }
  1453  
  1454  // WatchOwnerTokenFactoryAddressChange is a free log subscription operation binding the contract event 0x17ae1257210039eb267be68929104e6c28fc9ebb9dc6aaa84be39b45eb6f3767.
  1455  //
  1456  // Solidity: event OwnerTokenFactoryAddressChange(address indexed arg0)
  1457  func (_CommunityTokenDeployer *CommunityTokenDeployerFilterer) WatchOwnerTokenFactoryAddressChange(opts *bind.WatchOpts, sink chan<- *CommunityTokenDeployerOwnerTokenFactoryAddressChange, arg0 []common.Address) (event.Subscription, error) {
  1458  
  1459  	var arg0Rule []interface{}
  1460  	for _, arg0Item := range arg0 {
  1461  		arg0Rule = append(arg0Rule, arg0Item)
  1462  	}
  1463  
  1464  	logs, sub, err := _CommunityTokenDeployer.contract.WatchLogs(opts, "OwnerTokenFactoryAddressChange", arg0Rule)
  1465  	if err != nil {
  1466  		return nil, err
  1467  	}
  1468  	return event.NewSubscription(func(quit <-chan struct{}) error {
  1469  		defer sub.Unsubscribe()
  1470  		for {
  1471  			select {
  1472  			case log := <-logs:
  1473  				// New log arrived, parse the event and forward to the user
  1474  				event := new(CommunityTokenDeployerOwnerTokenFactoryAddressChange)
  1475  				if err := _CommunityTokenDeployer.contract.UnpackLog(event, "OwnerTokenFactoryAddressChange", log); err != nil {
  1476  					return err
  1477  				}
  1478  				event.Raw = log
  1479  
  1480  				select {
  1481  				case sink <- event:
  1482  				case err := <-sub.Err():
  1483  					return err
  1484  				case <-quit:
  1485  					return nil
  1486  				}
  1487  			case err := <-sub.Err():
  1488  				return err
  1489  			case <-quit:
  1490  				return nil
  1491  			}
  1492  		}
  1493  	}), nil
  1494  }
  1495  
  1496  // ParseOwnerTokenFactoryAddressChange is a log parse operation binding the contract event 0x17ae1257210039eb267be68929104e6c28fc9ebb9dc6aaa84be39b45eb6f3767.
  1497  //
  1498  // Solidity: event OwnerTokenFactoryAddressChange(address indexed arg0)
  1499  func (_CommunityTokenDeployer *CommunityTokenDeployerFilterer) ParseOwnerTokenFactoryAddressChange(log types.Log) (*CommunityTokenDeployerOwnerTokenFactoryAddressChange, error) {
  1500  	event := new(CommunityTokenDeployerOwnerTokenFactoryAddressChange)
  1501  	if err := _CommunityTokenDeployer.contract.UnpackLog(event, "OwnerTokenFactoryAddressChange", log); err != nil {
  1502  		return nil, err
  1503  	}
  1504  	event.Raw = log
  1505  	return event, nil
  1506  }
  1507  
  1508  // CommunityTokenDeployerOwnershipTransferStartedIterator is returned from FilterOwnershipTransferStarted and is used to iterate over the raw logs and unpacked data for OwnershipTransferStarted events raised by the CommunityTokenDeployer contract.
  1509  type CommunityTokenDeployerOwnershipTransferStartedIterator struct {
  1510  	Event *CommunityTokenDeployerOwnershipTransferStarted // Event containing the contract specifics and raw log
  1511  
  1512  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  1513  	event    string              // Event name to use for unpacking event data
  1514  
  1515  	logs chan types.Log        // Log channel receiving the found contract events
  1516  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  1517  	done bool                  // Whether the subscription completed delivering logs
  1518  	fail error                 // Occurred error to stop iteration
  1519  }
  1520  
  1521  // Next advances the iterator to the subsequent event, returning whether there
  1522  // are any more events found. In case of a retrieval or parsing error, false is
  1523  // returned and Error() can be queried for the exact failure.
  1524  func (it *CommunityTokenDeployerOwnershipTransferStartedIterator) Next() bool {
  1525  	// If the iterator failed, stop iterating
  1526  	if it.fail != nil {
  1527  		return false
  1528  	}
  1529  	// If the iterator completed, deliver directly whatever's available
  1530  	if it.done {
  1531  		select {
  1532  		case log := <-it.logs:
  1533  			it.Event = new(CommunityTokenDeployerOwnershipTransferStarted)
  1534  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1535  				it.fail = err
  1536  				return false
  1537  			}
  1538  			it.Event.Raw = log
  1539  			return true
  1540  
  1541  		default:
  1542  			return false
  1543  		}
  1544  	}
  1545  	// Iterator still in progress, wait for either a data or an error event
  1546  	select {
  1547  	case log := <-it.logs:
  1548  		it.Event = new(CommunityTokenDeployerOwnershipTransferStarted)
  1549  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1550  			it.fail = err
  1551  			return false
  1552  		}
  1553  		it.Event.Raw = log
  1554  		return true
  1555  
  1556  	case err := <-it.sub.Err():
  1557  		it.done = true
  1558  		it.fail = err
  1559  		return it.Next()
  1560  	}
  1561  }
  1562  
  1563  // Error returns any retrieval or parsing error occurred during filtering.
  1564  func (it *CommunityTokenDeployerOwnershipTransferStartedIterator) Error() error {
  1565  	return it.fail
  1566  }
  1567  
  1568  // Close terminates the iteration process, releasing any pending underlying
  1569  // resources.
  1570  func (it *CommunityTokenDeployerOwnershipTransferStartedIterator) Close() error {
  1571  	it.sub.Unsubscribe()
  1572  	return nil
  1573  }
  1574  
  1575  // CommunityTokenDeployerOwnershipTransferStarted represents a OwnershipTransferStarted event raised by the CommunityTokenDeployer contract.
  1576  type CommunityTokenDeployerOwnershipTransferStarted struct {
  1577  	PreviousOwner common.Address
  1578  	NewOwner      common.Address
  1579  	Raw           types.Log // Blockchain specific contextual infos
  1580  }
  1581  
  1582  // FilterOwnershipTransferStarted is a free log retrieval operation binding the contract event 0x38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e22700.
  1583  //
  1584  // Solidity: event OwnershipTransferStarted(address indexed previousOwner, address indexed newOwner)
  1585  func (_CommunityTokenDeployer *CommunityTokenDeployerFilterer) FilterOwnershipTransferStarted(opts *bind.FilterOpts, previousOwner []common.Address, newOwner []common.Address) (*CommunityTokenDeployerOwnershipTransferStartedIterator, error) {
  1586  
  1587  	var previousOwnerRule []interface{}
  1588  	for _, previousOwnerItem := range previousOwner {
  1589  		previousOwnerRule = append(previousOwnerRule, previousOwnerItem)
  1590  	}
  1591  	var newOwnerRule []interface{}
  1592  	for _, newOwnerItem := range newOwner {
  1593  		newOwnerRule = append(newOwnerRule, newOwnerItem)
  1594  	}
  1595  
  1596  	logs, sub, err := _CommunityTokenDeployer.contract.FilterLogs(opts, "OwnershipTransferStarted", previousOwnerRule, newOwnerRule)
  1597  	if err != nil {
  1598  		return nil, err
  1599  	}
  1600  	return &CommunityTokenDeployerOwnershipTransferStartedIterator{contract: _CommunityTokenDeployer.contract, event: "OwnershipTransferStarted", logs: logs, sub: sub}, nil
  1601  }
  1602  
  1603  // WatchOwnershipTransferStarted is a free log subscription operation binding the contract event 0x38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e22700.
  1604  //
  1605  // Solidity: event OwnershipTransferStarted(address indexed previousOwner, address indexed newOwner)
  1606  func (_CommunityTokenDeployer *CommunityTokenDeployerFilterer) WatchOwnershipTransferStarted(opts *bind.WatchOpts, sink chan<- *CommunityTokenDeployerOwnershipTransferStarted, previousOwner []common.Address, newOwner []common.Address) (event.Subscription, error) {
  1607  
  1608  	var previousOwnerRule []interface{}
  1609  	for _, previousOwnerItem := range previousOwner {
  1610  		previousOwnerRule = append(previousOwnerRule, previousOwnerItem)
  1611  	}
  1612  	var newOwnerRule []interface{}
  1613  	for _, newOwnerItem := range newOwner {
  1614  		newOwnerRule = append(newOwnerRule, newOwnerItem)
  1615  	}
  1616  
  1617  	logs, sub, err := _CommunityTokenDeployer.contract.WatchLogs(opts, "OwnershipTransferStarted", previousOwnerRule, newOwnerRule)
  1618  	if err != nil {
  1619  		return nil, err
  1620  	}
  1621  	return event.NewSubscription(func(quit <-chan struct{}) error {
  1622  		defer sub.Unsubscribe()
  1623  		for {
  1624  			select {
  1625  			case log := <-logs:
  1626  				// New log arrived, parse the event and forward to the user
  1627  				event := new(CommunityTokenDeployerOwnershipTransferStarted)
  1628  				if err := _CommunityTokenDeployer.contract.UnpackLog(event, "OwnershipTransferStarted", log); err != nil {
  1629  					return err
  1630  				}
  1631  				event.Raw = log
  1632  
  1633  				select {
  1634  				case sink <- event:
  1635  				case err := <-sub.Err():
  1636  					return err
  1637  				case <-quit:
  1638  					return nil
  1639  				}
  1640  			case err := <-sub.Err():
  1641  				return err
  1642  			case <-quit:
  1643  				return nil
  1644  			}
  1645  		}
  1646  	}), nil
  1647  }
  1648  
  1649  // ParseOwnershipTransferStarted is a log parse operation binding the contract event 0x38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e22700.
  1650  //
  1651  // Solidity: event OwnershipTransferStarted(address indexed previousOwner, address indexed newOwner)
  1652  func (_CommunityTokenDeployer *CommunityTokenDeployerFilterer) ParseOwnershipTransferStarted(log types.Log) (*CommunityTokenDeployerOwnershipTransferStarted, error) {
  1653  	event := new(CommunityTokenDeployerOwnershipTransferStarted)
  1654  	if err := _CommunityTokenDeployer.contract.UnpackLog(event, "OwnershipTransferStarted", log); err != nil {
  1655  		return nil, err
  1656  	}
  1657  	event.Raw = log
  1658  	return event, nil
  1659  }
  1660  
  1661  // CommunityTokenDeployerOwnershipTransferredIterator is returned from FilterOwnershipTransferred and is used to iterate over the raw logs and unpacked data for OwnershipTransferred events raised by the CommunityTokenDeployer contract.
  1662  type CommunityTokenDeployerOwnershipTransferredIterator struct {
  1663  	Event *CommunityTokenDeployerOwnershipTransferred // Event containing the contract specifics and raw log
  1664  
  1665  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  1666  	event    string              // Event name to use for unpacking event data
  1667  
  1668  	logs chan types.Log        // Log channel receiving the found contract events
  1669  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  1670  	done bool                  // Whether the subscription completed delivering logs
  1671  	fail error                 // Occurred error to stop iteration
  1672  }
  1673  
  1674  // Next advances the iterator to the subsequent event, returning whether there
  1675  // are any more events found. In case of a retrieval or parsing error, false is
  1676  // returned and Error() can be queried for the exact failure.
  1677  func (it *CommunityTokenDeployerOwnershipTransferredIterator) Next() bool {
  1678  	// If the iterator failed, stop iterating
  1679  	if it.fail != nil {
  1680  		return false
  1681  	}
  1682  	// If the iterator completed, deliver directly whatever's available
  1683  	if it.done {
  1684  		select {
  1685  		case log := <-it.logs:
  1686  			it.Event = new(CommunityTokenDeployerOwnershipTransferred)
  1687  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1688  				it.fail = err
  1689  				return false
  1690  			}
  1691  			it.Event.Raw = log
  1692  			return true
  1693  
  1694  		default:
  1695  			return false
  1696  		}
  1697  	}
  1698  	// Iterator still in progress, wait for either a data or an error event
  1699  	select {
  1700  	case log := <-it.logs:
  1701  		it.Event = new(CommunityTokenDeployerOwnershipTransferred)
  1702  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1703  			it.fail = err
  1704  			return false
  1705  		}
  1706  		it.Event.Raw = log
  1707  		return true
  1708  
  1709  	case err := <-it.sub.Err():
  1710  		it.done = true
  1711  		it.fail = err
  1712  		return it.Next()
  1713  	}
  1714  }
  1715  
  1716  // Error returns any retrieval or parsing error occurred during filtering.
  1717  func (it *CommunityTokenDeployerOwnershipTransferredIterator) Error() error {
  1718  	return it.fail
  1719  }
  1720  
  1721  // Close terminates the iteration process, releasing any pending underlying
  1722  // resources.
  1723  func (it *CommunityTokenDeployerOwnershipTransferredIterator) Close() error {
  1724  	it.sub.Unsubscribe()
  1725  	return nil
  1726  }
  1727  
  1728  // CommunityTokenDeployerOwnershipTransferred represents a OwnershipTransferred event raised by the CommunityTokenDeployer contract.
  1729  type CommunityTokenDeployerOwnershipTransferred struct {
  1730  	PreviousOwner common.Address
  1731  	NewOwner      common.Address
  1732  	Raw           types.Log // Blockchain specific contextual infos
  1733  }
  1734  
  1735  // FilterOwnershipTransferred is a free log retrieval operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0.
  1736  //
  1737  // Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
  1738  func (_CommunityTokenDeployer *CommunityTokenDeployerFilterer) FilterOwnershipTransferred(opts *bind.FilterOpts, previousOwner []common.Address, newOwner []common.Address) (*CommunityTokenDeployerOwnershipTransferredIterator, error) {
  1739  
  1740  	var previousOwnerRule []interface{}
  1741  	for _, previousOwnerItem := range previousOwner {
  1742  		previousOwnerRule = append(previousOwnerRule, previousOwnerItem)
  1743  	}
  1744  	var newOwnerRule []interface{}
  1745  	for _, newOwnerItem := range newOwner {
  1746  		newOwnerRule = append(newOwnerRule, newOwnerItem)
  1747  	}
  1748  
  1749  	logs, sub, err := _CommunityTokenDeployer.contract.FilterLogs(opts, "OwnershipTransferred", previousOwnerRule, newOwnerRule)
  1750  	if err != nil {
  1751  		return nil, err
  1752  	}
  1753  	return &CommunityTokenDeployerOwnershipTransferredIterator{contract: _CommunityTokenDeployer.contract, event: "OwnershipTransferred", logs: logs, sub: sub}, nil
  1754  }
  1755  
  1756  // WatchOwnershipTransferred is a free log subscription operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0.
  1757  //
  1758  // Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
  1759  func (_CommunityTokenDeployer *CommunityTokenDeployerFilterer) WatchOwnershipTransferred(opts *bind.WatchOpts, sink chan<- *CommunityTokenDeployerOwnershipTransferred, previousOwner []common.Address, newOwner []common.Address) (event.Subscription, error) {
  1760  
  1761  	var previousOwnerRule []interface{}
  1762  	for _, previousOwnerItem := range previousOwner {
  1763  		previousOwnerRule = append(previousOwnerRule, previousOwnerItem)
  1764  	}
  1765  	var newOwnerRule []interface{}
  1766  	for _, newOwnerItem := range newOwner {
  1767  		newOwnerRule = append(newOwnerRule, newOwnerItem)
  1768  	}
  1769  
  1770  	logs, sub, err := _CommunityTokenDeployer.contract.WatchLogs(opts, "OwnershipTransferred", previousOwnerRule, newOwnerRule)
  1771  	if err != nil {
  1772  		return nil, err
  1773  	}
  1774  	return event.NewSubscription(func(quit <-chan struct{}) error {
  1775  		defer sub.Unsubscribe()
  1776  		for {
  1777  			select {
  1778  			case log := <-logs:
  1779  				// New log arrived, parse the event and forward to the user
  1780  				event := new(CommunityTokenDeployerOwnershipTransferred)
  1781  				if err := _CommunityTokenDeployer.contract.UnpackLog(event, "OwnershipTransferred", log); err != nil {
  1782  					return err
  1783  				}
  1784  				event.Raw = log
  1785  
  1786  				select {
  1787  				case sink <- event:
  1788  				case err := <-sub.Err():
  1789  					return err
  1790  				case <-quit:
  1791  					return nil
  1792  				}
  1793  			case err := <-sub.Err():
  1794  				return err
  1795  			case <-quit:
  1796  				return nil
  1797  			}
  1798  		}
  1799  	}), nil
  1800  }
  1801  
  1802  // ParseOwnershipTransferred is a log parse operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0.
  1803  //
  1804  // Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
  1805  func (_CommunityTokenDeployer *CommunityTokenDeployerFilterer) ParseOwnershipTransferred(log types.Log) (*CommunityTokenDeployerOwnershipTransferred, error) {
  1806  	event := new(CommunityTokenDeployerOwnershipTransferred)
  1807  	if err := _CommunityTokenDeployer.contract.UnpackLog(event, "OwnershipTransferred", log); err != nil {
  1808  		return nil, err
  1809  	}
  1810  	event.Raw = log
  1811  	return event, nil
  1812  }