@helios-lang/effect 0.3.0 → 0.4.33

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 (176) hide show
  1. package/.vscode/settings.json +3 -0
  2. package/dist/Cardano/Ledger/AssetClass.js +6 -1
  3. package/dist/Cardano/Ledger/AssetClass.js.map +1 -1
  4. package/dist/Cardano/Ledger/Assets.js +85 -3
  5. package/dist/Cardano/Ledger/Assets.js.map +1 -1
  6. package/dist/Cardano/Ledger/Credential.js +1 -1
  7. package/dist/Cardano/Ledger/Credential.js.map +1 -1
  8. package/dist/Cardano/Ledger/DCert.js +2 -1
  9. package/dist/Cardano/Ledger/DCert.js.map +1 -1
  10. package/dist/Cardano/Ledger/DatumHash.js +2 -2
  11. package/dist/Cardano/Ledger/DatumHash.js.map +1 -1
  12. package/dist/Cardano/Ledger/MintingPolicy.js +2 -0
  13. package/dist/Cardano/Ledger/MintingPolicy.js.map +1 -1
  14. package/dist/Cardano/Ledger/NativeScript.js +2 -1
  15. package/dist/Cardano/Ledger/NativeScript.js.map +1 -1
  16. package/dist/Cardano/Ledger/PubKey.js +1 -1
  17. package/dist/Cardano/Ledger/PubKey.js.map +1 -1
  18. package/dist/Cardano/Ledger/PubKeyHash.js +1 -1
  19. package/dist/Cardano/Ledger/PubKeyHash.js.map +1 -1
  20. package/dist/Cardano/Ledger/Redeemer.js +1 -1
  21. package/dist/Cardano/Ledger/Redeemer.js.map +1 -1
  22. package/dist/Cardano/Ledger/RewardAddress.js +6 -0
  23. package/dist/Cardano/Ledger/RewardAddress.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 +223 -24
  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/Network/AssetMetadata.js +11 -0
  39. package/dist/Cardano/Network/AssetMetadata.js.map +1 -0
  40. package/dist/Cardano/Network/IsMainnet.js +1 -1
  41. package/dist/Cardano/Network/IsMainnet.js.map +1 -1
  42. package/dist/Cardano/Network/Params.js +105 -1
  43. package/dist/Cardano/Network/Params.js.map +1 -1
  44. package/dist/Cardano/Network/Submit.js +15 -0
  45. package/dist/Cardano/Network/Submit.js.map +1 -0
  46. package/dist/Cardano/Network/UTxO.js +2 -2
  47. package/dist/Cardano/Network/UTxO.js.map +1 -1
  48. package/dist/Cardano/Network/UTxOsAt.js +3 -2
  49. package/dist/Cardano/Network/UTxOsAt.js.map +1 -1
  50. package/dist/Cardano/Network/errors.js +16 -3
  51. package/dist/Cardano/Network/errors.js.map +1 -1
  52. package/dist/Cardano/Network/index.js +2 -0
  53. package/dist/Cardano/Network/index.js.map +1 -1
  54. package/dist/Cardano/ScriptContext.js +264 -0
  55. package/dist/Cardano/ScriptContext.js.map +1 -0
  56. package/dist/Cardano/TxBuilder.js +88 -42
  57. package/dist/Cardano/TxBuilder.js.map +1 -1
  58. package/dist/Cardano/Uplc/Builtins.js +293 -32
  59. package/dist/Cardano/Uplc/Builtins.js.map +1 -1
  60. package/dist/Cardano/Uplc/Cek.js +6 -5
  61. package/dist/Cardano/Uplc/Cek.js.map +1 -1
  62. package/dist/Cardano/Uplc/Cost.js +257 -1
  63. package/dist/Cardano/Uplc/Cost.js.map +1 -1
  64. package/dist/Cardano/Uplc/Data.js +22 -8
  65. package/dist/Cardano/Uplc/Data.js.map +1 -1
  66. package/dist/Cardano/Uplc/Script.js +52 -10
  67. package/dist/Cardano/Uplc/Script.js.map +1 -1
  68. package/dist/Cardano/Uplc/Term.js +14 -0
  69. package/dist/Cardano/Uplc/Term.js.map +1 -1
  70. package/dist/Cardano/Uplc/index.js +2 -1
  71. package/dist/Cardano/Uplc/index.js.map +1 -1
  72. package/dist/Cardano/Wallet.js +4 -1
  73. package/dist/Cardano/Wallet.js.map +1 -1
  74. package/dist/Cardano/index.js +4 -3
  75. package/dist/Cardano/index.js.map +1 -1
  76. package/dist/Codecs/Base32.js +4 -1
  77. package/dist/Codecs/Base32.js.map +1 -1
  78. package/dist/Codecs/BigEndian.js +1 -1
  79. package/dist/Codecs/BigEndian.js.map +1 -1
  80. package/dist/Codecs/Bytes.js +1 -1
  81. package/dist/Codecs/Bytes.js.map +1 -1
  82. package/dist/Codecs/LittleEndian.js +1 -1
  83. package/dist/Codecs/LittleEndian.js.map +1 -1
  84. package/dist/Codecs/Utf8.js +1 -1
  85. package/dist/Codecs/Utf8.js.map +1 -1
  86. package/dist/Crypto/Bip32.js +5 -2
  87. package/dist/Crypto/Bip32.js.map +1 -1
  88. package/dist/Crypto/Curve.js +1 -0
  89. package/dist/Crypto/Curve.js.map +1 -1
  90. package/dist/Crypto/Ed25519.js +2 -1
  91. package/dist/Crypto/Ed25519.js.map +1 -1
  92. package/dist/Crypto/EdDSA.js +2 -1
  93. package/dist/Crypto/EdDSA.js.map +1 -1
  94. package/dist/Crypto/Sha3_256.js +1 -0
  95. package/dist/Crypto/Sha3_256.js.map +1 -1
  96. package/dist/Crypto/index.js +2 -0
  97. package/dist/Crypto/index.js.map +1 -1
  98. package/dist/index.js +3 -3
  99. package/dist/index.js.map +1 -1
  100. package/package.json +2 -1
  101. package/types/Cardano/Ledger/AssetClass.d.ts +6 -1
  102. package/types/Cardano/Ledger/AssetClass.d.ts.map +1 -1
  103. package/types/Cardano/Ledger/Assets.d.ts +14 -2
  104. package/types/Cardano/Ledger/Assets.d.ts.map +1 -1
  105. package/types/Cardano/Ledger/Credential.d.ts +1 -1
  106. package/types/Cardano/Ledger/Credential.d.ts.map +1 -1
  107. package/types/Cardano/Ledger/DatumHash.d.ts +2 -2
  108. package/types/Cardano/Ledger/DatumHash.d.ts.map +1 -1
  109. package/types/Cardano/Ledger/MintingPolicy.d.ts +1 -0
  110. package/types/Cardano/Ledger/MintingPolicy.d.ts.map +1 -1
  111. package/types/Cardano/Ledger/PubKey.d.ts +2 -2
  112. package/types/Cardano/Ledger/PubKey.d.ts.map +1 -1
  113. package/types/Cardano/Ledger/PubKeyHash.d.ts +2 -2
  114. package/types/Cardano/Ledger/PubKeyHash.d.ts.map +1 -1
  115. package/types/Cardano/Ledger/Redeemer.d.ts +1 -1
  116. package/types/Cardano/Ledger/Redeemer.d.ts.map +1 -1
  117. package/types/Cardano/Ledger/RewardAddress.d.ts.map +1 -1
  118. package/types/Cardano/Ledger/Signature.d.ts +1 -1
  119. package/types/Cardano/Ledger/Signature.d.ts.map +1 -1
  120. package/types/Cardano/Ledger/Tx.d.ts +22 -241
  121. package/types/Cardano/Ledger/Tx.d.ts.map +1 -1
  122. package/types/Cardano/Ledger/TxOutput.d.ts +95 -105
  123. package/types/Cardano/Ledger/TxOutput.d.ts.map +1 -1
  124. package/types/Cardano/Ledger/TxOutputDatum.d.ts +69 -68
  125. package/types/Cardano/Ledger/TxOutputDatum.d.ts.map +1 -1
  126. package/types/Cardano/Ledger/UTxO.d.ts +272 -322
  127. package/types/Cardano/Ledger/UTxO.d.ts.map +1 -1
  128. package/types/Cardano/Ledger/ValidatorHash.d.ts +2 -2
  129. package/types/Cardano/Ledger/ValidatorHash.d.ts.map +1 -1
  130. package/types/Cardano/Network/AssetMetadata.d.ts +15 -0
  131. package/types/Cardano/Network/AssetMetadata.d.ts.map +1 -0
  132. package/types/Cardano/Network/IsMainnet.d.ts +1 -1
  133. package/types/Cardano/Network/Params.d.ts +9 -1
  134. package/types/Cardano/Network/Params.d.ts.map +1 -1
  135. package/types/Cardano/Network/Submit.d.ts +18 -0
  136. package/types/Cardano/Network/Submit.d.ts.map +1 -0
  137. package/types/Cardano/Network/UTxO.d.ts +1 -1
  138. package/types/Cardano/Network/UTxO.d.ts.map +1 -1
  139. package/types/Cardano/Network/UTxOsAt.d.ts +2 -2
  140. package/types/Cardano/Network/UTxOsAt.d.ts.map +1 -1
  141. package/types/Cardano/Network/errors.d.ts +22 -2
  142. package/types/Cardano/Network/errors.d.ts.map +1 -1
  143. package/types/Cardano/Network/index.d.ts +2 -0
  144. package/types/Cardano/Network/index.d.ts.map +1 -1
  145. package/types/Cardano/ScriptContext.d.ts +1340 -0
  146. package/types/Cardano/ScriptContext.d.ts.map +1 -0
  147. package/types/Cardano/TxBuilder.d.ts +7 -5
  148. package/types/Cardano/TxBuilder.d.ts.map +1 -1
  149. package/types/Cardano/Uplc/Builtins.d.ts.map +1 -1
  150. package/types/Cardano/Uplc/Cek.d.ts.map +1 -1
  151. package/types/Cardano/Uplc/Cost.d.ts +1 -0
  152. package/types/Cardano/Uplc/Cost.d.ts.map +1 -1
  153. package/types/Cardano/Uplc/Data.d.ts.map +1 -1
  154. package/types/Cardano/Uplc/Script.d.ts +5 -3
  155. package/types/Cardano/Uplc/Script.d.ts.map +1 -1
  156. package/types/Cardano/Uplc/Term.d.ts +3 -0
  157. package/types/Cardano/Uplc/Term.d.ts.map +1 -1
  158. package/types/Cardano/Uplc/index.d.ts +2 -1
  159. package/types/Cardano/Uplc/index.d.ts.map +1 -1
  160. package/types/Cardano/Wallet.d.ts +18 -23
  161. package/types/Cardano/Wallet.d.ts.map +1 -1
  162. package/types/Cardano/index.d.ts +4 -3
  163. package/types/Cardano/index.d.ts.map +1 -1
  164. package/types/Codecs/Base32.d.ts +4 -1
  165. package/types/Codecs/Base32.d.ts.map +1 -1
  166. package/types/Crypto/Bip32.d.ts +5 -3
  167. package/types/Crypto/Bip32.d.ts.map +1 -1
  168. package/types/Crypto/EdDSA.d.ts +1 -1
  169. package/types/Crypto/EdDSA.d.ts.map +1 -1
  170. package/types/Crypto/index.d.ts +2 -0
  171. package/types/Crypto/index.d.ts.map +1 -1
  172. package/types/index.d.ts +3 -3
  173. package/types/index.d.ts.map +1 -1
  174. package/bun.lock +0 -60
  175. package/tsconfig.build.json +0 -14
  176. package/tsconfig.json +0 -38
@@ -1,17 +1,21 @@
1
- import { Effect, Either, Encoding } from "effect";
1
+ import { Console, Effect, Either, Encoding } from "effect";
2
+ import { TaggedError } from "effect/Data";
2
3
  import * as Bytes from "../../Codecs/Bytes.js";
3
4
  import * as Cbor from "../../Codecs/Cbor.js";
4
- import * as Crypto from "../../Crypto";
5
+ import * as Crypto from "../../Crypto/index.js";
5
6
  import * as Params from "../Network/Params.js";
6
- import { Data, Script } from "../Uplc";
7
+ import { Cek, Data, Script } from "../Uplc/index.js";
7
8
  import * as Address from "./Address.js";
8
9
  import * as Assets from "./Assets.js";
10
+ import * as Credential from "./Credential.js";
9
11
  import * as DCert from "./DCert.js";
10
12
  import * as NativeScript from "./NativeScript.js";
13
+ import * as PubKey from "./PubKey.js";
11
14
  import * as PubKeyHash from "./PubKeyHash.js";
12
15
  import * as Redeemer from "./Redeemer.js";
13
16
  import * as RewardAddress from "./RewardAddress.js";
14
17
  import * as Signature from "./Signature.js";
18
+ import * as TxHash from "./TxHash.js";
15
19
  import * as TxOutput from "./TxOutput.js";
16
20
  import * as UTxO from "./UTxO.js";
17
21
  import * as DatumHash from "./DatumHash.js";
@@ -51,17 +55,33 @@ export const decode = (options = {}) => (bytes) => Effect.gen(function* () {
51
55
  Cbor.decodeBool,
52
56
  Cbor.decodeNullOption(decodeMetadata)
53
57
  ])(bytes);
54
- return {
58
+ const resolvedRefInputs = yield* UTxO.resolveAll(options)(body.refInputs);
59
+ const tx = {
55
60
  body: {
56
61
  ...body,
57
62
  inputs: yield* UTxO.resolveAll(options)(body.inputs),
58
63
  collateral: yield* UTxO.resolveAll(options)(body.collateral),
59
- refInputs: yield* UTxO.resolveAll(options)(body.refInputs)
64
+ refInputs: resolvedRefInputs
65
+ },
66
+ witnesses: {
67
+ ...witnesses,
68
+ v2RefScripts: [
69
+ ...witnesses.v2RefScripts,
70
+ ...resolvedRefInputs
71
+ .map((ri) => ri.output.refScript)
72
+ .filter((rs) => rs?.version == 2)
73
+ ],
74
+ v3RefScripts: [
75
+ ...witnesses.v3RefScripts,
76
+ ...resolvedRefInputs
77
+ .map((ri) => ri.output.refScript)
78
+ .filter((rs) => rs?.version == 3)
79
+ ]
60
80
  },
61
- witnesses,
62
81
  isValid,
63
82
  metadata
64
83
  };
84
+ return tx;
65
85
  });
66
86
  export const encode = (options = {}) => (tx) => {
67
87
  if (options.forFeeCalculation === true) {
@@ -174,7 +194,7 @@ const encodeBody = (options) => (body) => {
174
194
  m.set(8, Cbor.encodeInt(body.firstValidSlot));
175
195
  }
176
196
  if (!Assets.isEmpty(body.minted)) {
177
- m.set(9, Assets.encode(body.minted));
197
+ m.set(9, Assets.encode({ withoutLovelace: true })(body.minted));
178
198
  }
179
199
  if (body.scriptDataHash !== undefined) {
180
200
  m.set(11, Cbor.encodeBytes(body.scriptDataHash));
@@ -360,22 +380,53 @@ function encodeMetadataAttr(attr) {
360
380
  export function hash(tx) {
361
381
  return Encoding.encodeHex(Crypto.Blake2b.hashSync(encodeBody({ full: false })(tx.body)));
362
382
  }
363
- const countUniqueSigners = (body) => {
383
+ const addPubKeyCredentialSigner = (set, credential) => {
384
+ if (credential._tag == "PubKey") {
385
+ set.add(credential.hash);
386
+ }
387
+ };
388
+ const collectRequiredSignerHashes = (body) => {
364
389
  const set = new Set();
365
390
  body.inputs.concat(body.collateral).forEach((utxo) => {
366
391
  const address = utxo.output.address;
367
392
  const credential = Address.spendingCredential(address);
368
- if (credential._tag == "PubKey") {
369
- set.add(credential.hash);
393
+ addPubKeyCredentialSigner(set, credential);
394
+ });
395
+ body.withdrawals.forEach(([rewardAddress]) => {
396
+ addPubKeyCredentialSigner(set, RewardAddress.credential(rewardAddress));
397
+ });
398
+ body.dcerts.forEach((dcert) => {
399
+ switch (dcert._tag) {
400
+ case "Registration":
401
+ case "Deregistration":
402
+ case "Delegation":
403
+ addPubKeyCredentialSigner(set, dcert.credential);
404
+ break;
405
+ case "RegisterPool":
406
+ set.add(dcert.id);
407
+ dcert.owners.forEach((owner) => set.add(owner));
408
+ break;
409
+ case "RetirePool":
410
+ set.add(dcert.poolId);
411
+ break;
370
412
  }
371
413
  });
372
414
  body.signers.forEach((s) => set.add(s));
373
- return set.size;
415
+ return set;
374
416
  };
417
+ const countUniqueSigners = (body) => collectRequiredSignerHashes(body).size;
418
+ const collectPresentSignerHashes = (witnesses) => new Set(witnesses.signatures.map((signature) => PubKey.hash(signature.pubKey)));
375
419
  const countNonDummySignatures = (witnesses) => {
376
420
  return witnesses.signatures.reduce((count, s) => count + (Signature.isDummy(s) ? 0 : 1), 0);
377
421
  };
378
422
  const countMissingSignatures = (tx) => countUniqueSigners(tx.body) - countNonDummySignatures(tx.witnesses);
423
+ export const validateSignatures = (tx) => Effect.gen(function* () {
424
+ const present = collectPresentSignerHashes(tx.witnesses);
425
+ const missing = Array.from(collectRequiredSignerHashes(tx.body)).filter((pkh) => !present.has(pkh));
426
+ if (missing.length > 0) {
427
+ return yield* new InvalidTx(`missing VK signatures for PubKeyHash(es): ${missing.join(", ")}`);
428
+ }
429
+ });
379
430
  /**
380
431
  * Number of bytes of CBOR encoding of Tx
381
432
  *
@@ -420,40 +471,71 @@ const refScriptsFee = (feePerByte, growthIncrement = 25600, growthFactor = 1.2)
420
471
  let multiplier = 1.0;
421
472
  let fee = 0n;
422
473
  while (s > growthIncrement) {
423
- fee += BigInt(Math.floor(Number(growthIncrement) * multiplier * feePerByte));
474
+ fee += BigInt(Math.floor(growthIncrement * multiplier * feePerByte));
424
475
  s -= growthIncrement;
425
476
  multiplier *= growthFactor;
426
477
  }
427
- fee += BigInt(Math.floor(Number(size) * multiplier * feePerByte));
478
+ fee += BigInt(Math.floor(s * multiplier * feePerByte));
428
479
  return fee;
429
480
  };
430
481
  export const minFee = (tx) => Effect.gen(function* () {
431
- const params = yield* Params.params;
432
- const sizeFee = BigInt(params.txFeeFixed) +
433
- BigInt(size(true)(tx)) * BigInt(params.txFeePerByte);
482
+ const p = yield* Params.params;
483
+ if (p.txFeeFixed === undefined) {
484
+ throw new Error(`Network.Params.params.txFeeFixed undefined in Cardano.Ledger.Tx.minFee()`);
485
+ }
486
+ if (p.txFeePerByte === undefined) {
487
+ throw new Error(`Network.Params.params.txFeePerByte undefined in Cardano.Ledger.Tx.minFee()`);
488
+ }
489
+ const s = size(true)(tx);
490
+ if (!Number.isFinite(s)) {
491
+ throw new Error(`tx size not finite in Cardano.Ledger.Tx.minFee()`);
492
+ }
493
+ const sizeFee = BigInt(p.txFeeFixed) + BigInt(size(true)(tx)) * BigInt(p.txFeePerByte);
434
494
  const { mem: totalMem, cpu: totalCpu } = tx.witnesses.redeemers.reduce((cost, r) => ({ cpu: cost.cpu + r.cost.cpu, mem: cost.mem + r.cost.mem }), { cpu: 0n, mem: 0n });
435
- const exFee = BigInt(Math.ceil(Number(totalMem) * params.exMemFeePerUnit +
436
- Number(totalCpu) * params.exCpuFeePerUnit));
437
- const rsFee = refScriptsFee(params.refScriptsFeePerByte)(tx);
495
+ if (p.exMemFeePerUnit === undefined) {
496
+ throw new Error(`Network.Params.params.exMemFeePerUnit undefined in Cardano.Ledger.Tx.minFee()`);
497
+ }
498
+ if (p.exCpuFeePerUnit === undefined) {
499
+ throw new Error(`Network.Params.params.exCpuFeePerUnit undefined in Cardano.Ledger.Tx.minFee()`);
500
+ }
501
+ const exFee = BigInt(Math.ceil(Number(totalMem) * p.exMemFeePerUnit +
502
+ Number(totalCpu) * p.exCpuFeePerUnit));
503
+ if (p.refScriptsFeePerByte === undefined) {
504
+ throw new Error(`Network.Params.params.refScriptsFeePerByte undefined in Cardano.Ledger.Tx.minFee()`);
505
+ }
506
+ const rsFee = refScriptsFee(p.refScriptsFeePerByte)(tx);
438
507
  return sizeFee + exFee + rsFee;
439
508
  });
509
+ export const minCollateral = (tx) => Effect.gen(function* () {
510
+ if (!isSmart(tx)) {
511
+ return 0n;
512
+ }
513
+ const p = yield* Params.params;
514
+ if (p.collateralPercentage === undefined) {
515
+ throw new Error(`Network.Params.params.collateralPercentage undefined in Cardano.Ledger.Tx.minFee()`);
516
+ }
517
+ const fee = tx.body.fee;
518
+ const pct = p.collateralPercentage;
519
+ const mc = BigInt(Math.ceil((pct * Number(fee)) / 100.0));
520
+ return mc;
521
+ });
440
522
  export const inputDatum = (inputIndex) => (tx) => {
441
523
  const datum = tx.body.inputs[inputIndex]?.output?.datum;
442
524
  if (datum === undefined) {
443
525
  return datum;
444
526
  }
445
- else if (datum._tag == "Inline") {
446
- return datum.data;
447
- }
448
- else {
527
+ else if ("hash" in datum) {
449
528
  const resolvedDatum = tx.witnesses.datums.find((d) => DatumHash.hash(d) == datum.hash);
450
529
  if (resolvedDatum === undefined) {
451
530
  throw new Error(`Datum for hash '${datum.hash}' not found in tx.witnesses.datums`);
452
531
  }
453
532
  return resolvedDatum;
454
533
  }
534
+ else {
535
+ return datum;
536
+ }
455
537
  };
456
- function isSmart(tx) {
538
+ export function isSmart(tx) {
457
539
  return (tx.witnesses.v1Scripts.length > 0 ||
458
540
  tx.witnesses.v2Scripts.length > 0 ||
459
541
  tx.witnesses.v2RefScripts.length > 0 ||
@@ -495,4 +577,121 @@ export const scriptDataHash = (tx) => Effect.gen(function* () {
495
577
  bytes = bytes.concat(Cbor.encodeMap(encodedCostModels));
496
578
  return Bytes.toArray(Crypto.Blake2b.hashSync(bytes));
497
579
  });
580
+ export class InvalidTx extends TaggedError("Cardano.Ledger.Tx.InvalidTx") {
581
+ constructor(reason) {
582
+ super({ message: `Invalid tx (${reason})` });
583
+ }
584
+ }
585
+ export const validate = ({ strict = false, signatures = false, verbose: _verbose = false, logger: _logger = undefined } = {}) => (tx) => Effect.gen(function* () {
586
+ yield* validateSize(tx);
587
+ yield* validateFee(tx);
588
+ yield* validateConservation(tx);
589
+ yield* validateCollateral(strict)(tx);
590
+ yield* validateOutputs(strict)(tx);
591
+ if (signatures) {
592
+ yield* validateSignatures(tx);
593
+ }
594
+ tx = {
595
+ ...tx,
596
+ isValid: true
597
+ };
598
+ return tx;
599
+ });
600
+ /**
601
+ * The guards throwing defects help during debugging
602
+ */
603
+ const validateSize = (tx) => Effect.gen(function* () {
604
+ const p = yield* Params.params;
605
+ if (p.maxTxSize === undefined) {
606
+ throw new Error(`Network.Params.params.maxTxSize undefined in Cardano.Ledger.Tx.validateSize()`);
607
+ }
608
+ const s = size()(tx);
609
+ if (s > p.maxTxSize) {
610
+ return yield* new InvalidTx(`size too big, ${s} > ${p.maxTxSize}`);
611
+ }
612
+ });
613
+ /**
614
+ * The guards throwing defects help during debugging
615
+ */
616
+ const validateFee = (tx) => Effect.gen(function* () {
617
+ const f = yield* minFee(tx);
618
+ if (tx.body.fee < f) {
619
+ return yield* new InvalidTx(`fee too small, expected at least ${f} but got ${tx.body.fee}`);
620
+ }
621
+ });
622
+ /**
623
+ * The guards throwing defects help during debugging
624
+ */
625
+ const validateConservation = (tx) => Effect.gen(function* () {
626
+ const p = yield* Params.params;
627
+ if (p.stakeAddrDeposit === undefined) {
628
+ throw new Error(`Network.Params.params.stakeAddrDeposit undefined in Cardano.Ledger.Tx.validateConservation()`);
629
+ }
630
+ let sum = UTxO.sumAssets(...tx.body.inputs);
631
+ sum = tx.body.dcerts.reduce((prev, dcert) => dcert._tag == "Deregistration"
632
+ ? Assets.add(prev, { "": BigInt(p.stakeAddrDeposit) })
633
+ : dcert._tag == "Registration"
634
+ ? Assets.subtract(prev, { "": BigInt(p.stakeAddrDeposit) })
635
+ : prev, sum);
636
+ sum = Assets.subtract(sum, { "": tx.body.fee });
637
+ sum = Assets.add(sum, tx.body.minted);
638
+ sum = Assets.subtract(sum, TxOutput.sumAssets(...tx.body.outputs));
639
+ if (!Assets.isEmpty(sum)) {
640
+ return yield* new InvalidTx(`value not conserved (diff: ${Assets.pretty(sum)})`);
641
+ }
642
+ });
643
+ /**
644
+ * The guards throwing defects help during debugging
645
+ */
646
+ const validateCollateral = (strict) => (tx) => Effect.gen(function* () {
647
+ const p = yield* Params.params;
648
+ if (p.maxCollateralInputs === undefined) {
649
+ throw new Error(`Network.Params.params.maxCollateralInputs undefined in Cardano.Ledger.Tx.validateCollateral()`);
650
+ }
651
+ if (tx.body.collateral.length > p.maxCollateralInputs) {
652
+ return yield* new InvalidTx(`too many collateral inputs (${tx.body.collateral.length} > ${p.maxCollateralInputs})`);
653
+ }
654
+ if (!isSmart(tx)) {
655
+ if (strict && tx.body.collateral.length != 0) {
656
+ return yield* new InvalidTx(`unnecessary collateral included`);
657
+ }
658
+ return;
659
+ }
660
+ // skip this validation if the NetworkParams.collateralUTXO is used (we can assume that such a UTXO is always clean and contains enough lovelace)
661
+ if (p.collateralUTXO !== undefined &&
662
+ tx.body.collateral.some((utxo) => utxo.ref == p.collateralUTXO)) {
663
+ return;
664
+ }
665
+ const mc = yield* minCollateral(tx);
666
+ let sum = 0n;
667
+ for (const utxo of tx.body.collateral) {
668
+ if (!Assets.containsOnlyAda(utxo.output.assets)) {
669
+ return yield* new InvalidTx(`collateral can only contain lovelace (collateral utxo ${utxo.ref} contains ${Object.keys(utxo.output.assets).join(", ")})`);
670
+ }
671
+ sum += utxo.output.assets[""] ?? 0n;
672
+ }
673
+ if (tx.body.collateralReturn !== undefined) {
674
+ if (!Assets.containsOnlyAda(tx.body.collateralReturn.assets)) {
675
+ return yield* new InvalidTx(`collateral return can only contain lovelace (collateral return contains ${Object.keys(tx.body.collateralReturn.assets).join(", ")})`);
676
+ }
677
+ sum -= tx.body.collateralReturn.assets[""] ?? 0n;
678
+ }
679
+ if (sum < mc) {
680
+ return yield* new InvalidTx(`insufficient collateral lovelace (${sum} < ${mc})`);
681
+ }
682
+ if (sum > mc * 5n) {
683
+ yield* Console.warn(`way too much collateral (${sum} >> ${mc})`);
684
+ }
685
+ });
686
+ export const validateOutputs = (strict) => (tx) => Effect.gen(function* () {
687
+ for (const output of tx.body.outputs) {
688
+ const minLovelace = yield* TxOutput.minLovelace(output);
689
+ if (minLovelace > (output.assets[""] ?? 0n)) {
690
+ return yield* new InvalidTx(`not enough lovelace in output (expected at least ${minLovelace.toString()}, got ${output.assets[""] ?? 0n})`);
691
+ }
692
+ if (strict && !Assets.isSorted(output.assets)) {
693
+ return yield* new InvalidTx(`output assets not sorted`);
694
+ }
695
+ }
696
+ });
498
697
  //# sourceMappingURL=Tx.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Tx.js","sourceRoot":"","sources":["../../../src/Cardano/Ledger/Tx.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Tx.js","sourceRoot":"","sources":["../../../src/Cardano/Ledger/Tx.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,8 @@
1
1
  import { Effect, Either, Option, Schema } from "effect";
2
2
  import * as Bytes from "../../Codecs/Bytes.js";
3
3
  import * as Cbor from "../../Codecs/Cbor.js";
4
- import { Params } from "../Network";
5
- import * as Uplc from "../Uplc";
4
+ import * as Params from "../Network/Params.js";
5
+ import * as Uplc from "../Uplc/index.js";
6
6
  import * as Address from "./Address.js";
7
7
  import * as Assets from "./Assets.js";
8
8
  import * as DatumHash from "./DatumHash.js";
@@ -125,7 +125,7 @@ export const decode = (bytes) => Either.gen(function* () {
125
125
  }
126
126
  });
127
127
  export function encode(output) {
128
- if ((!output.datum || output.datum._tag == "Hash") &&
128
+ if ((!output.datum || "hash" in output.datum) &&
129
129
  !output.refScript &&
130
130
  (!output.encodingConfig ||
131
131
  output.encodingConfig.strictBabbage == null ||
@@ -134,9 +134,9 @@ export function encode(output) {
134
134
  // hopefully cardano-cli signs whatever serialization we choose (so we use the eternl variant in order to be compatible with both)
135
135
  const fields = [
136
136
  Address.encode(output.address),
137
- Assets.encode(output.assets)
137
+ Assets.encode({ withoutLovelace: false })(output.assets)
138
138
  ];
139
- if (output.datum && output.datum._tag == "Hash") {
139
+ if (output.datum && "hash" in output.datum) {
140
140
  fields.push(DatumHash.encode(output.datum.hash));
141
141
  }
142
142
  return Cbor.encodeTuple(fields);
@@ -144,7 +144,7 @@ export function encode(output) {
144
144
  else {
145
145
  const object = new Map();
146
146
  object.set(0, Address.encode(output.address));
147
- object.set(1, Assets.encode(output.assets));
147
+ object.set(1, Assets.encode({ withoutLovelace: false })(output.assets));
148
148
  if (output.datum) {
149
149
  object.set(2, TxOutputDatum.encode(output.datum));
150
150
  }
@@ -159,8 +159,14 @@ export function encode(output) {
159
159
  }
160
160
  export const minLovelace = (output) => Params.params.pipe(Effect.map((p) => {
161
161
  const lovelacePerByte = p.utxoDepositPerByte;
162
+ if (p.utxoDepositPerByte === undefined) {
163
+ throw new Error(`Network.Params.params.utxoDepositPerByte undefined in Cardano.Ledger.TxOutput.minLovelace()`);
164
+ }
162
165
  // 160 accounts for some database overhead?
163
166
  const correctedSize = encode(output).length + 160;
167
+ if (!Number.isFinite(correctedSize)) {
168
+ throw new Error("correctedSize isn't finite in Cardano.Ledger.TxOutput.minLovelace()");
169
+ }
164
170
  return BigInt(correctedSize) * BigInt(lovelacePerByte);
165
171
  }));
166
172
  export const sumAssets = (...outputs) => Assets.sum(...outputs.map((output) => output.assets));
@@ -1 +1 @@
1
- {"version":3,"file":"TxOutput.js","sourceRoot":"","sources":["../../../src/Cardano/Ledger/TxOutput.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TxOutput.js","sourceRoot":"","sources":["../../../src/Cardano/Ledger/TxOutput.ts"],"names":[],"mappings":"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"}