@sidan-lab/sidan-csl
Version:
Cardano Off-chain Code APIs built on cardano-serialization-lib
33 lines (32 loc) • 1.65 kB
JavaScript
export const conStr = (constructor, fields) => ({
constructor,
fields,
});
export const conStr0 = (fields) => conStr(0, fields);
export const conStr1 = (fields) => conStr(1, fields);
export const conStr2 = (fields) => conStr(2, fields);
export const bool = (b) => (b ? conStr1([]) : conStr0([]));
export const builtinByteString = (bytes) => ({ bytes });
export const integer = (int) => ({ int });
export const list = (pList) => ({ list: pList });
export const currencySymbol = (bytes) => builtinByteString(bytes);
export const tokenName = (bytes) => builtinByteString(bytes);
export const maybeStakingHash = (stakeCredential) => {
if (stakeCredential === '') {
return conStr1([]);
}
return conStr0([
conStr0([conStr0([builtinByteString(stakeCredential)])]),
]);
};
export const pubKeyAddress = (bytes, stakeCredential) => conStr0([conStr0([builtinByteString(bytes)]), maybeStakingHash(stakeCredential || '')]);
export const scriptAddress = (bytes, stakeCredential) => conStr0([conStr1([builtinByteString(bytes)]), maybeStakingHash(stakeCredential || '')]);
export const assetClass = (policyId, assetName) => conStr0([currencySymbol(policyId), tokenName(assetName)]);
export const txOutRef = (txHash, index) => conStr0([conStr0([builtinByteString(txHash)]), integer(index)]);
export const paymentPubKeyHash = (bytes) => builtinByteString(bytes);
export const pubKeyHash = (bytes) => builtinByteString(bytes);
export const posixTime = (int) => ({ int });
export const assocMap = (itemsMap) => ({
map: itemsMap.map(([k, v]) => ({ k, v })),
});
export const tuple = (key, value) => conStr0([key, value]);