github.com/hyperion-hyn/go-ethereum@v2.4.0+incompatible/permission/bind/accounts.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 permission
     5  
     6  import (
     7  	"math/big"
     8  	"strings"
     9  
    10  	ethereum "github.com/ethereum/go-ethereum"
    11  	"github.com/ethereum/go-ethereum/accounts/abi"
    12  	"github.com/ethereum/go-ethereum/accounts/abi/bind"
    13  	"github.com/ethereum/go-ethereum/common"
    14  	"github.com/ethereum/go-ethereum/core/types"
    15  	"github.com/ethereum/go-ethereum/event"
    16  )
    17  
    18  // Reference imports to suppress errors if they are not otherwise used.
    19  var (
    20  	_ = big.NewInt
    21  	_ = strings.NewReader
    22  	_ = ethereum.NotFound
    23  	_ = abi.U256
    24  	_ = bind.Bind
    25  	_ = common.Big1
    26  	_ = types.BloomLookup
    27  	_ = event.NewSubscription
    28  )
    29  
    30  // AcctManagerABI is the input ABI used to generate the binding from.
    31  const AcctManagerABI = "[{\"constant\":false,\"inputs\":[{\"name\":\"_account\",\"type\":\"address\"},{\"name\":\"_orgId\",\"type\":\"string\"},{\"name\":\"_roleId\",\"type\":\"string\"},{\"name\":\"_adminRole\",\"type\":\"bool\"}],\"name\":\"assignAccountRole\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_orgId\",\"type\":\"string\"}],\"name\":\"removeExistingAdmin\",\"outputs\":[{\"name\":\"voterUpdate\",\"type\":\"bool\"},{\"name\":\"account\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_account\",\"type\":\"address\"}],\"name\":\"getAccountDetails\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"},{\"name\":\"\",\"type\":\"string\"},{\"name\":\"\",\"type\":\"string\"},{\"name\":\"\",\"type\":\"uint256\"},{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getNumberOfAccounts\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_account\",\"type\":\"address\"},{\"name\":\"_orgId\",\"type\":\"string\"}],\"name\":\"validateAccount\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_account\",\"type\":\"address\"}],\"name\":\"getAccountRole\",\"outputs\":[{\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_orgId\",\"type\":\"string\"},{\"name\":\"_account\",\"type\":\"address\"},{\"name\":\"_action\",\"type\":\"uint256\"}],\"name\":\"updateAccountStatus\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_orgId\",\"type\":\"string\"}],\"name\":\"orgAdminExists\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_aIndex\",\"type\":\"uint256\"}],\"name\":\"getAccountDetailsFromIndex\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"},{\"name\":\"\",\"type\":\"string\"},{\"name\":\"\",\"type\":\"string\"},{\"name\":\"\",\"type\":\"uint256\"},{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_orgId\",\"type\":\"string\"},{\"name\":\"_account\",\"type\":\"address\"}],\"name\":\"addNewAdmin\",\"outputs\":[{\"name\":\"voterUpdate\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_nwAdminRole\",\"type\":\"string\"},{\"name\":\"_oAdminRole\",\"type\":\"string\"}],\"name\":\"setDefaults\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_account\",\"type\":\"address\"},{\"name\":\"_orgId\",\"type\":\"string\"},{\"name\":\"_roleId\",\"type\":\"string\"},{\"name\":\"_status\",\"type\":\"uint256\"}],\"name\":\"assignAdminRole\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_account\",\"type\":\"address\"},{\"name\":\"_orgId\",\"type\":\"string\"},{\"name\":\"_ultParent\",\"type\":\"string\"}],\"name\":\"checkOrgAdmin\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"name\":\"_permUpgradable\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_account\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_orgId\",\"type\":\"string\"},{\"indexed\":false,\"name\":\"_roleId\",\"type\":\"string\"},{\"indexed\":false,\"name\":\"_orgAdmin\",\"type\":\"bool\"},{\"indexed\":false,\"name\":\"_status\",\"type\":\"uint256\"}],\"name\":\"AccountAccessModified\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_account\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_orgId\",\"type\":\"string\"},{\"indexed\":false,\"name\":\"_roleId\",\"type\":\"string\"},{\"indexed\":false,\"name\":\"_orgAdmin\",\"type\":\"bool\"}],\"name\":\"AccountAccessRevoked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_account\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_orgId\",\"type\":\"string\"},{\"indexed\":false,\"name\":\"_status\",\"type\":\"uint256\"}],\"name\":\"AccountStatusChanged\",\"type\":\"event\"}]"
    32  
    33  // AcctManagerBin is the compiled bytecode used for deploying new contracts.
    34  const AcctManagerBin = `608060405234801561001057600080fd5b50604051602080620048c18339810180604052602081101561003157600080fd5b8101908080519060200190929190505050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505061482e80620000936000396000f3fe608060405234801561001057600080fd5b50600436106100ec576000357c01000000000000000000000000000000000000000000000000000000009004806384b7a84a116100a9578063c214e5e511610083578063c214e5e514610877578063cef7f6af14610928578063e3483a9d146109f6578063e8b42bf414610aee576100ec565b806384b7a84a146105a9578063950145cf1461064c578063b20185681461071f576100ec565b8063143a5604146100f15780631d09dc93146101eb5780632aceb534146102af578063309e36ef1461041d5780636b568d761461043b57806381d66b23146104ec575b600080fd5b6101e96004803603608081101561010757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019064010000000081111561014457600080fd5b82018360208201111561015657600080fd5b8035906020019184600183028401116401000000008311171561017857600080fd5b90919293919293908035906020019064010000000081111561019957600080fd5b8201836020820111156101ab57600080fd5b803590602001918460018302840111640100000000831117156101cd57600080fd5b9091929391929390803515159060200190929190505050610c78565b005b6102626004803603602081101561020157600080fd5b810190808035906020019064010000000081111561021e57600080fd5b82018360208201111561023057600080fd5b8035906020019184600183028401116401000000008311171561025257600080fd5b9091929391929390505050611157565b60405180831515151581526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390f35b6102f1600480360360208110156102c557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611823565b604051808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001806020018060200185815260200184151515158152602001838103835287818151815260200191508051906020019080838360005b8381101561037757808201518184015260208101905061035c565b50505050905090810190601f1680156103a45780820380516001836020036101000a031916815260200191505b50838103825286818151815260200191508051906020019080838360005b838110156103dd5780820151818401526020810190506103c2565b50505050905090810190601f16801561040a5780820380516001836020036101000a031916815260200191505b5097505050505050505060405180910390f35b610425611afe565b6040518082815260200191505060405180910390f35b6104d26004803603604081101561045157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019064010000000081111561048e57600080fd5b8201836020820111156104a057600080fd5b803590602001918460018302840111640100000000831117156104c257600080fd5b9091929391929390505050611b0b565b604051808215151515815260200191505060405180910390f35b61052e6004803603602081101561050257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611c91565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561056e578082015181840152602081019050610553565b50505050905090810190601f16801561059b5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61064a600480360360608110156105bf57600080fd5b81019080803590602001906401000000008111156105dc57600080fd5b8201836020820111156105ee57600080fd5b8035906020019184600183028401116401000000008311171561061057600080fd5b9091929391929390803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611e4f565b005b6107056004803603602081101561066257600080fd5b810190808035906020019064010000000081111561067f57600080fd5b82018360208201111561069157600080fd5b803590602001918460018302840111640100000000831117156106b357600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050612781565b604051808215151515815260200191505060405180910390f35b61074b6004803603602081101561073557600080fd5b8101908080359060200190929190505050612957565b604051808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001806020018060200185815260200184151515158152602001838103835287818151815260200191508051906020019080838360005b838110156107d15780820151818401526020810190506107b6565b50505050905090810190601f1680156107fe5780820380516001836020036101000a031916815260200191505b50838103825286818151815260200191508051906020019080838360005b8381101561083757808201518184015260208101905061081c565b50505050905090810190601f1680156108645780820380516001836020036101000a031916815260200191505b5097505050505050505060405180910390f35b61090e6004803603604081101561088d57600080fd5b81019080803590602001906401000000008111156108aa57600080fd5b8201836020820111156108bc57600080fd5b803590602001918460018302840111640100000000831117156108de57600080fd5b9091929391929390803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612b7a565b604051808215151515815260200191505060405180910390f35b6109f46004803603604081101561093e57600080fd5b810190808035906020019064010000000081111561095b57600080fd5b82018360208201111561096d57600080fd5b8035906020019184600183028401116401000000008311171561098f57600080fd5b9091929391929390803590602001906401000000008111156109b057600080fd5b8201836020820111156109c257600080fd5b803590602001918460018302840111640100000000831117156109e457600080fd5b90919293919293905050506132e3565b005b610aec60048036036080811015610a0c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190640100000000811115610a4957600080fd5b820183602082011115610a5b57600080fd5b80359060200191846001830284011164010000000083111715610a7d57600080fd5b909192939192939080359060200190640100000000811115610a9e57600080fd5b820183602082011115610ab057600080fd5b80359060200191846001830284011164010000000083111715610ad257600080fd5b90919293919293908035906020019092919050505061346d565b005b610c5e60048036036060811015610b0457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190640100000000811115610b4157600080fd5b820183602082011115610b5357600080fd5b80359060200191846001830284011164010000000083111715610b7557600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050919291929080359060200190640100000000811115610bd857600080fd5b820183602082011115610bea57600080fd5b80359060200191846001830284011164010000000083111715610c0c57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192905050506138c5565b604051808215151515815260200191505060405180910390f35b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630e32cf906040518163ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040160206040518083038186803b158015610cfb57600080fd5b505afa158015610d0f573d6000803e3d6000fd5b505050506040513d6020811015610d2557600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610dd8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f696e76616c69642063616c6c657200000000000000000000000000000000000081525060200191505060405180910390fd5b60046040516020018080602001828103825283818154600181600116156101000203166002900481526020019150805460018160011615610100020316600290048015610e665780601f10610e3b57610100808354040283529160200191610e66565b820191906000526020600020905b815481529060010190602001808311610e4957829003601f168201915b50509250505060405160208183030381529060405280519060200120838360405160200180806020018281038252848482818152602001925080828437600081840152601f19601f82011690508083019250505093505050506040516020818303038152906040528051906020012014158015611062575060056040516020018080602001828103825283818154600181600116156101000203166002900481526020019150805460018160011615610100020316600290048015610f6c5780601f10610f4157610100808354040283529160200191610f6c565b820191906000526020600020905b815481529060010190602001808311610f4f57829003601f168201915b50509250505060405160208183030381529060405280519060200120838360405160200180806020018281038252848482818152602001925080828437600081840152601f19601f82011690508083019250505093505050506040516020818303038152906040526040516020018080602001828103825283818151815260200191508051906020019080838360005b83811015611017578082015181840152602081019050610ffc565b50505050905090810190601f1680156110445780820380516001836020036101000a031916815260200191505b50925050506040516020818303038152906040528051906020012014155b15156110b9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252604081526020018061475e6040913960400191505060405180910390fd5b61114f8686868080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505085858080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050600285613ebc565b505050505050565b6000806000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630e32cf906040518163ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040160206040518083038186803b1580156111dd57600080fd5b505afa1580156111f1573d6000803e3d6000fd5b505050506040513d602081101561120757600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156112ba576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f696e76616c69642063616c6c657200000000000000000000000000000000000081525060200191505060405180910390fd5b61130784848080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050612781565b1561181157600061139c60066000878760405160200180806020018281038252848482818152602001925080828437600081840152601f19601f820116905080830192505050935050505060405160208183030381529060405280519060200120815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166143d6565b905060066001828154811015156113af57fe5b90600052602060002090600502016003018190555060006001828154811015156113d557fe5b906000526020600020906005020160040160006101000a81548160ff0219169083151502179055507f68e62a03aeb0a125c2fc869eed72f2fca473680987bdd680c093a534e17cc77660018281548110151561142d57fe5b906000526020600020906005020160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660018381548110151561146e57fe5b906000526020600020906005020160010160018481548110151561148e57fe5b90600052602060002090600502016002016001858154811015156114ae57fe5b906000526020600020906005020160040160009054906101000a900460ff166001868154811015156114dc57fe5b906000526020600020906005020160030154604051808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018060200180602001851515151581526020018481526020018381038352878181546001816001161561010002031660029004815260200191508054600181600116156101000203166002900480156115bd5780601f10611592576101008083540402835291602001916115bd565b820191906000526020600020905b8154815290600101906020018083116115a057829003601f168201915b50508381038252868181546001816001161561010002031660029004815260200191508054600181600116156101000203166002900480156116405780601f1061161557610100808354040283529160200191611640565b820191906000526020600020905b81548152906001019060200180831161162357829003601f168201915b505097505050505050505060405180910390a1600460405160200180806020018281038252838181546001816001161561010002031660029004815260200191508054600181600116156101000203166002900480156116e15780601f106116b6576101008083540402835291602001916116e1565b820191906000526020600020905b8154815290600101906020018083116116c457829003601f168201915b5050925050506040516020818303038152906040528051906020012060018281548110151561170c57fe5b906000526020600020906005020160020160405160200180806020018281038252838181546001816001161561010002031660029004815260200191508054600181600116156101000203166002900480156117a95780601f1061177e576101008083540402835291602001916117a9565b820191906000526020600020905b81548152906001019060200180831161178c57829003601f168201915b50509250505060405160208183030381529060405280519060200120146001828154811015156117d557fe5b906000526020600020906005020160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16925092505061181c565b600080809050915091505b9250929050565b60006060806000806000600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414156118d457856000806040805190810160405280600481526020017f4e4f4e450000000000000000000000000000000000000000000000000000000081525091906020604051908101604052806000815250919081915094509450945094509450611af5565b60006118df876143d6565b90506001818154811015156118f057fe5b906000526020600020906005020160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660018281548110151561193157fe5b906000526020600020906005020160010160018381548110151561195157fe5b906000526020600020906005020160020160018481548110151561197157fe5b90600052602060002090600502016003015460018581548110151561199257fe5b906000526020600020906005020160040160009054906101000a900460ff16838054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611a465780601f10611a1b57610100808354040283529160200191611a46565b820191906000526020600020905b815481529060010190602001808311611a2957829003601f168201915b50505050509350828054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611ae25780601f10611ab757610100808354040283529160200191611ae2565b820191906000526020600020905b815481529060010190602001808311611ac557829003601f168201915b5050505050925095509550955095509550505b91939590929450565b6000600180549050905090565b600080600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541415611b5d5760019050611c8a565b6000611b68856143d6565b9050838360405160200180806020018281038252848482818152602001925080828437600081840152601f19601f820116905080830192505050935050505060405160208183030381529060405280519060200120600182815481101515611bcc57fe5b90600052602060002090600502016001016040516020018080602001828103825283818154600181600116156101000203166002900481526020019150805460018160011615610100020316600290048015611c695780601f10611c3e57610100808354040283529160200191611c69565b820191906000526020600020905b815481529060010190602001808311611c4c57829003601f168201915b50509250505060405160208183030381529060405280519060200120149150505b9392505050565b60606000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541415611d18576040805190810160405280600481526020017f4e4f4e45000000000000000000000000000000000000000000000000000000008152509050611e4a565b6000611d23836143d6565b90506000600182815481101515611d3657fe5b906000526020600020906005020160030154141515611e1057600181815481101515611d5e57fe5b90600052602060002090600502016002018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611e035780601f10611dd857610100808354040283529160200191611e03565b820191906000526020600020905b815481529060010190602001808311611de657829003601f168201915b5050505050915050611e4a565b6040805190810160405280600481526020017f4e4f4e45000000000000000000000000000000000000000000000000000000008152509150505b919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630e32cf906040518163ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040160206040518083038186803b158015611ed257600080fd5b505afa158015611ee6573d6000803e3d6000fd5b505050506040513d6020811015611efc57600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611faf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f696e76616c69642063616c6c657200000000000000000000000000000000000081525060200191505060405180910390fd5b83838080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050826000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054141515156120ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f6163636f756e7420646f6573206e6f742065786973747300000000000000000081525060200191505060405180910390fd5b816040516020018080602001828103825283818151815260200191508051906020019080838360005b838110156120f15780820151818401526020810190506120d6565b50505050905090810190601f16801561211e5780820380516001836020036101000a031916815260200191505b5092505050604051602081830303815290604052805190602001206001612144836143d6565b81548110151561215057fe5b906000526020600020906005020160010160405160200180806020018281038252838181546001816001161561010002031660029004815260200191508054600181600116156101000203166002900480156121ed5780601f106121c2576101008083540402835291602001916121ed565b820191906000526020600020905b8154815290600101906020018083116121d057829003601f168201915b5050925050506040516020818303038152906040528051906020012014151561227e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f6163636f756e7420696e20646966666572656e74206f7267000000000000000081525060200191505060405180910390fd5b60008311801561228e5750600683105b1515612302576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f696e76616c696420737461747573206368616e6765207265717565737400000081525060200191505060405180910390fd5b600115156123658588888080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505060206040519081016040528060008152506138c5565b1515141515156123c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260318152602001806147d26031913960400191505060405180910390fd5b6000600184141561245757600260016123d8876143d6565b8154811015156123e457fe5b90600052602060002090600502016003015414151561244e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260398152602001806146fd6039913960400191505060405180910390fd5b600490506126ac565b60028414156124ec576004600161246d876143d6565b81548110151561247957fe5b9060005260206000209060050201600301541415156124e3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603c8152602001806146c1603c913960400191505060405180910390fd5b600290506126ab565b60038414156125825760056001612502876143d6565b81548110151561250e57fe5b90600052602060002090600502016003015414151515612579576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260388152602001806146896038913960400191505060405180910390fd5b600590506126aa565b60048414156126175760056001612598876143d6565b8154811015156125a457fe5b90600052602060002090600502016003015414151561260e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603481526020018061479e6034913960400191505060405180910390fd5b600790506126a9565b60058414156126a8576007600161262d876143d6565b81548110151561263957fe5b9060005260206000209060050201600301541415156126a3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260388152602001806146516038913960400191505060405180910390fd5b600290505b5b5b5b5b8060016126b8876143d6565b8154811015156126c457fe5b9060005260206000209060050201600301819055507f36b0ea38154dec5e98b6bf928b971a9db5e8cd4b6946350e9e43fb9848c70b2585888884604051808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001806020018381526020018281038252858582818152602001925080828437600081840152601f19601f8201169050808301925050509550505050505060405180910390a150505050505050565b60008073ffffffffffffffffffffffffffffffffffffffff1660066000846040516020018080602001828103825283818151815260200191508051906020019080838360005b838110156127e25780820151818401526020810190506127c7565b50505050905090810190601f16801561280f5780820380516001836020036101000a031916815260200191505b509250505060405160208183030381529060405280519060200120815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561294d57600060066000846040516020018080602001828103825283818151815260200191508051906020019080838360005b838110156128c05780820151818401526020810190506128a5565b50505050905090810190601f1680156128ed5780820380516001836020036101000a031916815260200191505b509250505060405160208183030381529060405280519060200120815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600261294482614422565b14915050612952565b600090505b919050565b600060608060008060018681548110151561296e57fe5b906000526020600020906005020160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001878154811015156129af57fe5b90600052602060002090600502016001016001888154811015156129cf57fe5b90600052602060002090600502016002016001898154811015156129ef57fe5b90600052602060002090600502016003015460018a815481101515612a1057fe5b906000526020600020906005020160040160009054906101000a900460ff16838054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015612ac45780601f10612a9957610100808354040283529160200191612ac4565b820191906000526020600020905b815481529060010190602001808311612aa757829003601f168201915b50505050509350828054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015612b605780601f10612b3557610100808354040283529160200191612b60565b820191906000526020600020905b815481529060010190602001808311612b4357829003601f168201915b505050505092509450945094509450945091939590929450565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630e32cf906040518163ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040160206040518083038186803b158015612bff57600080fd5b505afa158015612c13573d6000803e3d6000fd5b505050506040513d6020811015612c2957600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612cdc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f696e76616c69642063616c6c657200000000000000000000000000000000000081525060200191505060405180910390fd5b6060612ce783611c91565b90506000612cf484614422565b90506000612d01856143d6565b905060056040516020018080602001828103825283818154600181600116156101000203166002900481526020019150805460018160011615610100020316600290048015612d915780601f10612d6657610100808354040283529160200191612d91565b820191906000526020600020905b815481529060010190602001808311612d7457829003601f168201915b50509250505060405160208183030381529060405280519060200120836040516020018080602001828103825283818151815260200191508051906020019080838360005b83811015612df1578082015181840152602081019050612dd6565b50505050905090810190601f168015612e1e5780820380516001836020036101000a031916815260200191505b509250505060405160208183030381529060405280519060200120148015612e465750600182145b15612ef0578460066000898960405160200180806020018281038252848482818152602001925080828437600081840152601f19601f820116905080830192505050935050505060405160208183030381529060405280519060200120815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b6002600182815481101515612f0157fe5b90600052602060002090600502016003018190555060018082815481101515612f2657fe5b906000526020600020906005020160040160006101000a81548160ff0219169083151502179055507f68e62a03aeb0a125c2fc869eed72f2fca473680987bdd680c093a534e17cc77685600183815481101515612f7f57fe5b9060005260206000209060050201600101600184815481101515612f9f57fe5b9060005260206000209060050201600201600185815481101515612fbf57fe5b906000526020600020906005020160040160009054906101000a900460ff16600186815481101515612fed57fe5b906000526020600020906005020160030154604051808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018060200180602001851515151581526020018481526020018381038352878181546001816001161561010002031660029004815260200191508054600181600116156101000203166002900480156130ce5780601f106130a3576101008083540402835291602001916130ce565b820191906000526020600020905b8154815290600101906020018083116130b157829003601f168201915b50508381038252868181546001816001161561010002031660029004815260200191508054600181600116156101000203166002900480156131515780601f1061312657610100808354040283529160200191613151565b820191906000526020600020905b81548152906001019060200180831161313457829003601f168201915b505097505050505050505060405180910390a1600460405160200180806020018281038252838181546001816001161561010002031660029004815260200191508054600181600116156101000203166002900480156131f25780601f106131c7576101008083540402835291602001916131f2565b820191906000526020600020905b8154815290600101906020018083116131d557829003601f168201915b5050925050506040516020818303038152906040528051906020012060018281548110151561321d57fe5b906000526020600020906005020160020160405160200180806020018281038252838181546001816001161561010002031660029004815260200191508054600181600116156101000203166002900480156132ba5780601f1061328f576101008083540402835291602001916132ba565b820191906000526020600020905b81548152906001019060200180831161329d57829003601f168201915b505092505050604051602081830303815290604052805190602001201493505050509392505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630e32cf906040518163ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040160206040518083038186803b15801561336657600080fd5b505afa15801561337a573d6000803e3d6000fd5b505050506040513d602081101561339057600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515613443576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f696e76616c69642063616c6c657200000000000000000000000000000000000081525060200191505060405180910390fd5b8383600491906134549291906144ab565b508181600591906134669291906144ab565b5050505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630e32cf906040518163ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040160206040518083038186803b1580156134f057600080fd5b505afa158015613504573d6000803e3d6000fd5b505050506040513d602081101561351a57600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156135cd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f696e76616c69642063616c6c657200000000000000000000000000000000000081525060200191505060405180910390fd5b6005604051602001808060200182810382528381815460018160011615610100020316600290048152602001915080546001816001161561010002031660029004801561365b5780601f106136305761010080835404028352916020019161365b565b820191906000526020600020905b81548152906001019060200180831161363e57829003601f168201915b50509250505060405160208183030381529060405280519060200120838360405160200180806020018281038252848482818152602001925080828437600081840152601f19601f82011690508083019250505093505050506040516020818303038152906040528051906020012014806137d057506004604051602001808060200182810382528381815460018160011615610100020316600290048152602001915080546001816001161561010002031660029004801561375f5780601f106137345761010080835404028352916020019161375f565b820191906000526020600020905b81548152906001019060200180831161374257829003601f168201915b50509250505060405160208183030381529060405280519060200120838360405160200180806020018281038252848482818152602001925080828437600081840152601f19601f820116905080830192505050935050505060405160208183030381529060405280519060200120145b1515613827576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260288152602001806147366028913960400191505060405180910390fd5b6138bd8686868080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505085858080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050846001613ebc565b505050505050565b6000600460405160200180806020018281038252838181546001816001161561010002031660029004815260200191508054600181600116156101000203166002900480156139555780601f1061392a57610100808354040283529160200191613955565b820191906000526020600020905b81548152906001019060200180831161393857829003601f168201915b5050925050506040516020818303038152906040528051906020012061397a85611c91565b6040516020018080602001828103825283818151815260200191508051906020019080838360005b838110156139bd5780820151818401526020810190506139a2565b50505050905090810190601f1680156139ea5780820380516001836020036101000a031916815260200191505b5092505050604051602081830303815290604052805190602001201415613cd1576000613a16856143d6565b9050836040516020018080602001828103825283818151815260200191508051906020019080838360005b83811015613a5c578082015181840152602081019050613a41565b50505050905090810190601f168015613a895780820380516001836020036101000a031916815260200191505b509250505060405160208183030381529060405280519060200120600182815481101515613ab357fe5b90600052602060002090600502016001016040516020018080602001828103825283818154600181600116156101000203166002900481526020019150805460018160011615610100020316600290048015613b505780601f10613b2557610100808354040283529160200191613b50565b820191906000526020600020905b815481529060010190602001808311613b3357829003601f168201915b505092505050604051602081830303815290604052805190602001201480613cc95750826040516020018080602001828103825283818151815260200191508051906020019080838360005b83811015613bb7578082015181840152602081019050613b9c565b50505050905090810190601f168015613be45780820380516001836020036101000a031916815260200191505b509250505060405160208183030381529060405280519060200120600182815481101515613c0e57fe5b90600052602060002090600502016001016040516020018080602001828103825283818154600181600116156101000203166002900481526020019150805460018160011615610100020316600290048015613cab5780601f10613c8057610100808354040283529160200191613cab565b820191906000526020600020905b815481529060010190602001808311613c8e57829003601f168201915b50509250505060405160208183030381529060405280519060200120145b915050613eb5565b8373ffffffffffffffffffffffffffffffffffffffff1660066000856040516020018080602001828103825283818151815260200191508051906020019080838360005b83811015613d30578082015181840152602081019050613d15565b50505050905090810190601f168015613d5d5780820380516001836020036101000a031916815260200191505b509250505060405160208183030381529060405280519060200120815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161480613eb257508373ffffffffffffffffffffffffffffffffffffffff1660066000846040516020018080602001828103825283818151815260200191508051906020019080838360005b83811015613e23578082015181840152602081019050613e08565b50505050905090810190601f168015613e505780820380516001836020036101000a031916815260200191505b509250505060405160208183030381529060405280519060200120815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b90505b9392505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630e32cf906040518163ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040160206040518083038186803b158015613f3f57600080fd5b505afa158015613f53573d6000803e3d6000fd5b505050506040513d6020811015613f6957600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561401c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f696e76616c69642063616c6c657200000000000000000000000000000000000081525060200191505060405180910390fd5b6000614027866143d6565b90506000600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054141515614109578360018281548110151561408257fe5b906000526020600020906005020160020190805190602001906140a692919061452b565b50826001828154811015156140b757fe5b906000526020600020906005020160030181905550816001828154811015156140dc57fe5b906000526020600020906005020160040160006101000a81548160ff02191690831515021790555061427d565b600360008154809291906001019190505550600354600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160a0604051908101604052808873ffffffffffffffffffffffffffffffffffffffff1681526020018781526020018681526020018581526020018415158152509080600181540180825580915050906001820390600052602060002090600502016000909192909190915060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160010190805190602001906142319291906145ab565b50604082015181600201908051906020019061424e9291906145ab565b506060820151816003015560808201518160040160006101000a81548160ff0219169083151502179055505050505b7f68e62a03aeb0a125c2fc869eed72f2fca473680987bdd680c093a534e17cc7768686868587604051808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001806020018060200185151515158152602001848152602001838103835287818151815260200191508051906020019080838360005b8381101561432957808201518184015260208101905061430e565b50505050905090810190601f1680156143565780820380516001836020036101000a031916815260200191505b50838103825286818151815260200191508051906020019080838360005b8381101561438f578082015181840152602081019050614374565b50505050905090810190601f1680156143bc5780820380516001836020036101000a031916815260200191505b5097505050505050505060405180910390a1505050505050565b60006001600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054039050919050565b600080600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054141561447457600090506144a6565b600061447f836143d6565b905060018181548110151561449057fe5b9060005260206000209060050201600301549150505b919050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106144ec57803560ff191683800117855561451a565b8280016001018555821561451a579182015b828111156145195782358255916020019190600101906144fe565b5b509050614527919061462b565b5090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061456c57805160ff191683800117855561459a565b8280016001018555821561459a579182015b8281111561459957825182559160200191906001019061457e565b5b5090506145a7919061462b565b5090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106145ec57805160ff191683800117855561461a565b8280016001018555821561461a579182015b828111156146195782518255916020019190600101906145fe565b5b509050614627919061462b565b5090565b61464d91905b80821115614649576000816000905550600101614631565b5090565b9056fe6163636f756e74207265636f76657279206e6f7420696e697469617465642e206f7065726174696f6e2063616e6e6f7420626520646f6e656163636f756e7420697320616c726561647920626c61636b6c69737465642e206f7065726174696f6e2063616e6e6f7420626520646f6e656163636f756e74206973206e6f7420696e2073757370656e646564207374617475732e206f7065726174696f6e2063616e6e6f7420626520646f6e656163636f756e74206973206e6f7420696e20616374697665207374617475732e206f7065726174696f6e2063616e6e6f7420626520646f6e6563616e2062652063616c6c656420746f2061737369676e2061646d696e20726f6c6573206f6e6c7963616e6e6f742062652063616c6c65642066726f2061737369676e696e67206f72672061646d696e20616e64206e6574776f726b2061646d696e20726f6c65736163636f756e74206973206e6f7420626c61636b6c69737465642e206f7065726174696f6e2063616e6e6f7420626520646f6e65737461747573206368616e6765206e6f7420706f737369626c6520666f72206f72672061646d696e206163636f756e7473a165627a7a72305820a534fbde5dac7e84dd47dee87465cfb80f5dc4b2409ed9c4e52bced609423e980029`
    35  
    36  // DeployAcctManager deploys a new Ethereum contract, binding an instance of AcctManager to it.
    37  func DeployAcctManager(auth *bind.TransactOpts, backend bind.ContractBackend, _permUpgradable common.Address) (common.Address, *types.Transaction, *AcctManager, error) {
    38  	parsed, err := abi.JSON(strings.NewReader(AcctManagerABI))
    39  	if err != nil {
    40  		return common.Address{}, nil, nil, err
    41  	}
    42  	address, tx, contract, err := bind.DeployContract(auth, parsed, common.FromHex(AcctManagerBin), backend, _permUpgradable)
    43  	if err != nil {
    44  		return common.Address{}, nil, nil, err
    45  	}
    46  	return address, tx, &AcctManager{AcctManagerCaller: AcctManagerCaller{contract: contract}, AcctManagerTransactor: AcctManagerTransactor{contract: contract}, AcctManagerFilterer: AcctManagerFilterer{contract: contract}}, nil
    47  }
    48  
    49  // AcctManager is an auto generated Go binding around an Ethereum contract.
    50  type AcctManager struct {
    51  	AcctManagerCaller     // Read-only binding to the contract
    52  	AcctManagerTransactor // Write-only binding to the contract
    53  	AcctManagerFilterer   // Log filterer for contract events
    54  }
    55  
    56  // AcctManagerCaller is an auto generated read-only Go binding around an Ethereum contract.
    57  type AcctManagerCaller struct {
    58  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
    59  }
    60  
    61  // AcctManagerTransactor is an auto generated write-only Go binding around an Ethereum contract.
    62  type AcctManagerTransactor struct {
    63  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
    64  }
    65  
    66  // AcctManagerFilterer is an auto generated log filtering Go binding around an Ethereum contract events.
    67  type AcctManagerFilterer struct {
    68  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
    69  }
    70  
    71  // AcctManagerSession is an auto generated Go binding around an Ethereum contract,
    72  // with pre-set call and transact options.
    73  type AcctManagerSession struct {
    74  	Contract     *AcctManager      // Generic contract binding to set the session for
    75  	CallOpts     bind.CallOpts     // Call options to use throughout this session
    76  	TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
    77  }
    78  
    79  // AcctManagerCallerSession is an auto generated read-only Go binding around an Ethereum contract,
    80  // with pre-set call options.
    81  type AcctManagerCallerSession struct {
    82  	Contract *AcctManagerCaller // Generic contract caller binding to set the session for
    83  	CallOpts bind.CallOpts      // Call options to use throughout this session
    84  }
    85  
    86  // AcctManagerTransactorSession is an auto generated write-only Go binding around an Ethereum contract,
    87  // with pre-set transact options.
    88  type AcctManagerTransactorSession struct {
    89  	Contract     *AcctManagerTransactor // Generic contract transactor binding to set the session for
    90  	TransactOpts bind.TransactOpts      // Transaction auth options to use throughout this session
    91  }
    92  
    93  // AcctManagerRaw is an auto generated low-level Go binding around an Ethereum contract.
    94  type AcctManagerRaw struct {
    95  	Contract *AcctManager // Generic contract binding to access the raw methods on
    96  }
    97  
    98  // AcctManagerCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract.
    99  type AcctManagerCallerRaw struct {
   100  	Contract *AcctManagerCaller // Generic read-only contract binding to access the raw methods on
   101  }
   102  
   103  // AcctManagerTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract.
   104  type AcctManagerTransactorRaw struct {
   105  	Contract *AcctManagerTransactor // Generic write-only contract binding to access the raw methods on
   106  }
   107  
   108  // NewAcctManager creates a new instance of AcctManager, bound to a specific deployed contract.
   109  func NewAcctManager(address common.Address, backend bind.ContractBackend) (*AcctManager, error) {
   110  	contract, err := bindAcctManager(address, backend, backend, backend)
   111  	if err != nil {
   112  		return nil, err
   113  	}
   114  	return &AcctManager{AcctManagerCaller: AcctManagerCaller{contract: contract}, AcctManagerTransactor: AcctManagerTransactor{contract: contract}, AcctManagerFilterer: AcctManagerFilterer{contract: contract}}, nil
   115  }
   116  
   117  // NewAcctManagerCaller creates a new read-only instance of AcctManager, bound to a specific deployed contract.
   118  func NewAcctManagerCaller(address common.Address, caller bind.ContractCaller) (*AcctManagerCaller, error) {
   119  	contract, err := bindAcctManager(address, caller, nil, nil)
   120  	if err != nil {
   121  		return nil, err
   122  	}
   123  	return &AcctManagerCaller{contract: contract}, nil
   124  }
   125  
   126  // NewAcctManagerTransactor creates a new write-only instance of AcctManager, bound to a specific deployed contract.
   127  func NewAcctManagerTransactor(address common.Address, transactor bind.ContractTransactor) (*AcctManagerTransactor, error) {
   128  	contract, err := bindAcctManager(address, nil, transactor, nil)
   129  	if err != nil {
   130  		return nil, err
   131  	}
   132  	return &AcctManagerTransactor{contract: contract}, nil
   133  }
   134  
   135  // NewAcctManagerFilterer creates a new log filterer instance of AcctManager, bound to a specific deployed contract.
   136  func NewAcctManagerFilterer(address common.Address, filterer bind.ContractFilterer) (*AcctManagerFilterer, error) {
   137  	contract, err := bindAcctManager(address, nil, nil, filterer)
   138  	if err != nil {
   139  		return nil, err
   140  	}
   141  	return &AcctManagerFilterer{contract: contract}, nil
   142  }
   143  
   144  // bindAcctManager binds a generic wrapper to an already deployed contract.
   145  func bindAcctManager(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
   146  	parsed, err := abi.JSON(strings.NewReader(AcctManagerABI))
   147  	if err != nil {
   148  		return nil, err
   149  	}
   150  	return bind.NewBoundContract(address, parsed, caller, transactor, filterer), nil
   151  }
   152  
   153  // Call invokes the (constant) contract method with params as input values and
   154  // sets the output to result. The result type might be a single field for simple
   155  // returns, a slice of interfaces for anonymous returns and a struct for named
   156  // returns.
   157  func (_AcctManager *AcctManagerRaw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error {
   158  	return _AcctManager.Contract.AcctManagerCaller.contract.Call(opts, result, method, params...)
   159  }
   160  
   161  // Transfer initiates a plain transaction to move funds to the contract, calling
   162  // its default method if one is available.
   163  func (_AcctManager *AcctManagerRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
   164  	return _AcctManager.Contract.AcctManagerTransactor.contract.Transfer(opts)
   165  }
   166  
   167  // Transact invokes the (paid) contract method with params as input values.
   168  func (_AcctManager *AcctManagerRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
   169  	return _AcctManager.Contract.AcctManagerTransactor.contract.Transact(opts, method, params...)
   170  }
   171  
   172  // Call invokes the (constant) contract method with params as input values and
   173  // sets the output to result. The result type might be a single field for simple
   174  // returns, a slice of interfaces for anonymous returns and a struct for named
   175  // returns.
   176  func (_AcctManager *AcctManagerCallerRaw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error {
   177  	return _AcctManager.Contract.contract.Call(opts, result, method, params...)
   178  }
   179  
   180  // Transfer initiates a plain transaction to move funds to the contract, calling
   181  // its default method if one is available.
   182  func (_AcctManager *AcctManagerTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
   183  	return _AcctManager.Contract.contract.Transfer(opts)
   184  }
   185  
   186  // Transact invokes the (paid) contract method with params as input values.
   187  func (_AcctManager *AcctManagerTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
   188  	return _AcctManager.Contract.contract.Transact(opts, method, params...)
   189  }
   190  
   191  // CheckOrgAdmin is a free data retrieval call binding the contract method 0xe8b42bf4.
   192  //
   193  // Solidity: function checkOrgAdmin(_account address, _orgId string, _ultParent string) constant returns(bool)
   194  func (_AcctManager *AcctManagerCaller) CheckOrgAdmin(opts *bind.CallOpts, _account common.Address, _orgId string, _ultParent string) (bool, error) {
   195  	var (
   196  		ret0 = new(bool)
   197  	)
   198  	out := ret0
   199  	err := _AcctManager.contract.Call(opts, out, "checkOrgAdmin", _account, _orgId, _ultParent)
   200  	return *ret0, err
   201  }
   202  
   203  // CheckOrgAdmin is a free data retrieval call binding the contract method 0xe8b42bf4.
   204  //
   205  // Solidity: function checkOrgAdmin(_account address, _orgId string, _ultParent string) constant returns(bool)
   206  func (_AcctManager *AcctManagerSession) CheckOrgAdmin(_account common.Address, _orgId string, _ultParent string) (bool, error) {
   207  	return _AcctManager.Contract.CheckOrgAdmin(&_AcctManager.CallOpts, _account, _orgId, _ultParent)
   208  }
   209  
   210  // CheckOrgAdmin is a free data retrieval call binding the contract method 0xe8b42bf4.
   211  //
   212  // Solidity: function checkOrgAdmin(_account address, _orgId string, _ultParent string) constant returns(bool)
   213  func (_AcctManager *AcctManagerCallerSession) CheckOrgAdmin(_account common.Address, _orgId string, _ultParent string) (bool, error) {
   214  	return _AcctManager.Contract.CheckOrgAdmin(&_AcctManager.CallOpts, _account, _orgId, _ultParent)
   215  }
   216  
   217  // GetAccountDetails is a free data retrieval call binding the contract method 0x2aceb534.
   218  //
   219  // Solidity: function getAccountDetails(_account address) constant returns(address, string, string, uint256, bool)
   220  func (_AcctManager *AcctManagerCaller) GetAccountDetails(opts *bind.CallOpts, _account common.Address) (common.Address, string, string, *big.Int, bool, error) {
   221  	var (
   222  		ret0 = new(common.Address)
   223  		ret1 = new(string)
   224  		ret2 = new(string)
   225  		ret3 = new(*big.Int)
   226  		ret4 = new(bool)
   227  	)
   228  	out := &[]interface{}{
   229  		ret0,
   230  		ret1,
   231  		ret2,
   232  		ret3,
   233  		ret4,
   234  	}
   235  	err := _AcctManager.contract.Call(opts, out, "getAccountDetails", _account)
   236  	return *ret0, *ret1, *ret2, *ret3, *ret4, err
   237  }
   238  
   239  // GetAccountDetails is a free data retrieval call binding the contract method 0x2aceb534.
   240  //
   241  // Solidity: function getAccountDetails(_account address) constant returns(address, string, string, uint256, bool)
   242  func (_AcctManager *AcctManagerSession) GetAccountDetails(_account common.Address) (common.Address, string, string, *big.Int, bool, error) {
   243  	return _AcctManager.Contract.GetAccountDetails(&_AcctManager.CallOpts, _account)
   244  }
   245  
   246  // GetAccountDetails is a free data retrieval call binding the contract method 0x2aceb534.
   247  //
   248  // Solidity: function getAccountDetails(_account address) constant returns(address, string, string, uint256, bool)
   249  func (_AcctManager *AcctManagerCallerSession) GetAccountDetails(_account common.Address) (common.Address, string, string, *big.Int, bool, error) {
   250  	return _AcctManager.Contract.GetAccountDetails(&_AcctManager.CallOpts, _account)
   251  }
   252  
   253  // GetAccountDetailsFromIndex is a free data retrieval call binding the contract method 0xb2018568.
   254  //
   255  // Solidity: function getAccountDetailsFromIndex(_aIndex uint256) constant returns(address, string, string, uint256, bool)
   256  func (_AcctManager *AcctManagerCaller) GetAccountDetailsFromIndex(opts *bind.CallOpts, _aIndex *big.Int) (common.Address, string, string, *big.Int, bool, error) {
   257  	var (
   258  		ret0 = new(common.Address)
   259  		ret1 = new(string)
   260  		ret2 = new(string)
   261  		ret3 = new(*big.Int)
   262  		ret4 = new(bool)
   263  	)
   264  	out := &[]interface{}{
   265  		ret0,
   266  		ret1,
   267  		ret2,
   268  		ret3,
   269  		ret4,
   270  	}
   271  	err := _AcctManager.contract.Call(opts, out, "getAccountDetailsFromIndex", _aIndex)
   272  	return *ret0, *ret1, *ret2, *ret3, *ret4, err
   273  }
   274  
   275  // GetAccountDetailsFromIndex is a free data retrieval call binding the contract method 0xb2018568.
   276  //
   277  // Solidity: function getAccountDetailsFromIndex(_aIndex uint256) constant returns(address, string, string, uint256, bool)
   278  func (_AcctManager *AcctManagerSession) GetAccountDetailsFromIndex(_aIndex *big.Int) (common.Address, string, string, *big.Int, bool, error) {
   279  	return _AcctManager.Contract.GetAccountDetailsFromIndex(&_AcctManager.CallOpts, _aIndex)
   280  }
   281  
   282  // GetAccountDetailsFromIndex is a free data retrieval call binding the contract method 0xb2018568.
   283  //
   284  // Solidity: function getAccountDetailsFromIndex(_aIndex uint256) constant returns(address, string, string, uint256, bool)
   285  func (_AcctManager *AcctManagerCallerSession) GetAccountDetailsFromIndex(_aIndex *big.Int) (common.Address, string, string, *big.Int, bool, error) {
   286  	return _AcctManager.Contract.GetAccountDetailsFromIndex(&_AcctManager.CallOpts, _aIndex)
   287  }
   288  
   289  // GetAccountRole is a free data retrieval call binding the contract method 0x81d66b23.
   290  //
   291  // Solidity: function getAccountRole(_account address) constant returns(string)
   292  func (_AcctManager *AcctManagerCaller) GetAccountRole(opts *bind.CallOpts, _account common.Address) (string, error) {
   293  	var (
   294  		ret0 = new(string)
   295  	)
   296  	out := ret0
   297  	err := _AcctManager.contract.Call(opts, out, "getAccountRole", _account)
   298  	return *ret0, err
   299  }
   300  
   301  // GetAccountRole is a free data retrieval call binding the contract method 0x81d66b23.
   302  //
   303  // Solidity: function getAccountRole(_account address) constant returns(string)
   304  func (_AcctManager *AcctManagerSession) GetAccountRole(_account common.Address) (string, error) {
   305  	return _AcctManager.Contract.GetAccountRole(&_AcctManager.CallOpts, _account)
   306  }
   307  
   308  // GetAccountRole is a free data retrieval call binding the contract method 0x81d66b23.
   309  //
   310  // Solidity: function getAccountRole(_account address) constant returns(string)
   311  func (_AcctManager *AcctManagerCallerSession) GetAccountRole(_account common.Address) (string, error) {
   312  	return _AcctManager.Contract.GetAccountRole(&_AcctManager.CallOpts, _account)
   313  }
   314  
   315  // GetNumberOfAccounts is a free data retrieval call binding the contract method 0x309e36ef.
   316  //
   317  // Solidity: function getNumberOfAccounts() constant returns(uint256)
   318  func (_AcctManager *AcctManagerCaller) GetNumberOfAccounts(opts *bind.CallOpts) (*big.Int, error) {
   319  	var (
   320  		ret0 = new(*big.Int)
   321  	)
   322  	out := ret0
   323  	err := _AcctManager.contract.Call(opts, out, "getNumberOfAccounts")
   324  	return *ret0, err
   325  }
   326  
   327  // GetNumberOfAccounts is a free data retrieval call binding the contract method 0x309e36ef.
   328  //
   329  // Solidity: function getNumberOfAccounts() constant returns(uint256)
   330  func (_AcctManager *AcctManagerSession) GetNumberOfAccounts() (*big.Int, error) {
   331  	return _AcctManager.Contract.GetNumberOfAccounts(&_AcctManager.CallOpts)
   332  }
   333  
   334  // GetNumberOfAccounts is a free data retrieval call binding the contract method 0x309e36ef.
   335  //
   336  // Solidity: function getNumberOfAccounts() constant returns(uint256)
   337  func (_AcctManager *AcctManagerCallerSession) GetNumberOfAccounts() (*big.Int, error) {
   338  	return _AcctManager.Contract.GetNumberOfAccounts(&_AcctManager.CallOpts)
   339  }
   340  
   341  // OrgAdminExists is a free data retrieval call binding the contract method 0x950145cf.
   342  //
   343  // Solidity: function orgAdminExists(_orgId string) constant returns(bool)
   344  func (_AcctManager *AcctManagerCaller) OrgAdminExists(opts *bind.CallOpts, _orgId string) (bool, error) {
   345  	var (
   346  		ret0 = new(bool)
   347  	)
   348  	out := ret0
   349  	err := _AcctManager.contract.Call(opts, out, "orgAdminExists", _orgId)
   350  	return *ret0, err
   351  }
   352  
   353  // OrgAdminExists is a free data retrieval call binding the contract method 0x950145cf.
   354  //
   355  // Solidity: function orgAdminExists(_orgId string) constant returns(bool)
   356  func (_AcctManager *AcctManagerSession) OrgAdminExists(_orgId string) (bool, error) {
   357  	return _AcctManager.Contract.OrgAdminExists(&_AcctManager.CallOpts, _orgId)
   358  }
   359  
   360  // OrgAdminExists is a free data retrieval call binding the contract method 0x950145cf.
   361  //
   362  // Solidity: function orgAdminExists(_orgId string) constant returns(bool)
   363  func (_AcctManager *AcctManagerCallerSession) OrgAdminExists(_orgId string) (bool, error) {
   364  	return _AcctManager.Contract.OrgAdminExists(&_AcctManager.CallOpts, _orgId)
   365  }
   366  
   367  // ValidateAccount is a free data retrieval call binding the contract method 0x6b568d76.
   368  //
   369  // Solidity: function validateAccount(_account address, _orgId string) constant returns(bool)
   370  func (_AcctManager *AcctManagerCaller) ValidateAccount(opts *bind.CallOpts, _account common.Address, _orgId string) (bool, error) {
   371  	var (
   372  		ret0 = new(bool)
   373  	)
   374  	out := ret0
   375  	err := _AcctManager.contract.Call(opts, out, "validateAccount", _account, _orgId)
   376  	return *ret0, err
   377  }
   378  
   379  // ValidateAccount is a free data retrieval call binding the contract method 0x6b568d76.
   380  //
   381  // Solidity: function validateAccount(_account address, _orgId string) constant returns(bool)
   382  func (_AcctManager *AcctManagerSession) ValidateAccount(_account common.Address, _orgId string) (bool, error) {
   383  	return _AcctManager.Contract.ValidateAccount(&_AcctManager.CallOpts, _account, _orgId)
   384  }
   385  
   386  // ValidateAccount is a free data retrieval call binding the contract method 0x6b568d76.
   387  //
   388  // Solidity: function validateAccount(_account address, _orgId string) constant returns(bool)
   389  func (_AcctManager *AcctManagerCallerSession) ValidateAccount(_account common.Address, _orgId string) (bool, error) {
   390  	return _AcctManager.Contract.ValidateAccount(&_AcctManager.CallOpts, _account, _orgId)
   391  }
   392  
   393  // AddNewAdmin is a paid mutator transaction binding the contract method 0xc214e5e5.
   394  //
   395  // Solidity: function addNewAdmin(_orgId string, _account address) returns(voterUpdate bool)
   396  func (_AcctManager *AcctManagerTransactor) AddNewAdmin(opts *bind.TransactOpts, _orgId string, _account common.Address) (*types.Transaction, error) {
   397  	return _AcctManager.contract.Transact(opts, "addNewAdmin", _orgId, _account)
   398  }
   399  
   400  // AddNewAdmin is a paid mutator transaction binding the contract method 0xc214e5e5.
   401  //
   402  // Solidity: function addNewAdmin(_orgId string, _account address) returns(voterUpdate bool)
   403  func (_AcctManager *AcctManagerSession) AddNewAdmin(_orgId string, _account common.Address) (*types.Transaction, error) {
   404  	return _AcctManager.Contract.AddNewAdmin(&_AcctManager.TransactOpts, _orgId, _account)
   405  }
   406  
   407  // AddNewAdmin is a paid mutator transaction binding the contract method 0xc214e5e5.
   408  //
   409  // Solidity: function addNewAdmin(_orgId string, _account address) returns(voterUpdate bool)
   410  func (_AcctManager *AcctManagerTransactorSession) AddNewAdmin(_orgId string, _account common.Address) (*types.Transaction, error) {
   411  	return _AcctManager.Contract.AddNewAdmin(&_AcctManager.TransactOpts, _orgId, _account)
   412  }
   413  
   414  // AssignAccountRole is a paid mutator transaction binding the contract method 0x143a5604.
   415  //
   416  // Solidity: function assignAccountRole(_account address, _orgId string, _roleId string, _adminRole bool) returns()
   417  func (_AcctManager *AcctManagerTransactor) AssignAccountRole(opts *bind.TransactOpts, _account common.Address, _orgId string, _roleId string, _adminRole bool) (*types.Transaction, error) {
   418  	return _AcctManager.contract.Transact(opts, "assignAccountRole", _account, _orgId, _roleId, _adminRole)
   419  }
   420  
   421  // AssignAccountRole is a paid mutator transaction binding the contract method 0x143a5604.
   422  //
   423  // Solidity: function assignAccountRole(_account address, _orgId string, _roleId string, _adminRole bool) returns()
   424  func (_AcctManager *AcctManagerSession) AssignAccountRole(_account common.Address, _orgId string, _roleId string, _adminRole bool) (*types.Transaction, error) {
   425  	return _AcctManager.Contract.AssignAccountRole(&_AcctManager.TransactOpts, _account, _orgId, _roleId, _adminRole)
   426  }
   427  
   428  // AssignAccountRole is a paid mutator transaction binding the contract method 0x143a5604.
   429  //
   430  // Solidity: function assignAccountRole(_account address, _orgId string, _roleId string, _adminRole bool) returns()
   431  func (_AcctManager *AcctManagerTransactorSession) AssignAccountRole(_account common.Address, _orgId string, _roleId string, _adminRole bool) (*types.Transaction, error) {
   432  	return _AcctManager.Contract.AssignAccountRole(&_AcctManager.TransactOpts, _account, _orgId, _roleId, _adminRole)
   433  }
   434  
   435  // AssignAdminRole is a paid mutator transaction binding the contract method 0xe3483a9d.
   436  //
   437  // Solidity: function assignAdminRole(_account address, _orgId string, _roleId string, _status uint256) returns()
   438  func (_AcctManager *AcctManagerTransactor) AssignAdminRole(opts *bind.TransactOpts, _account common.Address, _orgId string, _roleId string, _status *big.Int) (*types.Transaction, error) {
   439  	return _AcctManager.contract.Transact(opts, "assignAdminRole", _account, _orgId, _roleId, _status)
   440  }
   441  
   442  // AssignAdminRole is a paid mutator transaction binding the contract method 0xe3483a9d.
   443  //
   444  // Solidity: function assignAdminRole(_account address, _orgId string, _roleId string, _status uint256) returns()
   445  func (_AcctManager *AcctManagerSession) AssignAdminRole(_account common.Address, _orgId string, _roleId string, _status *big.Int) (*types.Transaction, error) {
   446  	return _AcctManager.Contract.AssignAdminRole(&_AcctManager.TransactOpts, _account, _orgId, _roleId, _status)
   447  }
   448  
   449  // AssignAdminRole is a paid mutator transaction binding the contract method 0xe3483a9d.
   450  //
   451  // Solidity: function assignAdminRole(_account address, _orgId string, _roleId string, _status uint256) returns()
   452  func (_AcctManager *AcctManagerTransactorSession) AssignAdminRole(_account common.Address, _orgId string, _roleId string, _status *big.Int) (*types.Transaction, error) {
   453  	return _AcctManager.Contract.AssignAdminRole(&_AcctManager.TransactOpts, _account, _orgId, _roleId, _status)
   454  }
   455  
   456  // RemoveExistingAdmin is a paid mutator transaction binding the contract method 0x1d09dc93.
   457  //
   458  // Solidity: function removeExistingAdmin(_orgId string) returns(voterUpdate bool, account address)
   459  func (_AcctManager *AcctManagerTransactor) RemoveExistingAdmin(opts *bind.TransactOpts, _orgId string) (*types.Transaction, error) {
   460  	return _AcctManager.contract.Transact(opts, "removeExistingAdmin", _orgId)
   461  }
   462  
   463  // RemoveExistingAdmin is a paid mutator transaction binding the contract method 0x1d09dc93.
   464  //
   465  // Solidity: function removeExistingAdmin(_orgId string) returns(voterUpdate bool, account address)
   466  func (_AcctManager *AcctManagerSession) RemoveExistingAdmin(_orgId string) (*types.Transaction, error) {
   467  	return _AcctManager.Contract.RemoveExistingAdmin(&_AcctManager.TransactOpts, _orgId)
   468  }
   469  
   470  // RemoveExistingAdmin is a paid mutator transaction binding the contract method 0x1d09dc93.
   471  //
   472  // Solidity: function removeExistingAdmin(_orgId string) returns(voterUpdate bool, account address)
   473  func (_AcctManager *AcctManagerTransactorSession) RemoveExistingAdmin(_orgId string) (*types.Transaction, error) {
   474  	return _AcctManager.Contract.RemoveExistingAdmin(&_AcctManager.TransactOpts, _orgId)
   475  }
   476  
   477  // SetDefaults is a paid mutator transaction binding the contract method 0xcef7f6af.
   478  //
   479  // Solidity: function setDefaults(_nwAdminRole string, _oAdminRole string) returns()
   480  func (_AcctManager *AcctManagerTransactor) SetDefaults(opts *bind.TransactOpts, _nwAdminRole string, _oAdminRole string) (*types.Transaction, error) {
   481  	return _AcctManager.contract.Transact(opts, "setDefaults", _nwAdminRole, _oAdminRole)
   482  }
   483  
   484  // SetDefaults is a paid mutator transaction binding the contract method 0xcef7f6af.
   485  //
   486  // Solidity: function setDefaults(_nwAdminRole string, _oAdminRole string) returns()
   487  func (_AcctManager *AcctManagerSession) SetDefaults(_nwAdminRole string, _oAdminRole string) (*types.Transaction, error) {
   488  	return _AcctManager.Contract.SetDefaults(&_AcctManager.TransactOpts, _nwAdminRole, _oAdminRole)
   489  }
   490  
   491  // SetDefaults is a paid mutator transaction binding the contract method 0xcef7f6af.
   492  //
   493  // Solidity: function setDefaults(_nwAdminRole string, _oAdminRole string) returns()
   494  func (_AcctManager *AcctManagerTransactorSession) SetDefaults(_nwAdminRole string, _oAdminRole string) (*types.Transaction, error) {
   495  	return _AcctManager.Contract.SetDefaults(&_AcctManager.TransactOpts, _nwAdminRole, _oAdminRole)
   496  }
   497  
   498  // UpdateAccountStatus is a paid mutator transaction binding the contract method 0x84b7a84a.
   499  //
   500  // Solidity: function updateAccountStatus(_orgId string, _account address, _action uint256) returns()
   501  func (_AcctManager *AcctManagerTransactor) UpdateAccountStatus(opts *bind.TransactOpts, _orgId string, _account common.Address, _action *big.Int) (*types.Transaction, error) {
   502  	return _AcctManager.contract.Transact(opts, "updateAccountStatus", _orgId, _account, _action)
   503  }
   504  
   505  // UpdateAccountStatus is a paid mutator transaction binding the contract method 0x84b7a84a.
   506  //
   507  // Solidity: function updateAccountStatus(_orgId string, _account address, _action uint256) returns()
   508  func (_AcctManager *AcctManagerSession) UpdateAccountStatus(_orgId string, _account common.Address, _action *big.Int) (*types.Transaction, error) {
   509  	return _AcctManager.Contract.UpdateAccountStatus(&_AcctManager.TransactOpts, _orgId, _account, _action)
   510  }
   511  
   512  // UpdateAccountStatus is a paid mutator transaction binding the contract method 0x84b7a84a.
   513  //
   514  // Solidity: function updateAccountStatus(_orgId string, _account address, _action uint256) returns()
   515  func (_AcctManager *AcctManagerTransactorSession) UpdateAccountStatus(_orgId string, _account common.Address, _action *big.Int) (*types.Transaction, error) {
   516  	return _AcctManager.Contract.UpdateAccountStatus(&_AcctManager.TransactOpts, _orgId, _account, _action)
   517  }
   518  
   519  // AcctManagerAccountAccessModifiedIterator is returned from FilterAccountAccessModified and is used to iterate over the raw logs and unpacked data for AccountAccessModified events raised by the AcctManager contract.
   520  type AcctManagerAccountAccessModifiedIterator struct {
   521  	Event *AcctManagerAccountAccessModified // Event containing the contract specifics and raw log
   522  
   523  	contract *bind.BoundContract // Generic contract to use for unpacking event data
   524  	event    string              // Event name to use for unpacking event data
   525  
   526  	logs chan types.Log        // Log channel receiving the found contract events
   527  	sub  ethereum.Subscription // Subscription for errors, completion and termination
   528  	done bool                  // Whether the subscription completed delivering logs
   529  	fail error                 // Occurred error to stop iteration
   530  }
   531  
   532  // Next advances the iterator to the subsequent event, returning whether there
   533  // are any more events found. In case of a retrieval or parsing error, false is
   534  // returned and Error() can be queried for the exact failure.
   535  func (it *AcctManagerAccountAccessModifiedIterator) Next() bool {
   536  	// If the iterator failed, stop iterating
   537  	if it.fail != nil {
   538  		return false
   539  	}
   540  	// If the iterator completed, deliver directly whatever's available
   541  	if it.done {
   542  		select {
   543  		case log := <-it.logs:
   544  			it.Event = new(AcctManagerAccountAccessModified)
   545  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
   546  				it.fail = err
   547  				return false
   548  			}
   549  			it.Event.Raw = log
   550  			return true
   551  
   552  		default:
   553  			return false
   554  		}
   555  	}
   556  	// Iterator still in progress, wait for either a data or an error event
   557  	select {
   558  	case log := <-it.logs:
   559  		it.Event = new(AcctManagerAccountAccessModified)
   560  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
   561  			it.fail = err
   562  			return false
   563  		}
   564  		it.Event.Raw = log
   565  		return true
   566  
   567  	case err := <-it.sub.Err():
   568  		it.done = true
   569  		it.fail = err
   570  		return it.Next()
   571  	}
   572  }
   573  
   574  // Error returns any retrieval or parsing error occurred during filtering.
   575  func (it *AcctManagerAccountAccessModifiedIterator) Error() error {
   576  	return it.fail
   577  }
   578  
   579  // Close terminates the iteration process, releasing any pending underlying
   580  // resources.
   581  func (it *AcctManagerAccountAccessModifiedIterator) Close() error {
   582  	it.sub.Unsubscribe()
   583  	return nil
   584  }
   585  
   586  // AcctManagerAccountAccessModified represents a AccountAccessModified event raised by the AcctManager contract.
   587  type AcctManagerAccountAccessModified struct {
   588  	Account  common.Address
   589  	OrgId    string
   590  	RoleId   string
   591  	OrgAdmin bool
   592  	Status   *big.Int
   593  	Raw      types.Log // Blockchain specific contextual infos
   594  }
   595  
   596  // FilterAccountAccessModified is a free log retrieval operation binding the contract event 0x68e62a03aeb0a125c2fc869eed72f2fca473680987bdd680c093a534e17cc776.
   597  //
   598  // Solidity: e AccountAccessModified(_account address, _orgId string, _roleId string, _orgAdmin bool, _status uint256)
   599  func (_AcctManager *AcctManagerFilterer) FilterAccountAccessModified(opts *bind.FilterOpts) (*AcctManagerAccountAccessModifiedIterator, error) {
   600  
   601  	logs, sub, err := _AcctManager.contract.FilterLogs(opts, "AccountAccessModified")
   602  	if err != nil {
   603  		return nil, err
   604  	}
   605  	return &AcctManagerAccountAccessModifiedIterator{contract: _AcctManager.contract, event: "AccountAccessModified", logs: logs, sub: sub}, nil
   606  }
   607  
   608  // WatchAccountAccessModified is a free log subscription operation binding the contract event 0x68e62a03aeb0a125c2fc869eed72f2fca473680987bdd680c093a534e17cc776.
   609  //
   610  // Solidity: e AccountAccessModified(_account address, _orgId string, _roleId string, _orgAdmin bool, _status uint256)
   611  func (_AcctManager *AcctManagerFilterer) WatchAccountAccessModified(opts *bind.WatchOpts, sink chan<- *AcctManagerAccountAccessModified) (event.Subscription, error) {
   612  
   613  	logs, sub, err := _AcctManager.contract.WatchLogs(opts, "AccountAccessModified")
   614  	if err != nil {
   615  		return nil, err
   616  	}
   617  	return event.NewSubscription(func(quit <-chan struct{}) error {
   618  		defer sub.Unsubscribe()
   619  		for {
   620  			select {
   621  			case log := <-logs:
   622  				// New log arrived, parse the event and forward to the user
   623  				event := new(AcctManagerAccountAccessModified)
   624  				if err := _AcctManager.contract.UnpackLog(event, "AccountAccessModified", log); err != nil {
   625  					return err
   626  				}
   627  				event.Raw = log
   628  
   629  				select {
   630  				case sink <- event:
   631  				case err := <-sub.Err():
   632  					return err
   633  				case <-quit:
   634  					return nil
   635  				}
   636  			case err := <-sub.Err():
   637  				return err
   638  			case <-quit:
   639  				return nil
   640  			}
   641  		}
   642  	}), nil
   643  }
   644  
   645  // AcctManagerAccountAccessRevokedIterator is returned from FilterAccountAccessRevoked and is used to iterate over the raw logs and unpacked data for AccountAccessRevoked events raised by the AcctManager contract.
   646  type AcctManagerAccountAccessRevokedIterator struct {
   647  	Event *AcctManagerAccountAccessRevoked // Event containing the contract specifics and raw log
   648  
   649  	contract *bind.BoundContract // Generic contract to use for unpacking event data
   650  	event    string              // Event name to use for unpacking event data
   651  
   652  	logs chan types.Log        // Log channel receiving the found contract events
   653  	sub  ethereum.Subscription // Subscription for errors, completion and termination
   654  	done bool                  // Whether the subscription completed delivering logs
   655  	fail error                 // Occurred error to stop iteration
   656  }
   657  
   658  // Next advances the iterator to the subsequent event, returning whether there
   659  // are any more events found. In case of a retrieval or parsing error, false is
   660  // returned and Error() can be queried for the exact failure.
   661  func (it *AcctManagerAccountAccessRevokedIterator) Next() bool {
   662  	// If the iterator failed, stop iterating
   663  	if it.fail != nil {
   664  		return false
   665  	}
   666  	// If the iterator completed, deliver directly whatever's available
   667  	if it.done {
   668  		select {
   669  		case log := <-it.logs:
   670  			it.Event = new(AcctManagerAccountAccessRevoked)
   671  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
   672  				it.fail = err
   673  				return false
   674  			}
   675  			it.Event.Raw = log
   676  			return true
   677  
   678  		default:
   679  			return false
   680  		}
   681  	}
   682  	// Iterator still in progress, wait for either a data or an error event
   683  	select {
   684  	case log := <-it.logs:
   685  		it.Event = new(AcctManagerAccountAccessRevoked)
   686  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
   687  			it.fail = err
   688  			return false
   689  		}
   690  		it.Event.Raw = log
   691  		return true
   692  
   693  	case err := <-it.sub.Err():
   694  		it.done = true
   695  		it.fail = err
   696  		return it.Next()
   697  	}
   698  }
   699  
   700  // Error returns any retrieval or parsing error occurred during filtering.
   701  func (it *AcctManagerAccountAccessRevokedIterator) Error() error {
   702  	return it.fail
   703  }
   704  
   705  // Close terminates the iteration process, releasing any pending underlying
   706  // resources.
   707  func (it *AcctManagerAccountAccessRevokedIterator) Close() error {
   708  	it.sub.Unsubscribe()
   709  	return nil
   710  }
   711  
   712  // AcctManagerAccountAccessRevoked represents a AccountAccessRevoked event raised by the AcctManager contract.
   713  type AcctManagerAccountAccessRevoked struct {
   714  	Account  common.Address
   715  	OrgId    string
   716  	RoleId   string
   717  	OrgAdmin bool
   718  	Raw      types.Log // Blockchain specific contextual infos
   719  }
   720  
   721  // FilterAccountAccessRevoked is a free log retrieval operation binding the contract event 0x6b5105396435a8a139aeed682dd573cd2a7e6279de77f8c11f95a30399212ad1.
   722  //
   723  // Solidity: e AccountAccessRevoked(_account address, _orgId string, _roleId string, _orgAdmin bool)
   724  func (_AcctManager *AcctManagerFilterer) FilterAccountAccessRevoked(opts *bind.FilterOpts) (*AcctManagerAccountAccessRevokedIterator, error) {
   725  
   726  	logs, sub, err := _AcctManager.contract.FilterLogs(opts, "AccountAccessRevoked")
   727  	if err != nil {
   728  		return nil, err
   729  	}
   730  	return &AcctManagerAccountAccessRevokedIterator{contract: _AcctManager.contract, event: "AccountAccessRevoked", logs: logs, sub: sub}, nil
   731  }
   732  
   733  // WatchAccountAccessRevoked is a free log subscription operation binding the contract event 0x6b5105396435a8a139aeed682dd573cd2a7e6279de77f8c11f95a30399212ad1.
   734  //
   735  // Solidity: e AccountAccessRevoked(_account address, _orgId string, _roleId string, _orgAdmin bool)
   736  func (_AcctManager *AcctManagerFilterer) WatchAccountAccessRevoked(opts *bind.WatchOpts, sink chan<- *AcctManagerAccountAccessRevoked) (event.Subscription, error) {
   737  
   738  	logs, sub, err := _AcctManager.contract.WatchLogs(opts, "AccountAccessRevoked")
   739  	if err != nil {
   740  		return nil, err
   741  	}
   742  	return event.NewSubscription(func(quit <-chan struct{}) error {
   743  		defer sub.Unsubscribe()
   744  		for {
   745  			select {
   746  			case log := <-logs:
   747  				// New log arrived, parse the event and forward to the user
   748  				event := new(AcctManagerAccountAccessRevoked)
   749  				if err := _AcctManager.contract.UnpackLog(event, "AccountAccessRevoked", log); err != nil {
   750  					return err
   751  				}
   752  				event.Raw = log
   753  
   754  				select {
   755  				case sink <- event:
   756  				case err := <-sub.Err():
   757  					return err
   758  				case <-quit:
   759  					return nil
   760  				}
   761  			case err := <-sub.Err():
   762  				return err
   763  			case <-quit:
   764  				return nil
   765  			}
   766  		}
   767  	}), nil
   768  }
   769  
   770  // AcctManagerAccountStatusChangedIterator is returned from FilterAccountStatusChanged and is used to iterate over the raw logs and unpacked data for AccountStatusChanged events raised by the AcctManager contract.
   771  type AcctManagerAccountStatusChangedIterator struct {
   772  	Event *AcctManagerAccountStatusChanged // Event containing the contract specifics and raw log
   773  
   774  	contract *bind.BoundContract // Generic contract to use for unpacking event data
   775  	event    string              // Event name to use for unpacking event data
   776  
   777  	logs chan types.Log        // Log channel receiving the found contract events
   778  	sub  ethereum.Subscription // Subscription for errors, completion and termination
   779  	done bool                  // Whether the subscription completed delivering logs
   780  	fail error                 // Occurred error to stop iteration
   781  }
   782  
   783  // Next advances the iterator to the subsequent event, returning whether there
   784  // are any more events found. In case of a retrieval or parsing error, false is
   785  // returned and Error() can be queried for the exact failure.
   786  func (it *AcctManagerAccountStatusChangedIterator) Next() bool {
   787  	// If the iterator failed, stop iterating
   788  	if it.fail != nil {
   789  		return false
   790  	}
   791  	// If the iterator completed, deliver directly whatever's available
   792  	if it.done {
   793  		select {
   794  		case log := <-it.logs:
   795  			it.Event = new(AcctManagerAccountStatusChanged)
   796  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
   797  				it.fail = err
   798  				return false
   799  			}
   800  			it.Event.Raw = log
   801  			return true
   802  
   803  		default:
   804  			return false
   805  		}
   806  	}
   807  	// Iterator still in progress, wait for either a data or an error event
   808  	select {
   809  	case log := <-it.logs:
   810  		it.Event = new(AcctManagerAccountStatusChanged)
   811  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
   812  			it.fail = err
   813  			return false
   814  		}
   815  		it.Event.Raw = log
   816  		return true
   817  
   818  	case err := <-it.sub.Err():
   819  		it.done = true
   820  		it.fail = err
   821  		return it.Next()
   822  	}
   823  }
   824  
   825  // Error returns any retrieval or parsing error occurred during filtering.
   826  func (it *AcctManagerAccountStatusChangedIterator) Error() error {
   827  	return it.fail
   828  }
   829  
   830  // Close terminates the iteration process, releasing any pending underlying
   831  // resources.
   832  func (it *AcctManagerAccountStatusChangedIterator) Close() error {
   833  	it.sub.Unsubscribe()
   834  	return nil
   835  }
   836  
   837  // AcctManagerAccountStatusChanged represents a AccountStatusChanged event raised by the AcctManager contract.
   838  type AcctManagerAccountStatusChanged struct {
   839  	Account common.Address
   840  	OrgId   string
   841  	Status  *big.Int
   842  	Raw     types.Log // Blockchain specific contextual infos
   843  }
   844  
   845  // FilterAccountStatusChanged is a free log retrieval operation binding the contract event 0x36b0ea38154dec5e98b6bf928b971a9db5e8cd4b6946350e9e43fb9848c70b25.
   846  //
   847  // Solidity: e AccountStatusChanged(_account address, _orgId string, _status uint256)
   848  func (_AcctManager *AcctManagerFilterer) FilterAccountStatusChanged(opts *bind.FilterOpts) (*AcctManagerAccountStatusChangedIterator, error) {
   849  
   850  	logs, sub, err := _AcctManager.contract.FilterLogs(opts, "AccountStatusChanged")
   851  	if err != nil {
   852  		return nil, err
   853  	}
   854  	return &AcctManagerAccountStatusChangedIterator{contract: _AcctManager.contract, event: "AccountStatusChanged", logs: logs, sub: sub}, nil
   855  }
   856  
   857  // WatchAccountStatusChanged is a free log subscription operation binding the contract event 0x36b0ea38154dec5e98b6bf928b971a9db5e8cd4b6946350e9e43fb9848c70b25.
   858  //
   859  // Solidity: e AccountStatusChanged(_account address, _orgId string, _status uint256)
   860  func (_AcctManager *AcctManagerFilterer) WatchAccountStatusChanged(opts *bind.WatchOpts, sink chan<- *AcctManagerAccountStatusChanged) (event.Subscription, error) {
   861  
   862  	logs, sub, err := _AcctManager.contract.WatchLogs(opts, "AccountStatusChanged")
   863  	if err != nil {
   864  		return nil, err
   865  	}
   866  	return event.NewSubscription(func(quit <-chan struct{}) error {
   867  		defer sub.Unsubscribe()
   868  		for {
   869  			select {
   870  			case log := <-logs:
   871  				// New log arrived, parse the event and forward to the user
   872  				event := new(AcctManagerAccountStatusChanged)
   873  				if err := _AcctManager.contract.UnpackLog(event, "AccountStatusChanged", log); err != nil {
   874  					return err
   875  				}
   876  				event.Raw = log
   877  
   878  				select {
   879  				case sink <- event:
   880  				case err := <-sub.Err():
   881  					return err
   882  				case <-quit:
   883  					return nil
   884  				}
   885  			case err := <-sub.Err():
   886  				return err
   887  			case <-quit:
   888  				return nil
   889  			}
   890  		}
   891  	}), nil
   892  }