@harmoniclabs/buildooor
Version:
Cardano transaction builder in typescript
71 lines (70 loc) • 3.02 kB
JavaScript
;
var __assign = (this && this.__assign) || function () {
__assign = Object.assign || function(t) {
for (var s, i = 1, n = arguments.length; i < n; i++) {
s = arguments[i];
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
t[p] = s[p];
}
return t;
};
return __assign.apply(this, arguments);
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.cloneITxBuildInput = exports.normalizeITxBuildInput = void 0;
var cardano_ledger_ts_1 = require("@harmoniclabs/cardano-ledger-ts");
var ITxBuildInputRefScript_1 = require("./ITxBuildInputRefScript.js");
var ITxBuildInputInlineScript_1 = require("./ITxBuildInputInlineScript.js");
function normalizeITxBuildInput(input) {
input = __assign({}, input); // do not modify input object.
var result = {};
if (!input.referenceScript && input.referenceScriptV2)
input.referenceScript = input.referenceScriptV2; // support deprecated name, but do not override
result.utxo = input.utxo instanceof cardano_ledger_ts_1.UTxO ? input.utxo.clone() : new cardano_ledger_ts_1.UTxO(input.utxo);
result.referenceScript = input.referenceScript ?
(0, ITxBuildInputRefScript_1.normalizeITxBuildInputRefScript)(input.referenceScript) :
undefined;
result.inputScript = input.inputScript ?
(0, ITxBuildInputInlineScript_1.normalizeITxBuildInputInlineScript)(input.inputScript) :
undefined;
result.nativeScript = normalizeNativeScriptEntry(input.nativeScript);
return result;
}
exports.normalizeITxBuildInput = normalizeITxBuildInput;
function isNativeScript(stuff) {
try {
(0, cardano_ledger_ts_1.nativeScriptFromCbor)((0, cardano_ledger_ts_1.nativeScriptToCbor)(stuff));
return true;
}
catch (_a) {
return false;
}
}
function normalizeNativeScriptEntry(scr) {
if (!scr)
return undefined;
if (isNativeScript(scr)) {
return new cardano_ledger_ts_1.Script("NativeScript", (0, cardano_ledger_ts_1.nativeScriptToCbor)(scr).toBuffer());
}
if (scr instanceof cardano_ledger_ts_1.Script && scr.type === cardano_ledger_ts_1.ScriptType.NativeScript)
return scr.clone();
return undefined;
}
/**
* @deprecated
* use `normalizeITxBuildInput` instead
*/
function cloneITxBuildInput(_a) {
var utxo = _a.utxo, ref = _a.referenceScript, inScript = _a.inputScript, nativeScript = _a.nativeScript;
var referenceScript = ref === undefined ? undefined :
(0, ITxBuildInputRefScript_1.normalizeITxBuildInputRefScript)(ref);
var inputScript = inScript === undefined ? undefined :
(0, ITxBuildInputInlineScript_1.normalizeITxBuildInputInlineScript)(inScript);
return {
utxo: new cardano_ledger_ts_1.UTxO(utxo),
referenceScript: referenceScript,
inputScript: inputScript,
nativeScript: normalizeNativeScriptEntry(nativeScript)
};
}
exports.cloneITxBuildInput = cloneITxBuildInput;