@meshsdk/transaction 1.9.0-beta.100 → 1.9.0-beta.102

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
@@ -33,6 +33,7 @@ __export(index_exports, {
33
33
  ForgeScript: () => ForgeScript,
34
34
  LargestFirstInputSelector: () => LargestFirstInputSelector,
35
35
  MeshTxBuilder: () => MeshTxBuilder,
36
+ MeshTxBuilderV2: () => MeshTxBuilderV2,
36
37
  Transaction: () => Transaction,
37
38
  TxParser: () => TxParser,
38
39
  cloneOutput: () => cloneOutput,
@@ -3142,9 +3143,12 @@ var MeshTxBuilderCore = class {
3142
3143
  * @returns The MeshTxBuilder instance
3143
3144
  */
3144
3145
  proposalRedeemerValue = (redeemer, type = "Mesh", exUnits = { ...import_common.DEFAULT_REDEEMER_BUDGET }) => {
3145
- if (!this.proposalItem) throw Error("proposalRedeemerValue: Undefined proposal");
3146
+ if (!this.proposalItem)
3147
+ throw Error("proposalRedeemerValue: Undefined proposal");
3146
3148
  if (!(this.proposalItem.type === "ScriptProposal"))
3147
- throw Error("proposalRedeemerValue: Adding redeemer to non plutus proposal");
3149
+ throw Error(
3150
+ "proposalRedeemerValue: Adding redeemer to non plutus proposal"
3151
+ );
3148
3152
  this.proposalItem.redeemer = this.castBuilderDataToRedeemer(
3149
3153
  redeemer,
3150
3154
  type,
@@ -6247,11 +6251,220 @@ var TxParser = class {
6247
6251
  getBuilderBodyWithoutChange = () => this.serializer.parser.getBuilderBodyWithoutChange();
6248
6252
  toTester = () => this.serializer.parser.toTester();
6249
6253
  };
6254
+
6255
+ // src/mesh-tx-builder-v2/index.ts
6256
+ var import_common5 = require("@meshsdk/common");
6257
+ var SpendBuilderImpl = class {
6258
+ constructor(builder) {
6259
+ this.builder = builder;
6260
+ }
6261
+ script(scriptCbor) {
6262
+ this.builder.txInScript(scriptCbor);
6263
+ return this;
6264
+ }
6265
+ referenceScript(refTxHash, refTxIndex, scriptSize, scriptHash) {
6266
+ this.builder.spendingTxInReference(
6267
+ refTxHash,
6268
+ refTxIndex,
6269
+ scriptSize,
6270
+ scriptHash
6271
+ );
6272
+ return this;
6273
+ }
6274
+ redeemerJson(redeemer, exUnits) {
6275
+ this.builder.txInRedeemerValue(
6276
+ redeemer,
6277
+ "JSON",
6278
+ exUnits ?? { ...import_common5.DEFAULT_REDEEMER_BUDGET }
6279
+ );
6280
+ return this;
6281
+ }
6282
+ redeemerCbor(redeemer, exUnits) {
6283
+ this.builder.txInRedeemerValue(
6284
+ redeemer,
6285
+ "CBOR",
6286
+ exUnits ?? { ...import_common5.DEFAULT_REDEEMER_BUDGET }
6287
+ );
6288
+ return this;
6289
+ }
6290
+ txOut(address, amount) {
6291
+ this.builder.txInInlineDatumPresent();
6292
+ this.builder.txOut(address, amount);
6293
+ return this;
6294
+ }
6295
+ datumJson(datum) {
6296
+ this.builder.txOutInlineDatumValue(datum, "JSON");
6297
+ return this.builder;
6298
+ }
6299
+ datumCbor(datum) {
6300
+ this.builder.txOutInlineDatumValue(datum, "CBOR");
6301
+ return this.builder;
6302
+ }
6303
+ datumHash(datumHash) {
6304
+ this.builder.txOutDatumHashValue(datumHash);
6305
+ return this.builder;
6306
+ }
6307
+ };
6308
+ var MintBuilderImpl = class {
6309
+ constructor(builder) {
6310
+ this.builder = builder;
6311
+ }
6312
+ script(scriptCbor) {
6313
+ this.builder.mintingScript(scriptCbor);
6314
+ return this;
6315
+ }
6316
+ referenceScript(txHash, txIndex, scriptSize, scriptHash) {
6317
+ this.builder.mintTxInReference(txHash, txIndex, scriptSize, scriptHash);
6318
+ return this;
6319
+ }
6320
+ redeemerJson(redeemer, exUnits) {
6321
+ this.builder.mintRedeemerValue(
6322
+ redeemer,
6323
+ "JSON",
6324
+ exUnits ?? { ...import_common5.DEFAULT_REDEEMER_BUDGET }
6325
+ );
6326
+ return this;
6327
+ }
6328
+ redeemerCbor(redeemer, exUnits) {
6329
+ this.builder.mintRedeemerValue(
6330
+ redeemer,
6331
+ "CBOR",
6332
+ exUnits ?? { ...import_common5.DEFAULT_REDEEMER_BUDGET }
6333
+ );
6334
+ return this;
6335
+ }
6336
+ txOut(address, amount) {
6337
+ this.builder.txOut(address, amount);
6338
+ return this.builder;
6339
+ }
6340
+ };
6341
+ var WithdrawBuilderImpl = class {
6342
+ constructor(builder) {
6343
+ this.builder = builder;
6344
+ }
6345
+ script(scriptCbor) {
6346
+ this.builder.withdrawalScript(scriptCbor);
6347
+ return this;
6348
+ }
6349
+ referenceScript(txHash, txIndex, scriptSize, scriptHash) {
6350
+ this.builder.withdrawalTxInReference(txHash, txIndex, scriptSize, scriptHash);
6351
+ return this;
6352
+ }
6353
+ redeemerJson(redeemer, exUnits) {
6354
+ this.builder.withdrawalRedeemerValue(
6355
+ redeemer,
6356
+ "JSON",
6357
+ exUnits ?? { ...import_common5.DEFAULT_REDEEMER_BUDGET }
6358
+ );
6359
+ return this.builder;
6360
+ }
6361
+ redeemerCbor(redeemer, exUnits) {
6362
+ this.builder.withdrawalRedeemerValue(
6363
+ redeemer,
6364
+ "CBOR",
6365
+ exUnits ?? { ...import_common5.DEFAULT_REDEEMER_BUDGET }
6366
+ );
6367
+ return this.builder;
6368
+ }
6369
+ };
6370
+ var VoteBuilderImpl = class {
6371
+ constructor(builder) {
6372
+ this.builder = builder;
6373
+ }
6374
+ script(scriptCbor) {
6375
+ this.builder.voteScript(scriptCbor);
6376
+ return this;
6377
+ }
6378
+ referenceScript(txHash, txIndex, scriptSize, scriptHash) {
6379
+ this.builder.voteTxInReference(txHash, txIndex, scriptSize, scriptHash);
6380
+ return this;
6381
+ }
6382
+ redeemerJson(redeemer, exUnits) {
6383
+ this.builder.voteRedeemerValue(
6384
+ redeemer,
6385
+ "JSON",
6386
+ exUnits ?? { ...import_common5.DEFAULT_REDEEMER_BUDGET }
6387
+ );
6388
+ return this.builder;
6389
+ }
6390
+ redeemerCbor(redeemer, exUnits) {
6391
+ this.builder.voteRedeemerValue(
6392
+ redeemer,
6393
+ "CBOR",
6394
+ exUnits ?? { ...import_common5.DEFAULT_REDEEMER_BUDGET }
6395
+ );
6396
+ return this.builder;
6397
+ }
6398
+ };
6399
+ var TxBuilderV2 = class extends MeshTxBuilder {
6400
+ spendPlutusV1(txHash, txIndex) {
6401
+ this.spendingPlutusScriptV1();
6402
+ this.txIn(txHash, txIndex);
6403
+ return new SpendBuilderImpl(this);
6404
+ }
6405
+ spendPlutusV2(txHash, txIndex) {
6406
+ this.spendingPlutusScriptV2();
6407
+ this.txIn(txHash, txIndex);
6408
+ return new SpendBuilderImpl(this);
6409
+ }
6410
+ spendPlutusV3(txHash, txIndex) {
6411
+ this.spendingPlutusScriptV3();
6412
+ this.txIn(txHash, txIndex);
6413
+ return new SpendBuilderImpl(this);
6414
+ }
6415
+ mintPlutusV1(quantity, policyId, assetName) {
6416
+ this.mintPlutusScriptV1();
6417
+ this.mint(quantity, policyId, assetName);
6418
+ return new MintBuilderImpl(this);
6419
+ }
6420
+ mintPlutusV2(quantity, policyId, assetName) {
6421
+ this.mintPlutusScriptV2();
6422
+ this.mint(quantity, policyId, assetName);
6423
+ return new MintBuilderImpl(this);
6424
+ }
6425
+ mintPlutusV3(quantity, policyId, assetName) {
6426
+ this.mintPlutusScriptV3();
6427
+ this.mint(quantity, policyId, assetName);
6428
+ return new MintBuilderImpl(this);
6429
+ }
6430
+ withdrawPlutusV1(rewardAddress, amount) {
6431
+ this.withdrawalPlutusScriptV1();
6432
+ this.withdrawal(rewardAddress, amount);
6433
+ return new WithdrawBuilderImpl(this);
6434
+ }
6435
+ withdrawPlutusV2(rewardAddress, coin) {
6436
+ this.withdrawalPlutusScriptV2();
6437
+ this.withdrawal(rewardAddress, coin);
6438
+ return new WithdrawBuilderImpl(this);
6439
+ }
6440
+ withdrawPlutusV3(rewardAddress, coin) {
6441
+ this.withdrawalPlutusScriptV3();
6442
+ this.withdrawal(rewardAddress, coin);
6443
+ return new WithdrawBuilderImpl(this);
6444
+ }
6445
+ votePlutusV1(voter, govActionId, votingProcedure) {
6446
+ this.votePlutusScriptV1();
6447
+ this.vote(voter, govActionId, votingProcedure);
6448
+ return new VoteBuilderImpl(this);
6449
+ }
6450
+ votePlutusV2(voter, govActionId, votingProcedure) {
6451
+ this.votePlutusScriptV2();
6452
+ this.vote(voter, govActionId, votingProcedure);
6453
+ return new VoteBuilderImpl(this);
6454
+ }
6455
+ votePlutusV3(voter, govActionId, votingProcedure) {
6456
+ this.votePlutusScriptV3();
6457
+ this.vote(voter, govActionId, votingProcedure);
6458
+ return new VoteBuilderImpl(this);
6459
+ }
6460
+ };
6461
+ var MeshTxBuilderV2 = TxBuilderV2;
6250
6462
  // Annotate the CommonJS export names for ESM import in node:
6251
6463
  0 && (module.exports = {
6252
6464
  ForgeScript,
6253
6465
  LargestFirstInputSelector,
6254
6466
  MeshTxBuilder,
6467
+ MeshTxBuilderV2,
6255
6468
  Transaction,
6256
6469
  TxParser,
6257
6470
  cloneOutput,
package/dist/index.d.cts CHANGED
@@ -1053,4 +1053,87 @@ declare class TxParser {
1053
1053
  toTester: () => _meshsdk_common.TxTester;
1054
1054
  }
1055
1055
 
1056
- export { ForgeScript, LargestFirstInputSelector, MeshTxBuilder, type MeshTxBuilderOptions, type MetadataMergeLevel, Transaction, type TransactionOptions, TxParser, cloneOutput, getLovelace, getOutputMinLovelace, getUtxoMinLovelace, mergeContents, metadataObjToMap, setLoveLace, utxoToTxIn };
1056
+ interface _MeshTxBuilderV2 extends Omit<MeshTxBuilder, ScriptMethodsToDrop> {
1057
+ spendPlutusV1(txHash: string, txIndex: number): SpendScriptBuilder;
1058
+ spendPlutusV2(txHash: string, txIndex: number): SpendScriptBuilder;
1059
+ spendPlutusV3(txHash: string, txIndex: number): SpendScriptBuilder;
1060
+ mintPlutusV1(quantity: string, policyId: string, assetName: string): MintScriptBuilder;
1061
+ mintPlutusV2(quantity: string, policyId: string, assetName: string): MintScriptBuilder;
1062
+ mintPlutusV3(quantity: string, policyId: string, assetName: string): MintScriptBuilder;
1063
+ withdrawPlutusV1(rewardAddress: string, amount: string): WithdrawScriptBuilder;
1064
+ withdrawPlutusV2(rewardAddress: string, amount: string): WithdrawScriptBuilder;
1065
+ withdrawPlutusV3(rewardAddress: string, amount: string): WithdrawScriptBuilder;
1066
+ votePlutusV1(voter: Voter, govActionId: RefTxIn, votingProcedure: VotingProcedure): VoteScriptBuilder;
1067
+ votePlutusV2(voter: Voter, govActionId: RefTxIn, votingProcedure: VotingProcedure): VoteScriptBuilder;
1068
+ votePlutusV3(voter: Voter, govActionId: RefTxIn, votingProcedure: VotingProcedure): VoteScriptBuilder;
1069
+ }
1070
+ type ScriptMethodsToDrop = "spendingPlutusScript" | "spendingPlutusScriptV1" | "spendingPlutusScriptV2" | "spendingPlutusScriptV3" | "spendingTxInReference" | "spendingReferenceTxInInlineDatumPresent" | "spendingReferenceTxInRedeemerValue" | "mintPlutusScript" | "mintPlutusScriptV1" | "mintPlutusScriptV2" | "mintPlutusScriptV3" | "mintingScript" | "mintTxInReference" | "mintReferenceTxInRedeemerValue" | "mintRedeemerValue" | "withdrawalPlutusScript" | "withdrawalPlutusScriptV1" | "withdrawalPlutusScriptV2" | "withdrawalPlutusScriptV3" | "withdrawalScript" | "withdrawalTxInReference" | "withdrawalReferenceTxInRedeemerValue" | "withdrawalRedeemerValue" | "votePlutusScript" | "votePlutusScriptV1" | "votePlutusScriptV2" | "votePlutusScriptV3" | "voteScript" | "voteTxInReference" | "voteReferenceTxInRedeemerValue" | "voteRedeemerValue" | "txInScript" | "txInDatumValue" | "txInInlineDatumPresent" | "txInRedeemerValue";
1071
+ interface SpendScriptBuilder {
1072
+ script(scriptCbor: string): SpendRedeemerBuilder;
1073
+ referenceScript(refTxHash: string, refTxIndex: number, scriptSize?: string, scriptHash?: string): SpendRedeemerBuilder;
1074
+ }
1075
+ interface SpendRedeemerBuilder {
1076
+ redeemerJson(redeemer: BuilderData["content"], exUnits?: Budget): SpendTxOutBuilder;
1077
+ redeemerCbor(redeemer: BuilderData["content"], exUnits?: Budget): SpendTxOutBuilder;
1078
+ }
1079
+ interface SpendTxOutBuilder {
1080
+ txOut(address: string, amount: Asset[]): SpendDatumBuilder;
1081
+ }
1082
+ interface SpendDatumBuilder {
1083
+ datumHash(datumHash: string): _MeshTxBuilderV2;
1084
+ datumCbor(datumCbor: BuilderData["content"]): _MeshTxBuilderV2;
1085
+ datumJson(datumJson: BuilderData["content"]): _MeshTxBuilderV2;
1086
+ }
1087
+ interface MintScriptBuilder {
1088
+ script(scriptCbor: string): MintRedeemerBuilder;
1089
+ referenceScript(txHash: string, txIndex: number, scriptSize?: string, scriptHash?: string): MintRedeemerBuilder;
1090
+ }
1091
+ interface MintRedeemerBuilder {
1092
+ redeemerJson(redeemer: BuilderData["content"], exUnits?: Budget): MintTxOutBuilder;
1093
+ redeemerCbor(redeemer: BuilderData["content"], exUnits?: Budget): MintTxOutBuilder;
1094
+ }
1095
+ interface MintTxOutBuilder {
1096
+ txOut(address: string, amount: Asset[]): _MeshTxBuilderV2;
1097
+ }
1098
+ interface VoteScriptBuilder {
1099
+ script(scriptCbor: string): VoteRedeemerBuilder;
1100
+ referenceScript(txHash: string, txIndex: number, scriptSize?: string, scriptHash?: string): VoteRedeemerBuilder;
1101
+ }
1102
+ interface VoteRedeemerBuilder {
1103
+ redeemerJson(redeemer: BuilderData["content"], exUnits?: Budget): _MeshTxBuilderV2;
1104
+ redeemerCbor(redeemer: BuilderData["content"], exUnits?: Budget): _MeshTxBuilderV2;
1105
+ }
1106
+ interface WithdrawScriptBuilder {
1107
+ script(scriptCbor: string): WithdrawRedeemerBuilder;
1108
+ referenceScript(txHash: string, txIndex: number, scriptSize?: string, scriptHash?: string): WithdrawRedeemerBuilder;
1109
+ }
1110
+ interface WithdrawRedeemerBuilder {
1111
+ redeemerJson(redeemer: BuilderData["content"], exUnits?: Budget): _MeshTxBuilderV2;
1112
+ redeemerCbor(redeemer: BuilderData["content"], exUnits?: Budget): _MeshTxBuilderV2;
1113
+ }
1114
+
1115
+ /**
1116
+ * \`MeshTxBuilderV2\` is a strongly-typed wrapper around the core \`MeshTxBuilder\`
1117
+ * that enforces a rigid Type-State machine for Plutus operations.
1118
+ *
1119
+ * It natively provides TypeScript autocomplete restrictions (Script -> Redeemer -> TxOut -> Datum)
1120
+ * for transactions like spending, minting, withdrawing, and voting, dropping standalone
1121
+ * script methods to prevent incorrect chained execution ordering.
1122
+ *
1123
+ * @example
1124
+ * ```typescript
1125
+ * const tx = new MeshTxBuilderV2({
1126
+ * fetcher: provider,
1127
+ * evaluator: provider,
1128
+ * });
1129
+ *
1130
+ * tx.spendPlutusV3(txHash, index)
1131
+ * .script(scriptCbor)
1132
+ * .redeemerJson(redeemerValue)
1133
+ * .txOut(address, assets)
1134
+ * .datumJson(datumValue); // Drops you back into the main builder methods
1135
+ * ```
1136
+ */
1137
+ declare const MeshTxBuilderV2: new (options?: MeshTxBuilderOptions) => _MeshTxBuilderV2;
1138
+
1139
+ export { ForgeScript, LargestFirstInputSelector, MeshTxBuilder, type MeshTxBuilderOptions, MeshTxBuilderV2, type MetadataMergeLevel, Transaction, type TransactionOptions, TxParser, cloneOutput, getLovelace, getOutputMinLovelace, getUtxoMinLovelace, mergeContents, metadataObjToMap, setLoveLace, utxoToTxIn };
package/dist/index.d.ts CHANGED
@@ -1053,4 +1053,87 @@ declare class TxParser {
1053
1053
  toTester: () => _meshsdk_common.TxTester;
1054
1054
  }
1055
1055
 
1056
- export { ForgeScript, LargestFirstInputSelector, MeshTxBuilder, type MeshTxBuilderOptions, type MetadataMergeLevel, Transaction, type TransactionOptions, TxParser, cloneOutput, getLovelace, getOutputMinLovelace, getUtxoMinLovelace, mergeContents, metadataObjToMap, setLoveLace, utxoToTxIn };
1056
+ interface _MeshTxBuilderV2 extends Omit<MeshTxBuilder, ScriptMethodsToDrop> {
1057
+ spendPlutusV1(txHash: string, txIndex: number): SpendScriptBuilder;
1058
+ spendPlutusV2(txHash: string, txIndex: number): SpendScriptBuilder;
1059
+ spendPlutusV3(txHash: string, txIndex: number): SpendScriptBuilder;
1060
+ mintPlutusV1(quantity: string, policyId: string, assetName: string): MintScriptBuilder;
1061
+ mintPlutusV2(quantity: string, policyId: string, assetName: string): MintScriptBuilder;
1062
+ mintPlutusV3(quantity: string, policyId: string, assetName: string): MintScriptBuilder;
1063
+ withdrawPlutusV1(rewardAddress: string, amount: string): WithdrawScriptBuilder;
1064
+ withdrawPlutusV2(rewardAddress: string, amount: string): WithdrawScriptBuilder;
1065
+ withdrawPlutusV3(rewardAddress: string, amount: string): WithdrawScriptBuilder;
1066
+ votePlutusV1(voter: Voter, govActionId: RefTxIn, votingProcedure: VotingProcedure): VoteScriptBuilder;
1067
+ votePlutusV2(voter: Voter, govActionId: RefTxIn, votingProcedure: VotingProcedure): VoteScriptBuilder;
1068
+ votePlutusV3(voter: Voter, govActionId: RefTxIn, votingProcedure: VotingProcedure): VoteScriptBuilder;
1069
+ }
1070
+ type ScriptMethodsToDrop = "spendingPlutusScript" | "spendingPlutusScriptV1" | "spendingPlutusScriptV2" | "spendingPlutusScriptV3" | "spendingTxInReference" | "spendingReferenceTxInInlineDatumPresent" | "spendingReferenceTxInRedeemerValue" | "mintPlutusScript" | "mintPlutusScriptV1" | "mintPlutusScriptV2" | "mintPlutusScriptV3" | "mintingScript" | "mintTxInReference" | "mintReferenceTxInRedeemerValue" | "mintRedeemerValue" | "withdrawalPlutusScript" | "withdrawalPlutusScriptV1" | "withdrawalPlutusScriptV2" | "withdrawalPlutusScriptV3" | "withdrawalScript" | "withdrawalTxInReference" | "withdrawalReferenceTxInRedeemerValue" | "withdrawalRedeemerValue" | "votePlutusScript" | "votePlutusScriptV1" | "votePlutusScriptV2" | "votePlutusScriptV3" | "voteScript" | "voteTxInReference" | "voteReferenceTxInRedeemerValue" | "voteRedeemerValue" | "txInScript" | "txInDatumValue" | "txInInlineDatumPresent" | "txInRedeemerValue";
1071
+ interface SpendScriptBuilder {
1072
+ script(scriptCbor: string): SpendRedeemerBuilder;
1073
+ referenceScript(refTxHash: string, refTxIndex: number, scriptSize?: string, scriptHash?: string): SpendRedeemerBuilder;
1074
+ }
1075
+ interface SpendRedeemerBuilder {
1076
+ redeemerJson(redeemer: BuilderData["content"], exUnits?: Budget): SpendTxOutBuilder;
1077
+ redeemerCbor(redeemer: BuilderData["content"], exUnits?: Budget): SpendTxOutBuilder;
1078
+ }
1079
+ interface SpendTxOutBuilder {
1080
+ txOut(address: string, amount: Asset[]): SpendDatumBuilder;
1081
+ }
1082
+ interface SpendDatumBuilder {
1083
+ datumHash(datumHash: string): _MeshTxBuilderV2;
1084
+ datumCbor(datumCbor: BuilderData["content"]): _MeshTxBuilderV2;
1085
+ datumJson(datumJson: BuilderData["content"]): _MeshTxBuilderV2;
1086
+ }
1087
+ interface MintScriptBuilder {
1088
+ script(scriptCbor: string): MintRedeemerBuilder;
1089
+ referenceScript(txHash: string, txIndex: number, scriptSize?: string, scriptHash?: string): MintRedeemerBuilder;
1090
+ }
1091
+ interface MintRedeemerBuilder {
1092
+ redeemerJson(redeemer: BuilderData["content"], exUnits?: Budget): MintTxOutBuilder;
1093
+ redeemerCbor(redeemer: BuilderData["content"], exUnits?: Budget): MintTxOutBuilder;
1094
+ }
1095
+ interface MintTxOutBuilder {
1096
+ txOut(address: string, amount: Asset[]): _MeshTxBuilderV2;
1097
+ }
1098
+ interface VoteScriptBuilder {
1099
+ script(scriptCbor: string): VoteRedeemerBuilder;
1100
+ referenceScript(txHash: string, txIndex: number, scriptSize?: string, scriptHash?: string): VoteRedeemerBuilder;
1101
+ }
1102
+ interface VoteRedeemerBuilder {
1103
+ redeemerJson(redeemer: BuilderData["content"], exUnits?: Budget): _MeshTxBuilderV2;
1104
+ redeemerCbor(redeemer: BuilderData["content"], exUnits?: Budget): _MeshTxBuilderV2;
1105
+ }
1106
+ interface WithdrawScriptBuilder {
1107
+ script(scriptCbor: string): WithdrawRedeemerBuilder;
1108
+ referenceScript(txHash: string, txIndex: number, scriptSize?: string, scriptHash?: string): WithdrawRedeemerBuilder;
1109
+ }
1110
+ interface WithdrawRedeemerBuilder {
1111
+ redeemerJson(redeemer: BuilderData["content"], exUnits?: Budget): _MeshTxBuilderV2;
1112
+ redeemerCbor(redeemer: BuilderData["content"], exUnits?: Budget): _MeshTxBuilderV2;
1113
+ }
1114
+
1115
+ /**
1116
+ * \`MeshTxBuilderV2\` is a strongly-typed wrapper around the core \`MeshTxBuilder\`
1117
+ * that enforces a rigid Type-State machine for Plutus operations.
1118
+ *
1119
+ * It natively provides TypeScript autocomplete restrictions (Script -> Redeemer -> TxOut -> Datum)
1120
+ * for transactions like spending, minting, withdrawing, and voting, dropping standalone
1121
+ * script methods to prevent incorrect chained execution ordering.
1122
+ *
1123
+ * @example
1124
+ * ```typescript
1125
+ * const tx = new MeshTxBuilderV2({
1126
+ * fetcher: provider,
1127
+ * evaluator: provider,
1128
+ * });
1129
+ *
1130
+ * tx.spendPlutusV3(txHash, index)
1131
+ * .script(scriptCbor)
1132
+ * .redeemerJson(redeemerValue)
1133
+ * .txOut(address, assets)
1134
+ * .datumJson(datumValue); // Drops you back into the main builder methods
1135
+ * ```
1136
+ */
1137
+ declare const MeshTxBuilderV2: new (options?: MeshTxBuilderOptions) => _MeshTxBuilderV2;
1138
+
1139
+ export { ForgeScript, LargestFirstInputSelector, MeshTxBuilder, type MeshTxBuilderOptions, MeshTxBuilderV2, type MetadataMergeLevel, Transaction, type TransactionOptions, TxParser, cloneOutput, getLovelace, getOutputMinLovelace, getUtxoMinLovelace, mergeContents, metadataObjToMap, setLoveLace, utxoToTxIn };
package/dist/index.js CHANGED
@@ -2033,8 +2033,8 @@ import {
2033
2033
  DEFAULT_PROTOCOL_PARAMETERS,
2034
2034
  DEFAULT_REDEEMER_BUDGET,
2035
2035
  DREP_DEPOSIT,
2036
- VOTING_PROPOSAL_DEPOSIT,
2037
- emptyTxBuilderBody
2036
+ emptyTxBuilderBody,
2037
+ VOTING_PROPOSAL_DEPOSIT
2038
2038
  } from "@meshsdk/common";
2039
2039
  import { Address, CredentialType } from "@meshsdk/core-cst";
2040
2040
 
@@ -3117,9 +3117,12 @@ var MeshTxBuilderCore = class {
3117
3117
  * @returns The MeshTxBuilder instance
3118
3118
  */
3119
3119
  proposalRedeemerValue = (redeemer, type = "Mesh", exUnits = { ...DEFAULT_REDEEMER_BUDGET }) => {
3120
- if (!this.proposalItem) throw Error("proposalRedeemerValue: Undefined proposal");
3120
+ if (!this.proposalItem)
3121
+ throw Error("proposalRedeemerValue: Undefined proposal");
3121
3122
  if (!(this.proposalItem.type === "ScriptProposal"))
3122
- throw Error("proposalRedeemerValue: Adding redeemer to non plutus proposal");
3123
+ throw Error(
3124
+ "proposalRedeemerValue: Adding redeemer to non plutus proposal"
3125
+ );
3123
3126
  this.proposalItem.redeemer = this.castBuilderDataToRedeemer(
3124
3127
  redeemer,
3125
3128
  type,
@@ -6247,10 +6250,221 @@ var TxParser = class {
6247
6250
  getBuilderBodyWithoutChange = () => this.serializer.parser.getBuilderBodyWithoutChange();
6248
6251
  toTester = () => this.serializer.parser.toTester();
6249
6252
  };
6253
+
6254
+ // src/mesh-tx-builder-v2/index.ts
6255
+ import {
6256
+ DEFAULT_REDEEMER_BUDGET as DEFAULT_REDEEMER_BUDGET3
6257
+ } from "@meshsdk/common";
6258
+ var SpendBuilderImpl = class {
6259
+ constructor(builder) {
6260
+ this.builder = builder;
6261
+ }
6262
+ script(scriptCbor) {
6263
+ this.builder.txInScript(scriptCbor);
6264
+ return this;
6265
+ }
6266
+ referenceScript(refTxHash, refTxIndex, scriptSize, scriptHash) {
6267
+ this.builder.spendingTxInReference(
6268
+ refTxHash,
6269
+ refTxIndex,
6270
+ scriptSize,
6271
+ scriptHash
6272
+ );
6273
+ return this;
6274
+ }
6275
+ redeemerJson(redeemer, exUnits) {
6276
+ this.builder.txInRedeemerValue(
6277
+ redeemer,
6278
+ "JSON",
6279
+ exUnits ?? { ...DEFAULT_REDEEMER_BUDGET3 }
6280
+ );
6281
+ return this;
6282
+ }
6283
+ redeemerCbor(redeemer, exUnits) {
6284
+ this.builder.txInRedeemerValue(
6285
+ redeemer,
6286
+ "CBOR",
6287
+ exUnits ?? { ...DEFAULT_REDEEMER_BUDGET3 }
6288
+ );
6289
+ return this;
6290
+ }
6291
+ txOut(address, amount) {
6292
+ this.builder.txInInlineDatumPresent();
6293
+ this.builder.txOut(address, amount);
6294
+ return this;
6295
+ }
6296
+ datumJson(datum) {
6297
+ this.builder.txOutInlineDatumValue(datum, "JSON");
6298
+ return this.builder;
6299
+ }
6300
+ datumCbor(datum) {
6301
+ this.builder.txOutInlineDatumValue(datum, "CBOR");
6302
+ return this.builder;
6303
+ }
6304
+ datumHash(datumHash) {
6305
+ this.builder.txOutDatumHashValue(datumHash);
6306
+ return this.builder;
6307
+ }
6308
+ };
6309
+ var MintBuilderImpl = class {
6310
+ constructor(builder) {
6311
+ this.builder = builder;
6312
+ }
6313
+ script(scriptCbor) {
6314
+ this.builder.mintingScript(scriptCbor);
6315
+ return this;
6316
+ }
6317
+ referenceScript(txHash, txIndex, scriptSize, scriptHash) {
6318
+ this.builder.mintTxInReference(txHash, txIndex, scriptSize, scriptHash);
6319
+ return this;
6320
+ }
6321
+ redeemerJson(redeemer, exUnits) {
6322
+ this.builder.mintRedeemerValue(
6323
+ redeemer,
6324
+ "JSON",
6325
+ exUnits ?? { ...DEFAULT_REDEEMER_BUDGET3 }
6326
+ );
6327
+ return this;
6328
+ }
6329
+ redeemerCbor(redeemer, exUnits) {
6330
+ this.builder.mintRedeemerValue(
6331
+ redeemer,
6332
+ "CBOR",
6333
+ exUnits ?? { ...DEFAULT_REDEEMER_BUDGET3 }
6334
+ );
6335
+ return this;
6336
+ }
6337
+ txOut(address, amount) {
6338
+ this.builder.txOut(address, amount);
6339
+ return this.builder;
6340
+ }
6341
+ };
6342
+ var WithdrawBuilderImpl = class {
6343
+ constructor(builder) {
6344
+ this.builder = builder;
6345
+ }
6346
+ script(scriptCbor) {
6347
+ this.builder.withdrawalScript(scriptCbor);
6348
+ return this;
6349
+ }
6350
+ referenceScript(txHash, txIndex, scriptSize, scriptHash) {
6351
+ this.builder.withdrawalTxInReference(txHash, txIndex, scriptSize, scriptHash);
6352
+ return this;
6353
+ }
6354
+ redeemerJson(redeemer, exUnits) {
6355
+ this.builder.withdrawalRedeemerValue(
6356
+ redeemer,
6357
+ "JSON",
6358
+ exUnits ?? { ...DEFAULT_REDEEMER_BUDGET3 }
6359
+ );
6360
+ return this.builder;
6361
+ }
6362
+ redeemerCbor(redeemer, exUnits) {
6363
+ this.builder.withdrawalRedeemerValue(
6364
+ redeemer,
6365
+ "CBOR",
6366
+ exUnits ?? { ...DEFAULT_REDEEMER_BUDGET3 }
6367
+ );
6368
+ return this.builder;
6369
+ }
6370
+ };
6371
+ var VoteBuilderImpl = class {
6372
+ constructor(builder) {
6373
+ this.builder = builder;
6374
+ }
6375
+ script(scriptCbor) {
6376
+ this.builder.voteScript(scriptCbor);
6377
+ return this;
6378
+ }
6379
+ referenceScript(txHash, txIndex, scriptSize, scriptHash) {
6380
+ this.builder.voteTxInReference(txHash, txIndex, scriptSize, scriptHash);
6381
+ return this;
6382
+ }
6383
+ redeemerJson(redeemer, exUnits) {
6384
+ this.builder.voteRedeemerValue(
6385
+ redeemer,
6386
+ "JSON",
6387
+ exUnits ?? { ...DEFAULT_REDEEMER_BUDGET3 }
6388
+ );
6389
+ return this.builder;
6390
+ }
6391
+ redeemerCbor(redeemer, exUnits) {
6392
+ this.builder.voteRedeemerValue(
6393
+ redeemer,
6394
+ "CBOR",
6395
+ exUnits ?? { ...DEFAULT_REDEEMER_BUDGET3 }
6396
+ );
6397
+ return this.builder;
6398
+ }
6399
+ };
6400
+ var TxBuilderV2 = class extends MeshTxBuilder {
6401
+ spendPlutusV1(txHash, txIndex) {
6402
+ this.spendingPlutusScriptV1();
6403
+ this.txIn(txHash, txIndex);
6404
+ return new SpendBuilderImpl(this);
6405
+ }
6406
+ spendPlutusV2(txHash, txIndex) {
6407
+ this.spendingPlutusScriptV2();
6408
+ this.txIn(txHash, txIndex);
6409
+ return new SpendBuilderImpl(this);
6410
+ }
6411
+ spendPlutusV3(txHash, txIndex) {
6412
+ this.spendingPlutusScriptV3();
6413
+ this.txIn(txHash, txIndex);
6414
+ return new SpendBuilderImpl(this);
6415
+ }
6416
+ mintPlutusV1(quantity, policyId, assetName) {
6417
+ this.mintPlutusScriptV1();
6418
+ this.mint(quantity, policyId, assetName);
6419
+ return new MintBuilderImpl(this);
6420
+ }
6421
+ mintPlutusV2(quantity, policyId, assetName) {
6422
+ this.mintPlutusScriptV2();
6423
+ this.mint(quantity, policyId, assetName);
6424
+ return new MintBuilderImpl(this);
6425
+ }
6426
+ mintPlutusV3(quantity, policyId, assetName) {
6427
+ this.mintPlutusScriptV3();
6428
+ this.mint(quantity, policyId, assetName);
6429
+ return new MintBuilderImpl(this);
6430
+ }
6431
+ withdrawPlutusV1(rewardAddress, amount) {
6432
+ this.withdrawalPlutusScriptV1();
6433
+ this.withdrawal(rewardAddress, amount);
6434
+ return new WithdrawBuilderImpl(this);
6435
+ }
6436
+ withdrawPlutusV2(rewardAddress, coin) {
6437
+ this.withdrawalPlutusScriptV2();
6438
+ this.withdrawal(rewardAddress, coin);
6439
+ return new WithdrawBuilderImpl(this);
6440
+ }
6441
+ withdrawPlutusV3(rewardAddress, coin) {
6442
+ this.withdrawalPlutusScriptV3();
6443
+ this.withdrawal(rewardAddress, coin);
6444
+ return new WithdrawBuilderImpl(this);
6445
+ }
6446
+ votePlutusV1(voter, govActionId, votingProcedure) {
6447
+ this.votePlutusScriptV1();
6448
+ this.vote(voter, govActionId, votingProcedure);
6449
+ return new VoteBuilderImpl(this);
6450
+ }
6451
+ votePlutusV2(voter, govActionId, votingProcedure) {
6452
+ this.votePlutusScriptV2();
6453
+ this.vote(voter, govActionId, votingProcedure);
6454
+ return new VoteBuilderImpl(this);
6455
+ }
6456
+ votePlutusV3(voter, govActionId, votingProcedure) {
6457
+ this.votePlutusScriptV3();
6458
+ this.vote(voter, govActionId, votingProcedure);
6459
+ return new VoteBuilderImpl(this);
6460
+ }
6461
+ };
6462
+ var MeshTxBuilderV2 = TxBuilderV2;
6250
6463
  export {
6251
6464
  ForgeScript,
6252
6465
  LargestFirstInputSelector,
6253
6466
  MeshTxBuilder,
6467
+ MeshTxBuilderV2,
6254
6468
  Transaction,
6255
6469
  TxParser,
6256
6470
  cloneOutput,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@meshsdk/transaction",
3
- "version": "1.9.0-beta.100",
3
+ "version": "1.9.0-beta.102",
4
4
  "description": "Transactions - https://meshjs.dev/apis/transaction",
5
5
  "main": "./dist/index.cjs",
6
6
  "browser": "./dist/index.js",
@@ -35,8 +35,8 @@
35
35
  "typescript": "^5.3.3"
36
36
  },
37
37
  "dependencies": {
38
- "@meshsdk/common": "1.9.0-beta.100",
39
- "@meshsdk/core-cst": "1.9.0-beta.100",
38
+ "@meshsdk/common": "1.9.0-beta.102",
39
+ "@meshsdk/core-cst": "1.9.0-beta.102",
40
40
  "@cardano-sdk/core": "0.46.12",
41
41
  "@cardano-sdk/util": "0.17.1",
42
42
  "@cardano-sdk/input-selection": "0.14.28",