@helios-lang/effect 0.2.0 → 0.4.31

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 (189) hide show
  1. package/.vscode/settings.json +3 -0
  2. package/dist/Cardano/Ledger/Address.js +1 -1
  3. package/dist/Cardano/Ledger/Address.js.map +1 -1
  4. package/dist/Cardano/Ledger/AssetClass.js +6 -1
  5. package/dist/Cardano/Ledger/AssetClass.js.map +1 -1
  6. package/dist/Cardano/Ledger/Assets.js +85 -3
  7. package/dist/Cardano/Ledger/Assets.js.map +1 -1
  8. package/dist/Cardano/Ledger/Credential.js +1 -1
  9. package/dist/Cardano/Ledger/Credential.js.map +1 -1
  10. package/dist/Cardano/Ledger/DCert.js +2 -1
  11. package/dist/Cardano/Ledger/DCert.js.map +1 -1
  12. package/dist/Cardano/Ledger/DatumHash.js +2 -2
  13. package/dist/Cardano/Ledger/DatumHash.js.map +1 -1
  14. package/dist/Cardano/Ledger/MintingPolicy.js +2 -0
  15. package/dist/Cardano/Ledger/MintingPolicy.js.map +1 -1
  16. package/dist/Cardano/Ledger/NativeScript.js +2 -1
  17. package/dist/Cardano/Ledger/NativeScript.js.map +1 -1
  18. package/dist/Cardano/Ledger/PubKey.js +17 -15
  19. package/dist/Cardano/Ledger/PubKey.js.map +1 -1
  20. package/dist/Cardano/Ledger/PubKeyHash.js +1 -1
  21. package/dist/Cardano/Ledger/PubKeyHash.js.map +1 -1
  22. package/dist/Cardano/Ledger/Redeemer.js +1 -1
  23. package/dist/Cardano/Ledger/Redeemer.js.map +1 -1
  24. package/dist/Cardano/Ledger/Signature.js +1 -0
  25. package/dist/Cardano/Ledger/Signature.js.map +1 -1
  26. package/dist/Cardano/Ledger/Tx.js +165 -17
  27. package/dist/Cardano/Ledger/Tx.js.map +1 -1
  28. package/dist/Cardano/Ledger/TxOutput.js +12 -6
  29. package/dist/Cardano/Ledger/TxOutput.js.map +1 -1
  30. package/dist/Cardano/Ledger/TxOutputDatum.js +36 -34
  31. package/dist/Cardano/Ledger/TxOutputDatum.js.map +1 -1
  32. package/dist/Cardano/Ledger/UTxO.js +1 -1
  33. package/dist/Cardano/Ledger/UTxO.js.map +1 -1
  34. package/dist/Cardano/Ledger/UTxORef.js +1 -0
  35. package/dist/Cardano/Ledger/UTxORef.js.map +1 -1
  36. package/dist/Cardano/Ledger/ValidatorHash.js +1 -1
  37. package/dist/Cardano/Ledger/ValidatorHash.js.map +1 -1
  38. package/dist/Cardano/Ledger/index.js +1 -0
  39. package/dist/Cardano/Ledger/index.js.map +1 -1
  40. package/dist/Cardano/Network/AssetMetadata.js +11 -0
  41. package/dist/Cardano/Network/AssetMetadata.js.map +1 -0
  42. package/dist/Cardano/Network/IsMainnet.js +1 -1
  43. package/dist/Cardano/Network/IsMainnet.js.map +1 -1
  44. package/dist/Cardano/Network/Params.js +105 -1
  45. package/dist/Cardano/Network/Params.js.map +1 -1
  46. package/dist/Cardano/Network/Submit.js +15 -0
  47. package/dist/Cardano/Network/Submit.js.map +1 -0
  48. package/dist/Cardano/Network/UTxO.js +2 -2
  49. package/dist/Cardano/Network/UTxO.js.map +1 -1
  50. package/dist/Cardano/Network/UTxOsAt.js +3 -2
  51. package/dist/Cardano/Network/UTxOsAt.js.map +1 -1
  52. package/dist/Cardano/Network/errors.js +16 -3
  53. package/dist/Cardano/Network/errors.js.map +1 -1
  54. package/dist/Cardano/Network/index.js +2 -0
  55. package/dist/Cardano/Network/index.js.map +1 -1
  56. package/dist/Cardano/ScriptContext.js +264 -0
  57. package/dist/Cardano/ScriptContext.js.map +1 -0
  58. package/dist/Cardano/TxBuilder.js +109 -46
  59. package/dist/Cardano/TxBuilder.js.map +1 -1
  60. package/dist/Cardano/Uplc/Builtins.js +293 -32
  61. package/dist/Cardano/Uplc/Builtins.js.map +1 -1
  62. package/dist/Cardano/Uplc/Cek.js +6 -5
  63. package/dist/Cardano/Uplc/Cek.js.map +1 -1
  64. package/dist/Cardano/Uplc/Cost.js +257 -1
  65. package/dist/Cardano/Uplc/Cost.js.map +1 -1
  66. package/dist/Cardano/Uplc/Data.js +22 -8
  67. package/dist/Cardano/Uplc/Data.js.map +1 -1
  68. package/dist/Cardano/Uplc/Script.js +52 -10
  69. package/dist/Cardano/Uplc/Script.js.map +1 -1
  70. package/dist/Cardano/Uplc/Term.js +14 -0
  71. package/dist/Cardano/Uplc/Term.js.map +1 -1
  72. package/dist/Cardano/Uplc/index.js +2 -1
  73. package/dist/Cardano/Uplc/index.js.map +1 -1
  74. package/dist/Cardano/Wallet.js +51 -0
  75. package/dist/Cardano/Wallet.js.map +1 -0
  76. package/dist/Cardano/index.js +4 -3
  77. package/dist/Cardano/index.js.map +1 -1
  78. package/dist/Codecs/Base32.js +4 -1
  79. package/dist/Codecs/Base32.js.map +1 -1
  80. package/dist/Codecs/BigEndian.js +1 -1
  81. package/dist/Codecs/BigEndian.js.map +1 -1
  82. package/dist/Codecs/Bytes.js +1 -1
  83. package/dist/Codecs/Bytes.js.map +1 -1
  84. package/dist/Codecs/LittleEndian.js +4 -0
  85. package/dist/Codecs/LittleEndian.js.map +1 -1
  86. package/dist/Codecs/Utf8.js +1 -1
  87. package/dist/Codecs/Utf8.js.map +1 -1
  88. package/dist/Crypto/Bip32.js +134 -0
  89. package/dist/Crypto/Bip32.js.map +1 -0
  90. package/dist/Crypto/Bip39.js +2176 -0
  91. package/dist/Crypto/Bip39.js.map +1 -0
  92. package/dist/Crypto/Curve.js +1 -0
  93. package/dist/Crypto/Curve.js.map +1 -1
  94. package/dist/Crypto/Ed25519.js +2 -1
  95. package/dist/Crypto/Ed25519.js.map +1 -1
  96. package/dist/Crypto/EdDSA.js +2 -1
  97. package/dist/Crypto/EdDSA.js.map +1 -1
  98. package/dist/Crypto/Sha3_256.js +1 -0
  99. package/dist/Crypto/Sha3_256.js.map +1 -1
  100. package/dist/Crypto/index.js +2 -0
  101. package/dist/Crypto/index.js.map +1 -1
  102. package/dist/index.js +3 -3
  103. package/dist/index.js.map +1 -1
  104. package/package.json +2 -1
  105. package/types/Cardano/Ledger/Address.d.ts +2 -2
  106. package/types/Cardano/Ledger/Address.d.ts.map +1 -1
  107. package/types/Cardano/Ledger/AssetClass.d.ts +6 -1
  108. package/types/Cardano/Ledger/AssetClass.d.ts.map +1 -1
  109. package/types/Cardano/Ledger/Assets.d.ts +14 -2
  110. package/types/Cardano/Ledger/Assets.d.ts.map +1 -1
  111. package/types/Cardano/Ledger/Credential.d.ts +1 -1
  112. package/types/Cardano/Ledger/Credential.d.ts.map +1 -1
  113. package/types/Cardano/Ledger/DatumHash.d.ts +2 -2
  114. package/types/Cardano/Ledger/DatumHash.d.ts.map +1 -1
  115. package/types/Cardano/Ledger/MintingPolicy.d.ts +1 -0
  116. package/types/Cardano/Ledger/MintingPolicy.d.ts.map +1 -1
  117. package/types/Cardano/Ledger/PubKey.d.ts +13 -9
  118. package/types/Cardano/Ledger/PubKey.d.ts.map +1 -1
  119. package/types/Cardano/Ledger/PubKeyHash.d.ts +2 -2
  120. package/types/Cardano/Ledger/PubKeyHash.d.ts.map +1 -1
  121. package/types/Cardano/Ledger/Redeemer.d.ts +1 -1
  122. package/types/Cardano/Ledger/Redeemer.d.ts.map +1 -1
  123. package/types/Cardano/Ledger/Signature.d.ts +2 -2
  124. package/types/Cardano/Ledger/Signature.d.ts.map +1 -1
  125. package/types/Cardano/Ledger/Tx.d.ts +19 -241
  126. package/types/Cardano/Ledger/Tx.d.ts.map +1 -1
  127. package/types/Cardano/Ledger/TxOutput.d.ts +98 -108
  128. package/types/Cardano/Ledger/TxOutput.d.ts.map +1 -1
  129. package/types/Cardano/Ledger/TxOutputDatum.d.ts +69 -68
  130. package/types/Cardano/Ledger/TxOutputDatum.d.ts.map +1 -1
  131. package/types/Cardano/Ledger/UTxO.d.ts +275 -325
  132. package/types/Cardano/Ledger/UTxO.d.ts.map +1 -1
  133. package/types/Cardano/Ledger/ValidatorHash.d.ts +2 -2
  134. package/types/Cardano/Ledger/ValidatorHash.d.ts.map +1 -1
  135. package/types/Cardano/Ledger/index.d.ts +1 -0
  136. package/types/Cardano/Ledger/index.d.ts.map +1 -1
  137. package/types/Cardano/Network/AssetMetadata.d.ts +15 -0
  138. package/types/Cardano/Network/AssetMetadata.d.ts.map +1 -0
  139. package/types/Cardano/Network/IsMainnet.d.ts +1 -1
  140. package/types/Cardano/Network/Params.d.ts +9 -1
  141. package/types/Cardano/Network/Params.d.ts.map +1 -1
  142. package/types/Cardano/Network/Submit.d.ts +18 -0
  143. package/types/Cardano/Network/Submit.d.ts.map +1 -0
  144. package/types/Cardano/Network/UTxO.d.ts +1 -1
  145. package/types/Cardano/Network/UTxO.d.ts.map +1 -1
  146. package/types/Cardano/Network/UTxOsAt.d.ts +2 -2
  147. package/types/Cardano/Network/UTxOsAt.d.ts.map +1 -1
  148. package/types/Cardano/Network/errors.d.ts +22 -2
  149. package/types/Cardano/Network/errors.d.ts.map +1 -1
  150. package/types/Cardano/Network/index.d.ts +2 -0
  151. package/types/Cardano/Network/index.d.ts.map +1 -1
  152. package/types/Cardano/ScriptContext.d.ts +1340 -0
  153. package/types/Cardano/ScriptContext.d.ts.map +1 -0
  154. package/types/Cardano/TxBuilder.d.ts +12 -39
  155. package/types/Cardano/TxBuilder.d.ts.map +1 -1
  156. package/types/Cardano/Uplc/Builtins.d.ts.map +1 -1
  157. package/types/Cardano/Uplc/Cek.d.ts.map +1 -1
  158. package/types/Cardano/Uplc/Cost.d.ts +1 -0
  159. package/types/Cardano/Uplc/Cost.d.ts.map +1 -1
  160. package/types/Cardano/Uplc/Data.d.ts.map +1 -1
  161. package/types/Cardano/Uplc/Script.d.ts +5 -3
  162. package/types/Cardano/Uplc/Script.d.ts.map +1 -1
  163. package/types/Cardano/Uplc/Term.d.ts +3 -0
  164. package/types/Cardano/Uplc/Term.d.ts.map +1 -1
  165. package/types/Cardano/Uplc/index.d.ts +2 -1
  166. package/types/Cardano/Uplc/index.d.ts.map +1 -1
  167. package/types/Cardano/Wallet.d.ts +68 -0
  168. package/types/Cardano/Wallet.d.ts.map +1 -0
  169. package/types/Cardano/index.d.ts +4 -3
  170. package/types/Cardano/index.d.ts.map +1 -1
  171. package/types/Codecs/Base32.d.ts +4 -1
  172. package/types/Codecs/Base32.d.ts.map +1 -1
  173. package/types/Codecs/LittleEndian.d.ts +1 -0
  174. package/types/Codecs/LittleEndian.d.ts.map +1 -1
  175. package/types/Crypto/Bip32.d.ts +31 -0
  176. package/types/Crypto/Bip32.d.ts.map +1 -0
  177. package/types/Crypto/Bip39.d.ts +43 -0
  178. package/types/Crypto/Bip39.d.ts.map +1 -0
  179. package/types/Crypto/EdDSA.d.ts +1 -1
  180. package/types/Crypto/EdDSA.d.ts.map +1 -1
  181. package/types/Crypto/index.d.ts +2 -0
  182. package/types/Crypto/index.d.ts.map +1 -1
  183. package/types/index.d.ts +3 -3
  184. package/types/index.d.ts.map +1 -1
  185. package/bun.lock +0 -60
  186. package/tsconfig.build.json +0 -14
  187. package/tsconfig.build.tsbuildinfo +0 -1
  188. package/tsconfig.json +0 -38
  189. package/tsconfig.tsbuildinfo +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ScriptContext.js","sourceRoot":"","sources":["../../src/Cardano/ScriptContext.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,11 @@
1
1
  import { Console, Context, Data, Effect } from "effect";
2
+ import { Bytes } from "../Codecs/index.js";
2
3
  import * as CoinSelection from "./CoinSelection.js";
3
- import { Address, Assets, DCert, MintingPolicy, NativeScript, RewardAddress, Tx, TxOutput, UTxO } from "./Ledger";
4
- import * as Network from "./Network";
5
- import * as Uplc from "./Uplc";
4
+ import { Address, AssetClass, Assets, Credential, DatumHash, DCert, MintingPolicy, NativeScript, PubKeyHash, Redeemer, RewardAddress, Tx, TxOutput, UTxO, UTxORef, ValidatorHash } from "./Ledger/index.js";
5
+ import * as Network from "./Network/index.js";
6
+ import * as ScriptContext from "./ScriptContext.js";
7
+ import * as Uplc from "./Uplc/index.js";
8
+ import { Balancing as BalancingWallet } from "./Wallet.js";
6
9
  export class UTxOAlreadyAdded extends Data.TaggedError("Cardano.TxBuilder.UTxOAlreadyAdded") {
7
10
  constructor(ref) {
8
11
  super({ ref, message: `UTxO ${ref} already added to Tx` });
@@ -191,7 +194,7 @@ export const mint = (assets, redeemer = undefined) => (b) => Effect.gen(function
191
194
  if (!hasUplcScript(b, hash)) {
192
195
  return yield* Effect.fail(new MissingScript(hash));
193
196
  }
194
- addMintingRedeemer(b, policy, redeemer);
197
+ b = yield* addMintingRedeemer(b, policy, redeemer);
195
198
  }
196
199
  else {
197
200
  if (!hasNativeScript(b, hash)) {
@@ -256,7 +259,7 @@ export const spend = (utxos, redeemer = undefined) => (b) => Effect.gen(function
256
259
  if (!datum && !hasDatumlessScript(b, spendingCred.hash)) {
257
260
  return yield* Effect.fail(new MissingDatum());
258
261
  }
259
- if (datum && datum._tag == "Hash") {
262
+ if (datum && "hash" in datum) {
260
263
  // provide datum through service
261
264
  const getDatum = yield* GetDatum;
262
265
  const datumData = yield* getDatum(datum.hash);
@@ -599,7 +602,7 @@ function hasSigner(b, signer) {
599
602
  }
600
603
  class CurrentTxBuilder extends Context.Tag("Cardano.TxBuilder.CurrentTxBuilder")() {
601
604
  }
602
- export const build = (config) => (b) => Effect.gen(function* () {
605
+ export const build = (options = {}) => (b) => Effect.gen(function* () {
603
606
  /**
604
607
  * Calculate the metadata hash
605
608
  */
@@ -608,6 +611,7 @@ export const build = (config) => (b) => Effect.gen(function* () {
608
611
  * Calculate the validity time range slots
609
612
  */
610
613
  const { firstValidSlot, lastValidSlot } = yield* buildValidityTimeRange;
614
+ yield* Console.log(`Built validatity slots: ${firstValidSlot}:${lastValidSlot}`);
611
615
  /**
612
616
  * Make sure the outputs contain enough lovelace
613
617
  */
@@ -643,7 +647,7 @@ export const build = (config) => (b) => Effect.gen(function* () {
643
647
  signers: b.signers,
644
648
  collateralReturn: undefined, // TODO
645
649
  metadataHash,
646
- encoding: config.bodyEncoding
650
+ encoding: options.bodyEncoding
647
651
  },
648
652
  witnesses: {
649
653
  signatures: [],
@@ -655,15 +659,22 @@ export const build = (config) => (b) => Effect.gen(function* () {
655
659
  v3Scripts: b.v3Scripts.map((s) => s.script),
656
660
  v2RefScripts: b.v2RefScripts.map((s) => s.script),
657
661
  v3RefScripts: b.v3RefScripts.map((s) => s.script),
658
- encoding: config.witnessesEncoding
662
+ encoding: options.witnessesEncoding
659
663
  },
660
664
  isValid: false,
661
665
  metadata
662
666
  };
667
+ yield* Console.log("validating outputs...");
668
+ for (const output of outputs) {
669
+ yield* Console.log(`Output lovelace: ${output.assets[""]?.toString()}`);
670
+ }
671
+ yield* Tx.validateOutputs(true)(tx);
672
+ yield* Console.log(`Initialized tx`);
663
673
  /**
664
674
  * The redeemer indices depend on some tx body fields, so are initialized after the init tx is created
665
675
  */
666
676
  tx = yield* buildRedeemersWithoutCost(tx);
677
+ yield* Console.log(`Built redeemers without cost`);
667
678
  /**
668
679
  * Now in a loop the transaction is updated:
669
680
  * - fee is set to min fee
@@ -675,12 +686,32 @@ export const build = (config) => (b) => Effect.gen(function* () {
675
686
  * The loop continues as long as the tx.fee field is smaller than the min required field.
676
687
  * We know that this loop will run at least once because initially tx.fee=0n, ensuring the tx is balanced
677
688
  */
689
+ yield* Console.log(`Start loop`);
678
690
  while (tx.body.fee < (yield* Tx.minFee(tx))) {
691
+ yield* Console.log(`Updating fee`);
679
692
  tx = yield* updateFee(tx);
680
- tx = yield* balanceTx(tx, config);
693
+ yield* Console.log(`Updated fee`);
694
+ tx = yield* balanceTx(tx);
695
+ yield* Console.log(`Balanced tx`);
681
696
  tx = yield* buildRedeemersWithCost(tx);
697
+ yield* Console.log(`Built redeemers with cost`);
682
698
  tx = yield* updateScriptDataHash(tx);
699
+ yield* Console.log(`Updated script hash`);
683
700
  }
701
+ yield* Console.log(`End loop`);
702
+ /**
703
+ * Sign using balancing wallet
704
+ */
705
+ tx = {
706
+ ...tx,
707
+ witnesses: {
708
+ ...tx.witnesses,
709
+ signatures: [
710
+ ...tx.witnesses.signatures,
711
+ ...(yield* (yield* BalancingWallet).signTx(tx))
712
+ ]
713
+ }
714
+ };
684
715
  return tx;
685
716
  }).pipe(Effect.provideService(CurrentTxBuilder, b));
686
717
  const buildMetadata = CurrentTxBuilder.pipe(Effect.map((b) => {
@@ -712,18 +743,29 @@ const buildNonChangeOutputs = Effect.gen(function* () {
712
743
  const b = yield* CurrentTxBuilder;
713
744
  const outputs = b.outputs.slice();
714
745
  for (let i = 0; i < outputs.length; i++) {
715
- const output = outputs[i];
716
- const lovelace = yield* TxOutput.minLovelace(output);
717
- if (lovelace > output.assets[""]) {
718
- outputs[i] = {
746
+ let output = outputs[i];
747
+ let lovelace = yield* TxOutput.minLovelace(output);
748
+ // iterate, because including lovelace value requires more lovelace itself
749
+ while (lovelace > (output.assets[""] ?? 0n)) {
750
+ yield* Console.log(`Updated output ${i} to contain ${lovelace} lovelace (${"" in output.assets ? `contained only ${output.assets[""]} before` : `didn't contain any lovelace before`})`);
751
+ output = {
719
752
  ...output,
720
753
  assets: {
721
754
  ...output.assets,
722
755
  "": lovelace
723
756
  }
724
757
  };
758
+ outputs[i] = output;
759
+ lovelace = yield* TxOutput.minLovelace(output);
725
760
  }
726
761
  }
762
+ // sort all assets
763
+ for (let i = 0; i < outputs.length; i++) {
764
+ outputs[i] = {
765
+ ...outputs[i],
766
+ assets: Assets.sort()(outputs[i].assets)
767
+ };
768
+ }
727
769
  return outputs;
728
770
  });
729
771
  const selectCollateralInputs = Effect.gen(function* () {
@@ -788,6 +830,7 @@ const buildRedeemersWithCost = (tx) => Effect.gen(function* () {
788
830
  * Rebuild the redeemers to make sure the indices point to the correct policy/input/withdrawal/dcert
789
831
  */
790
832
  tx = yield* buildRedeemersWithoutCost(tx);
833
+ yield* Console.log("rebuilt redeemers without cost");
791
834
  /**
792
835
  * Now calculate the cost of each redeemer
793
836
  */
@@ -828,11 +871,26 @@ const redeemerValidatorHash = (redeemer) => {
828
871
  }
829
872
  };
830
873
  const profileRedeemer = (b, tx) => (vh, redeemerIndex) => Effect.gen(function* () {
874
+ yield* Console.log(`Profiling redeemer of ${vh}`);
831
875
  const script = getUplcScript(b, vh);
832
- const args = yield* Uplc.ScriptContext.makeArgs(script.version, tx, redeemerIndex);
876
+ const args = yield* ScriptContext.makeArgs(script.version, tx, redeemerIndex);
833
877
  const costModel = yield* Network.Params.costModel(script.version);
878
+ yield* Console.log(`Evaluating script`);
834
879
  const profile = yield* Uplc.Script.eval(script, args, costModel);
880
+ yield* Console.log(`Done evaluating script`);
835
881
  if (profile.value._tag == "Left") {
882
+ yield* Console.log(profile.value.left);
883
+ yield* Console.error(`Script evaluation failed`);
884
+ yield* Console.log(`Script cborHex: ${Bytes.toHex(script.root)}`);
885
+ for (const arg of args) {
886
+ if (Uplc.Value.isData(arg)) {
887
+ yield* Console.log(Bytes.toHex(Uplc.Data.encode(arg.data)));
888
+ }
889
+ else {
890
+ yield* Console.log(arg);
891
+ }
892
+ }
893
+ yield* Console.log(``);
836
894
  // TODO: return a RuntimeError with nice stack trace
837
895
  return yield* Effect.fail(new Error(profile.value.left.error));
838
896
  }
@@ -865,20 +923,37 @@ const updateFee = (tx) => Effect.gen(function* () {
865
923
  const selectCoinsForBalancing = CoinSelection.smallestFirst({
866
924
  allowSelectingUninvolvedAssets: true
867
925
  });
868
- const balanceTx = (tx, config) => Effect.gen(function* () {
926
+ const balanceTx = (tx) => Effect.gen(function* () {
927
+ yield* Console.log("Balancing tx...");
928
+ const balancingWallet = yield* BalancingWallet;
929
+ const changeAddress = yield* balancingWallet.changeAddress;
930
+ const spareUTxOs = yield* balancingWallet.utxos;
931
+ /**
932
+ * Lookup or create the change output (TODO: support multiple change outputs?)
933
+ */
934
+ let changeOutput = tx.body.outputs.find((output) => output.address == changeAddress &&
935
+ output.datum === undefined &&
936
+ output.refScript === undefined);
937
+ const nonChangeOutputs = tx.body.outputs.filter((output) => output != changeOutput);
938
+ /**
939
+ * Create the change output if no change output was found
940
+ */
941
+ if (changeOutput === undefined) {
942
+ changeOutput = {
943
+ address: changeAddress,
944
+ assets: {}
945
+ };
946
+ }
869
947
  const inputAssets = UTxO.sumAssets(...tx.body.inputs);
870
- const outputAssets = Assets.sum(...tx.body.outputs.map((output) => output.assets));
948
+ // don't count the changeOutput!
949
+ const outputAssets = Assets.sum(...nonChangeOutputs.map((output) => output.assets));
871
950
  const feeAssets = { "": tx.body.fee };
872
951
  const mintedAssets = tx.body.minted;
952
+ yield* Console.log("Summing assets...");
873
953
  let net = Assets.sum(inputAssets, mintedAssets, Assets.negate(outputAssets), Assets.negate(feeAssets));
874
- /**
875
- * Return if already balanced
876
- */
877
- if (Assets.isEmpty(net)) {
878
- return tx;
879
- }
880
954
  const selectAndAddInputs = (amount) => Effect.gen(function* () {
881
- const extraInputs = yield* selectCoinsForBalancing(UTxO.difference(config.spareUTxOs ?? [], tx.body.inputs.concat(tx.body.refInputs)), amount);
955
+ yield* Console.log("Selecting coins...");
956
+ const extraInputs = yield* selectCoinsForBalancing(UTxO.difference(spareUTxOs ?? [], tx.body.inputs.concat(tx.body.refInputs)), amount);
882
957
  net = Assets.add(net, UTxO.sumAssets(...extraInputs));
883
958
  tx = {
884
959
  ...tx,
@@ -895,38 +970,26 @@ const balanceTx = (tx, config) => Effect.gen(function* () {
895
970
  yield* selectAndAddInputs(Assets.negate(Assets.filterNegative(net)));
896
971
  }
897
972
  /**
898
- * Handle the unlikely event that the tx is already balanced with the extraInputs
973
+ * `net` must be positive at this point
899
974
  */
900
- if (Assets.isEmpty(net)) {
901
- return tx;
975
+ if (!Assets.isEmpty(Assets.filterNegative(net))) {
976
+ throw new Error("net not positive");
902
977
  }
903
- if (Address.isValidator(config.changeAddress)) {
978
+ if (Address.isValidator(changeAddress)) {
904
979
  throw new Error("can't send change to validator");
905
980
  }
906
- /**
907
- * Lookup or create the change output (TODO: support multiple change outputs?)
908
- */
909
- let changeOutput = tx.body.outputs.find((output) => output.address == config.changeAddress &&
910
- output.datum === undefined &&
911
- output.refScript === undefined);
912
- const nonChangeOutputs = tx.body.outputs.filter((output) => output != changeOutput);
913
- /**
914
- * Create the change output if no change output was found
915
- */
916
- if (changeOutput === undefined) {
917
- changeOutput = {
918
- address: config.changeAddress,
919
- assets: Assets.filterPositive(net)
920
- };
921
- net = {};
922
- }
981
+ changeOutput = {
982
+ ...changeOutput,
983
+ assets: Assets.sort()(net)
984
+ };
985
+ net = {};
923
986
  const minLovelace = yield* TxOutput.minLovelace(changeOutput);
924
987
  let diff = minLovelace - (changeOutput.assets[""] ?? 0n);
925
988
  while (diff > 0n) {
926
- yield* selectAndAddInputs({ "": diff });
989
+ yield* selectAndAddInputs(Assets.add({ "": diff }, Assets.negate(Assets.filterNegative(changeOutput.assets))));
927
990
  changeOutput = {
928
991
  ...changeOutput,
929
- assets: Assets.add(changeOutput.assets, Assets.filterPositive(net))
992
+ assets: Assets.sort()(Assets.add(changeOutput.assets, net))
930
993
  };
931
994
  net = {};
932
995
  diff =
@@ -1 +1 @@
1
- {"version":3,"file":"TxBuilder.js","sourceRoot":"","sources":["../../src/Cardano/TxBuilder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TxBuilder.js","sourceRoot":"","sources":["../../src/Cardano/TxBuilder.ts"],"names":[],"mappings":"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"}