@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.
- package/.vscode/settings.json +3 -0
- package/dist/Cardano/Ledger/AssetClass.js +6 -1
- package/dist/Cardano/Ledger/AssetClass.js.map +1 -1
- package/dist/Cardano/Ledger/Assets.js +85 -3
- package/dist/Cardano/Ledger/Assets.js.map +1 -1
- package/dist/Cardano/Ledger/Credential.js +1 -1
- package/dist/Cardano/Ledger/Credential.js.map +1 -1
- package/dist/Cardano/Ledger/DCert.js +2 -1
- package/dist/Cardano/Ledger/DCert.js.map +1 -1
- package/dist/Cardano/Ledger/DatumHash.js +2 -2
- package/dist/Cardano/Ledger/DatumHash.js.map +1 -1
- package/dist/Cardano/Ledger/MintingPolicy.js +2 -0
- package/dist/Cardano/Ledger/MintingPolicy.js.map +1 -1
- package/dist/Cardano/Ledger/NativeScript.js +2 -1
- package/dist/Cardano/Ledger/NativeScript.js.map +1 -1
- package/dist/Cardano/Ledger/PubKey.js +1 -1
- package/dist/Cardano/Ledger/PubKey.js.map +1 -1
- package/dist/Cardano/Ledger/PubKeyHash.js +1 -1
- package/dist/Cardano/Ledger/PubKeyHash.js.map +1 -1
- package/dist/Cardano/Ledger/Redeemer.js +1 -1
- package/dist/Cardano/Ledger/Redeemer.js.map +1 -1
- package/dist/Cardano/Ledger/RewardAddress.js +6 -0
- package/dist/Cardano/Ledger/RewardAddress.js.map +1 -1
- package/dist/Cardano/Ledger/Signature.js +1 -0
- package/dist/Cardano/Ledger/Signature.js.map +1 -1
- package/dist/Cardano/Ledger/Tx.js +223 -24
- package/dist/Cardano/Ledger/Tx.js.map +1 -1
- package/dist/Cardano/Ledger/TxOutput.js +12 -6
- package/dist/Cardano/Ledger/TxOutput.js.map +1 -1
- package/dist/Cardano/Ledger/TxOutputDatum.js +36 -34
- package/dist/Cardano/Ledger/TxOutputDatum.js.map +1 -1
- package/dist/Cardano/Ledger/UTxO.js +1 -1
- package/dist/Cardano/Ledger/UTxO.js.map +1 -1
- package/dist/Cardano/Ledger/UTxORef.js +1 -0
- package/dist/Cardano/Ledger/UTxORef.js.map +1 -1
- package/dist/Cardano/Ledger/ValidatorHash.js +1 -1
- package/dist/Cardano/Ledger/ValidatorHash.js.map +1 -1
- package/dist/Cardano/Network/AssetMetadata.js +11 -0
- package/dist/Cardano/Network/AssetMetadata.js.map +1 -0
- package/dist/Cardano/Network/IsMainnet.js +1 -1
- package/dist/Cardano/Network/IsMainnet.js.map +1 -1
- package/dist/Cardano/Network/Params.js +105 -1
- package/dist/Cardano/Network/Params.js.map +1 -1
- package/dist/Cardano/Network/Submit.js +15 -0
- package/dist/Cardano/Network/Submit.js.map +1 -0
- package/dist/Cardano/Network/UTxO.js +2 -2
- package/dist/Cardano/Network/UTxO.js.map +1 -1
- package/dist/Cardano/Network/UTxOsAt.js +3 -2
- package/dist/Cardano/Network/UTxOsAt.js.map +1 -1
- package/dist/Cardano/Network/errors.js +16 -3
- package/dist/Cardano/Network/errors.js.map +1 -1
- package/dist/Cardano/Network/index.js +2 -0
- package/dist/Cardano/Network/index.js.map +1 -1
- package/dist/Cardano/ScriptContext.js +264 -0
- package/dist/Cardano/ScriptContext.js.map +1 -0
- package/dist/Cardano/TxBuilder.js +88 -42
- package/dist/Cardano/TxBuilder.js.map +1 -1
- package/dist/Cardano/Uplc/Builtins.js +293 -32
- package/dist/Cardano/Uplc/Builtins.js.map +1 -1
- package/dist/Cardano/Uplc/Cek.js +6 -5
- package/dist/Cardano/Uplc/Cek.js.map +1 -1
- package/dist/Cardano/Uplc/Cost.js +257 -1
- package/dist/Cardano/Uplc/Cost.js.map +1 -1
- package/dist/Cardano/Uplc/Data.js +22 -8
- package/dist/Cardano/Uplc/Data.js.map +1 -1
- package/dist/Cardano/Uplc/Script.js +52 -10
- package/dist/Cardano/Uplc/Script.js.map +1 -1
- package/dist/Cardano/Uplc/Term.js +14 -0
- package/dist/Cardano/Uplc/Term.js.map +1 -1
- package/dist/Cardano/Uplc/index.js +2 -1
- package/dist/Cardano/Uplc/index.js.map +1 -1
- package/dist/Cardano/Wallet.js +4 -1
- package/dist/Cardano/Wallet.js.map +1 -1
- package/dist/Cardano/index.js +4 -3
- package/dist/Cardano/index.js.map +1 -1
- package/dist/Codecs/Base32.js +4 -1
- package/dist/Codecs/Base32.js.map +1 -1
- package/dist/Codecs/BigEndian.js +1 -1
- package/dist/Codecs/BigEndian.js.map +1 -1
- package/dist/Codecs/Bytes.js +1 -1
- package/dist/Codecs/Bytes.js.map +1 -1
- package/dist/Codecs/LittleEndian.js +1 -1
- package/dist/Codecs/LittleEndian.js.map +1 -1
- package/dist/Codecs/Utf8.js +1 -1
- package/dist/Codecs/Utf8.js.map +1 -1
- package/dist/Crypto/Bip32.js +5 -2
- package/dist/Crypto/Bip32.js.map +1 -1
- package/dist/Crypto/Curve.js +1 -0
- package/dist/Crypto/Curve.js.map +1 -1
- package/dist/Crypto/Ed25519.js +2 -1
- package/dist/Crypto/Ed25519.js.map +1 -1
- package/dist/Crypto/EdDSA.js +2 -1
- package/dist/Crypto/EdDSA.js.map +1 -1
- package/dist/Crypto/Sha3_256.js +1 -0
- package/dist/Crypto/Sha3_256.js.map +1 -1
- package/dist/Crypto/index.js +2 -0
- package/dist/Crypto/index.js.map +1 -1
- package/dist/index.js +3 -3
- package/dist/index.js.map +1 -1
- package/package.json +2 -1
- package/types/Cardano/Ledger/AssetClass.d.ts +6 -1
- package/types/Cardano/Ledger/AssetClass.d.ts.map +1 -1
- package/types/Cardano/Ledger/Assets.d.ts +14 -2
- package/types/Cardano/Ledger/Assets.d.ts.map +1 -1
- package/types/Cardano/Ledger/Credential.d.ts +1 -1
- package/types/Cardano/Ledger/Credential.d.ts.map +1 -1
- package/types/Cardano/Ledger/DatumHash.d.ts +2 -2
- package/types/Cardano/Ledger/DatumHash.d.ts.map +1 -1
- package/types/Cardano/Ledger/MintingPolicy.d.ts +1 -0
- package/types/Cardano/Ledger/MintingPolicy.d.ts.map +1 -1
- package/types/Cardano/Ledger/PubKey.d.ts +2 -2
- package/types/Cardano/Ledger/PubKey.d.ts.map +1 -1
- package/types/Cardano/Ledger/PubKeyHash.d.ts +2 -2
- package/types/Cardano/Ledger/PubKeyHash.d.ts.map +1 -1
- package/types/Cardano/Ledger/Redeemer.d.ts +1 -1
- package/types/Cardano/Ledger/Redeemer.d.ts.map +1 -1
- package/types/Cardano/Ledger/RewardAddress.d.ts.map +1 -1
- package/types/Cardano/Ledger/Signature.d.ts +1 -1
- package/types/Cardano/Ledger/Signature.d.ts.map +1 -1
- package/types/Cardano/Ledger/Tx.d.ts +22 -241
- package/types/Cardano/Ledger/Tx.d.ts.map +1 -1
- package/types/Cardano/Ledger/TxOutput.d.ts +95 -105
- package/types/Cardano/Ledger/TxOutput.d.ts.map +1 -1
- package/types/Cardano/Ledger/TxOutputDatum.d.ts +69 -68
- package/types/Cardano/Ledger/TxOutputDatum.d.ts.map +1 -1
- package/types/Cardano/Ledger/UTxO.d.ts +272 -322
- package/types/Cardano/Ledger/UTxO.d.ts.map +1 -1
- package/types/Cardano/Ledger/ValidatorHash.d.ts +2 -2
- package/types/Cardano/Ledger/ValidatorHash.d.ts.map +1 -1
- package/types/Cardano/Network/AssetMetadata.d.ts +15 -0
- package/types/Cardano/Network/AssetMetadata.d.ts.map +1 -0
- package/types/Cardano/Network/IsMainnet.d.ts +1 -1
- package/types/Cardano/Network/Params.d.ts +9 -1
- package/types/Cardano/Network/Params.d.ts.map +1 -1
- package/types/Cardano/Network/Submit.d.ts +18 -0
- package/types/Cardano/Network/Submit.d.ts.map +1 -0
- package/types/Cardano/Network/UTxO.d.ts +1 -1
- package/types/Cardano/Network/UTxO.d.ts.map +1 -1
- package/types/Cardano/Network/UTxOsAt.d.ts +2 -2
- package/types/Cardano/Network/UTxOsAt.d.ts.map +1 -1
- package/types/Cardano/Network/errors.d.ts +22 -2
- package/types/Cardano/Network/errors.d.ts.map +1 -1
- package/types/Cardano/Network/index.d.ts +2 -0
- package/types/Cardano/Network/index.d.ts.map +1 -1
- package/types/Cardano/ScriptContext.d.ts +1340 -0
- package/types/Cardano/ScriptContext.d.ts.map +1 -0
- package/types/Cardano/TxBuilder.d.ts +7 -5
- package/types/Cardano/TxBuilder.d.ts.map +1 -1
- package/types/Cardano/Uplc/Builtins.d.ts.map +1 -1
- package/types/Cardano/Uplc/Cek.d.ts.map +1 -1
- package/types/Cardano/Uplc/Cost.d.ts +1 -0
- package/types/Cardano/Uplc/Cost.d.ts.map +1 -1
- package/types/Cardano/Uplc/Data.d.ts.map +1 -1
- package/types/Cardano/Uplc/Script.d.ts +5 -3
- package/types/Cardano/Uplc/Script.d.ts.map +1 -1
- package/types/Cardano/Uplc/Term.d.ts +3 -0
- package/types/Cardano/Uplc/Term.d.ts.map +1 -1
- package/types/Cardano/Uplc/index.d.ts +2 -1
- package/types/Cardano/Uplc/index.d.ts.map +1 -1
- package/types/Cardano/Wallet.d.ts +18 -23
- package/types/Cardano/Wallet.d.ts.map +1 -1
- package/types/Cardano/index.d.ts +4 -3
- package/types/Cardano/index.d.ts.map +1 -1
- package/types/Codecs/Base32.d.ts +4 -1
- package/types/Codecs/Base32.d.ts.map +1 -1
- package/types/Crypto/Bip32.d.ts +5 -3
- package/types/Crypto/Bip32.d.ts.map +1 -1
- package/types/Crypto/EdDSA.d.ts +1 -1
- package/types/Crypto/EdDSA.d.ts.map +1 -1
- package/types/Crypto/index.d.ts +2 -0
- package/types/Crypto/index.d.ts.map +1 -1
- package/types/index.d.ts +3 -3
- package/types/index.d.ts.map +1 -1
- package/bun.lock +0 -60
- package/tsconfig.build.json +0 -14
- 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
|
-
|
|
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:
|
|
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
|
|
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
|
-
|
|
369
|
-
|
|
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
|
|
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(
|
|
474
|
+
fee += BigInt(Math.floor(growthIncrement * multiplier * feePerByte));
|
|
424
475
|
s -= growthIncrement;
|
|
425
476
|
multiplier *= growthFactor;
|
|
426
477
|
}
|
|
427
|
-
fee += BigInt(Math.floor(
|
|
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
|
|
432
|
-
|
|
433
|
-
|
|
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
|
-
|
|
436
|
-
|
|
437
|
-
|
|
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 (
|
|
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
|
|
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
|
|
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
|
|
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":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AACvD,OAAO,KAAK,KAAK,MAAM,uBAAuB,CAAA;AAC9C,OAAO,KAAK,IAAI,MAAM,sBAAsB,CAAA;AAC5C,OAAO,
|
|
1
|
+
{"version":3,"file":"TxOutput.js","sourceRoot":"","sources":["../../../src/Cardano/Ledger/TxOutput.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AACvD,OAAO,KAAK,KAAK,MAAM,uBAAuB,CAAA;AAC9C,OAAO,KAAK,IAAI,MAAM,sBAAsB,CAAA;AAC5C,OAAO,KAAK,MAAM,MAAM,sBAAsB,CAAA;AAC9C,OAAO,KAAK,IAAI,MAAM,kBAAkB,CAAA;AACxC,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA;AACvC,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AACrC,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAA;AAC3C,OAAO,KAAK,aAAa,MAAM,oBAAoB,CAAA;AACnD,OAAO,KAAK,aAAa,MAAM,oBAAoB,CAAA;AAEnD,MAAM,CAAC,MAAM,sBAAsB,GAAG,MAAM,CAAC,MAAM,CAAC;IAClD,aAAa,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC;CAC/C,CAAC,CAAA;AAMF,MAAM,CAAC,MAAM,iCAAiC,GAA2B;IACvE,aAAa,EAAE,IAAI;CACpB,CAAA;AAED,MAAM,CAAC,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC;IACpC,OAAO,EAAE,OAAO,CAAC,OAAO;IACxB,MAAM,EAAE,MAAM,CAAC,MAAM;IACrB,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,aAAa,CAAC;IACnD,SAAS,EAAE,MAAM,CAAC,QAAQ,CACxB,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CACzD;IACD,cAAc,EAAE,MAAM,CAAC,QAAQ,CAC7B,MAAM,CAAC,MAAM,CAAC;QACZ,aAAa,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC;KAC/C,CAAC,CACH;CACF,CAAC,CAAA;AAIF,MAAM,CAAC,MAAM,YAAY,GAAG,MAAM,CAAC,SAAS,CAC1C,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,EAAE;IACvB,OAAO,EAAE,OAAO,CAAC,YAAY;IAC7B,MAAM,EAAE,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC;IACjC,KAAK,EAAE,aAAa,CAAC,YAAY;IACjC,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,YAAY,CAAC;CACxD,CAAC,EACF,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,EAC3B;IACE,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,EAAY,EAAE,CAAC,CAAC;QACjD,OAAO;QACP,MAAM;QACN,KAAK;QACL,SAAS,EAAE,SAAS;KACrB,CAAC;IACF,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAY,EAAE,EAAE,CAAC,CAAC;QAC5D,OAAO;QACP,MAAM;QACN,KAAK;QACL,SAAS,EAAE,SAAS;YAClB,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAC1C,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE;KAClB,CAAC;CACH,CACF,CAAA;AAED,MAAM,UAAU,IAAI,CAAC,EACnB,OAAO,EACP,MAAM,EACN,KAAK,GAAG,SAAS,EACjB,SAAS,GAAG,SAAS,EACrB,cAAc,GAAG,iCAAiC,EAOnD;IACC,OAAO;QACL,OAAO;QACP,MAAM;QACN,KAAK;QACL,SAAS;QACT,cAAc;KACf,CAAA;AACH,CAAC;AAED,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,KAAsB,EAA+B,EAAE,CAC5E,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,MAAM,MAAM,GAAG,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAA;IACtC,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,MAAM,EACJ,CAAC,EAAE,OAAO,EACV,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,KAAK,EACR,CAAC,EAAE,cAAc,EAClB,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC;YAC/B,CAAC,EAAE,OAAO,CAAC,MAAM;YACjB,CAAC,EAAE,MAAM,CAAC,MAAM;YAChB,CAAC,EAAE,aAAa,CAAC,MAAM;YACvB,CAAC,EAAE,CAAC,MAAM,EAA+B,EAAE,CACzC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;gBAClB,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,IAAI,GAAG,EAAE,CAAC;oBAC3C,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CACvB,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,iCAAiC,CAAC,CAChE,CAAA;gBACH,CAAC;gBAED,OAAO,KAAK,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAA;YACxC,CAAC,CAAC;SACL,CAAC,CAAC,MAAM,CAAC,CAAA;QAEV,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CACvB,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,uBAAuB,CAAC,CACtD,CAAA;QACH,CAAC;QAED,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CACvB,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,sBAAsB,CAAC,CACrD,CAAA;QACH,CAAC;QAED,IAAI,SAAS,GACX,SAAS,CAAA;QAEX,IAAI,cAAc,EAAE,CAAC;YACnB,MAAM,CAAC,UAAU,EAAE,YAAY,CAAC,GAC9B,KAAK,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,CAAA;YAE1C,QAAQ,UAAU,EAAE,CAAC;gBACnB,KAAK,CAAC;oBACJ,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CACvB,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,8BAA8B,CAAC,CAC7D,CAAA;gBACH,KAAK,CAAC;oBACJ,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CACvB,IAAI,IAAI,CAAC,WAAW,CAClB,MAAM,EACN,qCAAqC,CACtC,CACF,CAAA;gBACH,KAAK,CAAC;oBACJ,mDAAmD;oBACnD,SAAS,GAAG,KAAK,CAAC,CAAC,YAAY,CAAC,CAAC,MAAM,EAAE,EAAE,CACzC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;wBAClB,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,GACzB,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAA;wBAEvC,IAAI,WAAW,IAAI,OAAO,EAAE,CAAC;4BAC3B,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAkC,CAAA;wBAC7D,CAAC;6BAAM,CAAC;4BACN,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAkC,CAAA;wBAC7D,CAAC;oBACH,CAAC,CAAC,CACH,CAAA;oBACD,MAAK;gBACP,KAAK,CAAC;oBACJ,SAAS,GAAG,KAAK,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;oBACtD,MAAK;gBACP;oBACE,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CACvB,IAAI,IAAI,CAAC,WAAW,CAClB,MAAM,EACN,0BAA0B,UAAU,EAAE,CACvC,CACF,CAAA;YACL,CAAC;QACH,CAAC;QAED,OAAO,IAAI,CAAC;YACV,OAAO;YACP,MAAM;YACN,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3B,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACnC,cAAc,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE;SACxC,CAAC,CAAA;IACJ,CAAC;SAAM,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAC/B,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,WAAW,CAC1D,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,EAC/B,CAAC,SAAS,CAAC,MAAM,CAAC,CACnB,CAAC,MAAM,CAAC,CAAA;QAET,OAAO,IAAI,CAAC;YACV,OAAO;YACP,MAAM;YACN,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACvD,cAAc,EAAE;gBACd,aAAa,EAAE,KAAK;aACrB;SACF,CAAC,CAAA;IACJ,CAAC;SAAM,CAAC;QACN,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CACvB,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,8BAA8B,CAAC,CAC7D,CAAA;IACH,CAAC;AACH,CAAC,CAAC,CAAA;AAEJ,MAAM,UAAU,MAAM,CAAC,MAAgB;IACrC,IACE,CAAC,CAAC,MAAM,CAAC,KAAK,IAAI,MAAM,IAAI,MAAM,CAAC,KAAK,CAAC;QACzC,CAAC,MAAM,CAAC,SAAS;QACjB,CAAC,CAAC,MAAM,CAAC,cAAc;YACrB,MAAM,CAAC,cAAc,CAAC,aAAa,IAAI,IAAI;YAC3C,CAAC,MAAM,CAAC,cAAc,CAAC,aAAa,CAAC,EACvC,CAAC;QACD,uIAAuI;QACvI,kIAAkI;QAElI,MAAM,MAAM,GAAG;YACb,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC;YAC9B,MAAM,CAAC,MAAM,CAAC,EAAE,eAAe,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC;SACzD,CAAA;QAED,IAAI,MAAM,CAAC,KAAK,IAAI,MAAM,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;YAC3C,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAA;QAClD,CAAC;QAED,OAAO,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAA;IACjC,CAAC;SAAM,CAAC;QACN,MAAM,MAAM,GAA0B,IAAI,GAAG,EAAE,CAAA;QAE/C,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAA;QAC7C,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,eAAe,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAA;QAEvE,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;YACjB,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAA;QACnD,CAAC;QAED,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;YACrB,MAAM,CAAC,GAAG,CACR,CAAC,EACD,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,MAAM,CACxB,IAAI,CAAC,WAAW,CACd,IAAI,CAAC,WAAW,CAAC;gBACf,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;gBAChD,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC;aACrC,CAAC,CACH,CACF,CACF,CAAA;QACH,CAAC;QAED,OAAO,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAA;IACtC,CAAC;AACH,CAAC;AAED,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,MAAgB,EAAE,EAAE,CAC9C,MAAM,CAAC,MAAM,CAAC,IAAI,CAChB,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;IACf,MAAM,eAAe,GAAG,CAAC,CAAC,kBAAkB,CAAA;IAE5C,IAAI,CAAC,CAAC,kBAAkB,KAAK,SAAS,EAAE,CAAC;QACvC,MAAM,IAAI,KAAK,CACb,6FAA6F,CAC9F,CAAA;IACH,CAAC;IAED,2CAA2C;IAC3C,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,GAAG,CAAA;IAEjD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;QACpC,MAAM,IAAI,KAAK,CACb,qEAAqE,CACtE,CAAA;IACH,CAAC;IAED,OAAO,MAAM,CAAC,aAAa,CAAC,GAAG,MAAM,CAAC,eAAe,CAAC,CAAA;AACxD,CAAC,CAAC,CACH,CAAA;AAEH,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,GAAG,OAAmB,EAAE,EAAE,CAClD,MAAM,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAA"}
|