@harmoniclabs/plu-ts-offchain
Version:
An embedded DSL for Cardano smart contracts creation coupled with a library for Cardano transactions, all in Typescript
26 lines (25 loc) • 1.12 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.forceStakeCreds = void 0;
var cardano_ledger_ts_1 = require("@harmoniclabs/cardano-ledger-ts");
function forceStakeCreds(creds) {
if (creds instanceof cardano_ledger_ts_1.Credential)
return creds;
if (typeof creds === "string") {
if (!creds.startsWith("stake")) {
throw new Error("invalid bech32 stake address");
}
creds = cardano_ledger_ts_1.StakeAddress.fromString(creds);
}
if (creds instanceof cardano_ledger_ts_1.StakeAddress) {
return creds.toCredential();
}
if (creds instanceof cardano_ledger_ts_1.Script) {
return cardano_ledger_ts_1.Credential.script(new cardano_ledger_ts_1.StakeValidatorHash(creds.hash));
}
if (creds.type === "pointer") {
throw new Error("pointer stake credentials not supported");
}
return new cardano_ledger_ts_1.Credential(creds.type === "script" ? cardano_ledger_ts_1.CredentialType.Script : cardano_ledger_ts_1.CredentialType.KeyHash, creds.hash);
}
exports.forceStakeCreds = forceStakeCreds;