UNPKG

@iexec/iexec-oracle-factory-wrapper

Version:
42 lines 1.81 kB
import CID from 'cids'; import { getSignerFromPrivateKey } from 'iexec/utils'; import { getDefaults, DEFAULT_IPFS_GATEWAY } from '../config/config.js'; import * as ipfs from './../services/ipfs/index.js'; import testRawParams from './callTester.js'; import { formatParamsJson } from './format.js'; import { computeOracleId as hashComputeOracleId } from './hash.js'; import { jsonParamSetSchema, paramSetSchema } from './validators.js'; const getParamSet = async ({ paramSetOrCid, ipfsGateway = DEFAULT_IPFS_GATEWAY, }) => { let paramSet; let paramsJson; let isUploaded = false; if (ipfs.isCid(paramSetOrCid)) { const cid = new CID(paramSetOrCid).toString(); const contentBuffer = await ipfs.get(cid, { ipfsGateway }).catch(() => { throw Error(`Failed to load paramSetSet from CID ${cid}`); }); const contentText = contentBuffer.toString(); try { paramsJson = await jsonParamSetSchema().validate(contentText); paramSet = JSON.parse(paramsJson); isUploaded = true; } catch (e) { throw Error(`Content associated to CID ${cid} is not a valid paramSet`); } } else { paramSet = await paramSetSchema().validate(paramSetOrCid); paramsJson = await jsonParamSetSchema().validate(formatParamsJson(paramSet)); } return { paramSet, paramsJson, isUploaded }; }; const computeOracleId = async (paramSetOrCid, { ipfsGateway = DEFAULT_IPFS_GATEWAY } = {}) => { const { paramSet } = await getParamSet({ paramSetOrCid, ipfsGateway, }); return hashComputeOracleId(paramSet); }; export { getParamSet, computeOracleId, testRawParams, getSignerFromPrivateKey, getDefaults as getChainDefaults, }; //# sourceMappingURL=utils.js.map