@agoric/ertp
Version:
Electronic Rights Transfer Protocol (ERTP). A smart contract framework for exchanging electronic rights
31 lines (27 loc) • 671 B
JavaScript
// @ts-check
import { initEmpty } from '@agoric/store';
import { vivifyFarClass } from '@agoric/vat-data';
/** @typedef {import('@agoric/vat-data').Baggage} Baggage */
/**
* @template {AssetKind} K
* @param {Baggage} issuerBaggage
* @param {string} name
* @param {Brand<K>} brand
* @param {InterfaceGuard} PaymentI
* @returns {() => Payment<K>}
*/
export const vivifyPaymentKind = (issuerBaggage, name, brand, PaymentI) => {
const makePayment = vivifyFarClass(
issuerBaggage,
`${name} payment`,
PaymentI,
initEmpty,
{
getAllegedBrand() {
return brand;
},
},
);
return makePayment;
};
harden(vivifyPaymentKind);