@harmoniclabs/buildooor
Version:
Cardano transaction builder in typescript
63 lines (62 loc) • 2.11 kB
JavaScript
;
var __read = (this && this.__read) || function (o, n) {
var m = typeof Symbol === "function" && o[Symbol.iterator];
if (!m) return o;
var i = m.call(o), r, ar = [], e;
try {
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
}
catch (error) { e = { error: error }; }
finally {
try {
if (r && !r.done && (m = i["return"])) m.call(i);
}
finally { if (e) throw e.error; }
}
return ar;
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.shouldResolveToUTxO = exports.cloneCanResolveToUTxO = exports.canResolveToUTxO = void 0;
var bytestring_1 = require("@harmoniclabs/bytestring");
var cardano_ledger_ts_1 = require("@harmoniclabs/cardano-ledger-ts");
function isTxOutRefStr(stuff) {
if (typeof stuff !== "string")
return false;
var _a = __read(stuff.split('#')), id = _a[0], idx = _a[1], rest = _a.slice(2);
if (rest.length !== 0)
return false;
if (!(bytestring_1.ByteString.isValidHexValue(id) &&
id.length === 64))
return false;
var n;
try {
n = parseInt(idx);
}
catch (_b) {
return false;
}
return Number.isSafeInteger(n);
}
function canResolveToUTxO(stuff) {
return ((0, cardano_ledger_ts_1.isIUTxO)(stuff) ||
(0, cardano_ledger_ts_1.isITxOutRef)(stuff) ||
isTxOutRefStr(stuff));
}
exports.canResolveToUTxO = canResolveToUTxO;
function cloneCanResolveToUTxO(stuff) {
if (typeof stuff === "string")
return stuff;
if ((0, cardano_ledger_ts_1.isIUTxO)(stuff))
return new cardano_ledger_ts_1.UTxO(stuff);
if ((0, cardano_ledger_ts_1.isITxOutRef)(stuff))
return new cardano_ledger_ts_1.TxOutRef(stuff);
throw new Error("unexpected \"CanResolveToUTxO\"");
}
exports.cloneCanResolveToUTxO = cloneCanResolveToUTxO;
function shouldResolveToUTxO(stuff) {
return (
// isIUTxO( stuff ) ||
(0, cardano_ledger_ts_1.isITxOutRef)(stuff) ||
isTxOutRefStr(stuff));
}
exports.shouldResolveToUTxO = shouldResolveToUTxO;