ZoeService: {
    getBrands: GetBrands;
    getBundleIDFromInstallation: GetBundleIDFromInstallation;
    getConfiguration: GetConfiguration;
    getFeeIssuer: GetFeeIssuer;
    getInstallation: GetInstallation;
    getInstallationForInstance: GetInstallationForInstance;
    getInstance: GetInstance;
    getInvitationDetails: GetInvitationDetails;
    getInvitationIssuer: GetInvitationIssuer;
    getIssuers: GetIssuers;
    getOfferFilter: ((instance: ERef<Instance>) => Promise<string[]>);
    getProposalShapeForInvitation: ((invitationHandle: InvitationHandle) => Pattern | undefined);
    getPublicFacet: (<I>(instance: ERef<I>) => Promise<IsAny<I> extends true
        ? any
        : I extends src/zoeService/utils
            ? IsAny<SF> extends true
                ? unknown
                : EReturn<SF>["publicFacet"]
            : never>);
    getTerms: (<I>(instance: I) => IsAny<I> extends true
        ? Promise<any>
        : I extends ERef<src/zoeService/utils>
            ? IsAny<SF> extends true
                ? Promise<unknown>
                : Promise<StartParams<SF>["terms"]>
            : never);
    install: InstallBundle;
    installBundleID: InstallBundleID;
    offer: Offer;
    startInstance: src/zoeService/utils;
}

Zoe provides a framework for deploying and working with smart contracts. It is accessed as a long-lived and well-trusted service that enforces offer safety for the contracts that use it. Zoe has a single invitationIssuer for the entirety of its lifetime. By having a reference to Zoe, a user can get the invitationIssuer and thus validate any invitation they receive from someone else.

Zoe has two different facets: the public Zoe service and the contract facet (ZCF). Each contract instance has a copy of ZCF within its vat. The contract and ZCF never have direct access to the users' payments or the Zoe purses.

Type declaration

  • getBrands: GetBrands
  • getBundleIDFromInstallation: GetBundleIDFromInstallation
  • getConfiguration: GetConfiguration
  • getFeeIssuer: GetFeeIssuer
  • getInstallation: GetInstallation
  • getInstallationForInstance: GetInstallationForInstance
  • getInstance: GetInstance
  • getInvitationDetails: GetInvitationDetails

    Return an object with the instance, installation, description, invitation handle, and any custom properties specific to the contract.

  • getInvitationIssuer: GetInvitationIssuer

    Zoe has a single invitationIssuer for the entirety of its lifetime. By having a reference to Zoe, a user can get the invitationIssuer and thus validate any invitation they receive from someone else. The mint associated with the invitationIssuer creates the ERTP payments that represent the right to interact with a smart contract in particular ways.

  • getIssuers: GetIssuers
  • getOfferFilter: ((instance: ERef<Instance>) => Promise<string[]>)
      • (instance): Promise<string[]>
      • Parameters

        Returns Promise<string[]>

  • getProposalShapeForInvitation: ((invitationHandle: InvitationHandle) => Pattern | undefined)

    Return the pattern (if any) associated with the invitationHandle that a proposal is required to match to be accepted by zoe.offer().

      • (invitationHandle): Pattern | undefined
      • Parameters

        Returns Pattern | undefined

  • getPublicFacet: (<I>(instance: ERef<I>) => Promise<IsAny<I> extends true
        ? any
        : I extends src/zoeService/utils
            ? IsAny<SF> extends true
                ? unknown
                : EReturn<SF>["publicFacet"]
            : never>)
      • <I>(instance): Promise<IsAny<I> extends true
            ? any
            : I extends src/zoeService/utils
                ? IsAny<SF> extends true
                    ? unknown
                    : EReturn<SF>["publicFacet"]
                : never>
      • Type Parameters

        Parameters

        • instance: ERef<I>

        Returns Promise<IsAny<I> extends true
            ? any
            : I extends src/zoeService/utils
                ? IsAny<SF> extends true
                    ? unknown
                    : EReturn<SF>["publicFacet"]
                : never>

  • getTerms: (<I>(instance: I) => IsAny<I> extends true
        ? Promise<any>
        : I extends ERef<src/zoeService/utils>
            ? IsAny<SF> extends true
                ? Promise<unknown>
                : Promise<StartParams<SF>["terms"]>
            : never)
      • <I>(instance): IsAny<I> extends true
            ? Promise<any>
            : I extends ERef<src/zoeService/utils>
                ? IsAny<SF> extends true
                    ? Promise<unknown>
                    : Promise<StartParams<SF>["terms"]>
                : never
      • Type Parameters

        Parameters

        • instance: I

        Returns IsAny<I> extends true
            ? Promise<any>
            : I extends ERef<src/zoeService/utils>
                ? IsAny<SF> extends true
                    ? Promise<unknown>
                    : Promise<StartParams<SF>["terms"]>
                : never

  • install: InstallBundle
  • installBundleID: InstallBundleID
  • offer: Offer
  • startInstance: src/zoeService/utils