@blockfrost/blockfrost-cardano-cli
Version:
Drop-in(ish) replacement for cardano-cli powered by Blockfrost
63 lines (62 loc) • 2.13 kB
JavaScript
;
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;