• Helper for the 90% of contracts that will have only a single set of parameters. Using this for managed parameters, a contract only has to

    • Define the parameter template, which includes name, type and value
    • Add any methods needed in the public and creator facets.

    It's also crucial that the governed contract not interact with the product of makeGovernorFacet(). The wrapped creatorFacet has the power to change parameter values, and the governance guarantees only hold if they're not used directly by the governed contract.

    Type Parameters

    • M extends ParamTypesMap

      Map of types of custom governed terms

    Parameters

    • zcf: ZCF<GovernanceTerms<M>>
    • initialPoserInvitation: Invitation<R, A>
    • paramTypesMap: M
    • Optional storageNode: ERef<StorageNode>
    • Optional marshaller: ERef<Marshaller<unknown>>

    Returns {
        augmentPublicFacet: (<PF>(originalPublicFacet) => GovernedPublicFacet<PF>);
        augmentVirtualPublicFacet: (<OPF>(originalPublicFacet) => OPF & {
            getAmount: PlusContext<never, ((name) => Amount<"set">) | ((name) => Amount<AssetKind>) | ((name) => Brand<AssetKind>) | ((name) => Instance) | ((name) => Installation<any>) | ((name) => bigint) | ((name) => Ratio) | ((name) => string) | ((name) => TimestampRecord) | ((name) => RelativeTimeRecord) | ((name) => any)>;
            getBrand: PlusContext<never, ((name) => Amount<"set">) | ((name) => Amount<AssetKind>) | ((name) => Brand<AssetKind>) | ((name) => Instance) | ((name) => Installation<any>) | ((name) => bigint) | ((name) => Ratio) | ((name) => string) | ((name) => TimestampRecord) | ((name) => RelativeTimeRecord) | ((name) => any)>;
            getGovernedParams: (() => ERef<ParamStateRecord>);
            getInstallation: PlusContext<never, ((name) => Amount<"set">) | ((name) => Amount<AssetKind>) | ((name) => Brand<AssetKind>) | ((name) => Instance) | ((name) => Installation<any>) | ((name) => bigint) | ((name) => Ratio) | ((name) => string) | ((name) => TimestampRecord) | ((name) => RelativeTimeRecord) | ((name) => any)>;
            getInstance: PlusContext<never, ((name) => Amount<"set">) | ((name) => Amount<AssetKind>) | ((name) => Brand<AssetKind>) | ((name) => Instance) | ((name) => Installation<any>) | ((name) => bigint) | ((name) => Ratio) | ((name) => string) | ((name) => TimestampRecord) | ((name) => RelativeTimeRecord) | ((name) => any)>;
            getInvitationAmount: PlusContext<never, ((name) => Amount<"set">) | ((name) => Amount<AssetKind>) | ((name) => Brand<AssetKind>) | ((name) => Instance) | ((name) => Installation<any>) | ((name) => bigint) | ((name) => Ratio) | ((name) => string) | ((name) => TimestampRecord) | ((name) => RelativeTimeRecord) | ((name) => any)>;
            getNat: PlusContext<never, ((name) => Amount<"set">) | ((name) => Amount<AssetKind>) | ((name) => Brand<AssetKind>) | ((name) => Instance) | ((name) => Installation<any>) | ((name) => bigint) | ((name) => Ratio) | ((name) => string) | ((name) => TimestampRecord) | ((name) => RelativeTimeRecord) | ((name) => any)>;
            getRatio: PlusContext<never, ((name) => Amount<"set">) | ((name) => Amount<AssetKind>) | ((name) => Brand<AssetKind>) | ((name) => Instance) | ((name) => Installation<any>) | ((name) => bigint) | ((name) => Ratio) | ((name) => string) | ((name) => TimestampRecord) | ((name) => RelativeTimeRecord) | ((name) => any)>;
            getRelativeTime: PlusContext<never, ((name) => Amount<"set">) | ((name) => Amount<AssetKind>) | ((name) => Brand<AssetKind>) | ((name) => Instance) | ((name) => Installation<any>) | ((name) => bigint) | ((name) => Ratio) | ((name) => string) | ((name) => TimestampRecord) | ((name) => RelativeTimeRecord) | ((name) => any)>;
            getString: PlusContext<never, ((name) => Amount<"set">) | ((name) => Amount<AssetKind>) | ((name) => Brand<AssetKind>) | ((name) => Instance) | ((name) => Installation<any>) | ((name) => bigint) | ((name) => Ratio) | ((name) => string) | ((name) => TimestampRecord) | ((name) => RelativeTimeRecord) | ((name) => any)>;
            getSubscription: (() => StoredSubscription<GovernanceSubscriptionState>);
            getTimestamp: PlusContext<never, ((name) => Amount<"set">) | ((name) => Amount<AssetKind>) | ((name) => Brand<AssetKind>) | ((name) => Instance) | ((name) => Installation<any>) | ((name) => bigint) | ((name) => Ratio) | ((name) => string) | ((name) => TimestampRecord) | ((name) => RelativeTimeRecord) | ((name) => any)>;
            getUnknown: PlusContext<never, ((name) => Amount<"set">) | ((name) => Amount<AssetKind>) | ((name) => Brand<AssetKind>) | ((name) => Instance) | ((name) => Installation<any>) | ((name) => bigint) | ((name) => Ratio) | ((name) => string) | ((name) => TimestampRecord) | ((name) => RelativeTimeRecord) | ((name) => any)>;
        } & RemotableBrand<{}, OPF & {
            getAmount: PlusContext<never, ((name) => Amount<"set">) | ((name) => Amount<AssetKind>) | ((name) => Brand<AssetKind>) | ((name) => Instance) | ((name) => Installation<any>) | ((name) => bigint) | ((name) => Ratio) | ((name) => string) | ((name) => TimestampRecord) | ((name) => RelativeTimeRecord) | ((name) => any)>;
            getBrand: PlusContext<never, ((name) => Amount<"set">) | ((name) => Amount<AssetKind>) | ((name) => Brand<AssetKind>) | ((name) => Instance) | ((name) => Installation<any>) | ((name) => bigint) | ((name) => Ratio) | ((name) => string) | ((name) => TimestampRecord) | ((name) => RelativeTimeRecord) | ((name) => any)>;
            getGovernedParams: (() => ERef<ParamStateRecord>);
            getInstallation: PlusContext<never, ((name) => Amount<"set">) | ((name) => Amount<AssetKind>) | ((name) => Brand<AssetKind>) | ((name) => Instance) | ((name) => Installation<any>) | ((name) => bigint) | ((name) => Ratio) | ((name) => string) | ((name) => TimestampRecord) | ((name) => RelativeTimeRecord) | ((name) => any)>;
            getInstance: PlusContext<never, ((name) => Amount<"set">) | ((name) => Amount<AssetKind>) | ((name) => Brand<AssetKind>) | ((name) => Instance) | ((name) => Installation<any>) | ((name) => bigint) | ((name) => Ratio) | ((name) => string) | ((name) => TimestampRecord) | ((name) => RelativeTimeRecord) | ((name) => any)>;
            getInvitationAmount: PlusContext<never, ((name) => Amount<"set">) | ((name) => Amount<AssetKind>) | ((name) => Brand<AssetKind>) | ((name) => Instance) | ((name) => Installation<any>) | ((name) => bigint) | ((name) => Ratio) | ((name) => string) | ((name) => TimestampRecord) | ((name) => RelativeTimeRecord) | ((name) => any)>;
            getNat: PlusContext<never, ((name) => Amount<"set">) | ((name) => Amount<AssetKind>) | ((name) => Brand<AssetKind>) | ((name) => Instance) | ((name) => Installation<any>) | ((name) => bigint) | ((name) => Ratio) | ((name) => string) | ((name) => TimestampRecord) | ((name) => RelativeTimeRecord) | ((name) => any)>;
            getRatio: PlusContext<never, ((name) => Amount<"set">) | ((name) => Amount<AssetKind>) | ((name) => Brand<AssetKind>) | ((name) => Instance) | ((name) => Installation<any>) | ((name) => bigint) | ((name) => Ratio) | ((name) => string) | ((name) => TimestampRecord) | ((name) => RelativeTimeRecord) | ((name) => any)>;
            getRelativeTime: PlusContext<never, ((name) => Amount<"set">) | ((name) => Amount<AssetKind>) | ((name) => Brand<AssetKind>) | ((name) => Instance) | ((name) => Installation<any>) | ((name) => bigint) | ((name) => Ratio) | ((name) => string) | ((name) => TimestampRecord) | ((name) => RelativeTimeRecord) | ((name) => any)>;
            getString: PlusContext<never, ((name) => Amount<"set">) | ((name) => Amount<AssetKind>) | ((name) => Brand<AssetKind>) | ((name) => Instance) | ((name) => Installation<any>) | ((name) => bigint) | ((name) => Ratio) | ((name) => string) | ((name) => TimestampRecord) | ((name) => RelativeTimeRecord) | ((name) => any)>;
            getSubscription: (() => StoredSubscription<GovernanceSubscriptionState>);
            getTimestamp: PlusContext<never, ((name) => Amount<"set">) | ((name) => Amount<AssetKind>) | ((name) => Brand<AssetKind>) | ((name) => Instance) | ((name) => Installation<any>) | ((name) => bigint) | ((name) => Ratio) | ((name) => string) | ((name) => TimestampRecord) | ((name) => RelativeTimeRecord) | ((name) => any)>;
            getUnknown: PlusContext<never, ((name) => Amount<"set">) | ((name) => Amount<AssetKind>) | ((name) => Brand<AssetKind>) | ((name) => Instance) | ((name) => Installation<any>) | ((name) => bigint) | ((name) => Ratio) | ((name) => string) | ((name) => TimestampRecord) | ((name) => RelativeTimeRecord) | ((name) => any)>;
        }>);
        makeDurableGovernorFacet: (<CF>(baggage, limitedCreatorFacet, governedApis?) => {
            governorFacet: Guarded<{
                getGovernedApiNames: (() => string[]);
                getGovernedApis: (() => GovernedApis);
                getInvitation: ((name) => Promise<Invitation<R, A>>);
                getLimitedCreatorFacet: (() => CF);
                getParamMgrRetriever: (() => {
                    get: (() => TypedParamManager<M & {
                        Electorate: "invitation";
                    }>);
                } & RemotableBrand<{}, {
                    get: (() => TypedParamManager<M & {
                        Electorate: "invitation";
                    }>);
                }>);
                setOfferFilter: ((strings) => Promise<void>);
            }>;
            limitedCreatorFacet: CF;
        });
        makeFarGovernorFacet: (<CF>(limitedCreatorFacet, governedApis?) => GovernedCreatorFacet<CF>);
        makeGovernorFacet: (<CF>(originalCreatorFacet, governedApis?) => GovernedCreatorFacet<CF>);
        makeVirtualGovernorFacet: (<LCF>(limitedCreatorFacet) => {
            governorFacet: FunctionsPlusContext<unknown, GovernedCreatorFacet<LCF>>;
            limitedCreatorFacet: LCF;
        });
        params: Getters<M & {
            Electorate: "invitation";
        }>;
        publicMixin: {
            getAmount: ((name) => Amount<AssetKind>);
            getBrand: ((name) => Brand<AssetKind>);
            getGovernedParams: (() => ERef<ParamStateRecord>);
            getInstallation: ((name) => Installation<any>);
            getInstance: ((name) => Instance);
            getInvitationAmount: ((name) => Amount<"set">);
            getNat: ((name) => bigint);
            getRatio: ((name) => Ratio);
            getRelativeTime: ((name) => RelativeTimeRecord);
            getString: ((name) => string);
            getSubscription: (() => StoredSubscription<GovernanceSubscriptionState>);
            getTimestamp: ((name) => TimestampRecord);
            getUnknown: ((name) => any);
        };
    }

    • augmentPublicFacet: (<PF>(originalPublicFacet) => GovernedPublicFacet<PF>)
        • <PF>(originalPublicFacet): GovernedPublicFacet<PF>
        • Add required methods to publicFacet

          Type Parameters

          • PF extends {}

            public facet

          Parameters

          • originalPublicFacet: PF

          Returns GovernedPublicFacet<PF>

    • augmentVirtualPublicFacet: (<OPF>(originalPublicFacet) => OPF & {
          getAmount: PlusContext<never, ((name) => Amount<"set">) | ((name) => Amount<AssetKind>) | ((name) => Brand<AssetKind>) | ((name) => Instance) | ((name) => Installation<any>) | ((name) => bigint) | ((name) => Ratio) | ((name) => string) | ((name) => TimestampRecord) | ((name) => RelativeTimeRecord) | ((name) => any)>;
          getBrand: PlusContext<never, ((name) => Amount<"set">) | ((name) => Amount<AssetKind>) | ((name) => Brand<AssetKind>) | ((name) => Instance) | ((name) => Installation<any>) | ((name) => bigint) | ((name) => Ratio) | ((name) => string) | ((name) => TimestampRecord) | ((name) => RelativeTimeRecord) | ((name) => any)>;
          getGovernedParams: (() => ERef<ParamStateRecord>);
          getInstallation: PlusContext<never, ((name) => Amount<"set">) | ((name) => Amount<AssetKind>) | ((name) => Brand<AssetKind>) | ((name) => Instance) | ((name) => Installation<any>) | ((name) => bigint) | ((name) => Ratio) | ((name) => string) | ((name) => TimestampRecord) | ((name) => RelativeTimeRecord) | ((name) => any)>;
          getInstance: PlusContext<never, ((name) => Amount<"set">) | ((name) => Amount<AssetKind>) | ((name) => Brand<AssetKind>) | ((name) => Instance) | ((name) => Installation<any>) | ((name) => bigint) | ((name) => Ratio) | ((name) => string) | ((name) => TimestampRecord) | ((name) => RelativeTimeRecord) | ((name) => any)>;
          getInvitationAmount: PlusContext<never, ((name) => Amount<"set">) | ((name) => Amount<AssetKind>) | ((name) => Brand<AssetKind>) | ((name) => Instance) | ((name) => Installation<any>) | ((name) => bigint) | ((name) => Ratio) | ((name) => string) | ((name) => TimestampRecord) | ((name) => RelativeTimeRecord) | ((name) => any)>;
          getNat: PlusContext<never, ((name) => Amount<"set">) | ((name) => Amount<AssetKind>) | ((name) => Brand<AssetKind>) | ((name) => Instance) | ((name) => Installation<any>) | ((name) => bigint) | ((name) => Ratio) | ((name) => string) | ((name) => TimestampRecord) | ((name) => RelativeTimeRecord) | ((name) => any)>;
          getRatio: PlusContext<never, ((name) => Amount<"set">) | ((name) => Amount<AssetKind>) | ((name) => Brand<AssetKind>) | ((name) => Instance) | ((name) => Installation<any>) | ((name) => bigint) | ((name) => Ratio) | ((name) => string) | ((name) => TimestampRecord) | ((name) => RelativeTimeRecord) | ((name) => any)>;
          getRelativeTime: PlusContext<never, ((name) => Amount<"set">) | ((name) => Amount<AssetKind>) | ((name) => Brand<AssetKind>) | ((name) => Instance) | ((name) => Installation<any>) | ((name) => bigint) | ((name) => Ratio) | ((name) => string) | ((name) => TimestampRecord) | ((name) => RelativeTimeRecord) | ((name) => any)>;
          getString: PlusContext<never, ((name) => Amount<"set">) | ((name) => Amount<AssetKind>) | ((name) => Brand<AssetKind>) | ((name) => Instance) | ((name) => Installation<any>) | ((name) => bigint) | ((name) => Ratio) | ((name) => string) | ((name) => TimestampRecord) | ((name) => RelativeTimeRecord) | ((name) => any)>;
          getSubscription: (() => StoredSubscription<GovernanceSubscriptionState>);
          getTimestamp: PlusContext<never, ((name) => Amount<"set">) | ((name) => Amount<AssetKind>) | ((name) => Brand<AssetKind>) | ((name) => Instance) | ((name) => Installation<any>) | ((name) => bigint) | ((name) => Ratio) | ((name) => string) | ((name) => TimestampRecord) | ((name) => RelativeTimeRecord) | ((name) => any)>;
          getUnknown: PlusContext<never, ((name) => Amount<"set">) | ((name) => Amount<AssetKind>) | ((name) => Brand<AssetKind>) | ((name) => Instance) | ((name) => Installation<any>) | ((name) => bigint) | ((name) => Ratio) | ((name) => string) | ((name) => TimestampRecord) | ((name) => RelativeTimeRecord) | ((name) => any)>;
      } & RemotableBrand<{}, OPF & {
          getAmount: PlusContext<never, ((name) => Amount<"set">) | ((name) => Amount<AssetKind>) | ((name) => Brand<AssetKind>) | ((name) => Instance) | ((name) => Installation<any>) | ((name) => bigint) | ((name) => Ratio) | ((name) => string) | ((name) => TimestampRecord) | ((name) => RelativeTimeRecord) | ((name) => any)>;
          getBrand: PlusContext<never, ((name) => Amount<"set">) | ((name) => Amount<AssetKind>) | ((name) => Brand<AssetKind>) | ((name) => Instance) | ((name) => Installation<any>) | ((name) => bigint) | ((name) => Ratio) | ((name) => string) | ((name) => TimestampRecord) | ((name) => RelativeTimeRecord) | ((name) => any)>;
          getGovernedParams: (() => ERef<ParamStateRecord>);
          getInstallation: PlusContext<never, ((name) => Amount<"set">) | ((name) => Amount<AssetKind>) | ((name) => Brand<AssetKind>) | ((name) => Instance) | ((name) => Installation<any>) | ((name) => bigint) | ((name) => Ratio) | ((name) => string) | ((name) => TimestampRecord) | ((name) => RelativeTimeRecord) | ((name) => any)>;
          getInstance: PlusContext<never, ((name) => Amount<"set">) | ((name) => Amount<AssetKind>) | ((name) => Brand<AssetKind>) | ((name) => Instance) | ((name) => Installation<any>) | ((name) => bigint) | ((name) => Ratio) | ((name) => string) | ((name) => TimestampRecord) | ((name) => RelativeTimeRecord) | ((name) => any)>;
          getInvitationAmount: PlusContext<never, ((name) => Amount<"set">) | ((name) => Amount<AssetKind>) | ((name) => Brand<AssetKind>) | ((name) => Instance) | ((name) => Installation<any>) | ((name) => bigint) | ((name) => Ratio) | ((name) => string) | ((name) => TimestampRecord) | ((name) => RelativeTimeRecord) | ((name) => any)>;
          getNat: PlusContext<never, ((name) => Amount<"set">) | ((name) => Amount<AssetKind>) | ((name) => Brand<AssetKind>) | ((name) => Instance) | ((name) => Installation<any>) | ((name) => bigint) | ((name) => Ratio) | ((name) => string) | ((name) => TimestampRecord) | ((name) => RelativeTimeRecord) | ((name) => any)>;
          getRatio: PlusContext<never, ((name) => Amount<"set">) | ((name) => Amount<AssetKind>) | ((name) => Brand<AssetKind>) | ((name) => Instance) | ((name) => Installation<any>) | ((name) => bigint) | ((name) => Ratio) | ((name) => string) | ((name) => TimestampRecord) | ((name) => RelativeTimeRecord) | ((name) => any)>;
          getRelativeTime: PlusContext<never, ((name) => Amount<"set">) | ((name) => Amount<AssetKind>) | ((name) => Brand<AssetKind>) | ((name) => Instance) | ((name) => Installation<any>) | ((name) => bigint) | ((name) => Ratio) | ((name) => string) | ((name) => TimestampRecord) | ((name) => RelativeTimeRecord) | ((name) => any)>;
          getString: PlusContext<never, ((name) => Amount<"set">) | ((name) => Amount<AssetKind>) | ((name) => Brand<AssetKind>) | ((name) => Instance) | ((name) => Installation<any>) | ((name) => bigint) | ((name) => Ratio) | ((name) => string) | ((name) => TimestampRecord) | ((name) => RelativeTimeRecord) | ((name) => any)>;
          getSubscription: (() => StoredSubscription<GovernanceSubscriptionState>);
          getTimestamp: PlusContext<never, ((name) => Amount<"set">) | ((name) => Amount<AssetKind>) | ((name) => Brand<AssetKind>) | ((name) => Instance) | ((name) => Installation<any>) | ((name) => bigint) | ((name) => Ratio) | ((name) => string) | ((name) => TimestampRecord) | ((name) => RelativeTimeRecord) | ((name) => any)>;
          getUnknown: PlusContext<never, ((name) => Amount<"set">) | ((name) => Amount<AssetKind>) | ((name) => Brand<AssetKind>) | ((name) => Instance) | ((name) => Installation<any>) | ((name) => bigint) | ((name) => Ratio) | ((name) => string) | ((name) => TimestampRecord) | ((name) => RelativeTimeRecord) | ((name) => any)>;
      }>)
        • <OPF>(originalPublicFacet): OPF & {
              getAmount: PlusContext<never, ((name) => Amount<"set">) | ((name) => Amount<AssetKind>) | ((name) => Brand<AssetKind>) | ((name) => Instance) | ((name) => Installation<any>) | ((name) => bigint) | ((name) => Ratio) | ((name) => string) | ((name) => TimestampRecord) | ((name) => RelativeTimeRecord) | ((name) => any)>;
              getBrand: PlusContext<never, ((name) => Amount<"set">) | ((name) => Amount<AssetKind>) | ((name) => Brand<AssetKind>) | ((name) => Instance) | ((name) => Installation<any>) | ((name) => bigint) | ((name) => Ratio) | ((name) => string) | ((name) => TimestampRecord) | ((name) => RelativeTimeRecord) | ((name) => any)>;
              getGovernedParams: (() => ERef<ParamStateRecord>);
              getInstallation: PlusContext<never, ((name) => Amount<"set">) | ((name) => Amount<AssetKind>) | ((name) => Brand<AssetKind>) | ((name) => Instance) | ((name) => Installation<any>) | ((name) => bigint) | ((name) => Ratio) | ((name) => string) | ((name) => TimestampRecord) | ((name) => RelativeTimeRecord) | ((name) => any)>;
              getInstance: PlusContext<never, ((name) => Amount<"set">) | ((name) => Amount<AssetKind>) | ((name) => Brand<AssetKind>) | ((name) => Instance) | ((name) => Installation<any>) | ((name) => bigint) | ((name) => Ratio) | ((name) => string) | ((name) => TimestampRecord) | ((name) => RelativeTimeRecord) | ((name) => any)>;
              getInvitationAmount: PlusContext<never, ((name) => Amount<"set">) | ((name) => Amount<AssetKind>) | ((name) => Brand<AssetKind>) | ((name) => Instance) | ((name) => Installation<any>) | ((name) => bigint) | ((name) => Ratio) | ((name) => string) | ((name) => TimestampRecord) | ((name) => RelativeTimeRecord) | ((name) => any)>;
              getNat: PlusContext<never, ((name) => Amount<"set">) | ((name) => Amount<AssetKind>) | ((name) => Brand<AssetKind>) | ((name) => Instance) | ((name) => Installation<any>) | ((name) => bigint) | ((name) => Ratio) | ((name) => string) | ((name) => TimestampRecord) | ((name) => RelativeTimeRecord) | ((name) => any)>;
              getRatio: PlusContext<never, ((name) => Amount<"set">) | ((name) => Amount<AssetKind>) | ((name) => Brand<AssetKind>) | ((name) => Instance) | ((name) => Installation<any>) | ((name) => bigint) | ((name) => Ratio) | ((name) => string) | ((name) => TimestampRecord) | ((name) => RelativeTimeRecord) | ((name) => any)>;
              getRelativeTime: PlusContext<never, ((name) => Amount<"set">) | ((name) => Amount<AssetKind>) | ((name) => Brand<AssetKind>) | ((name) => Instance) | ((name) => Installation<any>) | ((name) => bigint) | ((name) => Ratio) | ((name) => string) | ((name) => TimestampRecord) | ((name) => RelativeTimeRecord) | ((name) => any)>;
              getString: PlusContext<never, ((name) => Amount<"set">) | ((name) => Amount<AssetKind>) | ((name) => Brand<AssetKind>) | ((name) => Instance) | ((name) => Installation<any>) | ((name) => bigint) | ((name) => Ratio) | ((name) => string) | ((name) => TimestampRecord) | ((name) => RelativeTimeRecord) | ((name) => any)>;
              getSubscription: (() => StoredSubscription<GovernanceSubscriptionState>);
              getTimestamp: PlusContext<never, ((name) => Amount<"set">) | ((name) => Amount<AssetKind>) | ((name) => Brand<AssetKind>) | ((name) => Instance) | ((name) => Installation<any>) | ((name) => bigint) | ((name) => Ratio) | ((name) => string) | ((name) => TimestampRecord) | ((name) => RelativeTimeRecord) | ((name) => any)>;
              getUnknown: PlusContext<never, ((name) => Amount<"set">) | ((name) => Amount<AssetKind>) | ((name) => Brand<AssetKind>) | ((name) => Instance) | ((name) => Installation<any>) | ((name) => bigint) | ((name) => Ratio) | ((name) => string) | ((name) => TimestampRecord) | ((name) => RelativeTimeRecord) | ((name) => any)>;
          } & RemotableBrand<{}, OPF & {
              getAmount: PlusContext<never, ((name) => Amount<"set">) | ((name) => Amount<AssetKind>) | ((name) => Brand<AssetKind>) | ((name) => Instance) | ((name) => Installation<any>) | ((name) => bigint) | ((name) => Ratio) | ((name) => string) | ((name) => TimestampRecord) | ((name) => RelativeTimeRecord) | ((name) => any)>;
              getBrand: PlusContext<never, ((name) => Amount<"set">) | ((name) => Amount<AssetKind>) | ((name) => Brand<AssetKind>) | ((name) => Instance) | ((name) => Installation<any>) | ((name) => bigint) | ((name) => Ratio) | ((name) => string) | ((name) => TimestampRecord) | ((name) => RelativeTimeRecord) | ((name) => any)>;
              getGovernedParams: (() => ERef<ParamStateRecord>);
              getInstallation: PlusContext<never, ((name) => Amount<"set">) | ((name) => Amount<AssetKind>) | ((name) => Brand<AssetKind>) | ((name) => Instance) | ((name) => Installation<any>) | ((name) => bigint) | ((name) => Ratio) | ((name) => string) | ((name) => TimestampRecord) | ((name) => RelativeTimeRecord) | ((name) => any)>;
              getInstance: PlusContext<never, ((name) => Amount<"set">) | ((name) => Amount<AssetKind>) | ((name) => Brand<AssetKind>) | ((name) => Instance) | ((name) => Installation<any>) | ((name) => bigint) | ((name) => Ratio) | ((name) => string) | ((name) => TimestampRecord) | ((name) => RelativeTimeRecord) | ((name) => any)>;
              getInvitationAmount: PlusContext<never, ((name) => Amount<"set">) | ((name) => Amount<AssetKind>) | ((name) => Brand<AssetKind>) | ((name) => Instance) | ((name) => Installation<any>) | ((name) => bigint) | ((name) => Ratio) | ((name) => string) | ((name) => TimestampRecord) | ((name) => RelativeTimeRecord) | ((name) => any)>;
              getNat: PlusContext<never, ((name) => Amount<"set">) | ((name) => Amount<AssetKind>) | ((name) => Brand<AssetKind>) | ((name) => Instance) | ((name) => Installation<any>) | ((name) => bigint) | ((name) => Ratio) | ((name) => string) | ((name) => TimestampRecord) | ((name) => RelativeTimeRecord) | ((name) => any)>;
              getRatio: PlusContext<never, ((name) => Amount<"set">) | ((name) => Amount<AssetKind>) | ((name) => Brand<AssetKind>) | ((name) => Instance) | ((name) => Installation<any>) | ((name) => bigint) | ((name) => Ratio) | ((name) => string) | ((name) => TimestampRecord) | ((name) => RelativeTimeRecord) | ((name) => any)>;
              getRelativeTime: PlusContext<never, ((name) => Amount<"set">) | ((name) => Amount<AssetKind>) | ((name) => Brand<AssetKind>) | ((name) => Instance) | ((name) => Installation<any>) | ((name) => bigint) | ((name) => Ratio) | ((name) => string) | ((name) => TimestampRecord) | ((name) => RelativeTimeRecord) | ((name) => any)>;
              getString: PlusContext<never, ((name) => Amount<"set">) | ((name) => Amount<AssetKind>) | ((name) => Brand<AssetKind>) | ((name) => Instance) | ((name) => Installation<any>) | ((name) => bigint) | ((name) => Ratio) | ((name) => string) | ((name) => TimestampRecord) | ((name) => RelativeTimeRecord) | ((name) => any)>;
              getSubscription: (() => StoredSubscription<GovernanceSubscriptionState>);
              getTimestamp: PlusContext<never, ((name) => Amount<"set">) | ((name) => Amount<AssetKind>) | ((name) => Brand<AssetKind>) | ((name) => Instance) | ((name) => Installation<any>) | ((name) => bigint) | ((name) => Ratio) | ((name) => string) | ((name) => TimestampRecord) | ((name) => RelativeTimeRecord) | ((name) => any)>;
              getUnknown: PlusContext<never, ((name) => Amount<"set">) | ((name) => Amount<AssetKind>) | ((name) => Brand<AssetKind>) | ((name) => Instance) | ((name) => Installation<any>) | ((name) => bigint) | ((name) => Ratio) | ((name) => string) | ((name) => TimestampRecord) | ((name) => RelativeTimeRecord) | ((name) => any)>;
          }>
        • Add required methods to publicFacet, for a virtual/durable contract

          Type Parameters

          • OPF extends {}

          Parameters

          • originalPublicFacet: OPF

          Returns OPF & {
              getAmount: PlusContext<never, ((name) => Amount<"set">) | ((name) => Amount<AssetKind>) | ((name) => Brand<AssetKind>) | ((name) => Instance) | ((name) => Installation<any>) | ((name) => bigint) | ((name) => Ratio) | ((name) => string) | ((name) => TimestampRecord) | ((name) => RelativeTimeRecord) | ((name) => any)>;
              getBrand: PlusContext<never, ((name) => Amount<"set">) | ((name) => Amount<AssetKind>) | ((name) => Brand<AssetKind>) | ((name) => Instance) | ((name) => Installation<any>) | ((name) => bigint) | ((name) => Ratio) | ((name) => string) | ((name) => TimestampRecord) | ((name) => RelativeTimeRecord) | ((name) => any)>;
              getGovernedParams: (() => ERef<ParamStateRecord>);
              getInstallation: PlusContext<never, ((name) => Amount<"set">) | ((name) => Amount<AssetKind>) | ((name) => Brand<AssetKind>) | ((name) => Instance) | ((name) => Installation<any>) | ((name) => bigint) | ((name) => Ratio) | ((name) => string) | ((name) => TimestampRecord) | ((name) => RelativeTimeRecord) | ((name) => any)>;
              getInstance: PlusContext<never, ((name) => Amount<"set">) | ((name) => Amount<AssetKind>) | ((name) => Brand<AssetKind>) | ((name) => Instance) | ((name) => Installation<any>) | ((name) => bigint) | ((name) => Ratio) | ((name) => string) | ((name) => TimestampRecord) | ((name) => RelativeTimeRecord) | ((name) => any)>;
              getInvitationAmount: PlusContext<never, ((name) => Amount<"set">) | ((name) => Amount<AssetKind>) | ((name) => Brand<AssetKind>) | ((name) => Instance) | ((name) => Installation<any>) | ((name) => bigint) | ((name) => Ratio) | ((name) => string) | ((name) => TimestampRecord) | ((name) => RelativeTimeRecord) | ((name) => any)>;
              getNat: PlusContext<never, ((name) => Amount<"set">) | ((name) => Amount<AssetKind>) | ((name) => Brand<AssetKind>) | ((name) => Instance) | ((name) => Installation<any>) | ((name) => bigint) | ((name) => Ratio) | ((name) => string) | ((name) => TimestampRecord) | ((name) => RelativeTimeRecord) | ((name) => any)>;
              getRatio: PlusContext<never, ((name) => Amount<"set">) | ((name) => Amount<AssetKind>) | ((name) => Brand<AssetKind>) | ((name) => Instance) | ((name) => Installation<any>) | ((name) => bigint) | ((name) => Ratio) | ((name) => string) | ((name) => TimestampRecord) | ((name) => RelativeTimeRecord) | ((name) => any)>;
              getRelativeTime: PlusContext<never, ((name) => Amount<"set">) | ((name) => Amount<AssetKind>) | ((name) => Brand<AssetKind>) | ((name) => Instance) | ((name) => Installation<any>) | ((name) => bigint) | ((name) => Ratio) | ((name) => string) | ((name) => TimestampRecord) | ((name) => RelativeTimeRecord) | ((name) => any)>;
              getString: PlusContext<never, ((name) => Amount<"set">) | ((name) => Amount<AssetKind>) | ((name) => Brand<AssetKind>) | ((name) => Instance) | ((name) => Installation<any>) | ((name) => bigint) | ((name) => Ratio) | ((name) => string) | ((name) => TimestampRecord) | ((name) => RelativeTimeRecord) | ((name) => any)>;
              getSubscription: (() => StoredSubscription<GovernanceSubscriptionState>);
              getTimestamp: PlusContext<never, ((name) => Amount<"set">) | ((name) => Amount<AssetKind>) | ((name) => Brand<AssetKind>) | ((name) => Instance) | ((name) => Installation<any>) | ((name) => bigint) | ((name) => Ratio) | ((name) => string) | ((name) => TimestampRecord) | ((name) => RelativeTimeRecord) | ((name) => any)>;
              getUnknown: PlusContext<never, ((name) => Amount<"set">) | ((name) => Amount<AssetKind>) | ((name) => Brand<AssetKind>) | ((name) => Instance) | ((name) => Installation<any>) | ((name) => bigint) | ((name) => Ratio) | ((name) => string) | ((name) => TimestampRecord) | ((name) => RelativeTimeRecord) | ((name) => any)>;
          } & RemotableBrand<{}, OPF & {
              getAmount: PlusContext<never, ((name) => Amount<"set">) | ((name) => Amount<AssetKind>) | ((name) => Brand<AssetKind>) | ((name) => Instance) | ((name) => Installation<any>) | ((name) => bigint) | ((name) => Ratio) | ((name) => string) | ((name) => TimestampRecord) | ((name) => RelativeTimeRecord) | ((name) => any)>;
              getBrand: PlusContext<never, ((name) => Amount<"set">) | ((name) => Amount<AssetKind>) | ((name) => Brand<AssetKind>) | ((name) => Instance) | ((name) => Installation<any>) | ((name) => bigint) | ((name) => Ratio) | ((name) => string) | ((name) => TimestampRecord) | ((name) => RelativeTimeRecord) | ((name) => any)>;
              getGovernedParams: (() => ERef<ParamStateRecord>);
              getInstallation: PlusContext<never, ((name) => Amount<"set">) | ((name) => Amount<AssetKind>) | ((name) => Brand<AssetKind>) | ((name) => Instance) | ((name) => Installation<any>) | ((name) => bigint) | ((name) => Ratio) | ((name) => string) | ((name) => TimestampRecord) | ((name) => RelativeTimeRecord) | ((name) => any)>;
              getInstance: PlusContext<never, ((name) => Amount<"set">) | ((name) => Amount<AssetKind>) | ((name) => Brand<AssetKind>) | ((name) => Instance) | ((name) => Installation<any>) | ((name) => bigint) | ((name) => Ratio) | ((name) => string) | ((name) => TimestampRecord) | ((name) => RelativeTimeRecord) | ((name) => any)>;
              getInvitationAmount: PlusContext<never, ((name) => Amount<"set">) | ((name) => Amount<AssetKind>) | ((name) => Brand<AssetKind>) | ((name) => Instance) | ((name) => Installation<any>) | ((name) => bigint) | ((name) => Ratio) | ((name) => string) | ((name) => TimestampRecord) | ((name) => RelativeTimeRecord) | ((name) => any)>;
              getNat: PlusContext<never, ((name) => Amount<"set">) | ((name) => Amount<AssetKind>) | ((name) => Brand<AssetKind>) | ((name) => Instance) | ((name) => Installation<any>) | ((name) => bigint) | ((name) => Ratio) | ((name) => string) | ((name) => TimestampRecord) | ((name) => RelativeTimeRecord) | ((name) => any)>;
              getRatio: PlusContext<never, ((name) => Amount<"set">) | ((name) => Amount<AssetKind>) | ((name) => Brand<AssetKind>) | ((name) => Instance) | ((name) => Installation<any>) | ((name) => bigint) | ((name) => Ratio) | ((name) => string) | ((name) => TimestampRecord) | ((name) => RelativeTimeRecord) | ((name) => any)>;
              getRelativeTime: PlusContext<never, ((name) => Amount<"set">) | ((name) => Amount<AssetKind>) | ((name) => Brand<AssetKind>) | ((name) => Instance) | ((name) => Installation<any>) | ((name) => bigint) | ((name) => Ratio) | ((name) => string) | ((name) => TimestampRecord) | ((name) => RelativeTimeRecord) | ((name) => any)>;
              getString: PlusContext<never, ((name) => Amount<"set">) | ((name) => Amount<AssetKind>) | ((name) => Brand<AssetKind>) | ((name) => Instance) | ((name) => Installation<any>) | ((name) => bigint) | ((name) => Ratio) | ((name) => string) | ((name) => TimestampRecord) | ((name) => RelativeTimeRecord) | ((name) => any)>;
              getSubscription: (() => StoredSubscription<GovernanceSubscriptionState>);
              getTimestamp: PlusContext<never, ((name) => Amount<"set">) | ((name) => Amount<AssetKind>) | ((name) => Brand<AssetKind>) | ((name) => Instance) | ((name) => Installation<any>) | ((name) => bigint) | ((name) => Ratio) | ((name) => string) | ((name) => TimestampRecord) | ((name) => RelativeTimeRecord) | ((name) => any)>;
              getUnknown: PlusContext<never, ((name) => Amount<"set">) | ((name) => Amount<AssetKind>) | ((name) => Brand<AssetKind>) | ((name) => Instance) | ((name) => Installation<any>) | ((name) => bigint) | ((name) => Ratio) | ((name) => string) | ((name) => TimestampRecord) | ((name) => RelativeTimeRecord) | ((name) => any)>;
          }>

    • makeDurableGovernorFacet: (<CF>(baggage, limitedCreatorFacet, governedApis?) => {
          governorFacet: Guarded<{
              getGovernedApiNames: (() => string[]);
              getGovernedApis: (() => GovernedApis);
              getInvitation: ((name) => Promise<Invitation<R, A>>);
              getLimitedCreatorFacet: (() => CF);
              getParamMgrRetriever: (() => {
                  get: (() => TypedParamManager<M & {
                      Electorate: "invitation";
                  }>);
              } & RemotableBrand<{}, {
                  get: (() => TypedParamManager<M & {
                      Electorate: "invitation";
                  }>);
              }>);
              setOfferFilter: ((strings) => Promise<void>);
          }>;
          limitedCreatorFacet: CF;
      })
        • <CF>(baggage, limitedCreatorFacet, governedApis?): {
              governorFacet: Guarded<{
                  getGovernedApiNames: (() => string[]);
                  getGovernedApis: (() => GovernedApis);
                  getInvitation: ((name) => Promise<Invitation<R, A>>);
                  getLimitedCreatorFacet: (() => CF);
                  getParamMgrRetriever: (() => {
                      get: (() => TypedParamManager<M & {
                          Electorate: "invitation";
                      }>);
                  } & RemotableBrand<{}, {
                      get: (() => TypedParamManager<M & {
                          Electorate: "invitation";
                      }>);
                  }>);
                  setOfferFilter: ((strings) => Promise<void>);
              }>;
              limitedCreatorFacet: CF;
          }
        • Add required methods to a creatorFacet for a durable contract.

          Type Parameters

          • CF

          Parameters

          • baggage: Baggage
          • limitedCreatorFacet: CF
          • Optional governedApis: Record<string, ((...any) => unknown)> = {}

          Returns {
              governorFacet: Guarded<{
                  getGovernedApiNames: (() => string[]);
                  getGovernedApis: (() => GovernedApis);
                  getInvitation: ((name) => Promise<Invitation<R, A>>);
                  getLimitedCreatorFacet: (() => CF);
                  getParamMgrRetriever: (() => {
                      get: (() => TypedParamManager<M & {
                          Electorate: "invitation";
                      }>);
                  } & RemotableBrand<{}, {
                      get: (() => TypedParamManager<M & {
                          Electorate: "invitation";
                      }>);
                  }>);
                  setOfferFilter: ((strings) => Promise<void>);
              }>;
              limitedCreatorFacet: CF;
          }

          • governorFacet: Guarded<{
                getGovernedApiNames: (() => string[]);
                getGovernedApis: (() => GovernedApis);
                getInvitation: ((name) => Promise<Invitation<R, A>>);
                getLimitedCreatorFacet: (() => CF);
                getParamMgrRetriever: (() => {
                    get: (() => TypedParamManager<M & {
                        Electorate: "invitation";
                    }>);
                } & RemotableBrand<{}, {
                    get: (() => TypedParamManager<M & {
                        Electorate: "invitation";
                    }>);
                }>);
                setOfferFilter: ((strings) => Promise<void>);
            }>
          • limitedCreatorFacet: CF

          See

    • makeFarGovernorFacet: (<CF>(limitedCreatorFacet, governedApis?) => GovernedCreatorFacet<CF>)
        • <CF>(limitedCreatorFacet, governedApis?): GovernedCreatorFacet<CF>
        • Type Parameters

          • CF extends {}

          Parameters

          • limitedCreatorFacet: CF
          • Optional governedApis: Record<string, ((...any) => unknown)> = {}

          Returns GovernedCreatorFacet<CF>

    • makeGovernorFacet: (<CF>(originalCreatorFacet, governedApis?) => GovernedCreatorFacet<CF>)
        • <CF>(originalCreatorFacet, governedApis?): GovernedCreatorFacet<CF>
        • Type Parameters

          • CF extends {}

          Parameters

          • originalCreatorFacet: CF
          • Optional governedApis: {} = {}

            Returns GovernedCreatorFacet<CF>

      • makeVirtualGovernorFacet: (<LCF>(limitedCreatorFacet) => {
            governorFacet: FunctionsPlusContext<unknown, GovernedCreatorFacet<LCF>>;
            limitedCreatorFacet: LCF;
        })
          • <LCF>(limitedCreatorFacet): {
                governorFacet: FunctionsPlusContext<unknown, GovernedCreatorFacet<LCF>>;
                limitedCreatorFacet: LCF;
            }
          • Add required methods to a creatorFacet for a durable contract.

            Type Parameters

            • LCF extends {
                  [methodName: string]: ((context?, ...rest) => unknown);
              }

            Parameters

            • limitedCreatorFacet: LCF

            Returns {
                governorFacet: FunctionsPlusContext<unknown, GovernedCreatorFacet<LCF>>;
                limitedCreatorFacet: LCF;
            }

            See

      • params: Getters<M & {
            Electorate: "invitation";
        }>
      • publicMixin: {
            getAmount: ((name) => Amount<AssetKind>);
            getBrand: ((name) => Brand<AssetKind>);
            getGovernedParams: (() => ERef<ParamStateRecord>);
            getInstallation: ((name) => Installation<any>);
            getInstance: ((name) => Instance);
            getInvitationAmount: ((name) => Amount<"set">);
            getNat: ((name) => bigint);
            getRatio: ((name) => Ratio);
            getRelativeTime: ((name) => RelativeTimeRecord);
            getString: ((name) => string);
            getSubscription: (() => StoredSubscription<GovernanceSubscriptionState>);
            getTimestamp: ((name) => TimestampRecord);
            getUnknown: ((name) => any);
        }
        • getAmount: ((name) => Amount<AssetKind>)
            • (name): Amount<AssetKind>
            • Parameters

              • name: string

              Returns Amount<AssetKind>

        • getBrand: ((name) => Brand<AssetKind>)
            • (name): Brand<AssetKind>
            • Parameters

              • name: string

              Returns Brand<AssetKind>

        • getGovernedParams: (() => ERef<ParamStateRecord>)
            • (): ERef<ParamStateRecord>
            • Returns ERef<ParamStateRecord>

        • getInstallation: ((name) => Installation<any>)
            • (name): Installation<any>
            • Parameters

              • name: string

              Returns Installation<any>

        • getInstance: ((name) => Instance)
        • getInvitationAmount: ((name) => Amount<"set">)
            • (name): Amount<"set">
            • Parameters

              • name: string

              Returns Amount<"set">

        • getNat: ((name) => bigint)
            • (name): bigint
            • Parameters

              • name: string

              Returns bigint

        • getRatio: ((name) => Ratio)
        • getRelativeTime: ((name) => RelativeTimeRecord)
            • (name): RelativeTimeRecord
            • Parameters

              • name: string

              Returns RelativeTimeRecord

        • getString: ((name) => string)
            • (name): string
            • Parameters

              • name: string

              Returns string

        • getSubscription: (() => StoredSubscription<GovernanceSubscriptionState>)
            • (): StoredSubscription<GovernanceSubscriptionState>
            • Returns StoredSubscription<GovernanceSubscriptionState>

        • getTimestamp: ((name) => TimestampRecord)
            • (name): TimestampRecord
            • Parameters

              • name: string

              Returns TimestampRecord

        • getUnknown: ((name) => any)
            • (name): any
            • Parameters

              • name: string

              Returns any

    Generated using TypeDoc