import { BuildTxOptions } from '../tx/builder/index.js'; import { Tag } from '../tx/builder/constants.js'; import { Encoded } from '../utils/encoder.js'; import { _getPollInterval } from '../chain.js'; import { sendTransaction, SendTransactionOptions } from '../send-transaction.js'; import Node from '../Node.js'; import AccountBase from '../account/Base.js'; import OracleBase, { OracleQuery } from './OracleBase.js'; /** * @category oracle */ interface OracleRegisterOptions extends BuildTxOptions, Omit { } /** * @category oracle */ interface OracleExtendTtlOptions extends BuildTxOptions, Omit { } /** * @category oracle */ interface OracleRespondToQueryOptions extends BuildTxOptions, Omit { } /** * @category oracle */ export default class Oracle extends OracleBase { #private; readonly account: AccountBase; options: OracleRegisterOptions & OracleExtendTtlOptions & Parameters[1] & { onNode: Node; }; /** * @param account - Account to use as oracle * @param options - Options object */ constructor(account: AccountBase, options: OracleRegisterOptions & OracleExtendTtlOptions & Parameters[1] & { onNode: Node; }); /** * Register oracle * @param queryFormat - Format of query * @param responseFormat - Format of query response * @param options - Options object */ register(queryFormat: string, responseFormat: string, options?: OracleRegisterOptions): ReturnType; /** * Extend oracle ttl * @param options - Options object */ extendTtl(options?: OracleExtendTtlOptions): ReturnType; /** * Poll for oracle queries * @param onQuery - OnQuery callback * @param options - Options object * @param options.interval - Poll interval (default: 5000) * @returns Callback to stop polling function */ pollQueries(onQuery: (query: OracleQuery) => void, options?: { interval?: number; includeResponded?: boolean; } & Partial[1]>): () => void; /** * Respond to a query * @param queryId - Oracle query id * @param response - The response to query * @param options - Options object */ respondToQuery(queryId: Encoded.OracleQueryId, response: string, options?: OracleRespondToQueryOptions): ReturnType; /** * Respond to queries to oracle based on callback value * @param getResponse - Callback to respond on query * @param options - Options object * @param options.interval - Poll interval (default: 5000) * @returns Callback to stop polling function */ handleQueries(getResponse: (q: OracleQuery) => Promise | string, options?: Parameters[1] & OracleRespondToQueryOptions): () => void; } export {};