@harmoniclabs/plu-ts-offchain
Version:
An embedded DSL for Cardano smart contracts creation coupled with a library for Cardano transactions, all in Typescript
72 lines (71 loc) • 4.79 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.cloneITxBuildArgs = exports.normalizeITxBuildArgs = void 0;
var cardano_ledger_ts_1 = require("@harmoniclabs/cardano-ledger-ts");
var ITxBuildCert_1 = require("./ITxBuildCert.js");
var ITxBuildInput_1 = require("./ITxBuildInput/ITxBuildInput.js");
var ITxBuildMint_1 = require("./ITxBuildMint.js");
var ITxBuildOutput_1 = require("./ITxBuildOutput.js");
var ITxBuildWithdrawal_1 = require("./ITxBuildWithdrawal.js");
var ChangeInfos_1 = require("./ChangeInfos/ChangeInfos.js");
var ITxBuildVotingProcedure_1 = require("./ITxBuildVotingProcedure.js");
var ITxBuildProposalProcedure_1 = require("./ITxBuildProposalProcedure.js");
function normalizeITxBuildArgs(_a) {
var inputs = _a.inputs, change = _a.change, changeAddress = _a.changeAddress, outputs = _a.outputs, readonlyRefInputs = _a.readonlyRefInputs, requiredSigners = _a.requiredSigners, collaterals = _a.collaterals, collateralReturn = _a.collateralReturn, mints = _a.mints, invalidBefore = _a.invalidBefore, invalidAfter = _a.invalidAfter, certificates = _a.certificates, withdrawals = _a.withdrawals, memo = _a.memo, metadata = _a.metadata, votingProcedures = _a.votingProcedures, proposalProcedures = _a.proposalProcedures, currentTreasuryValue = _a.currentTreasuryValue, paymentToTreasury = _a.paymentToTreasury;
return {
inputs: inputs.map(normalizeITxBuildArgsInputs),
change: change ? (0, ChangeInfos_1.normalizeChangeInfos)(change) : undefined,
changeAddress: changeAddress ? (typeof changeAddress === "string" ?
cardano_ledger_ts_1.Address.fromString(changeAddress) :
changeAddress) : undefined,
outputs: outputs === null || outputs === void 0 ? void 0 : outputs.map(ITxBuildOutput_1.txBuildOutToTxOut),
readonlyRefInputs: readonlyRefInputs === null || readonlyRefInputs === void 0 ? void 0 : readonlyRefInputs.map(toUTxONoClone),
requiredSigners: requiredSigners === null || requiredSigners === void 0 ? void 0 : requiredSigners.map(toPubKeyHash),
collaterals: collaterals === null || collaterals === void 0 ? void 0 : collaterals.map(toUTxONoClone),
collateralReturn: collateralReturn ? (0, ITxBuildOutput_1.txBuildOutToTxOut)(collateralReturn) : undefined,
mints: mints === null || mints === void 0 ? void 0 : mints.map(ITxBuildMint_1.normalizeITxBuildMint),
invalidBefore: invalidBefore === undefined ? undefined : BigInt(invalidBefore),
invalidAfter: invalidAfter === undefined ? undefined : BigInt(invalidAfter),
certificates: certificates === null || certificates === void 0 ? void 0 : certificates.map(ITxBuildCert_1.normalizeITxBuildCert),
withdrawals: withdrawals === null || withdrawals === void 0 ? void 0 : withdrawals.map(ITxBuildWithdrawal_1.normalizeITxBuildWithdrawal),
memo: memo ? String(memo) : undefined,
metadata: metadata,
votingProcedures: Array.isArray(votingProcedures) ?
votingProcedures.map(function (entry) {
if ((0, cardano_ledger_ts_1.isIVotingProceduresEntry)(entry))
entry = {
votingProcedure: entry,
script: undefined // for js shape optimization
};
return (0, ITxBuildVotingProcedure_1.normalizeITxBuildVotingProcedure)(entry);
}) : undefined,
proposalProcedures: Array.isArray(proposalProcedures) ?
proposalProcedures.map(function (entry) {
if ((0, cardano_ledger_ts_1.isIProposalProcedure)(entry))
entry = {
proposalProcedure: entry,
script: undefined
};
return (0, ITxBuildProposalProcedure_1.normalizeITxBuildProposalProcedure)(entry);
}) : undefined,
currentTreasuryValue: currentTreasuryValue === undefined ? undefined : BigInt(currentTreasuryValue),
paymentToTreasury: paymentToTreasury === undefined ? undefined : BigInt(paymentToTreasury),
};
}
exports.normalizeITxBuildArgs = normalizeITxBuildArgs;
function normalizeITxBuildArgsInputs(input) {
if ((0, cardano_ledger_ts_1.isIUTxO)(input))
return { utxo: new cardano_ledger_ts_1.UTxO(input) };
return (0, ITxBuildInput_1.normalizeITxBuildInput)(input);
}
function toUTxONoClone(utxo) {
return utxo instanceof cardano_ledger_ts_1.UTxO ? utxo : new cardano_ledger_ts_1.UTxO(utxo);
}
function toPubKeyHash(hash) {
return new cardano_ledger_ts_1.PubKeyHash(hash);
}
/** @deprecated use `normalizeITxBuildArgs` instead */
function cloneITxBuildArgs(args) {
return normalizeITxBuildArgs(args);
}
exports.cloneITxBuildArgs = cloneITxBuildArgs;