/** * @file The Parity Stability Module supports efficiently minting/burning a * stable token at a specified fixed ratio to a reference stable token, which * thereby acts as an anchor to provide additional stability. For flexible * economic policies, the fee percentage for trading into and out of the * stable token are specified separately. */ /** * @import {EReturn} from '@endo/far'; * @import {ContractMeta, FeeMintAccess, Installation} from '@agoric/zoe'; */ /** * @typedef {object} MetricsNotification Metrics naming scheme is that nouns are * present values and past-participles are accumulative. * @property {Amount<'nat'>} anchorPoolBalance amount of Anchor token available * to be swapped * @property {Amount<'nat'>} mintedPoolBalance amount of Minted token * outstanding (the amount minted minus the amount burned). * @property {Amount<'nat'>} feePoolBalance amount of Minted token fees * available to be collected * @property {Amount<'nat'>} totalAnchorProvided running sum of Anchor ever * given by this contract * @property {Amount<'nat'>} totalMintedProvided running sum of Minted ever * given by this contract */ /** * @import {TypedPattern} from '@agoric/internal'; * @import {Baggage} from '@agoric/vat-data' */ /** @type {ContractMeta} */ export const meta: ContractMeta; export function start(zcf: ZCF & { anchorBrand: Brand<"nat">; anchorPerMinted: Ratio; }>, privateArgs: { feeMintAccess: FeeMintAccess; initialPoserInvitation: Invitation; storageNode: StorageNode; marshaller: Marshaller; }, baggage: Baggage): Promise<{ creatorFacet: import("@endo/exo").Guarded<{ getParamMgrRetriever: () => { get: () => import("@agoric/governance/src/contractGovernance/typedParamManager.js").TypedParamManager<{ GiveMintedFee: "ratio"; MintLimit: "amount"; WantMintedFee: "ratio"; } & { Electorate: "invitation"; }>; } & RemotableObject<`Alleged: ${string}`> & import("@endo/eventual-send").RemotableBrand<{}, { get: () => import("@agoric/governance/src/contractGovernance/typedParamManager.js").TypedParamManager<{ GiveMintedFee: "ratio"; MintLimit: "amount"; WantMintedFee: "ratio"; } & { Electorate: "invitation"; }>; }>; getInvitation: (name: any) => Promise; getLimitedCreatorFacet: () => import("@endo/exo").Guarded<{ getRewardAllocation(): Allocation; makeCollectFeesInvitation(): Promise>; makeRestoreMetricsInvitation(): Promise>>; }>; getGovernedApis: () => GovernedApis; getGovernedApiNames: () => string[]; setOfferFilter: (strings: any) => Promise; }>; publicFacet: import("@endo/exo").Guarded<{ getAmount: (name: string) => Amount; getBrand: (name: string) => Brand; getInstance: (name: string) => Instance; getInstallation: (name: string) => Installation; getInvitationAmount: (name: string) => InvitationAmount; getNat: (name: string) => bigint; getRatio: (name: string) => Ratio; getString: (name: string) => string; getTimestamp: (name: string) => import("@agoric/time").TimestampRecord; getRelativeTime: (name: string) => import("@agoric/time").RelativeTimeRecord; getUnknown: (name: string) => any; getSubscription: () => globalThis.StoredSubscription; getGovernedParams: () => globalThis.ERef; getMetrics(): globalThis.Subscriber; getPoolBalance(): import("@agoric/ertp").NatAmount; getPublicTopics(): { metrics: import("@agoric/zoe/src/contractSupport/topics.js").PublicTopic; }; makeWantMintedInvitation(): Promise>; makeGiveMintedInvitation(): Promise>; }>; }>; /** * Metrics naming scheme is that nouns are * present values and past-participles are accumulative. */ export type MetricsNotification = { /** * amount of Anchor token available * to be swapped */ anchorPoolBalance: Amount<"nat">; /** * amount of Minted token * outstanding (the amount minted minus the amount burned). */ mintedPoolBalance: Amount<"nat">; /** * amount of Minted token fees * available to be collected */ feePoolBalance: Amount<"nat">; /** * running sum of Anchor ever * given by this contract */ totalAnchorProvided: Amount<"nat">; /** * running sum of Minted ever * given by this contract */ totalMintedProvided: Amount<"nat">; }; export type PsmPublicFacet = EReturn["publicFacet"]; import type { ContractMeta } from '@agoric/zoe'; import type { FeeMintAccess } from '@agoric/zoe'; import type { Baggage } from '@agoric/vat-data'; import type { Installation } from '@agoric/zoe'; import type { EReturn } from '@endo/far'; //# sourceMappingURL=psm.d.ts.map