UNPKG

@agoric/zoe

Version:

Zoe: the Smart Contract Framework for Offer Enforcement

111 lines 4.68 kB
export type ParsableNumber = bigint | number | string; export type OraclePriceSubmission = Readonly<ParsableNumber | { data: ParsableNumber; }>; export type Price = ParsableNumber | Ratio; export type PriceAggregatorContract = ContractOf<typeof start>; /** * @deprecated use fluxAggregator * * This contract aggregates price values from a set of oracles and provides a * PriceAuthority for their median. This naive method is game-able and so this module * is a stub until we complete what is now in `fluxAggregatorKit.js`. * * @param {ZCF<{ * timer: import('@agoric/time').TimerService, * POLL_INTERVAL: bigint, * brandIn: Brand<'nat'>, * brandOut: Brand<'nat'>, * unitAmountIn: Amount<'nat'>, * }>} zcf * @param {{ * marshaller: Marshaller, * quoteMint?: ERef<Mint<'set', PriceDescription>>, * storageNode: ERef<StorageNode>, * }} privateArgs */ export function start(zcf: ZCF<{ timer: import("@agoric/time").TimerService; POLL_INTERVAL: bigint; brandIn: Brand<"nat">; brandOut: Brand<"nat">; unitAmountIn: Amount<"nat">; }>, privateArgs: { marshaller: Marshaller; quoteMint?: ERef<Mint<"set", PriceDescription>>; storageNode: ERef<StorageNode>; }): Promise<{ creatorFacet: { /** * An "oracle invitation" is an invitation to be able to submit data to * include in the priceAggregator's results. * * The offer result from this invitation is a OracleAdmin, which can be used * directly to manage the price submissions as well as to terminate the * relationship. * * @param {Instance | string} [oracleKey] */ makeOracleInvitation: (oracleKey?: Instance | string) => Promise<Invitation<{ admin: OracleAdmin<Price>; invitationMakers: { PushPrice: (price: ParsableNumber) => Promise<Invitation<void>>; }; }, { notifier?: globalThis.Notifier<OraclePriceSubmission> | undefined; scaleValueOut?: number | undefined; } | undefined>>; /** @param {OracleKey} oracleKey */ deleteOracle: (oracleKey: OracleKey) => Promise<void>; /** * @param {Instance | string} [oracleInstance] * @param {OracleQuery} [query] * @returns {Promise<OracleAdmin<Price>>} */ initOracle: (oracleInstance?: Instance | string, query?: OracleQuery) => Promise<OracleAdmin<Price>>; } & RemotableObject<`Alleged: ${string}`> & import("@endo/eventual-send").RemotableBrand<{}, { /** * An "oracle invitation" is an invitation to be able to submit data to * include in the priceAggregator's results. * * The offer result from this invitation is a OracleAdmin, which can be used * directly to manage the price submissions as well as to terminate the * relationship. * * @param {Instance | string} [oracleKey] */ makeOracleInvitation: (oracleKey?: Instance | string) => Promise<Invitation<{ admin: OracleAdmin<Price>; invitationMakers: { PushPrice: (price: ParsableNumber) => Promise<Invitation<void>>; }; }, { notifier?: globalThis.Notifier<OraclePriceSubmission> | undefined; scaleValueOut?: number | undefined; } | undefined>>; /** @param {OracleKey} oracleKey */ deleteOracle: (oracleKey: OracleKey) => Promise<void>; /** * @param {Instance | string} [oracleInstance] * @param {OracleQuery} [query] * @returns {Promise<OracleAdmin<Price>>} */ initOracle: (oracleInstance?: Instance | string, query?: OracleQuery) => Promise<OracleAdmin<Price>>; }>; publicFacet: { getPriceAuthority(): import("@agoric/zoe/tools/types.js").PriceAuthority; getSubscriber: () => globalThis.StoredSubscriber<unknown>; /** Diagnostic tool */ getRoundCompleteNotifier(): Promise<globalThis.Notifier<any>>; } & RemotableObject<`Alleged: ${string}`> & import("@endo/eventual-send").RemotableBrand<{}, { getPriceAuthority(): import("@agoric/zoe/tools/types.js").PriceAuthority; getSubscriber: () => globalThis.StoredSubscriber<unknown>; /** Diagnostic tool */ getRoundCompleteNotifier(): Promise<globalThis.Notifier<any>>; }>; }>; import type { ContractOf } from '../zoeService/utils.js'; import type { ZCF } from '@agoric/zoe'; import type { PriceDescription } from '@agoric/zoe/tools/types.js'; import type { Invitation } from '@agoric/zoe'; //# sourceMappingURL=priceAggregator.d.ts.map