@meshsdk/core-csl 1.7.20 → 1.7.21

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs CHANGED
@@ -70,6 +70,7 @@ __export(src_exports, {
70
70
  fromBytes: () => fromBytes,
71
71
  fromLovelace: () => fromLovelace,
72
72
  fromUTF8: () => fromUTF8,
73
+ getDRepIds: () => getDRepIds,
73
74
  getTransactionInputs: () => getTransactionInputs,
74
75
  getV2ScriptHash: () => getV2ScriptHash,
75
76
  keyHashToRewardAddress: () => keyHashToRewardAddress,
@@ -151,10 +152,10 @@ var POLICY_ID_LENGTH = 56;
151
152
 
152
153
  // src/deser/converter.ts
153
154
  var import_json_bigint = __toESM(require("json-bigint"), 1);
154
- var toAddress = (bech32) => csl.Address.from_bech32(bech32);
155
- var toBaseAddress = (bech32) => csl.BaseAddress.from_address(toAddress(bech32));
156
- var toEnterpriseAddress = (bech32) => csl.EnterpriseAddress.from_address(toAddress(bech32));
157
- var toRewardAddress = (bech32) => csl.RewardAddress.from_address(toAddress(bech32));
155
+ var toAddress = (bech322) => csl.Address.from_bech32(bech322);
156
+ var toBaseAddress = (bech322) => csl.BaseAddress.from_address(toAddress(bech322));
157
+ var toEnterpriseAddress = (bech322) => csl.EnterpriseAddress.from_address(toAddress(bech322));
158
+ var toRewardAddress = (bech322) => csl.RewardAddress.from_address(toAddress(bech322));
158
159
  var fromBytes = (bytes) => Buffer.from(bytes).toString("hex");
159
160
  var toBytes = (hex) => {
160
161
  if (hex.length % 2 === 0 && /^[0-9A-F]*$/i.test(hex))
@@ -293,14 +294,14 @@ var deserializeValue = (value) => csl.Value.from_bytes(toBytes(value));
293
294
 
294
295
  // src/deser/resolver.ts
295
296
  var import_common = require("@meshsdk/common");
296
- var resolveStakeKeyHash = (bech32) => {
297
+ var resolveStakeKeyHash = (bech322) => {
297
298
  try {
298
299
  const stakeKeyHash = [
299
- toBaseAddress(bech32)?.stake_cred().to_keyhash(),
300
- toRewardAddress(bech32)?.payment_cred().to_keyhash()
300
+ toBaseAddress(bech322)?.stake_cred().to_keyhash(),
301
+ toRewardAddress(bech322)?.payment_cred().to_keyhash()
301
302
  ].find((kh) => kh !== void 0);
302
303
  if (stakeKeyHash !== void 0) return stakeKeyHash.to_hex();
303
- throw new Error(`Couldn't resolve stake key hash from address: ${bech32}`);
304
+ throw new Error(`Couldn't resolve stake key hash from address: ${bech322}`);
304
305
  } catch (error) {
305
306
  throw new Error(`An error occurred during resolveStakeKeyHash: ${error}.`);
306
307
  }
@@ -342,7 +343,7 @@ var resolveScriptHashDRepId = (scriptHash) => {
342
343
  csl.ScriptHash.from_hex(scriptHash)
343
344
  ).to_bech32();
344
345
  };
345
- var resolveRewardAddress = (bech32) => {
346
+ var resolveRewardAddress = (bech322) => {
346
347
  const buildRewardAddress = (networkId, stakeKeyHash) => {
347
348
  return csl.RewardAddress.new(
348
349
  networkId,
@@ -350,12 +351,12 @@ var resolveRewardAddress = (bech32) => {
350
351
  );
351
352
  };
352
353
  try {
353
- const address = toAddress(bech32);
354
- const baseAddress = toBaseAddress(bech32);
354
+ const address = toAddress(bech322);
355
+ const baseAddress = toBaseAddress(bech322);
355
356
  const stakeKeyHash = baseAddress?.stake_cred().to_keyhash();
356
357
  if (stakeKeyHash !== void 0)
357
358
  return buildRewardAddress(address.network_id(), stakeKeyHash).to_address().to_bech32();
358
- throw new Error(`Couldn't resolve reward address from address: ${bech32}`);
359
+ throw new Error(`Couldn't resolve reward address from address: ${bech322}`);
359
360
  } catch (error) {
360
361
  throw new Error(`An error occurred during resolveRewardAddress: ${error}.`);
361
362
  }
@@ -374,8 +375,8 @@ var serializePoolId = (hash) => {
374
375
  var resolveScriptRef = (script) => {
375
376
  return toScriptRef(script).to_hex();
376
377
  };
377
- var resolveEd25519KeyHash = (bech32) => {
378
- return csl.Ed25519KeyHash.from_bech32(bech32).to_hex();
378
+ var resolveEd25519KeyHash = (bech322) => {
379
+ return csl.Ed25519KeyHash.from_bech32(bech322).to_hex();
379
380
  };
380
381
 
381
382
  // src/utils/scripts.ts
@@ -400,14 +401,14 @@ var serialzeAddress = (deserializedAddress, networkId = 0) => {
400
401
  const addressObj = isPaymentScript ? (0, import_common2.scriptAddress)(paymentHash, stakeHash, isStakeScript) : (0, import_common2.pubKeyAddress)(paymentHash, stakeHash, isStakeScript);
401
402
  return serializeAddressObj(addressObj, networkId);
402
403
  };
403
- var addrBech32ToHex = (bech32) => {
404
- const hexAddress = csl.Address.from_bech32(bech32).to_hex();
404
+ var addrBech32ToHex = (bech322) => {
405
+ const hexAddress = csl.Address.from_bech32(bech322).to_hex();
405
406
  const cslAddress = csl.Address.from_hex(hexAddress);
406
407
  const hex = csl.PlutusData.from_address(cslAddress).to_hex();
407
408
  return hex;
408
409
  };
409
- var addrBech32ToObj = (bech32) => {
410
- const hexAddress = csl.Address.from_bech32(bech32).to_hex();
410
+ var addrBech32ToObj = (bech322) => {
411
+ const hexAddress = csl.Address.from_bech32(bech322).to_hex();
411
412
  const cslAddress = csl.Address.from_hex(hexAddress);
412
413
  const json = JSON.parse(csl.PlutusData.from_address(cslAddress).to_json(1));
413
414
  return json;
@@ -645,6 +646,67 @@ var applyCborEncoding = (rawScript) => {
645
646
  );
646
647
  };
647
648
 
649
+ // src/utils/drep.ts
650
+ var import_base32_encoding = __toESM(require("base32-encoding"), 1);
651
+ var import_bech32 = require("bech32");
652
+ var getDRepIds = (dRepId) => {
653
+ let result = {
654
+ cip105: "",
655
+ cip129: ""
656
+ };
657
+ if (dRepId.length === 58) {
658
+ result.cip129 = dRepId;
659
+ const { prefix, words } = import_bech32.bech32.decode(dRepId);
660
+ if (prefix !== "drep") {
661
+ throw new Error("Malformed CIP129 DRepId");
662
+ }
663
+ const bytes = import_base32_encoding.default.decode(new Uint8Array(words));
664
+ if (bytes[0] === 34) {
665
+ result.cip105 = csl.DRep.new_key_hash(
666
+ csl.Ed25519KeyHash.from_hex(bytes.subarray(1).toString("hex"))
667
+ ).to_bech32();
668
+ } else if (bytes[0] === 35) {
669
+ result.cip105 = csl.DRep.new_script_hash(
670
+ csl.ScriptHash.from_hex(bytes.subarray(1).toString("hex"))
671
+ ).to_bech32();
672
+ } else {
673
+ throw new Error("Malformed CIP129 DRepId");
674
+ }
675
+ } else {
676
+ result.cip105 = dRepId;
677
+ try {
678
+ const cslDRep = csl.DRep.from_bech32(dRepId);
679
+ if (cslDRep.kind() === csl.DRepKind.KeyHash) {
680
+ let rawBytes = cslDRep.to_key_hash()?.to_bytes();
681
+ if (!rawBytes) {
682
+ throw new Error("Malformed key hash in DRepId");
683
+ }
684
+ let rawBytesWithPrefix = new Uint8Array(rawBytes.length + 1);
685
+ rawBytesWithPrefix.set([34]);
686
+ rawBytesWithPrefix.set(rawBytes, 1);
687
+ let base32RawBytes = import_base32_encoding.default.encode(rawBytesWithPrefix);
688
+ result.cip129 = import_bech32.bech32.encode("drep", base32RawBytes);
689
+ } else if (cslDRep.kind() === csl.DRepKind.ScriptHash) {
690
+ let rawBytes = cslDRep.to_script_hash()?.to_bytes();
691
+ if (!rawBytes) {
692
+ throw new Error("Malformed script hash in DRepId");
693
+ }
694
+ let rawBytesWithPrefix = new Uint8Array(rawBytes.length + 1);
695
+ rawBytesWithPrefix.set([35]);
696
+ rawBytesWithPrefix.set(rawBytes, 1);
697
+ let base32RawBytes = import_base32_encoding.default.encode(rawBytesWithPrefix);
698
+ result.cip129 = import_bech32.bech32.encode("drep", base32RawBytes);
699
+ } else {
700
+ throw new Error("Can only calculate DRepIds for script/key DReps");
701
+ }
702
+ } catch (e) {
703
+ console.error(e);
704
+ throw new Error("Malformed DRepId");
705
+ }
706
+ }
707
+ return result;
708
+ };
709
+
648
710
  // src/core/serializer.ts
649
711
  var import_json_bigint2 = __toESM(require("json-bigint"), 1);
650
712
  var import_common4 = require("@meshsdk/common");
@@ -1324,8 +1386,8 @@ var CSLSerializer = class {
1324
1386
  }
1325
1387
  deserializer = {
1326
1388
  key: {
1327
- deserializeAddress: function(bech32) {
1328
- return deserializeBech32Address(bech32);
1389
+ deserializeAddress: function(bech322) {
1390
+ return deserializeBech32Address(bech322);
1329
1391
  }
1330
1392
  },
1331
1393
  script: {
@@ -1351,17 +1413,17 @@ var CSLSerializer = class {
1351
1413
  };
1352
1414
  resolver = {
1353
1415
  keys: {
1354
- resolveStakeKeyHash: function(bech32) {
1355
- return rewardAddressToKeyHash(bech32) || deserializeBech32Address(bech32).stakeCredentialHash;
1416
+ resolveStakeKeyHash: function(bech322) {
1417
+ return rewardAddressToKeyHash(bech322) || deserializeBech32Address(bech322).stakeCredentialHash;
1356
1418
  },
1357
1419
  resolvePrivateKey: function(words) {
1358
1420
  return resolvePrivateKey(words);
1359
1421
  },
1360
- resolveRewardAddress: function(bech32) {
1361
- return resolveRewardAddress(bech32);
1422
+ resolveRewardAddress: function(bech322) {
1423
+ return resolveRewardAddress(bech322);
1362
1424
  },
1363
- resolveEd25519KeyHash: function(bech32) {
1364
- return resolveEd25519KeyHash(bech32);
1425
+ resolveEd25519KeyHash: function(bech322) {
1426
+ return resolveEd25519KeyHash(bech322);
1365
1427
  }
1366
1428
  },
1367
1429
  tx: {
@@ -1475,6 +1537,7 @@ var OfflineEvaluator = class {
1475
1537
  fromBytes,
1476
1538
  fromLovelace,
1477
1539
  fromUTF8,
1540
+ getDRepIds,
1478
1541
  getTransactionInputs,
1479
1542
  getV2ScriptHash,
1480
1543
  keyHashToRewardAddress,
package/dist/index.d.cts CHANGED
@@ -53,6 +53,11 @@ declare const applyParamsToScript: (rawScript: string, params: object[] | Data[]
53
53
  */
54
54
  declare const applyCborEncoding: (rawScript: string) => string;
55
55
 
56
+ declare const getDRepIds: (dRepId: string) => {
57
+ cip105: string;
58
+ cip129: string;
59
+ };
60
+
56
61
  declare class CSLSerializer implements IMeshTxSerializer {
57
62
  /**
58
63
  * Set to true to enable verbose logging for the txBodyJson prior going into build
@@ -259,4 +264,4 @@ declare class OfflineEvaluator implements IEvaluator {
259
264
  evaluateTx(tx: string): Promise<Omit<Action, "data">[]>;
260
265
  }
261
266
 
262
- export { CSLSerializer, LANGUAGE_VERSIONS, OfflineEvaluator, POLICY_ID_LENGTH, REDEEMER_TAGS, addrBech32ToHex, addrBech32ToObj, applyCborEncoding, applyParamsToScript, baseAddressToStakeAddress, baseCertToObj, builderDataToCbor, calculateTxHash, castDataToPlutusData, castRawDataToJsonString, certificateToObj, collateralTxInToObj, deserializeAddress, deserializeBech32Address, deserializeBip32PrivateKey, deserializeDataHash, deserializeEd25519KeyHash, deserializeEd25519Signature, deserializeNativeScript, deserializePlutusData, deserializePlutusScript, deserializePublicKey, deserializeScriptHash, deserializeScriptRef, deserializeTx, deserializeTxBody, deserializeTxHash, deserializeTxUnspentOutput, deserializeTxWitnessSet, deserializeValue, evaluateTransaction, fromBytes, fromLovelace, fromUTF8, getTransactionInputs, getV2ScriptHash, keyHashToRewardAddress, meshTxBuilderBodyToObj, mintItemToObj, mintParametersObj, nativeMintItemToObj, outputToObj, parseDatumCbor, parseInlineDatum, plutusMintItemToObj, poolIdBech32ToHex, poolIdHexToBech32, poolMetadataToObj, poolParamsToObj, redeemerToObj, relayToObj, resolveDataHash, resolveEd25519KeyHash, resolveNativeScriptAddress, resolveNativeScriptHash, resolveNativeScriptHex, resolvePlutusScriptAddress, resolvePrivateKey, resolveRewardAddress, resolveScriptHashDRepId, resolveScriptRef, resolveStakeKeyHash, rewardAddressToKeyHash, scriptHashToBech32, scriptHashToRewardAddress, scriptSourceToObj, scriptTxInParameterToObj, serializeAddressObj, serializePlutusAddressToBech32, serializePoolId, serialzeAddress, signTransaction, simpleScriptSourceToObj, simpleScriptTxInParameterToObj, skeyToPubKeyHash, toAddress, toBaseAddress, toBytes, toEnterpriseAddress, toLovelace, toNativeScript, toPlutusData, toRewardAddress, toScriptRef, toUTF8, txInParameterToObj, txInToObj, utxoToObj, v2ScriptToBech32, withdrawalToObj };
267
+ export { CSLSerializer, LANGUAGE_VERSIONS, OfflineEvaluator, POLICY_ID_LENGTH, REDEEMER_TAGS, addrBech32ToHex, addrBech32ToObj, applyCborEncoding, applyParamsToScript, baseAddressToStakeAddress, baseCertToObj, builderDataToCbor, calculateTxHash, castDataToPlutusData, castRawDataToJsonString, certificateToObj, collateralTxInToObj, deserializeAddress, deserializeBech32Address, deserializeBip32PrivateKey, deserializeDataHash, deserializeEd25519KeyHash, deserializeEd25519Signature, deserializeNativeScript, deserializePlutusData, deserializePlutusScript, deserializePublicKey, deserializeScriptHash, deserializeScriptRef, deserializeTx, deserializeTxBody, deserializeTxHash, deserializeTxUnspentOutput, deserializeTxWitnessSet, deserializeValue, evaluateTransaction, fromBytes, fromLovelace, fromUTF8, getDRepIds, getTransactionInputs, getV2ScriptHash, keyHashToRewardAddress, meshTxBuilderBodyToObj, mintItemToObj, mintParametersObj, nativeMintItemToObj, outputToObj, parseDatumCbor, parseInlineDatum, plutusMintItemToObj, poolIdBech32ToHex, poolIdHexToBech32, poolMetadataToObj, poolParamsToObj, redeemerToObj, relayToObj, resolveDataHash, resolveEd25519KeyHash, resolveNativeScriptAddress, resolveNativeScriptHash, resolveNativeScriptHex, resolvePlutusScriptAddress, resolvePrivateKey, resolveRewardAddress, resolveScriptHashDRepId, resolveScriptRef, resolveStakeKeyHash, rewardAddressToKeyHash, scriptHashToBech32, scriptHashToRewardAddress, scriptSourceToObj, scriptTxInParameterToObj, serializeAddressObj, serializePlutusAddressToBech32, serializePoolId, serialzeAddress, signTransaction, simpleScriptSourceToObj, simpleScriptTxInParameterToObj, skeyToPubKeyHash, toAddress, toBaseAddress, toBytes, toEnterpriseAddress, toLovelace, toNativeScript, toPlutusData, toRewardAddress, toScriptRef, toUTF8, txInParameterToObj, txInToObj, utxoToObj, v2ScriptToBech32, withdrawalToObj };
package/dist/index.d.ts CHANGED
@@ -53,6 +53,11 @@ declare const applyParamsToScript: (rawScript: string, params: object[] | Data[]
53
53
  */
54
54
  declare const applyCborEncoding: (rawScript: string) => string;
55
55
 
56
+ declare const getDRepIds: (dRepId: string) => {
57
+ cip105: string;
58
+ cip129: string;
59
+ };
60
+
56
61
  declare class CSLSerializer implements IMeshTxSerializer {
57
62
  /**
58
63
  * Set to true to enable verbose logging for the txBodyJson prior going into build
@@ -259,4 +264,4 @@ declare class OfflineEvaluator implements IEvaluator {
259
264
  evaluateTx(tx: string): Promise<Omit<Action, "data">[]>;
260
265
  }
261
266
 
262
- export { CSLSerializer, LANGUAGE_VERSIONS, OfflineEvaluator, POLICY_ID_LENGTH, REDEEMER_TAGS, addrBech32ToHex, addrBech32ToObj, applyCborEncoding, applyParamsToScript, baseAddressToStakeAddress, baseCertToObj, builderDataToCbor, calculateTxHash, castDataToPlutusData, castRawDataToJsonString, certificateToObj, collateralTxInToObj, deserializeAddress, deserializeBech32Address, deserializeBip32PrivateKey, deserializeDataHash, deserializeEd25519KeyHash, deserializeEd25519Signature, deserializeNativeScript, deserializePlutusData, deserializePlutusScript, deserializePublicKey, deserializeScriptHash, deserializeScriptRef, deserializeTx, deserializeTxBody, deserializeTxHash, deserializeTxUnspentOutput, deserializeTxWitnessSet, deserializeValue, evaluateTransaction, fromBytes, fromLovelace, fromUTF8, getTransactionInputs, getV2ScriptHash, keyHashToRewardAddress, meshTxBuilderBodyToObj, mintItemToObj, mintParametersObj, nativeMintItemToObj, outputToObj, parseDatumCbor, parseInlineDatum, plutusMintItemToObj, poolIdBech32ToHex, poolIdHexToBech32, poolMetadataToObj, poolParamsToObj, redeemerToObj, relayToObj, resolveDataHash, resolveEd25519KeyHash, resolveNativeScriptAddress, resolveNativeScriptHash, resolveNativeScriptHex, resolvePlutusScriptAddress, resolvePrivateKey, resolveRewardAddress, resolveScriptHashDRepId, resolveScriptRef, resolveStakeKeyHash, rewardAddressToKeyHash, scriptHashToBech32, scriptHashToRewardAddress, scriptSourceToObj, scriptTxInParameterToObj, serializeAddressObj, serializePlutusAddressToBech32, serializePoolId, serialzeAddress, signTransaction, simpleScriptSourceToObj, simpleScriptTxInParameterToObj, skeyToPubKeyHash, toAddress, toBaseAddress, toBytes, toEnterpriseAddress, toLovelace, toNativeScript, toPlutusData, toRewardAddress, toScriptRef, toUTF8, txInParameterToObj, txInToObj, utxoToObj, v2ScriptToBech32, withdrawalToObj };
267
+ export { CSLSerializer, LANGUAGE_VERSIONS, OfflineEvaluator, POLICY_ID_LENGTH, REDEEMER_TAGS, addrBech32ToHex, addrBech32ToObj, applyCborEncoding, applyParamsToScript, baseAddressToStakeAddress, baseCertToObj, builderDataToCbor, calculateTxHash, castDataToPlutusData, castRawDataToJsonString, certificateToObj, collateralTxInToObj, deserializeAddress, deserializeBech32Address, deserializeBip32PrivateKey, deserializeDataHash, deserializeEd25519KeyHash, deserializeEd25519Signature, deserializeNativeScript, deserializePlutusData, deserializePlutusScript, deserializePublicKey, deserializeScriptHash, deserializeScriptRef, deserializeTx, deserializeTxBody, deserializeTxHash, deserializeTxUnspentOutput, deserializeTxWitnessSet, deserializeValue, evaluateTransaction, fromBytes, fromLovelace, fromUTF8, getDRepIds, getTransactionInputs, getV2ScriptHash, keyHashToRewardAddress, meshTxBuilderBodyToObj, mintItemToObj, mintParametersObj, nativeMintItemToObj, outputToObj, parseDatumCbor, parseInlineDatum, plutusMintItemToObj, poolIdBech32ToHex, poolIdHexToBech32, poolMetadataToObj, poolParamsToObj, redeemerToObj, relayToObj, resolveDataHash, resolveEd25519KeyHash, resolveNativeScriptAddress, resolveNativeScriptHash, resolveNativeScriptHex, resolvePlutusScriptAddress, resolvePrivateKey, resolveRewardAddress, resolveScriptHashDRepId, resolveScriptRef, resolveStakeKeyHash, rewardAddressToKeyHash, scriptHashToBech32, scriptHashToRewardAddress, scriptSourceToObj, scriptTxInParameterToObj, serializeAddressObj, serializePlutusAddressToBech32, serializePoolId, serialzeAddress, signTransaction, simpleScriptSourceToObj, simpleScriptTxInParameterToObj, skeyToPubKeyHash, toAddress, toBaseAddress, toBytes, toEnterpriseAddress, toLovelace, toNativeScript, toPlutusData, toRewardAddress, toScriptRef, toUTF8, txInParameterToObj, txInToObj, utxoToObj, v2ScriptToBech32, withdrawalToObj };
package/dist/index.js CHANGED
@@ -23,10 +23,10 @@ var POLICY_ID_LENGTH = 56;
23
23
 
24
24
  // src/deser/converter.ts
25
25
  import JSONbig from "json-bigint";
26
- var toAddress = (bech32) => csl.Address.from_bech32(bech32);
27
- var toBaseAddress = (bech32) => csl.BaseAddress.from_address(toAddress(bech32));
28
- var toEnterpriseAddress = (bech32) => csl.EnterpriseAddress.from_address(toAddress(bech32));
29
- var toRewardAddress = (bech32) => csl.RewardAddress.from_address(toAddress(bech32));
26
+ var toAddress = (bech322) => csl.Address.from_bech32(bech322);
27
+ var toBaseAddress = (bech322) => csl.BaseAddress.from_address(toAddress(bech322));
28
+ var toEnterpriseAddress = (bech322) => csl.EnterpriseAddress.from_address(toAddress(bech322));
29
+ var toRewardAddress = (bech322) => csl.RewardAddress.from_address(toAddress(bech322));
30
30
  var fromBytes = (bytes) => Buffer.from(bytes).toString("hex");
31
31
  var toBytes = (hex) => {
32
32
  if (hex.length % 2 === 0 && /^[0-9A-F]*$/i.test(hex))
@@ -167,14 +167,14 @@ var deserializeValue = (value) => csl.Value.from_bytes(toBytes(value));
167
167
  import {
168
168
  mnemonicToEntropy
169
169
  } from "@meshsdk/common";
170
- var resolveStakeKeyHash = (bech32) => {
170
+ var resolveStakeKeyHash = (bech322) => {
171
171
  try {
172
172
  const stakeKeyHash = [
173
- toBaseAddress(bech32)?.stake_cred().to_keyhash(),
174
- toRewardAddress(bech32)?.payment_cred().to_keyhash()
173
+ toBaseAddress(bech322)?.stake_cred().to_keyhash(),
174
+ toRewardAddress(bech322)?.payment_cred().to_keyhash()
175
175
  ].find((kh) => kh !== void 0);
176
176
  if (stakeKeyHash !== void 0) return stakeKeyHash.to_hex();
177
- throw new Error(`Couldn't resolve stake key hash from address: ${bech32}`);
177
+ throw new Error(`Couldn't resolve stake key hash from address: ${bech322}`);
178
178
  } catch (error) {
179
179
  throw new Error(`An error occurred during resolveStakeKeyHash: ${error}.`);
180
180
  }
@@ -216,7 +216,7 @@ var resolveScriptHashDRepId = (scriptHash) => {
216
216
  csl.ScriptHash.from_hex(scriptHash)
217
217
  ).to_bech32();
218
218
  };
219
- var resolveRewardAddress = (bech32) => {
219
+ var resolveRewardAddress = (bech322) => {
220
220
  const buildRewardAddress = (networkId, stakeKeyHash) => {
221
221
  return csl.RewardAddress.new(
222
222
  networkId,
@@ -224,12 +224,12 @@ var resolveRewardAddress = (bech32) => {
224
224
  );
225
225
  };
226
226
  try {
227
- const address = toAddress(bech32);
228
- const baseAddress = toBaseAddress(bech32);
227
+ const address = toAddress(bech322);
228
+ const baseAddress = toBaseAddress(bech322);
229
229
  const stakeKeyHash = baseAddress?.stake_cred().to_keyhash();
230
230
  if (stakeKeyHash !== void 0)
231
231
  return buildRewardAddress(address.network_id(), stakeKeyHash).to_address().to_bech32();
232
- throw new Error(`Couldn't resolve reward address from address: ${bech32}`);
232
+ throw new Error(`Couldn't resolve reward address from address: ${bech322}`);
233
233
  } catch (error) {
234
234
  throw new Error(`An error occurred during resolveRewardAddress: ${error}.`);
235
235
  }
@@ -248,8 +248,8 @@ var serializePoolId = (hash) => {
248
248
  var resolveScriptRef = (script) => {
249
249
  return toScriptRef(script).to_hex();
250
250
  };
251
- var resolveEd25519KeyHash = (bech32) => {
252
- return csl.Ed25519KeyHash.from_bech32(bech32).to_hex();
251
+ var resolveEd25519KeyHash = (bech322) => {
252
+ return csl.Ed25519KeyHash.from_bech32(bech322).to_hex();
253
253
  };
254
254
 
255
255
  // src/utils/scripts.ts
@@ -274,14 +274,14 @@ var serialzeAddress = (deserializedAddress, networkId = 0) => {
274
274
  const addressObj = isPaymentScript ? scriptAddress(paymentHash, stakeHash, isStakeScript) : pubKeyAddress(paymentHash, stakeHash, isStakeScript);
275
275
  return serializeAddressObj(addressObj, networkId);
276
276
  };
277
- var addrBech32ToHex = (bech32) => {
278
- const hexAddress = csl.Address.from_bech32(bech32).to_hex();
277
+ var addrBech32ToHex = (bech322) => {
278
+ const hexAddress = csl.Address.from_bech32(bech322).to_hex();
279
279
  const cslAddress = csl.Address.from_hex(hexAddress);
280
280
  const hex = csl.PlutusData.from_address(cslAddress).to_hex();
281
281
  return hex;
282
282
  };
283
- var addrBech32ToObj = (bech32) => {
284
- const hexAddress = csl.Address.from_bech32(bech32).to_hex();
283
+ var addrBech32ToObj = (bech322) => {
284
+ const hexAddress = csl.Address.from_bech32(bech322).to_hex();
285
285
  const cslAddress = csl.Address.from_hex(hexAddress);
286
286
  const json = JSON.parse(csl.PlutusData.from_address(cslAddress).to_json(1));
287
287
  return json;
@@ -519,6 +519,67 @@ var applyCborEncoding = (rawScript) => {
519
519
  );
520
520
  };
521
521
 
522
+ // src/utils/drep.ts
523
+ import base32 from "base32-encoding";
524
+ import { bech32 } from "bech32";
525
+ var getDRepIds = (dRepId) => {
526
+ let result = {
527
+ cip105: "",
528
+ cip129: ""
529
+ };
530
+ if (dRepId.length === 58) {
531
+ result.cip129 = dRepId;
532
+ const { prefix, words } = bech32.decode(dRepId);
533
+ if (prefix !== "drep") {
534
+ throw new Error("Malformed CIP129 DRepId");
535
+ }
536
+ const bytes = base32.decode(new Uint8Array(words));
537
+ if (bytes[0] === 34) {
538
+ result.cip105 = csl.DRep.new_key_hash(
539
+ csl.Ed25519KeyHash.from_hex(bytes.subarray(1).toString("hex"))
540
+ ).to_bech32();
541
+ } else if (bytes[0] === 35) {
542
+ result.cip105 = csl.DRep.new_script_hash(
543
+ csl.ScriptHash.from_hex(bytes.subarray(1).toString("hex"))
544
+ ).to_bech32();
545
+ } else {
546
+ throw new Error("Malformed CIP129 DRepId");
547
+ }
548
+ } else {
549
+ result.cip105 = dRepId;
550
+ try {
551
+ const cslDRep = csl.DRep.from_bech32(dRepId);
552
+ if (cslDRep.kind() === csl.DRepKind.KeyHash) {
553
+ let rawBytes = cslDRep.to_key_hash()?.to_bytes();
554
+ if (!rawBytes) {
555
+ throw new Error("Malformed key hash in DRepId");
556
+ }
557
+ let rawBytesWithPrefix = new Uint8Array(rawBytes.length + 1);
558
+ rawBytesWithPrefix.set([34]);
559
+ rawBytesWithPrefix.set(rawBytes, 1);
560
+ let base32RawBytes = base32.encode(rawBytesWithPrefix);
561
+ result.cip129 = bech32.encode("drep", base32RawBytes);
562
+ } else if (cslDRep.kind() === csl.DRepKind.ScriptHash) {
563
+ let rawBytes = cslDRep.to_script_hash()?.to_bytes();
564
+ if (!rawBytes) {
565
+ throw new Error("Malformed script hash in DRepId");
566
+ }
567
+ let rawBytesWithPrefix = new Uint8Array(rawBytes.length + 1);
568
+ rawBytesWithPrefix.set([35]);
569
+ rawBytesWithPrefix.set(rawBytes, 1);
570
+ let base32RawBytes = base32.encode(rawBytesWithPrefix);
571
+ result.cip129 = bech32.encode("drep", base32RawBytes);
572
+ } else {
573
+ throw new Error("Can only calculate DRepIds for script/key DReps");
574
+ }
575
+ } catch (e) {
576
+ console.error(e);
577
+ throw new Error("Malformed DRepId");
578
+ }
579
+ }
580
+ return result;
581
+ };
582
+
522
583
  // src/core/serializer.ts
523
584
  import JSONbig2 from "json-bigint";
524
585
  import {
@@ -1201,8 +1262,8 @@ var CSLSerializer = class {
1201
1262
  }
1202
1263
  deserializer = {
1203
1264
  key: {
1204
- deserializeAddress: function(bech32) {
1205
- return deserializeBech32Address(bech32);
1265
+ deserializeAddress: function(bech322) {
1266
+ return deserializeBech32Address(bech322);
1206
1267
  }
1207
1268
  },
1208
1269
  script: {
@@ -1228,17 +1289,17 @@ var CSLSerializer = class {
1228
1289
  };
1229
1290
  resolver = {
1230
1291
  keys: {
1231
- resolveStakeKeyHash: function(bech32) {
1232
- return rewardAddressToKeyHash(bech32) || deserializeBech32Address(bech32).stakeCredentialHash;
1292
+ resolveStakeKeyHash: function(bech322) {
1293
+ return rewardAddressToKeyHash(bech322) || deserializeBech32Address(bech322).stakeCredentialHash;
1233
1294
  },
1234
1295
  resolvePrivateKey: function(words) {
1235
1296
  return resolvePrivateKey(words);
1236
1297
  },
1237
- resolveRewardAddress: function(bech32) {
1238
- return resolveRewardAddress(bech32);
1298
+ resolveRewardAddress: function(bech322) {
1299
+ return resolveRewardAddress(bech322);
1239
1300
  },
1240
- resolveEd25519KeyHash: function(bech32) {
1241
- return resolveEd25519KeyHash(bech32);
1301
+ resolveEd25519KeyHash: function(bech322) {
1302
+ return resolveEd25519KeyHash(bech322);
1242
1303
  }
1243
1304
  },
1244
1305
  tx: {
@@ -1351,6 +1412,7 @@ export {
1351
1412
  fromBytes,
1352
1413
  fromLovelace,
1353
1414
  fromUTF8,
1415
+ getDRepIds,
1354
1416
  getTransactionInputs,
1355
1417
  getV2ScriptHash,
1356
1418
  keyHashToRewardAddress,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@meshsdk/core-csl",
3
- "version": "1.7.20",
3
+ "version": "1.7.21",
4
4
  "description": "Types and utilities functions between Mesh and cardano-serialization-lib",
5
5
  "main": "./dist/index.cjs",
6
6
  "module": "./dist/index.js",
@@ -31,7 +31,7 @@
31
31
  },
32
32
  "devDependencies": {
33
33
  "@meshsdk/configs": "*",
34
- "@meshsdk/provider": "1.7.20",
34
+ "@meshsdk/provider": "1.7.21",
35
35
  "@types/json-bigint": "^1.0.4",
36
36
  "eslint": "^8.57.0",
37
37
  "ts-jest": "^29.1.4",
@@ -39,9 +39,12 @@
39
39
  "typescript": "^5.3.3"
40
40
  },
41
41
  "dependencies": {
42
- "@meshsdk/common": "1.7.20",
42
+ "@meshsdk/common": "1.7.21",
43
43
  "@sidan-lab/sidan-csl-rs-browser": "0.9.6",
44
44
  "@sidan-lab/sidan-csl-rs-nodejs": "0.9.6",
45
+ "@types/base32-encoding": "^1.0.2",
46
+ "base32-encoding": "^1.0.0",
47
+ "bech32": "^2.0.0",
45
48
  "json-bigint": "^1.0.0"
46
49
  },
47
50
  "prettier": "@meshsdk/configs/prettier",