• Type Parameters

    • T extends GovernableStartFn

      governed contract startfn

    Parameters

    • zoe: ERef<ZoeService>
    • governedP: ERef<Installation<T>>
    • timer: TimerService
    • termsOfGoverned: {
          governedApis?: string[];
          governedParams?: Record<string, unknown>;
          [k: string]: any;
      } = {}
      • [k: string]: any
      • OptionalgovernedApis?: string[]
      • OptionalgovernedParams?: Record<string, unknown>
    • privateArgsOfGoverned: {} = {}
      • OptionalissuerKeywordRecord: IssuerKeywordRecord = {}

      Returns Promise<{
          getFakeInvitation: (() => Promise<{
              fakeInvitationAmount: SetAmount<InvitationDetails>;
              fakeInvitationPayment: any;
          }>);
          governorFacets: StartedInstanceKit<(<SF>(zcf: ZCF<{
              governed: {
                  issuerKeywordRecord?: IssuerKeywordRecord;
                  terms: {
                      governedParams: {
                          Electorate: InvitationParam;
                      };
                  };
              };
              governedContractInstallation: Installation<SF>;
              timer: TimerService;
          }>, privateArgs: {
              governed: Record<string, unknown>;
          }) => Promise<{
              creatorFacet: {
                  changeParams: ((paramSpec: ParamChangesSpec<any>) => Promise<void>);
                  getAdminFacet: (() => AdminFacet<SF>);
                  getCreatorFacet: (() => Promise<{}>);
                  getInstance: (() => Instance<SF>);
                  getPublicFacet: (() => Awaited<(...)>["publicFacet"]);
                  invokeAPI: ((apiMethodName: string, methodArgs: Passable[]) => Promise<{
                      apiMethodName: ...;
                      methodArgs: ...;
                  }>);
                  setFilters: ((strings: string[]) => Promise<void>);
              } & RemotableObject<`Alleged: ${string}`> & RemotableBrand<{}, {
                  changeParams: ((paramSpec: ParamChangesSpec<(...)>) => Promise<(...)>);
                  getAdminFacet: (() => AdminFacet<(...)>);
                  getCreatorFacet: (() => Promise<(...)>);
                  getInstance: (() => Instance<(...)>);
                  getPublicFacet: (() => (...)[(...)]);
                  invokeAPI: ((apiMethodName: string, methodArgs: (...)[]) => Promise<(...)>);
                  setFilters: ((strings: (...)[]) => Promise<(...)>);
              }>;
              publicFacet: {
                  getGovernedContract: (() => Instance<SF>);
              } & RemotableObject<`Alleged: ${string}`> & RemotableBrand<{}, {
                  getGovernedContract: (() => Instance<(...)>);
              }>;
          }>)>;
          installs: {
              autoRefund: Installation<any>;
              governed: Installation<T>;
              governor: Installation<(<SF>(zcf: ZCF<{
                  governed: {
                      issuerKeywordRecord?: IssuerKeywordRecord;
                      terms: {
                          governedParams: {
                              Electorate: InvitationParam;
                          };
                      };
                  };
                  governedContractInstallation: Installation<SF>;
                  timer: TimerService;
              }>, privateArgs: {
                  governed: Record<string, unknown>;
              }) => Promise<{
                  creatorFacet: {
                      changeParams: ((paramSpec: ParamChangesSpec<(...)>) => Promise<(...)>);
                      getAdminFacet: (() => AdminFacet<(...)>);
                      getCreatorFacet: (() => Promise<(...)>);
                      getInstance: (() => Instance<(...)>);
                      getPublicFacet: (() => (...)[(...)]);
                      invokeAPI: ((apiMethodName: string, methodArgs: (...)[]) => Promise<(...)>);
                      setFilters: ((strings: (...)[]) => Promise<(...)>);
                  } & RemotableObject<`Alleged: ${string}`> & RemotableBrand<{}, {
                      changeParams: ((paramSpec: ...) => ...);
                      getAdminFacet: (() => ...);
                      getCreatorFacet: (() => ...);
                      getInstance: (() => ...);
                      getPublicFacet: (() => ...);
                      invokeAPI: ((apiMethodName: ..., methodArgs: ...) => ...);
                      setFilters: ((strings: ...) => ...);
                  }>;
                  publicFacet: {
                      getGovernedContract: (() => Instance<(...)>);
                  } & RemotableObject<`Alleged: ${string}`> & RemotableBrand<{}, {
                      getGovernedContract: (() => ...);
                  }>;
              }>)>;
          };
      }>