UNPKG

@aeternity/aepp-sdk

Version:

SDK for the æternity blockchain

74 lines (67 loc) 1.6 kB
import { decode } from '../utils/encoder.js'; /** * @category oracle */ /** * @category oracle */ function decodeQuery(queryEntry) { return { ...queryEntry, id: queryEntry.id, decodedQuery: decode(queryEntry.query).toString(), decodedResponse: decode(queryEntry.response).toString() }; } /** * This class is needed because `getOracleQuery` would return different values depending on the * oracle type. * @category oracle */ export default class OracleBase { /** * @param address - Oracle public key */ constructor(address, options) { this.address = address; this.options = options; } /** * Get oracle entry from the node * @param options - Options object */ async getState(options = {}) { const opt = { ...this.options, ...options }; return opt.onNode.getOracleByPubkey(this.address); } /** * Get oracle queries from the node * @param options - Options object */ async getQueries(options = {}) { const opt = { ...this.options, ...options }; return (await opt.onNode.getOracleQueriesByPubkey(this.address)).oracleQueries.map(decodeQuery); } /** * Get oracle query entry from the node * @param queryId - Oracle query ID * @param options - Options object */ async getQuery(queryId, options = {}) { const { onNode } = { ...this.options, ...options }; const queryEntry = await onNode.getOracleQueryByPubkeyAndQueryId(this.address, queryId); return decodeQuery(queryEntry); } } //# sourceMappingURL=OracleBase.js.map