@harmoniclabs/buildooor
Version:
Cardano transaction builder in typescript
115 lines (114 loc) • 6.51 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 ints_1 = require("../utils/ints.js");
var ChangeInfos_1 = require("./ChangeInfos/ChangeInfos.js");
var ITxBuildVotingProcedure_1 = require("./ITxBuildVotingProcedure.js");
var ITxBuildProposalProcedure_1 = require("./ITxBuildProposalProcedure.js");
var cbor_1 = require("@harmoniclabs/cbor");
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, fee = _a.fee, 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: normalizeChangeAddress(changeAddress),
outputs: outputs === null || outputs === void 0 ? void 0 : outputs.map(normalizeTxBuildArgsOutputs),
readonlyRefInputs: readonlyRefInputs === null || readonlyRefInputs === void 0 ? void 0 : readonlyRefInputs.map(nomalizeUTXOInput),
requiredSigners: requiredSigners === null || requiredSigners === void 0 ? void 0 : requiredSigners.map(toPubKeyHash),
collaterals: collaterals === null || collaterals === void 0 ? void 0 : collaterals.map(nomalizeUTXOInput),
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),
fee: (0, ints_1.canBeUInteger)(fee) ? BigInt(fee) : undefined,
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;
/** Check input type and convert to NormalizedITxBuildInput */
function normalizeITxBuildArgsInputs(input) {
if ((0, cbor_1.canBeCborString)(input)) {
var cborData = (0, cbor_1.forceCborString)(input);
var iUtxo = cardano_ledger_ts_1.UTxO.fromCbor(cborData);
return (0, ITxBuildInput_1.normalizeITxBuildInput)({ utxo: iUtxo });
}
if ((0, cardano_ledger_ts_1.isIUTxO)(input)) {
return { utxo: new cardano_ledger_ts_1.UTxO(input) };
}
return (0, ITxBuildInput_1.normalizeITxBuildInput)(input);
}
/** Check Changeaddress type and convert to normalizeChangeAddress */
function normalizeChangeAddress(changeAddress) {
if (changeAddress === undefined) {
return undefined;
}
if ((0, cardano_ledger_ts_1.isAddressStr)(changeAddress)) {
return cardano_ledger_ts_1.Address.fromString(changeAddress);
}
if ((0, cbor_1.canBeCborString)(changeAddress)) {
var cborData = (0, cbor_1.forceCborString)(changeAddress);
console.log("address cborData: ", cborData);
return cardano_ledger_ts_1.Address.fromCbor(cborData);
}
if (changeAddress instanceof cardano_ledger_ts_1.Address) {
return changeAddress;
}
}
/** Check output type and convert to TxOut */
function normalizeTxBuildArgsOutputs(output) {
if ((0, cbor_1.canBeCborString)(output)) {
var cborData = (0, cbor_1.forceCborString)(output);
var txout = cardano_ledger_ts_1.TxOut.fromCbor(cborData);
return (0, ITxBuildOutput_1.txBuildOutToTxOut)(txout);
}
if ((0, cardano_ledger_ts_1.isITxOut)(output)) {
return (0, ITxBuildOutput_1.txBuildOutToTxOut)(output);
}
return (0, ITxBuildOutput_1.txBuildOutToTxOut)(output);
}
function nomalizeUTXOInput(input) {
if ((0, cbor_1.canBeCborString)(input)) {
var cborData = (0, cbor_1.forceCborString)(input);
return cardano_ledger_ts_1.UTxO.fromCbor(cborData);
}
return new cardano_ledger_ts_1.UTxO(input);
}
function toPubKeyHash(hash) {
return new cardano_ledger_ts_1.PubKeyHash(hash);
}
/** @deprecated use `normalizeITxBuildArgs` instead */
function cloneITxBuildArgs(args) {
return normalizeITxBuildArgs(args);
}
exports.cloneITxBuildArgs = cloneITxBuildArgs;