Prepare a kind that wraps an 'ownable' object with a makeTransferInvitation ability and delegates to the underlying object methods specified in an allowlist of method names.

  • Type Parameters

    • MN extends (string | symbol)[]

      Method names

    Parameters

    • zone: Zone
    • makeInvitation: (<R, A>(offerHandler: OfferHandler<ERef<R>, A>, description: string, customDetails?: object, proposalShape?: Pattern) => Promise<Invitation<R, A>>)

      A function with the same behavior as zcf.makeInvitation. A contract will normally just extract it from its own zcf using the argument expression

      (...args) => zcf.makeInvitation(...args)
      

      See ownable-counter.js for the canonical example.

        • <R, A>(offerHandler, description, customDetails?, proposalShape?): Promise<Invitation<R, A>>
        • Type Parameters

          • R
          • A = undefined

          Parameters

          • offerHandler: OfferHandler<ERef<R>, A>
          • description: string
          • OptionalcustomDetails: object
          • OptionalproposalShape: Pattern

          Returns Promise<Invitation<R, A>>

    • uKindName: string

      The kindName of the underlying exo class

    • uMethodNames: MN

      The method names of the underlying exo class that should be represented by transparently-forwarding methods of the wrapping ownable object.

    • Optionaloptions: OwnableOptions = {}

    Returns (<U>(underlying: U) => Pick<U, MN[number]> & {
        makeTransferInvitation: (() => Invitation<U, undefined>);
    })

      • <U>(underlying): Pick<U, MN[number]> & {
            makeTransferInvitation: (() => Invitation<U, undefined>);
        }
      • Type Parameters

        • U

        Parameters

        • underlying: U

        Returns Pick<U, MN[number]> & {
            makeTransferInvitation: (() => Invitation<U, undefined>);
        }