@meshsdk/core-csl 1.6.0-alpha.8 → 1.6.1

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.
Files changed (70) hide show
  1. package/README.md +3 -7
  2. package/dist/index.cjs +932 -0
  3. package/dist/index.d.cts +119 -0
  4. package/dist/index.d.ts +119 -0
  5. package/dist/index.js +839 -0
  6. package/package.json +55 -49
  7. package/dist/cjs/core/builder.d.ts +0 -10
  8. package/dist/cjs/core/builder.js +0 -56
  9. package/dist/cjs/core/index.d.ts +0 -1
  10. package/dist/cjs/core/index.js +0 -17
  11. package/dist/cjs/deser/constants.d.ts +0 -12
  12. package/dist/cjs/deser/constants.js +0 -15
  13. package/dist/cjs/deser/converter.d.ts +0 -13
  14. package/dist/cjs/deser/converter.js +0 -80
  15. package/dist/cjs/deser/csl.d.ts +0 -1
  16. package/dist/cjs/deser/csl.js +0 -27
  17. package/dist/cjs/deser/deserializer.d.ts +0 -19
  18. package/dist/cjs/deser/deserializer.js +0 -40
  19. package/dist/cjs/deser/index.d.ts +0 -4
  20. package/dist/cjs/deser/index.js +0 -20
  21. package/dist/cjs/index.d.ts +0 -3
  22. package/dist/cjs/index.js +0 -19
  23. package/dist/cjs/utils/address.d.ts +0 -13
  24. package/dist/cjs/utils/address.js +0 -44
  25. package/dist/cjs/utils/aiken.d.ts +0 -10
  26. package/dist/cjs/utils/aiken.js +0 -42
  27. package/dist/cjs/utils/credentials.d.ts +0 -1
  28. package/dist/cjs/utils/credentials.js +0 -10
  29. package/dist/cjs/utils/datum.d.ts +0 -4
  30. package/dist/cjs/utils/datum.js +0 -18
  31. package/dist/cjs/utils/index.d.ts +0 -7
  32. package/dist/cjs/utils/index.js +0 -23
  33. package/dist/cjs/utils/scripts.d.ts +0 -1
  34. package/dist/cjs/utils/scripts.js +0 -6
  35. package/dist/cjs/utils/staking.d.ts +0 -3
  36. package/dist/cjs/utils/staking.js +0 -25
  37. package/dist/cjs/utils/transaction.d.ts +0 -2
  38. package/dist/cjs/utils/transaction.js +0 -15
  39. package/dist/mjs/core/builder.d.ts +0 -10
  40. package/dist/mjs/core/builder.js +0 -52
  41. package/dist/mjs/core/index.d.ts +0 -1
  42. package/dist/mjs/core/index.js +0 -1
  43. package/dist/mjs/deser/constants.d.ts +0 -12
  44. package/dist/mjs/deser/constants.js +0 -12
  45. package/dist/mjs/deser/converter.d.ts +0 -13
  46. package/dist/mjs/deser/converter.js +0 -63
  47. package/dist/mjs/deser/csl.d.ts +0 -1
  48. package/dist/mjs/deser/csl.js +0 -1
  49. package/dist/mjs/deser/deserializer.d.ts +0 -19
  50. package/dist/mjs/deser/deserializer.js +0 -20
  51. package/dist/mjs/deser/index.d.ts +0 -4
  52. package/dist/mjs/deser/index.js +0 -4
  53. package/dist/mjs/index.d.ts +0 -3
  54. package/dist/mjs/index.js +0 -3
  55. package/dist/mjs/utils/address.d.ts +0 -13
  56. package/dist/mjs/utils/address.js +0 -34
  57. package/dist/mjs/utils/aiken.d.ts +0 -10
  58. package/dist/mjs/utils/aiken.js +0 -38
  59. package/dist/mjs/utils/credentials.d.ts +0 -1
  60. package/dist/mjs/utils/credentials.js +0 -6
  61. package/dist/mjs/utils/datum.d.ts +0 -4
  62. package/dist/mjs/utils/datum.js +0 -13
  63. package/dist/mjs/utils/index.d.ts +0 -7
  64. package/dist/mjs/utils/index.js +0 -7
  65. package/dist/mjs/utils/scripts.d.ts +0 -1
  66. package/dist/mjs/utils/scripts.js +0 -2
  67. package/dist/mjs/utils/staking.d.ts +0 -3
  68. package/dist/mjs/utils/staking.js +0 -18
  69. package/dist/mjs/utils/transaction.d.ts +0 -2
  70. package/dist/mjs/utils/transaction.js +0 -10
package/dist/index.js ADDED
@@ -0,0 +1,839 @@
1
+ // src/utils/address.ts
2
+ import {
3
+ pubKeyAddress,
4
+ scriptAddress
5
+ } from "@meshsdk/common";
6
+
7
+ // src/deser/csl.ts
8
+ import * as csl from "@sidan-lab/sidan-csl-rs-nodejs";
9
+
10
+ // src/deser/constants.ts
11
+ var LANGUAGE_VERSIONS = {
12
+ V1: csl.Language.new_plutus_v1(),
13
+ V2: csl.Language.new_plutus_v2(),
14
+ V3: csl.Language.new_plutus_v3()
15
+ };
16
+ var REDEEMER_TAGS = {
17
+ CERT: csl.RedeemerTag.new_cert(),
18
+ MINT: csl.RedeemerTag.new_mint(),
19
+ REWARD: csl.RedeemerTag.new_reward(),
20
+ SPEND: csl.RedeemerTag.new_spend()
21
+ };
22
+ var POLICY_ID_LENGTH = 56;
23
+
24
+ // src/deser/converter.ts
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));
30
+ var fromBytes = (bytes) => Buffer.from(bytes).toString("hex");
31
+ var toBytes = (hex) => {
32
+ if (hex.length % 2 === 0 && /^[0-9A-F]*$/i.test(hex))
33
+ return Buffer.from(hex, "hex");
34
+ return Buffer.from(hex, "utf-8");
35
+ };
36
+ var fromUTF8 = (utf8) => {
37
+ if (utf8.length % 2 === 0 && /^[0-9A-F]*$/i.test(utf8)) return utf8;
38
+ return fromBytes(Buffer.from(utf8, "utf-8"));
39
+ };
40
+ var toUTF8 = (hex) => Buffer.from(hex, "hex").toString("utf-8");
41
+ var fromLovelace = (lovelace) => lovelace / 1e6;
42
+ var toLovelace = (ada) => ada * 1e6;
43
+ var toScriptRef = (script) => {
44
+ if ("code" in script) {
45
+ const plutusScript = deserializePlutusScript(script.code, script.version);
46
+ return csl.ScriptRef.new_plutus_script(plutusScript);
47
+ }
48
+ return csl.ScriptRef.new_native_script(toNativeScript(script));
49
+ };
50
+ var toPlutusData = (data) => {
51
+ const toPlutusList = (dataArray) => {
52
+ const plutusList = csl.PlutusList.new();
53
+ dataArray.forEach((element) => {
54
+ plutusList.add(toPlutusData(element));
55
+ });
56
+ return plutusList;
57
+ };
58
+ switch (typeof data) {
59
+ case "string":
60
+ return csl.PlutusData.new_bytes(toBytes(data));
61
+ case "number":
62
+ return csl.PlutusData.new_integer(csl.BigInt.from_str(data.toString()));
63
+ case "bigint":
64
+ return csl.PlutusData.new_integer(csl.BigInt.from_str(data.toString()));
65
+ case "object":
66
+ if (data instanceof Array) {
67
+ const plutusList = toPlutusList(data);
68
+ return csl.PlutusData.new_list(plutusList);
69
+ }
70
+ if (data instanceof Map) {
71
+ const plutusMap = csl.PlutusMap.new();
72
+ data.forEach((value, key) => {
73
+ const plutusMapValue = csl.PlutusMapValues.new();
74
+ plutusMapValue.add(toPlutusData(value));
75
+ plutusMap.insert(toPlutusData(key), plutusMapValue);
76
+ });
77
+ return csl.PlutusData.new_map(plutusMap);
78
+ }
79
+ return csl.PlutusData.new_constr_plutus_data(
80
+ csl.ConstrPlutusData.new(
81
+ csl.BigNum.from_str(data.alternative.toString()),
82
+ toPlutusList(data.fields)
83
+ )
84
+ );
85
+ }
86
+ };
87
+ var castRawDataToJsonString = (rawData) => {
88
+ if (typeof rawData === "object") {
89
+ return JSONbig.stringify(rawData);
90
+ }
91
+ return rawData;
92
+ };
93
+ var castDataToPlutusData = ({
94
+ type,
95
+ content
96
+ }) => {
97
+ if (type === "Mesh") {
98
+ return toPlutusData(content);
99
+ }
100
+ if (type === "CBOR") {
101
+ return csl.PlutusData.from_hex(content);
102
+ }
103
+ return csl.PlutusData.from_json(
104
+ content,
105
+ csl.PlutusDatumSchema.DetailedSchema
106
+ );
107
+ };
108
+ var toNativeScript = (script) => {
109
+ const toNativeScripts = (scripts) => {
110
+ const nativeScripts = csl.NativeScripts.new();
111
+ scripts.forEach((script2) => {
112
+ nativeScripts.add(toNativeScript(script2));
113
+ });
114
+ return nativeScripts;
115
+ };
116
+ switch (script.type) {
117
+ case "all":
118
+ return csl.NativeScript.new_script_all(
119
+ csl.ScriptAll.new(toNativeScripts(script.scripts))
120
+ );
121
+ case "any":
122
+ return csl.NativeScript.new_script_any(
123
+ csl.ScriptAny.new(toNativeScripts(script.scripts))
124
+ );
125
+ case "atLeast":
126
+ return csl.NativeScript.new_script_n_of_k(
127
+ csl.ScriptNOfK.new(script.required, toNativeScripts(script.scripts))
128
+ );
129
+ case "after":
130
+ return csl.NativeScript.new_timelock_start(
131
+ csl.TimelockStart.new_timelockstart(csl.BigNum.from_str(script.slot))
132
+ );
133
+ case "before":
134
+ return csl.NativeScript.new_timelock_expiry(
135
+ csl.TimelockExpiry.new_timelockexpiry(csl.BigNum.from_str(script.slot))
136
+ );
137
+ case "sig":
138
+ return csl.NativeScript.new_script_pubkey(
139
+ csl.ScriptPubkey.new(deserializeEd25519KeyHash(script.keyHash))
140
+ );
141
+ }
142
+ };
143
+
144
+ // src/deser/deserializer.ts
145
+ var deserializeAddress = (address) => csl.Address.from_bytes(toBytes(address));
146
+ var deserializeBip32PrivateKey = (bip32PrivateKey) => csl.Bip32PrivateKey.from_bytes(toBytes(bip32PrivateKey));
147
+ var deserializeDataHash = (dataHash) => csl.DataHash.from_bytes(toBytes(dataHash));
148
+ var deserializeEd25519KeyHash = (ed25519KeyHash) => csl.Ed25519KeyHash.from_bytes(toBytes(ed25519KeyHash));
149
+ var deserializeEd25519Signature = (ed25519Signature) => csl.Ed25519Signature.from_bytes(toBytes(ed25519Signature));
150
+ var deserializeNativeScript = (nativeScript) => csl.NativeScript.from_bytes(toBytes(nativeScript));
151
+ var deserializePublicKey = (publicKey) => csl.PublicKey.from_bytes(toBytes(publicKey));
152
+ var deserializePlutusData = (plutusData) => csl.PlutusData.from_bytes(toBytes(plutusData));
153
+ var deserializePlutusScript = (plutusScript, version) => csl.PlutusScript.from_bytes_with_version(
154
+ toBytes(plutusScript),
155
+ LANGUAGE_VERSIONS[version]
156
+ );
157
+ var deserializeScriptRef = (scriptRef) => csl.ScriptRef.from_bytes(toBytes(scriptRef));
158
+ var deserializeScriptHash = (scriptHash) => csl.ScriptHash.from_bytes(toBytes(scriptHash));
159
+ var deserializeTx = (tx) => csl.Transaction.from_bytes(toBytes(tx));
160
+ var deserializeTxBody = (txBody) => csl.TransactionBody.from_bytes(toBytes(txBody));
161
+ var deserializeTxHash = (txHash) => csl.TransactionHash.from_bytes(toBytes(txHash));
162
+ var deserializeTxUnspentOutput = (txUnspentOutput) => csl.TransactionUnspentOutput.from_bytes(toBytes(txUnspentOutput));
163
+ var deserializeTxWitnessSet = (txWitnessSet) => csl.TransactionWitnessSet.from_bytes(toBytes(txWitnessSet));
164
+ var deserializeValue = (value) => csl.Value.from_bytes(toBytes(value));
165
+
166
+ // src/deser/resolver.ts
167
+ import {
168
+ mnemonicToEntropy
169
+ } from "@meshsdk/common";
170
+ var resolveStakeKeyHash = (bech32) => {
171
+ try {
172
+ const stakeKeyHash = [
173
+ toBaseAddress(bech32)?.stake_cred().to_keyhash(),
174
+ toRewardAddress(bech32)?.payment_cred().to_keyhash()
175
+ ].find((kh) => kh !== void 0);
176
+ if (stakeKeyHash !== void 0) return stakeKeyHash.to_hex();
177
+ throw new Error(`Couldn't resolve stake key hash from address: ${bech32}`);
178
+ } catch (error) {
179
+ throw new Error(`An error occurred during resolveStakeKeyHash: ${error}.`);
180
+ }
181
+ };
182
+ var resolvePrivateKey = (words) => {
183
+ const buildBip32PrivateKey = (entropy2, password = "") => {
184
+ return csl.Bip32PrivateKey.from_bip39_entropy(
185
+ toBytes(entropy2),
186
+ toBytes(fromUTF8(password))
187
+ );
188
+ };
189
+ const entropy = mnemonicToEntropy(words.join(" "));
190
+ const bip32PrivateKey = buildBip32PrivateKey(entropy);
191
+ const bech32PrivateKey = bip32PrivateKey.to_bech32();
192
+ bip32PrivateKey.free();
193
+ return bech32PrivateKey;
194
+ };
195
+ var resolveNativeScriptAddress = (script, networkId = 0) => {
196
+ const nativeScript = toNativeScript(script);
197
+ const enterpriseAddress = csl.EnterpriseAddress.new(
198
+ networkId,
199
+ csl.Credential.from_scripthash(nativeScript.hash())
200
+ );
201
+ return enterpriseAddress.to_address().to_bech32();
202
+ };
203
+ var resolvePlutusScriptAddress = (script, networkId = 0) => {
204
+ const plutusScript = deserializePlutusScript(script.code, script.version);
205
+ const enterpriseAddress = csl.EnterpriseAddress.new(
206
+ networkId,
207
+ csl.Credential.from_scripthash(plutusScript.hash())
208
+ );
209
+ return enterpriseAddress.to_address().to_bech32();
210
+ };
211
+ var resolveNativeScriptHash = (script) => {
212
+ return toNativeScript(script).hash().to_hex();
213
+ };
214
+ var resolveRewardAddress = (bech32) => {
215
+ const buildRewardAddress = (networkId, stakeKeyHash) => {
216
+ return csl.RewardAddress.new(
217
+ networkId,
218
+ csl.Credential.from_keyhash(stakeKeyHash)
219
+ );
220
+ };
221
+ try {
222
+ const address = toAddress(bech32);
223
+ const baseAddress = toBaseAddress(bech32);
224
+ const stakeKeyHash = baseAddress?.stake_cred().to_keyhash();
225
+ if (stakeKeyHash !== void 0)
226
+ return buildRewardAddress(address.network_id(), stakeKeyHash).to_address().to_bech32();
227
+ throw new Error(`Couldn't resolve reward address from address: ${bech32}`);
228
+ } catch (error) {
229
+ throw new Error(`An error occurred during resolveRewardAddress: ${error}.`);
230
+ }
231
+ };
232
+ var resolveDataHash = (data) => {
233
+ const plutusData = toPlutusData(data);
234
+ const dataHash = csl.hash_plutus_data(plutusData);
235
+ return dataHash.to_hex();
236
+ };
237
+ var resolveNativeScriptHex = (script) => {
238
+ return toNativeScript(script).to_hex();
239
+ };
240
+ var resolvePoolId = (hash) => {
241
+ return csl.Ed25519KeyHash.from_hex(hash).to_bech32("pool1");
242
+ };
243
+ var resolveScriptRef = (script) => {
244
+ return toScriptRef(script).to_hex();
245
+ };
246
+ var resolveEd25519KeyHash = (bech32) => {
247
+ return csl.Ed25519KeyHash.from_bech32(bech32).to_hex();
248
+ };
249
+
250
+ // src/utils/scripts.ts
251
+ var getV2ScriptHash = (script) => csl.get_v2_script_hash(script);
252
+
253
+ // src/utils/address.ts
254
+ var serialzeAddress = (deserializedAddress, networkId = 0) => {
255
+ const {
256
+ pubKeyHash,
257
+ scriptHash,
258
+ stakeCredentialHash,
259
+ stakeScriptCredentialHash
260
+ } = deserializedAddress;
261
+ const isPaymentScript = !pubKeyHash;
262
+ const isStakeScript = !stakeCredentialHash;
263
+ const paymentHash = isPaymentScript ? scriptHash : pubKeyHash;
264
+ const stakeHash = isStakeScript ? stakeScriptCredentialHash : stakeCredentialHash;
265
+ if (!paymentHash)
266
+ throw new Error(
267
+ "Error: serializeAddress: Address must contain a payment part"
268
+ );
269
+ const addressObj = isPaymentScript ? pubKeyAddress(paymentHash, stakeHash, isStakeScript) : scriptAddress(paymentHash, stakeHash, isStakeScript);
270
+ return serializeAddressObj(addressObj, networkId);
271
+ };
272
+ var addrBech32ToHex = (bech32) => {
273
+ const hexAddress = csl.Address.from_bech32(bech32).to_hex();
274
+ const cslAddress = csl.Address.from_hex(hexAddress);
275
+ const hex = csl.PlutusData.from_address(cslAddress).to_hex();
276
+ return hex;
277
+ };
278
+ var addrBech32ToObj = (bech32) => {
279
+ const hexAddress = csl.Address.from_bech32(bech32).to_hex();
280
+ const cslAddress = csl.Address.from_hex(hexAddress);
281
+ const json = JSON.parse(csl.PlutusData.from_address(cslAddress).to_json(1));
282
+ return json;
283
+ };
284
+ var serializeAddressObj = (plutusDataAddressObject, networkId = 0) => {
285
+ const bech32Addr = csl.parse_plutus_address_obj_to_bech32(
286
+ JSON.stringify(plutusDataAddressObject),
287
+ networkId
288
+ );
289
+ return bech32Addr;
290
+ };
291
+ var serializePlutusAddressToBech32 = (plutusHex, networkId = 0) => {
292
+ const cslPlutusDataAddress = csl.PlutusData.from_hex(plutusHex);
293
+ const plutusDataAddressObject = JSON.parse(
294
+ cslPlutusDataAddress.to_json(csl.PlutusDatumSchema.DetailedSchema)
295
+ );
296
+ return serializeAddressObj(plutusDataAddressObject, networkId);
297
+ };
298
+ var deserializeBech32Address = (bech32Addr) => {
299
+ const serializedAddress = csl.serialize_bech32_address(bech32Addr);
300
+ return {
301
+ pubKeyHash: serializedAddress.get_pub_key_hash(),
302
+ scriptHash: serializedAddress.get_script_hash(),
303
+ stakeCredentialHash: serializedAddress.get_stake_key_hash(),
304
+ stakeScriptCredentialHash: serializedAddress.get_stake_key_script_hash()
305
+ };
306
+ };
307
+ var scriptHashToBech32 = (scriptHash, stakeCredentialHash, networkId = 0, isScriptStakeCredentialHash = false) => csl.wasm_script_to_address(
308
+ networkId,
309
+ scriptHash,
310
+ stakeCredentialHash,
311
+ isScriptStakeCredentialHash
312
+ );
313
+ var v2ScriptToBech32 = (scriptCbor, stakeCredential, networkId = 0, isScriptStakeCredential = false) => scriptHashToBech32(
314
+ getV2ScriptHash(scriptCbor),
315
+ stakeCredential,
316
+ networkId,
317
+ isScriptStakeCredential
318
+ );
319
+
320
+ // src/utils/datum.ts
321
+ var parseInlineDatum = (utxo) => {
322
+ const datumCbor = utxo.inline_datum || "";
323
+ const parsedDatum = csl.PlutusData.from_hex(datumCbor);
324
+ const datum = JSON.parse(parsedDatum.to_json(1));
325
+ return datum;
326
+ };
327
+ var parseDatumCbor = (datumCbor) => {
328
+ const parsedDatum = csl.PlutusData.from_hex(datumCbor);
329
+ const datum = JSON.parse(parsedDatum.to_json(1));
330
+ return datum;
331
+ };
332
+
333
+ // src/utils/credentials.ts
334
+ var skeyToPubKeyHash = (skeyHex) => {
335
+ const isHexUnclean = skeyHex.slice(0, 4) === "5820" && skeyHex.length === 68;
336
+ const cleanHex = isHexUnclean ? skeyHex.slice(4) : skeyHex;
337
+ return csl.PrivateKey.from_hex(cleanHex).to_public().hash().to_hex();
338
+ };
339
+
340
+ // src/utils/staking.ts
341
+ var poolIdHexToBech32 = (poolIdHash) => {
342
+ const cslPoolIdHash = csl.Ed25519KeyHash.from_hex(poolIdHash);
343
+ return cslPoolIdHash.to_bech32("pool");
344
+ };
345
+ var poolIdBech32ToHex = (poolIdBech32) => {
346
+ const cslPoolIdHash = csl.Ed25519KeyHash.from_bech32(poolIdBech32);
347
+ return Buffer.from(cslPoolIdHash.to_bytes()).toString("hex");
348
+ };
349
+ var baseAddressToStakeAddress = (baseAddressBech32, network = 1) => {
350
+ const networkId = network === 1 ? csl.NetworkId.mainnet().kind() : csl.NetworkId.testnet().kind();
351
+ const stakeCred = csl.BaseAddress.from_address(
352
+ csl.Address.from_bech32(baseAddressBech32)
353
+ )?.stake_cred();
354
+ if (stakeCred) {
355
+ const stakeAddress = csl.RewardAddress.new(networkId, stakeCred).to_address().to_bech32();
356
+ return stakeAddress;
357
+ }
358
+ return "";
359
+ };
360
+ var rewardAddressToKeyHash = (rewardBech32) => {
361
+ return toRewardAddress(rewardBech32)?.payment_cred().to_keyhash()?.to_hex();
362
+ };
363
+
364
+ // src/utils/transaction.ts
365
+ var calculateTxHash = (txHex) => csl.calculate_tx_hash(txHex);
366
+ var signTransaction = (txHex, signingKeys) => {
367
+ const cslSigningKeys = csl.JsVecString.new();
368
+ signingKeys.forEach((key) => {
369
+ cslSigningKeys.add(key);
370
+ });
371
+ const signedTx = csl.sign_transaction(txHex, cslSigningKeys);
372
+ return signedTx;
373
+ };
374
+
375
+ // src/utils/aiken.ts
376
+ var applyParamsToScript = (rawScript, params, type = "Mesh") => {
377
+ const cslParams = csl.JsVecString.new();
378
+ let paramType = csl.BuilderDataType.CBOR;
379
+ switch (type) {
380
+ case "JSON":
381
+ paramType = csl.BuilderDataType.JSON;
382
+ params.forEach((param) => {
383
+ if (typeof param === "object") {
384
+ cslParams.add(JSON.stringify(param));
385
+ } else if (typeof param === "string") {
386
+ cslParams.add(param);
387
+ }
388
+ });
389
+ break;
390
+ case "Mesh":
391
+ params.forEach((param) => {
392
+ const paramCbor = toPlutusData(param);
393
+ cslParams.add(paramCbor.to_hex());
394
+ });
395
+ break;
396
+ default:
397
+ params.forEach((param) => {
398
+ cslParams.add(param);
399
+ });
400
+ break;
401
+ }
402
+ return csl.apply_params_to_script(rawScript, cslParams, paramType);
403
+ };
404
+ var applyCborEncoding = (rawScript) => {
405
+ return csl.apply_params_to_script(
406
+ rawScript,
407
+ csl.JsVecString.new(),
408
+ csl.BuilderDataType.CBOR
409
+ );
410
+ };
411
+
412
+ // src/core/serializer.ts
413
+ import JSONbig2 from "json-bigint";
414
+ import {
415
+ DEFAULT_PROTOCOL_PARAMETERS,
416
+ emptyTxBuilderBody
417
+ } from "@meshsdk/common";
418
+
419
+ // src/core/adaptor/index.ts
420
+ import {
421
+ certificateToObj,
422
+ validityRangeToObj
423
+ } from "@meshsdk/common";
424
+
425
+ // src/core/adaptor/data.ts
426
+ var builderDataToCbor = ({ type, content }) => {
427
+ if (type === "Mesh") {
428
+ return toPlutusData(content).to_hex();
429
+ }
430
+ if (type === "CBOR") {
431
+ return csl.PlutusData.from_hex(content).to_hex();
432
+ }
433
+ return csl.PlutusData.from_json(
434
+ content,
435
+ csl.PlutusDatumSchema.DetailedSchema
436
+ ).to_hex();
437
+ };
438
+ var redeemerToObj = (redeemer) => {
439
+ return {
440
+ data: builderDataToCbor(redeemer.data),
441
+ exUnits: redeemer.exUnits
442
+ };
443
+ };
444
+
445
+ // src/core/adaptor/script.ts
446
+ var scriptSourceToObj = (scriptSource) => {
447
+ if (scriptSource.type === "Provided") {
448
+ return {
449
+ providedScriptSource: {
450
+ scriptCbor: scriptSource.script.code,
451
+ languageVersion: scriptSource.script.version.toLocaleLowerCase()
452
+ }
453
+ };
454
+ }
455
+ return {
456
+ inlineScriptSource: {
457
+ refTxIn: {
458
+ txHash: scriptSource.txHash,
459
+ txIndex: scriptSource.txIndex
460
+ },
461
+ spendingScriptHash: scriptSource.scriptHash ?? "",
462
+ languageVersion: scriptSource.version.toLocaleLowerCase(),
463
+ scriptSize: BigInt(scriptSource.scriptSize ?? "0")
464
+ }
465
+ };
466
+ };
467
+ var simpleScriptSourceToObj = (scriptSource) => {
468
+ if (scriptSource.type === "Provided") {
469
+ return {
470
+ providedSimpleScriptSource: {
471
+ scriptCbor: scriptSource.scriptCode
472
+ }
473
+ };
474
+ }
475
+ return {
476
+ inlineSimpleScriptSource: {
477
+ refTxIn: {
478
+ txHash: scriptSource.txHash,
479
+ txIndex: scriptSource.txIndex
480
+ },
481
+ simpleScriptHash: scriptSource.simpleScriptHash ?? ""
482
+ }
483
+ };
484
+ };
485
+
486
+ // src/core/adaptor/mint.ts
487
+ var mintItemToObj = (mintItem) => {
488
+ switch (mintItem.type) {
489
+ case "Plutus":
490
+ return {
491
+ scriptMint: plutusMintItemToObj(mintItem)
492
+ };
493
+ case "Native":
494
+ return {
495
+ simpleScriptMint: nativeMintItemToObj(
496
+ mintItem
497
+ )
498
+ };
499
+ }
500
+ };
501
+ var plutusMintItemToObj = (mintItem) => {
502
+ let scriptSource = scriptSourceToObj(
503
+ mintItem.scriptSource
504
+ );
505
+ return {
506
+ mint: mintParametersObj(mintItem),
507
+ redeemer: mintItem.redeemer ? redeemerToObj(mintItem.redeemer) : null,
508
+ scriptSource
509
+ };
510
+ };
511
+ var nativeMintItemToObj = (mintItem) => {
512
+ return {
513
+ mint: mintParametersObj(mintItem),
514
+ scriptSource: simpleScriptSourceToObj(
515
+ mintItem.scriptSource
516
+ )
517
+ };
518
+ };
519
+ var mintParametersObj = (mintItem) => {
520
+ return {
521
+ policyId: mintItem.policyId,
522
+ assetName: mintItem.assetName,
523
+ amount: BigInt(mintItem.amount)
524
+ };
525
+ };
526
+
527
+ // src/core/adaptor/output.ts
528
+ var outputToObj = (output) => {
529
+ let datum = null;
530
+ if (output.datum) {
531
+ switch (output.datum.type) {
532
+ case "Inline":
533
+ datum = { inline: builderDataToCbor(output.datum.data) };
534
+ break;
535
+ case "Hash":
536
+ datum = { hash: builderDataToCbor(output.datum.data) };
537
+ break;
538
+ }
539
+ }
540
+ const refScript = output.referenceScript;
541
+ return {
542
+ address: output.address,
543
+ amount: output.amount,
544
+ datum,
545
+ referenceScript: output.referenceScript ? {
546
+ providedScriptSource: {
547
+ scriptCbor: refScript.code,
548
+ languageVersion: refScript.version.toLocaleLowerCase()
549
+ }
550
+ } : null
551
+ };
552
+ };
553
+
554
+ // src/core/adaptor/txIn.ts
555
+ var txInToObj = (txIn) => {
556
+ switch (txIn.type) {
557
+ case "PubKey":
558
+ return {
559
+ pubKeyTxIn: {
560
+ txIn: txInParameterToObj(txIn.txIn)
561
+ }
562
+ };
563
+ case "Script":
564
+ return {
565
+ scriptTxIn: {
566
+ txIn: txInParameterToObj(txIn.txIn),
567
+ scriptTxIn: scriptTxInParameterToObj(txIn.scriptTxIn)
568
+ }
569
+ };
570
+ case "SimpleScript":
571
+ return {};
572
+ }
573
+ };
574
+ var collateralTxInToObj = (txIn) => {
575
+ return {
576
+ txIn: txInParameterToObj(txIn.txIn)
577
+ };
578
+ };
579
+ var txInParameterToObj = (txInParameter) => {
580
+ return {
581
+ txHash: txInParameter.txHash,
582
+ txIndex: txInParameter.txIndex,
583
+ amount: txInParameter.amount ?? null,
584
+ address: txInParameter.address ?? null
585
+ };
586
+ };
587
+ var scriptTxInParameterToObj = (scriptTxInParameter) => {
588
+ let scriptSource = null;
589
+ let datumSource = null;
590
+ if (scriptTxInParameter.scriptSource) {
591
+ scriptSource = scriptSourceToObj(scriptTxInParameter.scriptSource);
592
+ }
593
+ if (scriptTxInParameter.datumSource) {
594
+ switch (scriptTxInParameter.datumSource.type) {
595
+ case "Provided":
596
+ datumSource = {
597
+ providedDatumSource: {
598
+ data: builderDataToCbor(scriptTxInParameter.datumSource.data)
599
+ }
600
+ };
601
+ break;
602
+ case "Inline":
603
+ datumSource = {
604
+ inlineDatumSource: {
605
+ txHash: scriptTxInParameter.datumSource.txHash,
606
+ txIndex: scriptTxInParameter.datumSource.txIndex
607
+ }
608
+ };
609
+ break;
610
+ }
611
+ }
612
+ return {
613
+ scriptSource,
614
+ datumSource,
615
+ redeemer: scriptTxInParameter.redeemer ? redeemerToObj(scriptTxInParameter.redeemer) : null
616
+ };
617
+ };
618
+
619
+ // src/core/adaptor/withdrawal.ts
620
+ var withdrawalToObj = (withdrawal) => {
621
+ if ("pubKeyWithdrawal" in withdrawal) {
622
+ return {
623
+ pubKeyWithdrawal: {
624
+ address: withdrawal.pubKeyWithdrawal.address,
625
+ coin: BigInt(withdrawal.pubKeyWithdrawal.coin)
626
+ }
627
+ };
628
+ }
629
+ if (!withdrawal.plutusScriptWithdrawal.scriptSource) {
630
+ throw new Error(
631
+ "withdrawalToObj: missing scriptSource in plutusScriptWithdrawal."
632
+ );
633
+ }
634
+ if (!withdrawal.plutusScriptWithdrawal.redeemer) {
635
+ throw new Error(
636
+ "withdrawalToObj: missing redeemer in plutusScriptWithdrawal."
637
+ );
638
+ }
639
+ return {
640
+ plutusScriptWithdrawal: {
641
+ address: withdrawal.plutusScriptWithdrawal.address,
642
+ coin: BigInt(withdrawal.plutusScriptWithdrawal.coin),
643
+ scriptSource: scriptSourceToObj(
644
+ withdrawal.plutusScriptWithdrawal.scriptSource
645
+ ),
646
+ redeemer: redeemerToObj(withdrawal.plutusScriptWithdrawal.redeemer)
647
+ }
648
+ };
649
+ };
650
+
651
+ // src/core/adaptor/index.ts
652
+ var meshTxBuilderBodyToObj = ({
653
+ inputs,
654
+ outputs,
655
+ collaterals,
656
+ requiredSignatures,
657
+ referenceInputs,
658
+ mints,
659
+ changeAddress,
660
+ metadata,
661
+ validityRange,
662
+ certificates,
663
+ signingKey,
664
+ withdrawals
665
+ }) => {
666
+ return {
667
+ inputs: inputs.map(txInToObj),
668
+ outputs: outputs.map(outputToObj),
669
+ collaterals: collaterals.map(collateralTxInToObj),
670
+ requiredSignatures,
671
+ referenceInputs,
672
+ mints: mints.map((mint) => mintItemToObj(mint)),
673
+ changeAddress,
674
+ metadata,
675
+ validityRange: validityRangeToObj(validityRange),
676
+ certificates: certificates.map(certificateToObj),
677
+ signingKey,
678
+ withdrawals: withdrawals.map(withdrawalToObj)
679
+ };
680
+ };
681
+
682
+ // src/core/serializer.ts
683
+ var CSLSerializer = class {
684
+ protocolParams;
685
+ meshTxBuilderBody = emptyTxBuilderBody();
686
+ constructor(protocolParams) {
687
+ this.protocolParams = protocolParams || DEFAULT_PROTOCOL_PARAMETERS;
688
+ }
689
+ serializeTxBody(txBody, protocolParams) {
690
+ const txBodyJson = JSONbig2.stringify(meshTxBuilderBodyToObj(txBody));
691
+ const params = JSONbig2.stringify(protocolParams || this.protocolParams);
692
+ console.log("txBodyJson", txBodyJson);
693
+ const txBuildResult = csl.js_serialize_tx_body(txBodyJson, params);
694
+ if (txBuildResult.get_status() !== "success") {
695
+ throw new Error(txBuildResult.get_data());
696
+ }
697
+ return txBuildResult.get_data();
698
+ }
699
+ addSigningKeys(txHex, signingKeys) {
700
+ if (signingKeys.length > 0) {
701
+ return signTransaction(txHex, signingKeys);
702
+ }
703
+ return txHex;
704
+ }
705
+ serializeData(data) {
706
+ return builderDataToCbor(data);
707
+ }
708
+ serializeAddress(address, networkId) {
709
+ return serialzeAddress(address, networkId);
710
+ }
711
+ deserializer = {
712
+ key: {
713
+ deserializeAddress: function(bech32) {
714
+ return deserializeBech32Address(bech32);
715
+ }
716
+ },
717
+ script: {
718
+ deserializeNativeScript: function(script) {
719
+ const nativeScript = toNativeScript(script);
720
+ const scriptCbor = nativeScript.to_hex();
721
+ const scriptHash = nativeScript.hash().to_hex();
722
+ return {
723
+ scriptHash,
724
+ scriptCbor
725
+ };
726
+ },
727
+ deserializePlutusScript: function(script) {
728
+ const scriptHash = deserializePlutusScript(script.code, script.version).hash().to_hex();
729
+ return { scriptHash, scriptCbor: script.code };
730
+ }
731
+ }
732
+ };
733
+ resolver = {
734
+ keys: {
735
+ resolveStakeKeyHash: function(bech32) {
736
+ return rewardAddressToKeyHash(bech32) || deserializeBech32Address(bech32).stakeCredentialHash;
737
+ },
738
+ resolvePrivateKey: function(words) {
739
+ return resolvePrivateKey(words);
740
+ },
741
+ resolveRewardAddress: function(bech32) {
742
+ return resolveRewardAddress(bech32);
743
+ },
744
+ resolveEd25519KeyHash: function(bech32) {
745
+ return resolveEd25519KeyHash(bech32);
746
+ }
747
+ },
748
+ tx: {
749
+ resolveTxHash: function(txHex) {
750
+ return calculateTxHash(txHex);
751
+ }
752
+ },
753
+ data: {
754
+ resolveDataHash: function(data) {
755
+ return resolveDataHash(data);
756
+ }
757
+ },
758
+ script: {
759
+ resolveScriptRef: function(script) {
760
+ return resolveScriptRef(script);
761
+ }
762
+ },
763
+ pool: {
764
+ resolvePoolId: function(hash) {
765
+ return resolvePoolId(hash);
766
+ }
767
+ }
768
+ };
769
+ };
770
+ export {
771
+ CSLSerializer,
772
+ LANGUAGE_VERSIONS,
773
+ POLICY_ID_LENGTH,
774
+ REDEEMER_TAGS,
775
+ addrBech32ToHex,
776
+ addrBech32ToObj,
777
+ applyCborEncoding,
778
+ applyParamsToScript,
779
+ baseAddressToStakeAddress,
780
+ calculateTxHash,
781
+ castDataToPlutusData,
782
+ castRawDataToJsonString,
783
+ csl,
784
+ deserializeAddress,
785
+ deserializeBech32Address,
786
+ deserializeBip32PrivateKey,
787
+ deserializeDataHash,
788
+ deserializeEd25519KeyHash,
789
+ deserializeEd25519Signature,
790
+ deserializeNativeScript,
791
+ deserializePlutusData,
792
+ deserializePlutusScript,
793
+ deserializePublicKey,
794
+ deserializeScriptHash,
795
+ deserializeScriptRef,
796
+ deserializeTx,
797
+ deserializeTxBody,
798
+ deserializeTxHash,
799
+ deserializeTxUnspentOutput,
800
+ deserializeTxWitnessSet,
801
+ deserializeValue,
802
+ fromBytes,
803
+ fromLovelace,
804
+ fromUTF8,
805
+ getV2ScriptHash,
806
+ parseDatumCbor,
807
+ parseInlineDatum,
808
+ poolIdBech32ToHex,
809
+ poolIdHexToBech32,
810
+ resolveDataHash,
811
+ resolveEd25519KeyHash,
812
+ resolveNativeScriptAddress,
813
+ resolveNativeScriptHash,
814
+ resolveNativeScriptHex,
815
+ resolvePlutusScriptAddress,
816
+ resolvePoolId,
817
+ resolvePrivateKey,
818
+ resolveRewardAddress,
819
+ resolveScriptRef,
820
+ resolveStakeKeyHash,
821
+ rewardAddressToKeyHash,
822
+ scriptHashToBech32,
823
+ serializeAddressObj,
824
+ serializePlutusAddressToBech32,
825
+ serialzeAddress,
826
+ signTransaction,
827
+ skeyToPubKeyHash,
828
+ toAddress,
829
+ toBaseAddress,
830
+ toBytes,
831
+ toEnterpriseAddress,
832
+ toLovelace,
833
+ toNativeScript,
834
+ toPlutusData,
835
+ toRewardAddress,
836
+ toScriptRef,
837
+ toUTF8,
838
+ v2ScriptToBech32
839
+ };