@meshsdk/core-csl 1.6.1 → 1.6.3

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
@@ -39,9 +39,13 @@ __export(src_exports, {
39
39
  applyCborEncoding: () => applyCborEncoding,
40
40
  applyParamsToScript: () => applyParamsToScript,
41
41
  baseAddressToStakeAddress: () => baseAddressToStakeAddress,
42
+ baseCertToObj: () => baseCertToObj,
43
+ builderDataToCbor: () => builderDataToCbor,
42
44
  calculateTxHash: () => calculateTxHash,
43
45
  castDataToPlutusData: () => castDataToPlutusData,
44
46
  castRawDataToJsonString: () => castRawDataToJsonString,
47
+ certificateToObj: () => certificateToObj,
48
+ collateralTxInToObj: () => collateralTxInToObj,
45
49
  csl: () => csl,
46
50
  deserializeAddress: () => deserializeAddress,
47
51
  deserializeBech32Address: () => deserializeBech32Address,
@@ -65,27 +69,42 @@ __export(src_exports, {
65
69
  fromLovelace: () => fromLovelace,
66
70
  fromUTF8: () => fromUTF8,
67
71
  getV2ScriptHash: () => getV2ScriptHash,
72
+ keyHashToRewardAddress: () => keyHashToRewardAddress,
73
+ meshTxBuilderBodyToObj: () => meshTxBuilderBodyToObj,
74
+ mintItemToObj: () => mintItemToObj,
75
+ mintParametersObj: () => mintParametersObj,
76
+ nativeMintItemToObj: () => nativeMintItemToObj,
77
+ outputToObj: () => outputToObj,
68
78
  parseDatumCbor: () => parseDatumCbor,
69
79
  parseInlineDatum: () => parseInlineDatum,
80
+ plutusMintItemToObj: () => plutusMintItemToObj,
70
81
  poolIdBech32ToHex: () => poolIdBech32ToHex,
71
82
  poolIdHexToBech32: () => poolIdHexToBech32,
83
+ poolMetadataToObj: () => poolMetadataToObj,
84
+ poolParamsToObj: () => poolParamsToObj,
85
+ redeemerToObj: () => redeemerToObj,
86
+ relayToObj: () => relayToObj,
72
87
  resolveDataHash: () => resolveDataHash,
73
88
  resolveEd25519KeyHash: () => resolveEd25519KeyHash,
74
89
  resolveNativeScriptAddress: () => resolveNativeScriptAddress,
75
90
  resolveNativeScriptHash: () => resolveNativeScriptHash,
76
91
  resolveNativeScriptHex: () => resolveNativeScriptHex,
77
92
  resolvePlutusScriptAddress: () => resolvePlutusScriptAddress,
78
- resolvePoolId: () => resolvePoolId,
79
93
  resolvePrivateKey: () => resolvePrivateKey,
80
94
  resolveRewardAddress: () => resolveRewardAddress,
81
95
  resolveScriptRef: () => resolveScriptRef,
82
96
  resolveStakeKeyHash: () => resolveStakeKeyHash,
83
97
  rewardAddressToKeyHash: () => rewardAddressToKeyHash,
84
98
  scriptHashToBech32: () => scriptHashToBech32,
99
+ scriptHashToRewardAddress: () => scriptHashToRewardAddress,
100
+ scriptSourceToObj: () => scriptSourceToObj,
101
+ scriptTxInParameterToObj: () => scriptTxInParameterToObj,
85
102
  serializeAddressObj: () => serializeAddressObj,
86
103
  serializePlutusAddressToBech32: () => serializePlutusAddressToBech32,
104
+ serializePoolId: () => serializePoolId,
87
105
  serialzeAddress: () => serialzeAddress,
88
106
  signTransaction: () => signTransaction,
107
+ simpleScriptSourceToObj: () => simpleScriptSourceToObj,
89
108
  skeyToPubKeyHash: () => skeyToPubKeyHash,
90
109
  toAddress: () => toAddress,
91
110
  toBaseAddress: () => toBaseAddress,
@@ -97,7 +116,11 @@ __export(src_exports, {
97
116
  toRewardAddress: () => toRewardAddress,
98
117
  toScriptRef: () => toScriptRef,
99
118
  toUTF8: () => toUTF8,
100
- v2ScriptToBech32: () => v2ScriptToBech32
119
+ txInParameterToObj: () => txInParameterToObj,
120
+ txInToObj: () => txInToObj,
121
+ utxoToObj: () => utxoToObj,
122
+ v2ScriptToBech32: () => v2ScriptToBech32,
123
+ withdrawalToObj: () => withdrawalToObj
101
124
  });
102
125
  module.exports = __toCommonJS(src_exports);
103
126
 
@@ -335,7 +358,7 @@ var resolveDataHash = (data) => {
335
358
  var resolveNativeScriptHex = (script) => {
336
359
  return toNativeScript(script).to_hex();
337
360
  };
338
- var resolvePoolId = (hash) => {
361
+ var serializePoolId = (hash) => {
339
362
  return csl.Ed25519KeyHash.from_hex(hash).to_bech32("pool1");
340
363
  };
341
364
  var resolveScriptRef = (script) => {
@@ -394,12 +417,12 @@ var serializePlutusAddressToBech32 = (plutusHex, networkId = 0) => {
394
417
  return serializeAddressObj(plutusDataAddressObject, networkId);
395
418
  };
396
419
  var deserializeBech32Address = (bech32Addr) => {
397
- const serializedAddress = csl.serialize_bech32_address(bech32Addr);
420
+ const deserializedAddress = csl.deserialize_bech32_address(bech32Addr);
398
421
  return {
399
- pubKeyHash: serializedAddress.get_pub_key_hash(),
400
- scriptHash: serializedAddress.get_script_hash(),
401
- stakeCredentialHash: serializedAddress.get_stake_key_hash(),
402
- stakeScriptCredentialHash: serializedAddress.get_stake_key_script_hash()
422
+ pubKeyHash: deserializedAddress.get_pub_key_hash(),
423
+ scriptHash: deserializedAddress.get_script_hash(),
424
+ stakeCredentialHash: deserializedAddress.get_stake_key_hash(),
425
+ stakeScriptCredentialHash: deserializedAddress.get_stake_key_script_hash()
403
426
  };
404
427
  };
405
428
  var scriptHashToBech32 = (scriptHash, stakeCredentialHash, networkId = 0, isScriptStakeCredentialHash = false) => csl.wasm_script_to_address(
@@ -458,6 +481,20 @@ var baseAddressToStakeAddress = (baseAddressBech32, network = 1) => {
458
481
  var rewardAddressToKeyHash = (rewardBech32) => {
459
482
  return toRewardAddress(rewardBech32)?.payment_cred().to_keyhash()?.to_hex();
460
483
  };
484
+ var scriptHashToRewardAddress = (scriptHashHex, network = 1) => {
485
+ const networkId = network === 1 ? csl.NetworkId.mainnet().kind() : csl.NetworkId.testnet().kind();
486
+ const scriptHash = csl.ScriptHash.from_hex(scriptHashHex);
487
+ const credential = csl.Credential.from_scripthash(scriptHash);
488
+ const rewardAddress = csl.RewardAddress.new(networkId, credential).to_address().to_bech32();
489
+ return rewardAddress;
490
+ };
491
+ var keyHashToRewardAddress = (keyHashHex, network = 1) => {
492
+ const networkId = network === 1 ? csl.NetworkId.mainnet().kind() : csl.NetworkId.testnet().kind();
493
+ const keyHash = csl.Ed25519KeyHash.from_hex(keyHashHex);
494
+ const credential = csl.Credential.from_scripthash(keyHash);
495
+ const rewardAddress = csl.RewardAddress.new(networkId, credential).to_address().to_bech32();
496
+ return rewardAddress;
497
+ };
461
498
 
462
499
  // src/utils/transaction.ts
463
500
  var calculateTxHash = (txHex) => csl.calculate_tx_hash(txHex);
@@ -497,10 +534,10 @@ var applyParamsToScript = (rawScript, params, type = "Mesh") => {
497
534
  });
498
535
  break;
499
536
  }
500
- return csl.apply_params_to_script(rawScript, cslParams, paramType);
537
+ return csl.js_apply_params_to_script(rawScript, cslParams, paramType);
501
538
  };
502
539
  var applyCborEncoding = (rawScript) => {
503
- return csl.apply_params_to_script(
540
+ return csl.js_apply_params_to_script(
504
541
  rawScript,
505
542
  csl.JsVecString.new(),
506
543
  csl.BuilderDataType.CBOR
@@ -575,6 +612,190 @@ var simpleScriptSourceToObj = (scriptSource) => {
575
612
  };
576
613
  };
577
614
 
615
+ // src/core/adaptor/certificate.ts
616
+ var certificateToObj = (certificate) => {
617
+ const baseCert = certificate.certType;
618
+ switch (certificate.type) {
619
+ case "BasicCertificate":
620
+ return {
621
+ basicCertificate: baseCertToObj(baseCert)
622
+ };
623
+ case "ScriptCertificate":
624
+ return {
625
+ scriptCertificate: {
626
+ cert: baseCertToObj(baseCert),
627
+ redeemer: certificate.redeemer ? redeemerToObj(certificate.redeemer) : null,
628
+ scriptSource: certificate.scriptSource ? scriptSourceToObj(certificate.scriptSource) : null
629
+ }
630
+ };
631
+ case "SimpleScriptCertificate":
632
+ return {
633
+ simpleScriptCertificate: {
634
+ cert: baseCertToObj(baseCert),
635
+ simpleScriptSource: certificate.simpleScriptSource ? simpleScriptSourceToObj(certificate.simpleScriptSource) : null
636
+ }
637
+ };
638
+ }
639
+ };
640
+ var baseCertToObj = (baseCert) => {
641
+ switch (baseCert.type) {
642
+ case "RegisterPool":
643
+ return {
644
+ registerPool: {
645
+ poolParams: poolParamsToObj(baseCert.poolParams)
646
+ }
647
+ };
648
+ case "RegisterStake":
649
+ return {
650
+ registerStake: {
651
+ stakeKeyAddress: baseCert.stakeKeyAddress,
652
+ coin: 2e6
653
+ // TODO: change in conway era
654
+ }
655
+ };
656
+ case "DelegateStake":
657
+ return {
658
+ delegateStake: {
659
+ stakeKeyAddress: baseCert.stakeKeyAddress,
660
+ poolId: baseCert.poolId
661
+ }
662
+ };
663
+ case "DeregisterStake":
664
+ return {
665
+ deregisterStake: {
666
+ stakeKeyAddress: baseCert.stakeKeyAddress
667
+ }
668
+ };
669
+ case "RetirePool":
670
+ return {
671
+ retirePool: {
672
+ poolId: baseCert.poolId,
673
+ epoch: baseCert.epoch
674
+ }
675
+ };
676
+ case "VoteDelegation":
677
+ return {
678
+ voteDelegation: {
679
+ stakeKeyAddress: baseCert.stakeKeyAddress,
680
+ drep: baseCert.drep
681
+ }
682
+ };
683
+ case "StakeAndVoteDelegation":
684
+ return {
685
+ stakeAndVoteDelegation: {
686
+ stakeKeyAddress: baseCert.stakeKeyAddress,
687
+ poolKeyHash: baseCert.poolKeyHash,
688
+ drep: baseCert.drep
689
+ }
690
+ };
691
+ case "StakeRegistrationAndDelegation":
692
+ return {
693
+ stakeRegistrationAndDelegation: {
694
+ stakeKeyAddress: baseCert.stakeKeyAddress,
695
+ poolKeyHash: baseCert.poolKeyHash,
696
+ coin: baseCert.coin
697
+ }
698
+ };
699
+ case "VoteRegistrationAndDelegation":
700
+ return {
701
+ voteRegistrationAndDelegation: {
702
+ stakeKeyAddress: baseCert.stakeKeyAddress,
703
+ drep: baseCert.drep,
704
+ coin: baseCert.coin
705
+ }
706
+ };
707
+ case "StakeVoteRegistrationAndDelegation":
708
+ return {
709
+ stakeVoteRegistrationAndDelegation: {
710
+ stakeKeyAddress: baseCert.stakeKeyAddress,
711
+ poolKeyHash: baseCert.poolKeyHash,
712
+ drep: baseCert.drep,
713
+ coin: baseCert.coin
714
+ }
715
+ };
716
+ case "CommitteeHotAuth":
717
+ return {
718
+ committeeHotAuth: {
719
+ committeeColdKeyAddress: baseCert.committeeColdKeyAddress,
720
+ committeeHotKeyAddress: baseCert.committeeHotKeyAddress
721
+ }
722
+ };
723
+ case "CommitteeColdResign":
724
+ return {
725
+ committeeColdResign: {
726
+ committeeColdKeyAddress: baseCert.committeeColdKeyAddress,
727
+ anchor: baseCert.anchor ?? null
728
+ }
729
+ };
730
+ case "DRepRegistration":
731
+ return {
732
+ dRepRegistration: {
733
+ votingKeyAddress: baseCert.votingKeyAddress,
734
+ coin: baseCert.coin,
735
+ anchor: baseCert.anchor ?? null
736
+ }
737
+ };
738
+ case "DRepDeregistration":
739
+ return {
740
+ dRepDeregistration: {
741
+ votingKeyAddress: baseCert.votingKeyAddress,
742
+ coin: baseCert.coin
743
+ }
744
+ };
745
+ case "DRepUpdate":
746
+ return {
747
+ dRepUpdate: {
748
+ votingKeyAddress: baseCert.votingKeyAddress,
749
+ anchor: baseCert.anchor
750
+ }
751
+ };
752
+ }
753
+ };
754
+ var poolParamsToObj = (poolParams) => {
755
+ return {
756
+ vrfKeyHash: poolParams.vrfKeyHash,
757
+ operator: poolParams.operator,
758
+ pledge: poolParams.pledge,
759
+ cost: poolParams.cost,
760
+ margin: poolParams.margin,
761
+ relays: poolParams.relays.map((relay) => relayToObj(relay)),
762
+ owners: poolParams.owners,
763
+ rewardAddress: poolParams.rewardAddress,
764
+ metadata: poolParams.metadata ? poolMetadataToObj(poolParams.metadata) : void 0
765
+ };
766
+ };
767
+ var poolMetadataToObj = (poolMetadata) => {
768
+ return {
769
+ url: poolMetadata.URL,
770
+ metadata: poolMetadata.hash
771
+ };
772
+ };
773
+ var relayToObj = (relay) => {
774
+ switch (relay.type) {
775
+ case "SingleHostAddr":
776
+ return {
777
+ singleHostAddr: {
778
+ ipv4: relay.IPV4,
779
+ ipv6: relay.IPV6,
780
+ port: relay.port
781
+ }
782
+ };
783
+ case "SingleHostName":
784
+ return {
785
+ singleHostName: {
786
+ hostname: relay.domainName,
787
+ port: relay.port
788
+ }
789
+ };
790
+ case "MultiHostName":
791
+ return {
792
+ multiHostName: {
793
+ dnsName: relay.domainName
794
+ }
795
+ };
796
+ }
797
+ };
798
+
578
799
  // src/core/adaptor/mint.ts
579
800
  var mintItemToObj = (mintItem) => {
580
801
  switch (mintItem.type) {
@@ -710,32 +931,65 @@ var scriptTxInParameterToObj = (scriptTxInParameter) => {
710
931
 
711
932
  // src/core/adaptor/withdrawal.ts
712
933
  var withdrawalToObj = (withdrawal) => {
713
- if ("pubKeyWithdrawal" in withdrawal) {
934
+ if (withdrawal.type === "PubKeyWithdrawal") {
714
935
  return {
715
936
  pubKeyWithdrawal: {
716
- address: withdrawal.pubKeyWithdrawal.address,
717
- coin: BigInt(withdrawal.pubKeyWithdrawal.coin)
937
+ address: withdrawal.address,
938
+ coin: BigInt(withdrawal.coin)
939
+ }
940
+ };
941
+ } else if (withdrawal.type === "ScriptWithdrawal") {
942
+ if (!withdrawal.scriptSource) {
943
+ throw new Error(
944
+ "withdrawalToObj: missing scriptSource in plutusScriptWithdrawal."
945
+ );
946
+ }
947
+ if (!withdrawal.redeemer) {
948
+ throw new Error(
949
+ "withdrawalToObj: missing redeemer in plutusScriptWithdrawal."
950
+ );
951
+ }
952
+ return {
953
+ plutusScriptWithdrawal: {
954
+ address: withdrawal.address,
955
+ coin: BigInt(withdrawal.coin),
956
+ scriptSource: scriptSourceToObj(withdrawal.scriptSource),
957
+ redeemer: redeemerToObj(withdrawal.redeemer)
958
+ }
959
+ };
960
+ } else {
961
+ if (!withdrawal.scriptSource) {
962
+ throw new Error(
963
+ "withdrawalToObj: missing script source in simpleScriptWithdrawal"
964
+ );
965
+ }
966
+ return {
967
+ simpleScriptWithdrawal: {
968
+ address: withdrawal.address,
969
+ coin: BigInt(withdrawal.coin),
970
+ scriptSource: simpleScriptSourceToObj(withdrawal.scriptSource)
718
971
  }
719
972
  };
720
973
  }
721
- if (!withdrawal.plutusScriptWithdrawal.scriptSource) {
722
- throw new Error(
723
- "withdrawalToObj: missing scriptSource in plutusScriptWithdrawal."
724
- );
725
- }
726
- if (!withdrawal.plutusScriptWithdrawal.redeemer) {
727
- throw new Error(
728
- "withdrawalToObj: missing redeemer in plutusScriptWithdrawal."
729
- );
730
- }
974
+ };
975
+
976
+ // src/core/adaptor/utxo.ts
977
+ var utxoToObj = ({
978
+ input: { outputIndex, txHash },
979
+ output: { address, amount, dataHash, plutusData, scriptRef, scriptHash }
980
+ }) => {
731
981
  return {
732
- plutusScriptWithdrawal: {
733
- address: withdrawal.plutusScriptWithdrawal.address,
734
- coin: BigInt(withdrawal.plutusScriptWithdrawal.coin),
735
- scriptSource: scriptSourceToObj(
736
- withdrawal.plutusScriptWithdrawal.scriptSource
737
- ),
738
- redeemer: redeemerToObj(withdrawal.plutusScriptWithdrawal.redeemer)
982
+ input: {
983
+ outputIndex,
984
+ txHash
985
+ },
986
+ output: {
987
+ address,
988
+ amount,
989
+ dataHash: dataHash ?? null,
990
+ plutusData: plutusData ?? null,
991
+ scriptRef: scriptRef ?? null,
992
+ scriptHash: scriptHash ?? null
739
993
  }
740
994
  };
741
995
  };
@@ -765,7 +1019,7 @@ var meshTxBuilderBodyToObj = ({
765
1019
  changeAddress,
766
1020
  metadata,
767
1021
  validityRange: (0, import_common3.validityRangeToObj)(validityRange),
768
- certificates: certificates.map(import_common3.certificateToObj),
1022
+ certificates: certificates.map(certificateToObj),
769
1023
  signingKey,
770
1024
  withdrawals: withdrawals.map(withdrawalToObj)
771
1025
  };
@@ -773,15 +1027,22 @@ var meshTxBuilderBodyToObj = ({
773
1027
 
774
1028
  // src/core/serializer.ts
775
1029
  var CSLSerializer = class {
1030
+ /**
1031
+ * Set to true to enable verbose logging for the txBodyJson prior going into build
1032
+ */
1033
+ verbose;
776
1034
  protocolParams;
777
1035
  meshTxBuilderBody = (0, import_common4.emptyTxBuilderBody)();
778
- constructor(protocolParams) {
1036
+ constructor(protocolParams, verbose = false) {
779
1037
  this.protocolParams = protocolParams || import_common4.DEFAULT_PROTOCOL_PARAMETERS;
1038
+ this.verbose = verbose;
780
1039
  }
781
1040
  serializeTxBody(txBody, protocolParams) {
782
1041
  const txBodyJson = import_json_bigint2.default.stringify(meshTxBuilderBodyToObj(txBody));
783
1042
  const params = import_json_bigint2.default.stringify(protocolParams || this.protocolParams);
784
- console.log("txBodyJson", txBodyJson);
1043
+ if (this.verbose) {
1044
+ console.log("txBodyJson", txBodyJson);
1045
+ }
785
1046
  const txBuildResult = csl.js_serialize_tx_body(txBodyJson, params);
786
1047
  if (txBuildResult.get_status() !== "success") {
787
1048
  throw new Error(txBuildResult.get_data());
@@ -800,6 +1061,12 @@ var CSLSerializer = class {
800
1061
  serializeAddress(address, networkId) {
801
1062
  return serialzeAddress(address, networkId);
802
1063
  }
1064
+ serializePoolId(hash) {
1065
+ return serializePoolId(hash);
1066
+ }
1067
+ serializeRewardAddress(stakeKeyHash, isScriptHash, network_id) {
1068
+ return isScriptHash ? scriptHashToRewardAddress(stakeKeyHash, network_id) : keyHashToRewardAddress(stakeKeyHash, network_id);
1069
+ }
803
1070
  deserializer = {
804
1071
  key: {
805
1072
  deserializeAddress: function(bech32) {
@@ -820,6 +1087,11 @@ var CSLSerializer = class {
820
1087
  const scriptHash = deserializePlutusScript(script.code, script.version).hash().to_hex();
821
1088
  return { scriptHash, scriptCbor: script.code };
822
1089
  }
1090
+ },
1091
+ cert: {
1092
+ deserializePoolId: function(poolId) {
1093
+ return resolveEd25519KeyHash(poolId);
1094
+ }
823
1095
  }
824
1096
  };
825
1097
  resolver = {
@@ -851,11 +1123,6 @@ var CSLSerializer = class {
851
1123
  resolveScriptRef: function(script) {
852
1124
  return resolveScriptRef(script);
853
1125
  }
854
- },
855
- pool: {
856
- resolvePoolId: function(hash) {
857
- return resolvePoolId(hash);
858
- }
859
1126
  }
860
1127
  };
861
1128
  };
@@ -870,9 +1137,13 @@ var CSLSerializer = class {
870
1137
  applyCborEncoding,
871
1138
  applyParamsToScript,
872
1139
  baseAddressToStakeAddress,
1140
+ baseCertToObj,
1141
+ builderDataToCbor,
873
1142
  calculateTxHash,
874
1143
  castDataToPlutusData,
875
1144
  castRawDataToJsonString,
1145
+ certificateToObj,
1146
+ collateralTxInToObj,
876
1147
  csl,
877
1148
  deserializeAddress,
878
1149
  deserializeBech32Address,
@@ -896,27 +1167,42 @@ var CSLSerializer = class {
896
1167
  fromLovelace,
897
1168
  fromUTF8,
898
1169
  getV2ScriptHash,
1170
+ keyHashToRewardAddress,
1171
+ meshTxBuilderBodyToObj,
1172
+ mintItemToObj,
1173
+ mintParametersObj,
1174
+ nativeMintItemToObj,
1175
+ outputToObj,
899
1176
  parseDatumCbor,
900
1177
  parseInlineDatum,
1178
+ plutusMintItemToObj,
901
1179
  poolIdBech32ToHex,
902
1180
  poolIdHexToBech32,
1181
+ poolMetadataToObj,
1182
+ poolParamsToObj,
1183
+ redeemerToObj,
1184
+ relayToObj,
903
1185
  resolveDataHash,
904
1186
  resolveEd25519KeyHash,
905
1187
  resolveNativeScriptAddress,
906
1188
  resolveNativeScriptHash,
907
1189
  resolveNativeScriptHex,
908
1190
  resolvePlutusScriptAddress,
909
- resolvePoolId,
910
1191
  resolvePrivateKey,
911
1192
  resolveRewardAddress,
912
1193
  resolveScriptRef,
913
1194
  resolveStakeKeyHash,
914
1195
  rewardAddressToKeyHash,
915
1196
  scriptHashToBech32,
1197
+ scriptHashToRewardAddress,
1198
+ scriptSourceToObj,
1199
+ scriptTxInParameterToObj,
916
1200
  serializeAddressObj,
917
1201
  serializePlutusAddressToBech32,
1202
+ serializePoolId,
918
1203
  serialzeAddress,
919
1204
  signTransaction,
1205
+ simpleScriptSourceToObj,
920
1206
  skeyToPubKeyHash,
921
1207
  toAddress,
922
1208
  toBaseAddress,
@@ -928,5 +1214,9 @@ var CSLSerializer = class {
928
1214
  toRewardAddress,
929
1215
  toScriptRef,
930
1216
  toUTF8,
931
- v2ScriptToBech32
1217
+ txInParameterToObj,
1218
+ txInToObj,
1219
+ utxoToObj,
1220
+ v2ScriptToBech32,
1221
+ withdrawalToObj
932
1222
  });
package/dist/index.d.cts CHANGED
@@ -1,4 +1,5 @@
1
- import { DeserializedAddress, PubKeyAddress, ScriptAddress, Data, IMeshTxSerializer, Protocol, MeshTxBuilderBody, BuilderData, IDeserializer, IResolver, LanguageVersion, PlutusScript, NativeScript } from '@meshsdk/common';
1
+ import * as _meshsdk_common from '@meshsdk/common';
2
+ import { DeserializedAddress, PubKeyAddress, ScriptAddress, Data, IMeshTxSerializer, Protocol, MeshTxBuilderBody, BuilderData, IDeserializer, IResolver, Certificate, CertificateType, PoolParams, PoolMetadata, Relay, Redeemer, MintItem, Output, ScriptSource, SimpleScriptSourceInfo, TxIn, TxInParameter, ScriptTxInParameter, UTxO, Withdrawal, LanguageVersion, PlutusScript, NativeScript } from '@meshsdk/common';
2
3
  import * as csl from '@sidan-lab/sidan-csl-rs-nodejs';
3
4
  export { csl };
4
5
 
@@ -24,6 +25,8 @@ declare const poolIdHexToBech32: (poolIdHash: string) => string;
24
25
  declare const poolIdBech32ToHex: (poolIdBech32: string) => string;
25
26
  declare const baseAddressToStakeAddress: (baseAddressBech32: string, network?: number) => string;
26
27
  declare const rewardAddressToKeyHash: (rewardBech32: string) => string | undefined;
28
+ declare const scriptHashToRewardAddress: (scriptHashHex: string, network?: number) => string;
29
+ declare const keyHashToRewardAddress: (keyHashHex: string, network?: number) => string;
27
30
 
28
31
  declare const calculateTxHash: (txHex: string) => string;
29
32
  declare const signTransaction: (txHex: string, signingKeys: string[]) => string;
@@ -46,17 +49,66 @@ declare const applyParamsToScript: (rawScript: string, params: object[] | Data[]
46
49
  declare const applyCborEncoding: (rawScript: string) => string;
47
50
 
48
51
  declare class CSLSerializer implements IMeshTxSerializer {
52
+ /**
53
+ * Set to true to enable verbose logging for the txBodyJson prior going into build
54
+ */
55
+ verbose: boolean;
49
56
  protocolParams: Protocol;
50
57
  meshTxBuilderBody: MeshTxBuilderBody;
51
- constructor(protocolParams?: Protocol);
58
+ constructor(protocolParams?: Protocol, verbose?: boolean);
52
59
  serializeTxBody(txBody: MeshTxBuilderBody, protocolParams?: Protocol): string;
53
60
  addSigningKeys(txHex: string, signingKeys: string[]): string;
54
61
  serializeData(data: BuilderData): string;
55
62
  serializeAddress(address: Partial<DeserializedAddress>, networkId?: number): string;
63
+ serializePoolId(hash: string): string;
64
+ serializeRewardAddress(stakeKeyHash: string, isScriptHash?: boolean, network_id?: 0 | 1): string;
56
65
  deserializer: IDeserializer;
57
66
  resolver: IResolver;
58
67
  }
59
68
 
69
+ declare const certificateToObj: (certificate: Certificate) => object;
70
+ declare const baseCertToObj: (baseCert: CertificateType) => object;
71
+ declare const poolParamsToObj: (poolParams: PoolParams) => object;
72
+ declare const poolMetadataToObj: (poolMetadata: PoolMetadata) => object;
73
+ declare const relayToObj: (relay: Relay) => object;
74
+
75
+ declare const builderDataToCbor: ({ type, content }: BuilderData) => string;
76
+ declare const redeemerToObj: (redeemer: Redeemer) => object;
77
+
78
+ declare const mintItemToObj: (mintItem: MintItem) => object;
79
+ declare const plutusMintItemToObj: (mintItem: Required<MintItem>) => object;
80
+ declare const nativeMintItemToObj: (mintItem: Omit<Required<MintItem>, "redeemer">) => object;
81
+ declare const mintParametersObj: (mintItem: MintItem) => object;
82
+
83
+ declare const outputToObj: (output: Output) => object;
84
+
85
+ declare const scriptSourceToObj: (scriptSource: ScriptSource) => object;
86
+ declare const simpleScriptSourceToObj: (scriptSource: SimpleScriptSourceInfo) => object;
87
+
88
+ declare const txInToObj: (txIn: TxIn) => object;
89
+ declare const collateralTxInToObj: (txIn: TxIn) => object;
90
+ declare const txInParameterToObj: (txInParameter: TxInParameter) => object;
91
+ declare const scriptTxInParameterToObj: (scriptTxInParameter: ScriptTxInParameter) => object;
92
+
93
+ declare const utxoToObj: ({ input: { outputIndex, txHash }, output: { address, amount, dataHash, plutusData, scriptRef, scriptHash }, }: UTxO) => object;
94
+
95
+ declare const withdrawalToObj: (withdrawal: Withdrawal) => object;
96
+
97
+ declare const meshTxBuilderBodyToObj: ({ inputs, outputs, collaterals, requiredSignatures, referenceInputs, mints, changeAddress, metadata, validityRange, certificates, signingKey, withdrawals, }: MeshTxBuilderBody) => {
98
+ inputs: object[];
99
+ outputs: object[];
100
+ collaterals: object[];
101
+ requiredSignatures: string[];
102
+ referenceInputs: _meshsdk_common.RefTxIn[];
103
+ mints: object[];
104
+ changeAddress: string;
105
+ metadata: _meshsdk_common.Metadata[];
106
+ validityRange: object;
107
+ certificates: object[];
108
+ signingKey: string[];
109
+ withdrawals: object[];
110
+ };
111
+
60
112
  declare const deserializeAddress: (address: string) => csl.Address;
61
113
  declare const deserializeBip32PrivateKey: (bip32PrivateKey: string) => csl.Bip32PrivateKey;
62
114
  declare const deserializeDataHash: (dataHash: string) => csl.DataHash;
@@ -112,8 +164,8 @@ declare const resolveNativeScriptHash: (script: NativeScript) => string;
112
164
  declare const resolveRewardAddress: (bech32: string) => string;
113
165
  declare const resolveDataHash: (data: Data) => string;
114
166
  declare const resolveNativeScriptHex: (script: NativeScript) => string;
115
- declare const resolvePoolId: (hash: string) => string;
167
+ declare const serializePoolId: (hash: string) => string;
116
168
  declare const resolveScriptRef: (script: PlutusScript | NativeScript) => string;
117
169
  declare const resolveEd25519KeyHash: (bech32: string) => string;
118
170
 
119
- export { CSLSerializer, LANGUAGE_VERSIONS, POLICY_ID_LENGTH, REDEEMER_TAGS, addrBech32ToHex, addrBech32ToObj, applyCborEncoding, applyParamsToScript, baseAddressToStakeAddress, calculateTxHash, castDataToPlutusData, castRawDataToJsonString, deserializeAddress, deserializeBech32Address, deserializeBip32PrivateKey, deserializeDataHash, deserializeEd25519KeyHash, deserializeEd25519Signature, deserializeNativeScript, deserializePlutusData, deserializePlutusScript, deserializePublicKey, deserializeScriptHash, deserializeScriptRef, deserializeTx, deserializeTxBody, deserializeTxHash, deserializeTxUnspentOutput, deserializeTxWitnessSet, deserializeValue, fromBytes, fromLovelace, fromUTF8, getV2ScriptHash, parseDatumCbor, parseInlineDatum, poolIdBech32ToHex, poolIdHexToBech32, resolveDataHash, resolveEd25519KeyHash, resolveNativeScriptAddress, resolveNativeScriptHash, resolveNativeScriptHex, resolvePlutusScriptAddress, resolvePoolId, resolvePrivateKey, resolveRewardAddress, resolveScriptRef, resolveStakeKeyHash, rewardAddressToKeyHash, scriptHashToBech32, serializeAddressObj, serializePlutusAddressToBech32, serialzeAddress, signTransaction, skeyToPubKeyHash, toAddress, toBaseAddress, toBytes, toEnterpriseAddress, toLovelace, toNativeScript, toPlutusData, toRewardAddress, toScriptRef, toUTF8, v2ScriptToBech32 };
171
+ export { CSLSerializer, LANGUAGE_VERSIONS, 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, fromBytes, fromLovelace, fromUTF8, getV2ScriptHash, keyHashToRewardAddress, meshTxBuilderBodyToObj, mintItemToObj, mintParametersObj, nativeMintItemToObj, outputToObj, parseDatumCbor, parseInlineDatum, plutusMintItemToObj, poolIdBech32ToHex, poolIdHexToBech32, poolMetadataToObj, poolParamsToObj, redeemerToObj, relayToObj, resolveDataHash, resolveEd25519KeyHash, resolveNativeScriptAddress, resolveNativeScriptHash, resolveNativeScriptHex, resolvePlutusScriptAddress, resolvePrivateKey, resolveRewardAddress, resolveScriptRef, resolveStakeKeyHash, rewardAddressToKeyHash, scriptHashToBech32, scriptHashToRewardAddress, scriptSourceToObj, scriptTxInParameterToObj, serializeAddressObj, serializePlutusAddressToBech32, serializePoolId, serialzeAddress, signTransaction, simpleScriptSourceToObj, skeyToPubKeyHash, toAddress, toBaseAddress, toBytes, toEnterpriseAddress, toLovelace, toNativeScript, toPlutusData, toRewardAddress, toScriptRef, toUTF8, txInParameterToObj, txInToObj, utxoToObj, v2ScriptToBech32, withdrawalToObj };
package/dist/index.d.ts CHANGED
@@ -1,4 +1,5 @@
1
- import { DeserializedAddress, PubKeyAddress, ScriptAddress, Data, IMeshTxSerializer, Protocol, MeshTxBuilderBody, BuilderData, IDeserializer, IResolver, LanguageVersion, PlutusScript, NativeScript } from '@meshsdk/common';
1
+ import * as _meshsdk_common from '@meshsdk/common';
2
+ import { DeserializedAddress, PubKeyAddress, ScriptAddress, Data, IMeshTxSerializer, Protocol, MeshTxBuilderBody, BuilderData, IDeserializer, IResolver, Certificate, CertificateType, PoolParams, PoolMetadata, Relay, Redeemer, MintItem, Output, ScriptSource, SimpleScriptSourceInfo, TxIn, TxInParameter, ScriptTxInParameter, UTxO, Withdrawal, LanguageVersion, PlutusScript, NativeScript } from '@meshsdk/common';
2
3
  import * as csl from '@sidan-lab/sidan-csl-rs-nodejs';
3
4
  export { csl };
4
5
 
@@ -24,6 +25,8 @@ declare const poolIdHexToBech32: (poolIdHash: string) => string;
24
25
  declare const poolIdBech32ToHex: (poolIdBech32: string) => string;
25
26
  declare const baseAddressToStakeAddress: (baseAddressBech32: string, network?: number) => string;
26
27
  declare const rewardAddressToKeyHash: (rewardBech32: string) => string | undefined;
28
+ declare const scriptHashToRewardAddress: (scriptHashHex: string, network?: number) => string;
29
+ declare const keyHashToRewardAddress: (keyHashHex: string, network?: number) => string;
27
30
 
28
31
  declare const calculateTxHash: (txHex: string) => string;
29
32
  declare const signTransaction: (txHex: string, signingKeys: string[]) => string;
@@ -46,17 +49,66 @@ declare const applyParamsToScript: (rawScript: string, params: object[] | Data[]
46
49
  declare const applyCborEncoding: (rawScript: string) => string;
47
50
 
48
51
  declare class CSLSerializer implements IMeshTxSerializer {
52
+ /**
53
+ * Set to true to enable verbose logging for the txBodyJson prior going into build
54
+ */
55
+ verbose: boolean;
49
56
  protocolParams: Protocol;
50
57
  meshTxBuilderBody: MeshTxBuilderBody;
51
- constructor(protocolParams?: Protocol);
58
+ constructor(protocolParams?: Protocol, verbose?: boolean);
52
59
  serializeTxBody(txBody: MeshTxBuilderBody, protocolParams?: Protocol): string;
53
60
  addSigningKeys(txHex: string, signingKeys: string[]): string;
54
61
  serializeData(data: BuilderData): string;
55
62
  serializeAddress(address: Partial<DeserializedAddress>, networkId?: number): string;
63
+ serializePoolId(hash: string): string;
64
+ serializeRewardAddress(stakeKeyHash: string, isScriptHash?: boolean, network_id?: 0 | 1): string;
56
65
  deserializer: IDeserializer;
57
66
  resolver: IResolver;
58
67
  }
59
68
 
69
+ declare const certificateToObj: (certificate: Certificate) => object;
70
+ declare const baseCertToObj: (baseCert: CertificateType) => object;
71
+ declare const poolParamsToObj: (poolParams: PoolParams) => object;
72
+ declare const poolMetadataToObj: (poolMetadata: PoolMetadata) => object;
73
+ declare const relayToObj: (relay: Relay) => object;
74
+
75
+ declare const builderDataToCbor: ({ type, content }: BuilderData) => string;
76
+ declare const redeemerToObj: (redeemer: Redeemer) => object;
77
+
78
+ declare const mintItemToObj: (mintItem: MintItem) => object;
79
+ declare const plutusMintItemToObj: (mintItem: Required<MintItem>) => object;
80
+ declare const nativeMintItemToObj: (mintItem: Omit<Required<MintItem>, "redeemer">) => object;
81
+ declare const mintParametersObj: (mintItem: MintItem) => object;
82
+
83
+ declare const outputToObj: (output: Output) => object;
84
+
85
+ declare const scriptSourceToObj: (scriptSource: ScriptSource) => object;
86
+ declare const simpleScriptSourceToObj: (scriptSource: SimpleScriptSourceInfo) => object;
87
+
88
+ declare const txInToObj: (txIn: TxIn) => object;
89
+ declare const collateralTxInToObj: (txIn: TxIn) => object;
90
+ declare const txInParameterToObj: (txInParameter: TxInParameter) => object;
91
+ declare const scriptTxInParameterToObj: (scriptTxInParameter: ScriptTxInParameter) => object;
92
+
93
+ declare const utxoToObj: ({ input: { outputIndex, txHash }, output: { address, amount, dataHash, plutusData, scriptRef, scriptHash }, }: UTxO) => object;
94
+
95
+ declare const withdrawalToObj: (withdrawal: Withdrawal) => object;
96
+
97
+ declare const meshTxBuilderBodyToObj: ({ inputs, outputs, collaterals, requiredSignatures, referenceInputs, mints, changeAddress, metadata, validityRange, certificates, signingKey, withdrawals, }: MeshTxBuilderBody) => {
98
+ inputs: object[];
99
+ outputs: object[];
100
+ collaterals: object[];
101
+ requiredSignatures: string[];
102
+ referenceInputs: _meshsdk_common.RefTxIn[];
103
+ mints: object[];
104
+ changeAddress: string;
105
+ metadata: _meshsdk_common.Metadata[];
106
+ validityRange: object;
107
+ certificates: object[];
108
+ signingKey: string[];
109
+ withdrawals: object[];
110
+ };
111
+
60
112
  declare const deserializeAddress: (address: string) => csl.Address;
61
113
  declare const deserializeBip32PrivateKey: (bip32PrivateKey: string) => csl.Bip32PrivateKey;
62
114
  declare const deserializeDataHash: (dataHash: string) => csl.DataHash;
@@ -112,8 +164,8 @@ declare const resolveNativeScriptHash: (script: NativeScript) => string;
112
164
  declare const resolveRewardAddress: (bech32: string) => string;
113
165
  declare const resolveDataHash: (data: Data) => string;
114
166
  declare const resolveNativeScriptHex: (script: NativeScript) => string;
115
- declare const resolvePoolId: (hash: string) => string;
167
+ declare const serializePoolId: (hash: string) => string;
116
168
  declare const resolveScriptRef: (script: PlutusScript | NativeScript) => string;
117
169
  declare const resolveEd25519KeyHash: (bech32: string) => string;
118
170
 
119
- export { CSLSerializer, LANGUAGE_VERSIONS, POLICY_ID_LENGTH, REDEEMER_TAGS, addrBech32ToHex, addrBech32ToObj, applyCborEncoding, applyParamsToScript, baseAddressToStakeAddress, calculateTxHash, castDataToPlutusData, castRawDataToJsonString, deserializeAddress, deserializeBech32Address, deserializeBip32PrivateKey, deserializeDataHash, deserializeEd25519KeyHash, deserializeEd25519Signature, deserializeNativeScript, deserializePlutusData, deserializePlutusScript, deserializePublicKey, deserializeScriptHash, deserializeScriptRef, deserializeTx, deserializeTxBody, deserializeTxHash, deserializeTxUnspentOutput, deserializeTxWitnessSet, deserializeValue, fromBytes, fromLovelace, fromUTF8, getV2ScriptHash, parseDatumCbor, parseInlineDatum, poolIdBech32ToHex, poolIdHexToBech32, resolveDataHash, resolveEd25519KeyHash, resolveNativeScriptAddress, resolveNativeScriptHash, resolveNativeScriptHex, resolvePlutusScriptAddress, resolvePoolId, resolvePrivateKey, resolveRewardAddress, resolveScriptRef, resolveStakeKeyHash, rewardAddressToKeyHash, scriptHashToBech32, serializeAddressObj, serializePlutusAddressToBech32, serialzeAddress, signTransaction, skeyToPubKeyHash, toAddress, toBaseAddress, toBytes, toEnterpriseAddress, toLovelace, toNativeScript, toPlutusData, toRewardAddress, toScriptRef, toUTF8, v2ScriptToBech32 };
171
+ export { CSLSerializer, LANGUAGE_VERSIONS, 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, fromBytes, fromLovelace, fromUTF8, getV2ScriptHash, keyHashToRewardAddress, meshTxBuilderBodyToObj, mintItemToObj, mintParametersObj, nativeMintItemToObj, outputToObj, parseDatumCbor, parseInlineDatum, plutusMintItemToObj, poolIdBech32ToHex, poolIdHexToBech32, poolMetadataToObj, poolParamsToObj, redeemerToObj, relayToObj, resolveDataHash, resolveEd25519KeyHash, resolveNativeScriptAddress, resolveNativeScriptHash, resolveNativeScriptHex, resolvePlutusScriptAddress, resolvePrivateKey, resolveRewardAddress, resolveScriptRef, resolveStakeKeyHash, rewardAddressToKeyHash, scriptHashToBech32, scriptHashToRewardAddress, scriptSourceToObj, scriptTxInParameterToObj, serializeAddressObj, serializePlutusAddressToBech32, serializePoolId, serialzeAddress, signTransaction, simpleScriptSourceToObj, skeyToPubKeyHash, toAddress, toBaseAddress, toBytes, toEnterpriseAddress, toLovelace, toNativeScript, toPlutusData, toRewardAddress, toScriptRef, toUTF8, txInParameterToObj, txInToObj, utxoToObj, v2ScriptToBech32, withdrawalToObj };
package/dist/index.js CHANGED
@@ -237,7 +237,7 @@ var resolveDataHash = (data) => {
237
237
  var resolveNativeScriptHex = (script) => {
238
238
  return toNativeScript(script).to_hex();
239
239
  };
240
- var resolvePoolId = (hash) => {
240
+ var serializePoolId = (hash) => {
241
241
  return csl.Ed25519KeyHash.from_hex(hash).to_bech32("pool1");
242
242
  };
243
243
  var resolveScriptRef = (script) => {
@@ -296,12 +296,12 @@ var serializePlutusAddressToBech32 = (plutusHex, networkId = 0) => {
296
296
  return serializeAddressObj(plutusDataAddressObject, networkId);
297
297
  };
298
298
  var deserializeBech32Address = (bech32Addr) => {
299
- const serializedAddress = csl.serialize_bech32_address(bech32Addr);
299
+ const deserializedAddress = csl.deserialize_bech32_address(bech32Addr);
300
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()
301
+ pubKeyHash: deserializedAddress.get_pub_key_hash(),
302
+ scriptHash: deserializedAddress.get_script_hash(),
303
+ stakeCredentialHash: deserializedAddress.get_stake_key_hash(),
304
+ stakeScriptCredentialHash: deserializedAddress.get_stake_key_script_hash()
305
305
  };
306
306
  };
307
307
  var scriptHashToBech32 = (scriptHash, stakeCredentialHash, networkId = 0, isScriptStakeCredentialHash = false) => csl.wasm_script_to_address(
@@ -360,6 +360,20 @@ var baseAddressToStakeAddress = (baseAddressBech32, network = 1) => {
360
360
  var rewardAddressToKeyHash = (rewardBech32) => {
361
361
  return toRewardAddress(rewardBech32)?.payment_cred().to_keyhash()?.to_hex();
362
362
  };
363
+ var scriptHashToRewardAddress = (scriptHashHex, network = 1) => {
364
+ const networkId = network === 1 ? csl.NetworkId.mainnet().kind() : csl.NetworkId.testnet().kind();
365
+ const scriptHash = csl.ScriptHash.from_hex(scriptHashHex);
366
+ const credential = csl.Credential.from_scripthash(scriptHash);
367
+ const rewardAddress = csl.RewardAddress.new(networkId, credential).to_address().to_bech32();
368
+ return rewardAddress;
369
+ };
370
+ var keyHashToRewardAddress = (keyHashHex, network = 1) => {
371
+ const networkId = network === 1 ? csl.NetworkId.mainnet().kind() : csl.NetworkId.testnet().kind();
372
+ const keyHash = csl.Ed25519KeyHash.from_hex(keyHashHex);
373
+ const credential = csl.Credential.from_scripthash(keyHash);
374
+ const rewardAddress = csl.RewardAddress.new(networkId, credential).to_address().to_bech32();
375
+ return rewardAddress;
376
+ };
363
377
 
364
378
  // src/utils/transaction.ts
365
379
  var calculateTxHash = (txHex) => csl.calculate_tx_hash(txHex);
@@ -399,10 +413,10 @@ var applyParamsToScript = (rawScript, params, type = "Mesh") => {
399
413
  });
400
414
  break;
401
415
  }
402
- return csl.apply_params_to_script(rawScript, cslParams, paramType);
416
+ return csl.js_apply_params_to_script(rawScript, cslParams, paramType);
403
417
  };
404
418
  var applyCborEncoding = (rawScript) => {
405
- return csl.apply_params_to_script(
419
+ return csl.js_apply_params_to_script(
406
420
  rawScript,
407
421
  csl.JsVecString.new(),
408
422
  csl.BuilderDataType.CBOR
@@ -417,10 +431,7 @@ import {
417
431
  } from "@meshsdk/common";
418
432
 
419
433
  // src/core/adaptor/index.ts
420
- import {
421
- certificateToObj,
422
- validityRangeToObj
423
- } from "@meshsdk/common";
434
+ import { validityRangeToObj } from "@meshsdk/common";
424
435
 
425
436
  // src/core/adaptor/data.ts
426
437
  var builderDataToCbor = ({ type, content }) => {
@@ -483,6 +494,190 @@ var simpleScriptSourceToObj = (scriptSource) => {
483
494
  };
484
495
  };
485
496
 
497
+ // src/core/adaptor/certificate.ts
498
+ var certificateToObj = (certificate) => {
499
+ const baseCert = certificate.certType;
500
+ switch (certificate.type) {
501
+ case "BasicCertificate":
502
+ return {
503
+ basicCertificate: baseCertToObj(baseCert)
504
+ };
505
+ case "ScriptCertificate":
506
+ return {
507
+ scriptCertificate: {
508
+ cert: baseCertToObj(baseCert),
509
+ redeemer: certificate.redeemer ? redeemerToObj(certificate.redeemer) : null,
510
+ scriptSource: certificate.scriptSource ? scriptSourceToObj(certificate.scriptSource) : null
511
+ }
512
+ };
513
+ case "SimpleScriptCertificate":
514
+ return {
515
+ simpleScriptCertificate: {
516
+ cert: baseCertToObj(baseCert),
517
+ simpleScriptSource: certificate.simpleScriptSource ? simpleScriptSourceToObj(certificate.simpleScriptSource) : null
518
+ }
519
+ };
520
+ }
521
+ };
522
+ var baseCertToObj = (baseCert) => {
523
+ switch (baseCert.type) {
524
+ case "RegisterPool":
525
+ return {
526
+ registerPool: {
527
+ poolParams: poolParamsToObj(baseCert.poolParams)
528
+ }
529
+ };
530
+ case "RegisterStake":
531
+ return {
532
+ registerStake: {
533
+ stakeKeyAddress: baseCert.stakeKeyAddress,
534
+ coin: 2e6
535
+ // TODO: change in conway era
536
+ }
537
+ };
538
+ case "DelegateStake":
539
+ return {
540
+ delegateStake: {
541
+ stakeKeyAddress: baseCert.stakeKeyAddress,
542
+ poolId: baseCert.poolId
543
+ }
544
+ };
545
+ case "DeregisterStake":
546
+ return {
547
+ deregisterStake: {
548
+ stakeKeyAddress: baseCert.stakeKeyAddress
549
+ }
550
+ };
551
+ case "RetirePool":
552
+ return {
553
+ retirePool: {
554
+ poolId: baseCert.poolId,
555
+ epoch: baseCert.epoch
556
+ }
557
+ };
558
+ case "VoteDelegation":
559
+ return {
560
+ voteDelegation: {
561
+ stakeKeyAddress: baseCert.stakeKeyAddress,
562
+ drep: baseCert.drep
563
+ }
564
+ };
565
+ case "StakeAndVoteDelegation":
566
+ return {
567
+ stakeAndVoteDelegation: {
568
+ stakeKeyAddress: baseCert.stakeKeyAddress,
569
+ poolKeyHash: baseCert.poolKeyHash,
570
+ drep: baseCert.drep
571
+ }
572
+ };
573
+ case "StakeRegistrationAndDelegation":
574
+ return {
575
+ stakeRegistrationAndDelegation: {
576
+ stakeKeyAddress: baseCert.stakeKeyAddress,
577
+ poolKeyHash: baseCert.poolKeyHash,
578
+ coin: baseCert.coin
579
+ }
580
+ };
581
+ case "VoteRegistrationAndDelegation":
582
+ return {
583
+ voteRegistrationAndDelegation: {
584
+ stakeKeyAddress: baseCert.stakeKeyAddress,
585
+ drep: baseCert.drep,
586
+ coin: baseCert.coin
587
+ }
588
+ };
589
+ case "StakeVoteRegistrationAndDelegation":
590
+ return {
591
+ stakeVoteRegistrationAndDelegation: {
592
+ stakeKeyAddress: baseCert.stakeKeyAddress,
593
+ poolKeyHash: baseCert.poolKeyHash,
594
+ drep: baseCert.drep,
595
+ coin: baseCert.coin
596
+ }
597
+ };
598
+ case "CommitteeHotAuth":
599
+ return {
600
+ committeeHotAuth: {
601
+ committeeColdKeyAddress: baseCert.committeeColdKeyAddress,
602
+ committeeHotKeyAddress: baseCert.committeeHotKeyAddress
603
+ }
604
+ };
605
+ case "CommitteeColdResign":
606
+ return {
607
+ committeeColdResign: {
608
+ committeeColdKeyAddress: baseCert.committeeColdKeyAddress,
609
+ anchor: baseCert.anchor ?? null
610
+ }
611
+ };
612
+ case "DRepRegistration":
613
+ return {
614
+ dRepRegistration: {
615
+ votingKeyAddress: baseCert.votingKeyAddress,
616
+ coin: baseCert.coin,
617
+ anchor: baseCert.anchor ?? null
618
+ }
619
+ };
620
+ case "DRepDeregistration":
621
+ return {
622
+ dRepDeregistration: {
623
+ votingKeyAddress: baseCert.votingKeyAddress,
624
+ coin: baseCert.coin
625
+ }
626
+ };
627
+ case "DRepUpdate":
628
+ return {
629
+ dRepUpdate: {
630
+ votingKeyAddress: baseCert.votingKeyAddress,
631
+ anchor: baseCert.anchor
632
+ }
633
+ };
634
+ }
635
+ };
636
+ var poolParamsToObj = (poolParams) => {
637
+ return {
638
+ vrfKeyHash: poolParams.vrfKeyHash,
639
+ operator: poolParams.operator,
640
+ pledge: poolParams.pledge,
641
+ cost: poolParams.cost,
642
+ margin: poolParams.margin,
643
+ relays: poolParams.relays.map((relay) => relayToObj(relay)),
644
+ owners: poolParams.owners,
645
+ rewardAddress: poolParams.rewardAddress,
646
+ metadata: poolParams.metadata ? poolMetadataToObj(poolParams.metadata) : void 0
647
+ };
648
+ };
649
+ var poolMetadataToObj = (poolMetadata) => {
650
+ return {
651
+ url: poolMetadata.URL,
652
+ metadata: poolMetadata.hash
653
+ };
654
+ };
655
+ var relayToObj = (relay) => {
656
+ switch (relay.type) {
657
+ case "SingleHostAddr":
658
+ return {
659
+ singleHostAddr: {
660
+ ipv4: relay.IPV4,
661
+ ipv6: relay.IPV6,
662
+ port: relay.port
663
+ }
664
+ };
665
+ case "SingleHostName":
666
+ return {
667
+ singleHostName: {
668
+ hostname: relay.domainName,
669
+ port: relay.port
670
+ }
671
+ };
672
+ case "MultiHostName":
673
+ return {
674
+ multiHostName: {
675
+ dnsName: relay.domainName
676
+ }
677
+ };
678
+ }
679
+ };
680
+
486
681
  // src/core/adaptor/mint.ts
487
682
  var mintItemToObj = (mintItem) => {
488
683
  switch (mintItem.type) {
@@ -618,32 +813,65 @@ var scriptTxInParameterToObj = (scriptTxInParameter) => {
618
813
 
619
814
  // src/core/adaptor/withdrawal.ts
620
815
  var withdrawalToObj = (withdrawal) => {
621
- if ("pubKeyWithdrawal" in withdrawal) {
816
+ if (withdrawal.type === "PubKeyWithdrawal") {
622
817
  return {
623
818
  pubKeyWithdrawal: {
624
- address: withdrawal.pubKeyWithdrawal.address,
625
- coin: BigInt(withdrawal.pubKeyWithdrawal.coin)
819
+ address: withdrawal.address,
820
+ coin: BigInt(withdrawal.coin)
821
+ }
822
+ };
823
+ } else if (withdrawal.type === "ScriptWithdrawal") {
824
+ if (!withdrawal.scriptSource) {
825
+ throw new Error(
826
+ "withdrawalToObj: missing scriptSource in plutusScriptWithdrawal."
827
+ );
828
+ }
829
+ if (!withdrawal.redeemer) {
830
+ throw new Error(
831
+ "withdrawalToObj: missing redeemer in plutusScriptWithdrawal."
832
+ );
833
+ }
834
+ return {
835
+ plutusScriptWithdrawal: {
836
+ address: withdrawal.address,
837
+ coin: BigInt(withdrawal.coin),
838
+ scriptSource: scriptSourceToObj(withdrawal.scriptSource),
839
+ redeemer: redeemerToObj(withdrawal.redeemer)
840
+ }
841
+ };
842
+ } else {
843
+ if (!withdrawal.scriptSource) {
844
+ throw new Error(
845
+ "withdrawalToObj: missing script source in simpleScriptWithdrawal"
846
+ );
847
+ }
848
+ return {
849
+ simpleScriptWithdrawal: {
850
+ address: withdrawal.address,
851
+ coin: BigInt(withdrawal.coin),
852
+ scriptSource: simpleScriptSourceToObj(withdrawal.scriptSource)
626
853
  }
627
854
  };
628
855
  }
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
- }
856
+ };
857
+
858
+ // src/core/adaptor/utxo.ts
859
+ var utxoToObj = ({
860
+ input: { outputIndex, txHash },
861
+ output: { address, amount, dataHash, plutusData, scriptRef, scriptHash }
862
+ }) => {
639
863
  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)
864
+ input: {
865
+ outputIndex,
866
+ txHash
867
+ },
868
+ output: {
869
+ address,
870
+ amount,
871
+ dataHash: dataHash ?? null,
872
+ plutusData: plutusData ?? null,
873
+ scriptRef: scriptRef ?? null,
874
+ scriptHash: scriptHash ?? null
647
875
  }
648
876
  };
649
877
  };
@@ -681,15 +909,22 @@ var meshTxBuilderBodyToObj = ({
681
909
 
682
910
  // src/core/serializer.ts
683
911
  var CSLSerializer = class {
912
+ /**
913
+ * Set to true to enable verbose logging for the txBodyJson prior going into build
914
+ */
915
+ verbose;
684
916
  protocolParams;
685
917
  meshTxBuilderBody = emptyTxBuilderBody();
686
- constructor(protocolParams) {
918
+ constructor(protocolParams, verbose = false) {
687
919
  this.protocolParams = protocolParams || DEFAULT_PROTOCOL_PARAMETERS;
920
+ this.verbose = verbose;
688
921
  }
689
922
  serializeTxBody(txBody, protocolParams) {
690
923
  const txBodyJson = JSONbig2.stringify(meshTxBuilderBodyToObj(txBody));
691
924
  const params = JSONbig2.stringify(protocolParams || this.protocolParams);
692
- console.log("txBodyJson", txBodyJson);
925
+ if (this.verbose) {
926
+ console.log("txBodyJson", txBodyJson);
927
+ }
693
928
  const txBuildResult = csl.js_serialize_tx_body(txBodyJson, params);
694
929
  if (txBuildResult.get_status() !== "success") {
695
930
  throw new Error(txBuildResult.get_data());
@@ -708,6 +943,12 @@ var CSLSerializer = class {
708
943
  serializeAddress(address, networkId) {
709
944
  return serialzeAddress(address, networkId);
710
945
  }
946
+ serializePoolId(hash) {
947
+ return serializePoolId(hash);
948
+ }
949
+ serializeRewardAddress(stakeKeyHash, isScriptHash, network_id) {
950
+ return isScriptHash ? scriptHashToRewardAddress(stakeKeyHash, network_id) : keyHashToRewardAddress(stakeKeyHash, network_id);
951
+ }
711
952
  deserializer = {
712
953
  key: {
713
954
  deserializeAddress: function(bech32) {
@@ -728,6 +969,11 @@ var CSLSerializer = class {
728
969
  const scriptHash = deserializePlutusScript(script.code, script.version).hash().to_hex();
729
970
  return { scriptHash, scriptCbor: script.code };
730
971
  }
972
+ },
973
+ cert: {
974
+ deserializePoolId: function(poolId) {
975
+ return resolveEd25519KeyHash(poolId);
976
+ }
731
977
  }
732
978
  };
733
979
  resolver = {
@@ -759,11 +1005,6 @@ var CSLSerializer = class {
759
1005
  resolveScriptRef: function(script) {
760
1006
  return resolveScriptRef(script);
761
1007
  }
762
- },
763
- pool: {
764
- resolvePoolId: function(hash) {
765
- return resolvePoolId(hash);
766
- }
767
1008
  }
768
1009
  };
769
1010
  };
@@ -777,9 +1018,13 @@ export {
777
1018
  applyCborEncoding,
778
1019
  applyParamsToScript,
779
1020
  baseAddressToStakeAddress,
1021
+ baseCertToObj,
1022
+ builderDataToCbor,
780
1023
  calculateTxHash,
781
1024
  castDataToPlutusData,
782
1025
  castRawDataToJsonString,
1026
+ certificateToObj,
1027
+ collateralTxInToObj,
783
1028
  csl,
784
1029
  deserializeAddress,
785
1030
  deserializeBech32Address,
@@ -803,27 +1048,42 @@ export {
803
1048
  fromLovelace,
804
1049
  fromUTF8,
805
1050
  getV2ScriptHash,
1051
+ keyHashToRewardAddress,
1052
+ meshTxBuilderBodyToObj,
1053
+ mintItemToObj,
1054
+ mintParametersObj,
1055
+ nativeMintItemToObj,
1056
+ outputToObj,
806
1057
  parseDatumCbor,
807
1058
  parseInlineDatum,
1059
+ plutusMintItemToObj,
808
1060
  poolIdBech32ToHex,
809
1061
  poolIdHexToBech32,
1062
+ poolMetadataToObj,
1063
+ poolParamsToObj,
1064
+ redeemerToObj,
1065
+ relayToObj,
810
1066
  resolveDataHash,
811
1067
  resolveEd25519KeyHash,
812
1068
  resolveNativeScriptAddress,
813
1069
  resolveNativeScriptHash,
814
1070
  resolveNativeScriptHex,
815
1071
  resolvePlutusScriptAddress,
816
- resolvePoolId,
817
1072
  resolvePrivateKey,
818
1073
  resolveRewardAddress,
819
1074
  resolveScriptRef,
820
1075
  resolveStakeKeyHash,
821
1076
  rewardAddressToKeyHash,
822
1077
  scriptHashToBech32,
1078
+ scriptHashToRewardAddress,
1079
+ scriptSourceToObj,
1080
+ scriptTxInParameterToObj,
823
1081
  serializeAddressObj,
824
1082
  serializePlutusAddressToBech32,
1083
+ serializePoolId,
825
1084
  serialzeAddress,
826
1085
  signTransaction,
1086
+ simpleScriptSourceToObj,
827
1087
  skeyToPubKeyHash,
828
1088
  toAddress,
829
1089
  toBaseAddress,
@@ -835,5 +1095,9 @@ export {
835
1095
  toRewardAddress,
836
1096
  toScriptRef,
837
1097
  toUTF8,
838
- v2ScriptToBech32
1098
+ txInParameterToObj,
1099
+ txInToObj,
1100
+ utxoToObj,
1101
+ v2ScriptToBech32,
1102
+ withdrawalToObj
839
1103
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@meshsdk/core-csl",
3
- "version": "1.6.1",
3
+ "version": "1.6.3",
4
4
  "description": "",
5
5
  "main": "./dist/index.cjs",
6
6
  "module": "./dist/index.js",
@@ -17,20 +17,20 @@
17
17
  "dist/**"
18
18
  ],
19
19
  "scripts": {
20
+ "build:docs": "typedoc src/index.ts --json ../../apps/docs/src/data/mesh-core-csl.json",
20
21
  "build:mesh": "tsup src/index.ts --format esm,cjs --dts",
21
- "dev": "tsup src/index.ts --format esm,cjs --watch --dts",
22
- "lint": "eslint",
23
- "test": "jest --verbose",
24
22
  "clean": "rm -rf .turbo && rm -rf dist && rm -rf node_modules",
23
+ "dev": "tsup src/index.ts --format esm,cjs --watch --dts",
25
24
  "format": "prettier --check . --ignore-path ../../.gitignore",
26
- "build:docs": "typedoc src/index.ts --json ../../apps/docs/src/data/mesh-core-csl.json"
25
+ "lint": "eslint",
26
+ "pack": "npm pack --pack-destination=./dist",
27
+ "test": "jest"
27
28
  },
28
29
  "browser": {
29
30
  "@sidan-lab/sidan-csl-rs-nodejs": "@sidan-lab/sidan-csl-rs-browser"
30
31
  },
31
32
  "devDependencies": {
32
- "@meshsdk/eslint-config": "*",
33
- "@meshsdk/typescript-config": "*",
33
+ "@meshsdk/configs": "*",
34
34
  "@types/json-bigint": "^1.0.4",
35
35
  "eslint": "^8.57.0",
36
36
  "ts-jest": "^29.1.4",
@@ -39,11 +39,11 @@
39
39
  },
40
40
  "dependencies": {
41
41
  "@meshsdk/common": "*",
42
- "@sidan-lab/sidan-csl-rs-browser": "^0.6.13",
43
- "@sidan-lab/sidan-csl-rs-nodejs": "^0.6.13",
42
+ "@sidan-lab/sidan-csl-rs-browser": "0.6.14",
43
+ "@sidan-lab/sidan-csl-rs-nodejs": "0.6.14",
44
44
  "json-bigint": "^1.0.0"
45
45
  },
46
- "prettier": "@meshsdk/prettier-config",
46
+ "prettier": "@meshsdk/configs/prettier",
47
47
  "publishConfig": {
48
48
  "access": "public"
49
49
  },