UNPKG

@blockfrost/blockfrost-cardano-cli

Version:

Drop-in(ish) replacement for cardano-cli powered by Blockfrost

63 lines (62 loc) 2.13 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.parseCardanoCliVersion = exports.assetsToPolicies = exports.isJsonString = exports.parseAsset = void 0; const format_1 = require("./format"); const parseAsset = (hex) => { const policyIdSize = 56; const policyId = hex.slice(0, policyIdSize); const assetNameInHex = hex.slice(policyIdSize); return { policyId, assetName: assetNameInHex, }; }; exports.parseAsset = parseAsset; const isJsonString = (str) => { try { JSON.parse(str); } catch (_a) { return false; } return true; }; exports.isJsonString = isJsonString; const assetsToPolicies = (assets) => { // Example output // { // "85be0612bc25a9a238b03b32f36b0c679d2d4cea63ff284989e20c4aab6d5933#0": { // "address": "addr_test1qpk3nptn9v6wv5eec4q3tdmjq074svs6jdp5dhglnrtm9lcg9ltteln2y73vzf9knvpn2uacu7v6wxqlgxg84937kq7qwvj3f5", // "value": { // "dca984a3ab2c7b9691de0cf0e09227e19c06b2899500ed8e9279ab32": { // "": 500 // }, // "lovelace": 2700000 // } // } // } const policies = {}; for (const asset of assets) { if (asset.unit === 'lovelace') { policies.lovelace = (0, format_1.stringToBigInt)(asset.quantity); } else { const { policyId, assetName } = (0, exports.parseAsset)(asset.unit); if (!policies[policyId]) { policies[policyId] = {}; } policies[policyId][assetName] = (0, format_1.stringToBigInt)(asset.quantity); } } return policies; }; exports.assetsToPolicies = assetsToPolicies; const parseCardanoCliVersion = (versionOutput) => { var _a; const versionRe = new RegExp(/cardano-cli (\d+)\.(\d+)\.(\d+)/); const version = ((_a = versionOutput.match(versionRe)) !== null && _a !== void 0 ? _a : []) .slice(1) .map((t) => Number.parseInt(t, 10)); return version; }; exports.parseCardanoCliVersion = parseCardanoCliVersion;