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.

Properties

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: GetOfferFilter
getProposalShapeForInvitation: ((invitationHandle: InvitationHandle) => Pattern)
getPublicFacet: GetPublicFacet
getTerms: GetTerms
install: InstallBundle
installBundleID: InstallBundleID
offer: Offer
startInstance: StartInstance