UNPKG

@apexfusionfoundation/blockfrost-js

Version:

A JavaScript/TypeScript SDK for interacting with the https://blockfrost.io API

72 lines (71 loc) 3.01 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.utilsTxsEvaluateUtxos = exports.utilsTxsEvaluate = void 0; const errors_1 = require("../../../utils/errors"); const json_bigint_1 = __importDefault(require("json-bigint")); const betterJSON = (0, json_bigint_1.default)({ useNativeBigInt: true }); /** * Submits a transaction to evaluate how much execution units it requires. * @see {@link https://docs.blockfrost.io/#tag/Cardano-Utilities/paths/~1utils~1txs~1evaluate/post | API docs for Submit a transaction for execution units evaluation} * * @param transaction - Transaction bytes as Uint8Array or hex-encoded string * @returns result of Ogmios EvaluateTx @see {@link https://ogmios.dev/mini-protocols/local-tx-submission/#evaluatetx} * */ async function utilsTxsEvaluate(transaction) { let tx; if (typeof transaction === 'string') { tx = transaction; } else { tx = Buffer.from(transaction).toString('hex'); } return new Promise((resolve, reject) => { this.instance .post(`utils/txs/evaluate`, { body: tx, headers: { 'Content-type': 'application/cbor' }, }) .then(resp => { resolve(resp.body); }) .catch(err => { reject((0, errors_1.handleError)(err)); }); }); } exports.utilsTxsEvaluate = utilsTxsEvaluate; /** * Submits a transaction CBOR and additional utxo set to evaluate how much execution units it requires. * @see {@link https://docs.blockfrost.io//#tag/Cardano-Utilities/paths/~1utils~1txs~1evaluate~1utxos/post | API docs for Submit a transaction for execution units evaluation (additional UTXO set)} * * @param transaction - Transaction bytes as Uint8Array or hex-encoded string * @param additionalUtxoSet - Additional UTXO as an array of tuples [TxIn, TxOut]. See https://ogmios.dev/mini-protocols/local-tx-submission/#additional-utxo-set. * @returns result of Ogmios EvaluateTx @see {@link https://ogmios.dev/mini-protocols/local-tx-submission/#evaluatetx} * */ async function utilsTxsEvaluateUtxos(transaction, // base16 or base64 // Exported types aren't strict enough // additionalUtxoSet: paths['/utils/txs/evaluate/utxos']['post']['requestBody']['content']['application/json'], additionalUtxoSet) { return new Promise((resolve, reject) => { this.instance .post(`utils/txs/evaluate/utxos`, { body: betterJSON.stringify({ cbor: transaction, additionalUtxoSet, }), headers: { 'Content-type': 'application/json' }, }) .then(resp => { resolve(resp.body); }) .catch(err => { reject((0, errors_1.handleError)(err)); }); }); } exports.utilsTxsEvaluateUtxos = utilsTxsEvaluateUtxos;