@cardano-sdk/tx-construction 0.4.1-test.0 → 0.5.0

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 (107) hide show
  1. package/dist/cjs/createTransactionInternals.d.ts +17 -0
  2. package/dist/cjs/createTransactionInternals.d.ts.map +1 -0
  3. package/dist/cjs/createTransactionInternals.js +35 -0
  4. package/dist/cjs/createTransactionInternals.js.map +1 -0
  5. package/dist/cjs/ensureValidityInterval.d.ts +4 -0
  6. package/dist/cjs/ensureValidityInterval.d.ts.map +1 -0
  7. package/dist/cjs/ensureValidityInterval.js +13 -0
  8. package/dist/cjs/ensureValidityInterval.js.map +1 -0
  9. package/dist/cjs/index.d.ts +5 -0
  10. package/dist/cjs/index.d.ts.map +1 -1
  11. package/dist/cjs/index.js +5 -0
  12. package/dist/cjs/index.js.map +1 -1
  13. package/dist/cjs/output-validation/index.d.ts +3 -0
  14. package/dist/cjs/output-validation/index.d.ts.map +1 -0
  15. package/dist/cjs/output-validation/index.js +19 -0
  16. package/dist/cjs/output-validation/index.js.map +1 -0
  17. package/dist/cjs/output-validation/outputValidator.d.ts +3 -0
  18. package/dist/cjs/output-validation/outputValidator.d.ts.map +1 -0
  19. package/dist/cjs/output-validation/outputValidator.js +51 -0
  20. package/dist/cjs/output-validation/outputValidator.js.map +1 -0
  21. package/dist/cjs/output-validation/types.d.ts +18 -0
  22. package/dist/cjs/output-validation/types.d.ts.map +1 -0
  23. package/dist/cjs/output-validation/types.js +3 -0
  24. package/dist/cjs/output-validation/types.js.map +1 -0
  25. package/dist/cjs/tsconfig.tsbuildinfo +1 -1
  26. package/dist/cjs/tx-builder/OutputBuilder.d.ts +25 -0
  27. package/dist/cjs/tx-builder/OutputBuilder.d.ts.map +1 -0
  28. package/dist/cjs/tx-builder/OutputBuilder.js +84 -0
  29. package/dist/cjs/tx-builder/OutputBuilder.js.map +1 -0
  30. package/dist/cjs/tx-builder/TxBuilder.d.ts +21 -0
  31. package/dist/cjs/tx-builder/TxBuilder.d.ts.map +1 -0
  32. package/dist/cjs/tx-builder/TxBuilder.js +201 -0
  33. package/dist/cjs/tx-builder/TxBuilder.js.map +1 -0
  34. package/dist/cjs/tx-builder/finalizeTx.d.ts +4 -0
  35. package/dist/cjs/tx-builder/finalizeTx.d.ts.map +1 -0
  36. package/dist/cjs/tx-builder/finalizeTx.js +33 -0
  37. package/dist/cjs/tx-builder/finalizeTx.js.map +1 -0
  38. package/dist/cjs/tx-builder/index.d.ts +6 -0
  39. package/dist/cjs/tx-builder/index.d.ts.map +1 -0
  40. package/dist/cjs/tx-builder/index.js +22 -0
  41. package/dist/cjs/tx-builder/index.js.map +1 -0
  42. package/dist/cjs/tx-builder/initializeTx.d.ts +4 -0
  43. package/dist/cjs/tx-builder/initializeTx.d.ts.map +1 -0
  44. package/dist/cjs/tx-builder/initializeTx.js +81 -0
  45. package/dist/cjs/tx-builder/initializeTx.js.map +1 -0
  46. package/dist/cjs/tx-builder/types.d.ts +89 -0
  47. package/dist/cjs/tx-builder/types.d.ts.map +1 -0
  48. package/dist/cjs/tx-builder/types.js +37 -0
  49. package/dist/cjs/tx-builder/types.js.map +1 -0
  50. package/dist/cjs/types.d.ts +37 -0
  51. package/dist/cjs/types.d.ts.map +1 -0
  52. package/dist/cjs/types.js +3 -0
  53. package/dist/cjs/types.js.map +1 -0
  54. package/dist/esm/createTransactionInternals.d.ts +17 -0
  55. package/dist/esm/createTransactionInternals.d.ts.map +1 -0
  56. package/dist/esm/createTransactionInternals.js +31 -0
  57. package/dist/esm/createTransactionInternals.js.map +1 -0
  58. package/dist/esm/ensureValidityInterval.d.ts +4 -0
  59. package/dist/esm/ensureValidityInterval.d.ts.map +1 -0
  60. package/dist/esm/ensureValidityInterval.js +8 -0
  61. package/dist/esm/ensureValidityInterval.js.map +1 -0
  62. package/dist/esm/index.d.ts +5 -0
  63. package/dist/esm/index.d.ts.map +1 -1
  64. package/dist/esm/index.js +5 -0
  65. package/dist/esm/index.js.map +1 -1
  66. package/dist/esm/output-validation/index.d.ts +3 -0
  67. package/dist/esm/output-validation/index.d.ts.map +1 -0
  68. package/dist/esm/output-validation/index.js +3 -0
  69. package/dist/esm/output-validation/index.js.map +1 -0
  70. package/dist/esm/output-validation/outputValidator.d.ts +3 -0
  71. package/dist/esm/output-validation/outputValidator.d.ts.map +1 -0
  72. package/dist/esm/output-validation/outputValidator.js +47 -0
  73. package/dist/esm/output-validation/outputValidator.js.map +1 -0
  74. package/dist/esm/output-validation/types.d.ts +18 -0
  75. package/dist/esm/output-validation/types.d.ts.map +1 -0
  76. package/dist/esm/output-validation/types.js +2 -0
  77. package/dist/esm/output-validation/types.js.map +1 -0
  78. package/dist/esm/tsconfig.tsbuildinfo +1 -1
  79. package/dist/esm/tx-builder/OutputBuilder.d.ts +25 -0
  80. package/dist/esm/tx-builder/OutputBuilder.d.ts.map +1 -0
  81. package/dist/esm/tx-builder/OutputBuilder.js +80 -0
  82. package/dist/esm/tx-builder/OutputBuilder.js.map +1 -0
  83. package/dist/esm/tx-builder/TxBuilder.d.ts +21 -0
  84. package/dist/esm/tx-builder/TxBuilder.d.ts.map +1 -0
  85. package/dist/esm/tx-builder/TxBuilder.js +197 -0
  86. package/dist/esm/tx-builder/TxBuilder.js.map +1 -0
  87. package/dist/esm/tx-builder/finalizeTx.d.ts +4 -0
  88. package/dist/esm/tx-builder/finalizeTx.d.ts.map +1 -0
  89. package/dist/esm/tx-builder/finalizeTx.js +29 -0
  90. package/dist/esm/tx-builder/finalizeTx.js.map +1 -0
  91. package/dist/esm/tx-builder/index.d.ts +6 -0
  92. package/dist/esm/tx-builder/index.d.ts.map +1 -0
  93. package/dist/esm/tx-builder/index.js +6 -0
  94. package/dist/esm/tx-builder/index.js.map +1 -0
  95. package/dist/esm/tx-builder/initializeTx.d.ts +4 -0
  96. package/dist/esm/tx-builder/initializeTx.d.ts.map +1 -0
  97. package/dist/esm/tx-builder/initializeTx.js +77 -0
  98. package/dist/esm/tx-builder/initializeTx.js.map +1 -0
  99. package/dist/esm/tx-builder/types.d.ts +89 -0
  100. package/dist/esm/tx-builder/types.d.ts.map +1 -0
  101. package/dist/esm/tx-builder/types.js +30 -0
  102. package/dist/esm/tx-builder/types.js.map +1 -0
  103. package/dist/esm/types.d.ts +37 -0
  104. package/dist/esm/types.d.ts.map +1 -0
  105. package/dist/esm/types.js +2 -0
  106. package/dist/esm/types.js.map +1 -0
  107. package/package.json +9 -7
@@ -0,0 +1,25 @@
1
+ import { Cardano } from '@cardano-sdk/core';
2
+ import { Hash32ByteBase16 } from '@cardano-sdk/crypto';
3
+ import { Logger } from 'ts-log';
4
+ import { OutputBuilder, PartialTxOut } from './types';
5
+ import { OutputValidator } from '../output-validation';
6
+ export declare type OutputBuilderValidator = Pick<OutputValidator, 'validateOutput'>;
7
+ export interface OutputBuilderProps {
8
+ outputValidator: OutputBuilderValidator;
9
+ txOut?: PartialTxOut;
10
+ logger: Logger;
11
+ }
12
+ export declare class TxOutputBuilder implements OutputBuilder {
13
+ #private;
14
+ constructor({ outputValidator, txOut, logger }: OutputBuilderProps);
15
+ toTxOut(): Cardano.TxOut;
16
+ inspect(): Promise<PartialTxOut>;
17
+ value(value: Cardano.Value): OutputBuilder;
18
+ coin(coin: Cardano.Lovelace): OutputBuilder;
19
+ assets(assets: Cardano.TokenMap): OutputBuilder;
20
+ asset(assetId: Cardano.AssetId, quantity: bigint): OutputBuilder;
21
+ address(address: Cardano.PaymentAddress): OutputBuilder;
22
+ datum(datumHash: Hash32ByteBase16): OutputBuilder;
23
+ build(): Promise<Cardano.TxOut>;
24
+ }
25
+ //# sourceMappingURL=OutputBuilder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OutputBuilder.d.ts","sourceRoot":"","sources":["../../../src/tx-builder/OutputBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,OAAO,EACL,aAAa,EAIb,YAAY,EACb,MAAM,SAAS,CAAC;AACjB,OAAO,EAAoB,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEzE,oBAAY,sBAAsB,GAAG,IAAI,CAAC,eAAe,EAAE,gBAAgB,CAAC,CAAC;AAG7E,MAAM,WAAW,kBAAkB;IAEjC,eAAe,EAAE,sBAAsB,CAAC;IAExC,KAAK,CAAC,EAAE,YAAY,CAAC;IAErB,MAAM,EAAE,MAAM,CAAC;CAChB;AAwBD,qBAAa,eAAgB,YAAW,aAAa;;gBASvC,EAAE,eAAe,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,kBAAkB;IAelE,OAAO,IAAI,OAAO,CAAC,KAAK;IAQlB,OAAO,IAAI,OAAO,CAAC,YAAY,CAAC;IAItC,KAAK,CAAC,KAAK,EAAE,OAAO,CAAC,KAAK,GAAG,aAAa;IAK1C,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,QAAQ,GAAG,aAAa;IAK3C,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,QAAQ,GAAG,aAAa;IAQ/C,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,GAAG,aAAa;IAOhE,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,cAAc,GAAG,aAAa;IAKvD,KAAK,CAAC,SAAS,EAAE,gBAAgB,GAAG,aAAa;IAK3C,KAAK,IAAI,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC;CAUtC"}
@@ -0,0 +1,84 @@
1
+ "use strict";
2
+ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
3
+ if (kind === "m") throw new TypeError("Private method is not writable");
4
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
5
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
6
+ return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
7
+ };
8
+ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
9
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
10
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
11
+ return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
12
+ };
13
+ var _TxOutputBuilder_partialOutput, _TxOutputBuilder_outputValidator, _TxOutputBuilder_logger;
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.TxOutputBuilder = void 0;
16
+ const types_1 = require("./types");
17
+ const isViableTxOut = (txOut) => !!(txOut?.address && txOut?.value?.coins);
18
+ const toOutputValidationError = (txOut, validation) => {
19
+ if (validation.coinMissing) {
20
+ return new types_1.OutputValidationMinimumCoinError(txOut, validation);
21
+ }
22
+ if (validation.tokenBundleSizeExceedsLimit) {
23
+ return new types_1.OutputValidationTokenBundleSizeError(txOut, validation);
24
+ }
25
+ };
26
+ class TxOutputBuilder {
27
+ constructor({ outputValidator, txOut, logger }) {
28
+ _TxOutputBuilder_partialOutput.set(this, void 0);
29
+ _TxOutputBuilder_outputValidator.set(this, void 0);
30
+ _TxOutputBuilder_logger.set(this, void 0);
31
+ __classPrivateFieldSet(this, _TxOutputBuilder_partialOutput, { ...txOut }, "f");
32
+ __classPrivateFieldSet(this, _TxOutputBuilder_outputValidator, outputValidator, "f");
33
+ __classPrivateFieldSet(this, _TxOutputBuilder_logger, logger, "f");
34
+ }
35
+ toTxOut() {
36
+ if (!isViableTxOut(__classPrivateFieldGet(this, _TxOutputBuilder_partialOutput, "f"))) {
37
+ throw new types_1.OutputValidationMissingRequiredError(__classPrivateFieldGet(this, _TxOutputBuilder_partialOutput, "f"));
38
+ }
39
+ __classPrivateFieldGet(this, _TxOutputBuilder_logger, "f").debug('toTxOut result:', __classPrivateFieldGet(this, _TxOutputBuilder_partialOutput, "f"));
40
+ return { ...__classPrivateFieldGet(this, _TxOutputBuilder_partialOutput, "f") };
41
+ }
42
+ async inspect() {
43
+ return __classPrivateFieldGet(this, _TxOutputBuilder_partialOutput, "f");
44
+ }
45
+ value(value) {
46
+ __classPrivateFieldSet(this, _TxOutputBuilder_partialOutput, { ...__classPrivateFieldGet(this, _TxOutputBuilder_partialOutput, "f"), value: { ...value } }, "f");
47
+ return this;
48
+ }
49
+ coin(coin) {
50
+ __classPrivateFieldSet(this, _TxOutputBuilder_partialOutput, { ...__classPrivateFieldGet(this, _TxOutputBuilder_partialOutput, "f"), value: { ...__classPrivateFieldGet(this, _TxOutputBuilder_partialOutput, "f")?.value, coins: coin } }, "f");
51
+ return this;
52
+ }
53
+ assets(assets) {
54
+ __classPrivateFieldSet(this, _TxOutputBuilder_partialOutput, {
55
+ ...__classPrivateFieldGet(this, _TxOutputBuilder_partialOutput, "f"),
56
+ value: { ...__classPrivateFieldGet(this, _TxOutputBuilder_partialOutput, "f")?.value, assets }
57
+ }, "f");
58
+ return this;
59
+ }
60
+ asset(assetId, quantity) {
61
+ const assets = new Map(__classPrivateFieldGet(this, _TxOutputBuilder_partialOutput, "f")?.value?.assets);
62
+ quantity === 0n ? assets.delete(assetId) : assets.set(assetId, quantity);
63
+ return this.assets(assets);
64
+ }
65
+ address(address) {
66
+ __classPrivateFieldSet(this, _TxOutputBuilder_partialOutput, { ...__classPrivateFieldGet(this, _TxOutputBuilder_partialOutput, "f"), address }, "f");
67
+ return this;
68
+ }
69
+ datum(datumHash) {
70
+ __classPrivateFieldSet(this, _TxOutputBuilder_partialOutput, { ...__classPrivateFieldGet(this, _TxOutputBuilder_partialOutput, "f"), datumHash }, "f");
71
+ return this;
72
+ }
73
+ async build() {
74
+ const txOut = this.toTxOut();
75
+ const outputValidation = toOutputValidationError(txOut, await __classPrivateFieldGet(this, _TxOutputBuilder_outputValidator, "f").validateOutput(txOut));
76
+ if (outputValidation) {
77
+ throw outputValidation;
78
+ }
79
+ return txOut;
80
+ }
81
+ }
82
+ exports.TxOutputBuilder = TxOutputBuilder;
83
+ _TxOutputBuilder_partialOutput = new WeakMap(), _TxOutputBuilder_outputValidator = new WeakMap(), _TxOutputBuilder_logger = new WeakMap();
84
+ //# sourceMappingURL=OutputBuilder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OutputBuilder.js","sourceRoot":"","sources":["../../../src/tx-builder/OutputBuilder.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ import { Cardano } from '@cardano-sdk/core';
2
+ import { OutputBuilder, PartialTx, PartialTxOut, TxBuilder, TxBuilderDependencies, UnsignedTx } from './types';
3
+ import { SignTransactionOptions, TransactionSigner } from '@cardano-sdk/key-management';
4
+ export declare class GenericTxBuilder implements TxBuilder {
5
+ #private;
6
+ partialTxBody: Partial<Cardano.TxBody>;
7
+ partialAuxiliaryData?: Cardano.AuxiliaryData;
8
+ partialExtraSigners?: TransactionSigner[];
9
+ partialSigningOptions?: SignTransactionOptions;
10
+ constructor(dependencies: TxBuilderDependencies);
11
+ inspect(): Promise<PartialTx>;
12
+ addOutput(txOut: Cardano.TxOut): TxBuilder;
13
+ removeOutput(txOut: Cardano.TxOut): TxBuilder;
14
+ buildOutput(txOut?: PartialTxOut): OutputBuilder;
15
+ delegate(poolId?: Cardano.PoolId): TxBuilder;
16
+ metadata(metadata: Cardano.TxMetadata): TxBuilder;
17
+ extraSigners(signers: TransactionSigner[]): TxBuilder;
18
+ signingOptions(options: SignTransactionOptions): TxBuilder;
19
+ build(): UnsignedTx;
20
+ }
21
+ //# sourceMappingURL=TxBuilder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TxBuilder.d.ts","sourceRoot":"","sources":["../../../src/tx-builder/TxBuilder.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAE5C,OAAO,EACL,aAAa,EACb,SAAS,EACT,YAAY,EAGZ,SAAS,EACT,qBAAqB,EAIrB,UAAU,EACX,MAAM,SAAS,CAAC;AAGjB,OAAO,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AA4DxF,qBAAa,gBAAiB,YAAW,SAAS;;IAChD,aAAa,EAAE,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAM;IAC5C,oBAAoB,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC;IAC7C,mBAAmB,CAAC,EAAE,iBAAiB,EAAE,CAAC;IAC1C,qBAAqB,CAAC,EAAE,sBAAsB,CAAC;gBAOnC,YAAY,EAAE,qBAAqB;IAUzC,OAAO,IAAI,OAAO,CAAC,SAAS,CAAC;IASnC,SAAS,CAAC,KAAK,EAAE,OAAO,CAAC,KAAK,GAAG,SAAS;IAK1C,YAAY,CAAC,KAAK,EAAE,OAAO,CAAC,KAAK,GAAG,SAAS;IAQ7C,WAAW,CAAC,KAAK,CAAC,EAAE,YAAY,GAAG,aAAa;IAQhD,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,MAAM,GAAG,SAAS;IAK5C,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,UAAU,GAAG,SAAS;IAKjD,YAAY,CAAC,OAAO,EAAE,iBAAiB,EAAE,GAAG,SAAS;IAKrD,cAAc,CAAC,OAAO,EAAE,sBAAsB,GAAG,SAAS;IAK1D,KAAK,IAAI,UAAU;CAqIpB"}
@@ -0,0 +1,201 @@
1
+ "use strict";
2
+ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
3
+ if (kind === "m") throw new TypeError("Private method is not writable");
4
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
5
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
6
+ return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
7
+ };
8
+ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
9
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
10
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
11
+ return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
12
+ };
13
+ var _LazyTxSigner_instances, _LazyTxSigner_built, _LazyTxSigner_signer, _LazyTxSigner_builder, _LazyTxSigner_build, _GenericTxBuilder_instances, _a, _GenericTxBuilder_dependencies, _GenericTxBuilder_outputValidator, _GenericTxBuilder_delegateConfig, _GenericTxBuilder_logger, _GenericTxBuilder_validateOutputs, _GenericTxBuilder_addDelegationCertificates, _GenericTxBuilder_createDelegationCert;
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.GenericTxBuilder = void 0;
16
+ const core_1 = require("@cardano-sdk/core");
17
+ const types_1 = require("./types");
18
+ const OutputBuilder_1 = require("./OutputBuilder");
19
+ const util_1 = require("@cardano-sdk/util");
20
+ const output_validation_1 = require("../output-validation");
21
+ const finalizeTx_1 = require("./finalizeTx");
22
+ const rxjs_1 = require("rxjs");
23
+ const initializeTx_1 = require("./initializeTx");
24
+ class LazyTxSigner {
25
+ constructor({ builder, signer }) {
26
+ _LazyTxSigner_instances.add(this);
27
+ _LazyTxSigner_built.set(this, void 0);
28
+ _LazyTxSigner_signer.set(this, void 0);
29
+ _LazyTxSigner_builder.set(this, void 0);
30
+ __classPrivateFieldSet(this, _LazyTxSigner_builder, builder, "f");
31
+ __classPrivateFieldSet(this, _LazyTxSigner_signer, signer, "f");
32
+ }
33
+ async inspect() {
34
+ const { tx, ctx: { ownAddresses, auxiliaryData }, inputSelection } = await __classPrivateFieldGet(this, _LazyTxSigner_instances, "m", _LazyTxSigner_build).call(this);
35
+ return { ...tx, auxiliaryData, inputSelection, ownAddresses };
36
+ }
37
+ async sign() {
38
+ return __classPrivateFieldGet(this, _LazyTxSigner_signer, "f").sign(await __classPrivateFieldGet(this, _LazyTxSigner_instances, "m", _LazyTxSigner_build).call(this));
39
+ }
40
+ }
41
+ _LazyTxSigner_built = new WeakMap(), _LazyTxSigner_signer = new WeakMap(), _LazyTxSigner_builder = new WeakMap(), _LazyTxSigner_instances = new WeakSet(), _LazyTxSigner_build = async function _LazyTxSigner_build() {
42
+ return (__classPrivateFieldSet(this, _LazyTxSigner_built, __classPrivateFieldGet(this, _LazyTxSigner_built, "f") || await __classPrivateFieldGet(this, _LazyTxSigner_builder, "f").build(), "f"));
43
+ };
44
+ class GenericTxBuilder {
45
+ constructor(dependencies) {
46
+ _GenericTxBuilder_instances.add(this);
47
+ this.partialTxBody = {};
48
+ _GenericTxBuilder_dependencies.set(this, void 0);
49
+ _GenericTxBuilder_outputValidator.set(this, void 0);
50
+ _GenericTxBuilder_delegateConfig.set(this, void 0);
51
+ _GenericTxBuilder_logger.set(this, void 0);
52
+ __classPrivateFieldSet(this, _GenericTxBuilder_outputValidator, dependencies.outputValidator ||
53
+ (0, output_validation_1.createOutputValidator)({
54
+ protocolParameters: dependencies.txBuilderProviders.protocolParameters
55
+ }), "f");
56
+ __classPrivateFieldSet(this, _GenericTxBuilder_dependencies, dependencies, "f");
57
+ __classPrivateFieldSet(this, _GenericTxBuilder_logger, dependencies.logger, "f");
58
+ }
59
+ async inspect() {
60
+ return {
61
+ auxiliaryData: this.partialAuxiliaryData,
62
+ body: this.partialTxBody,
63
+ extraSigners: this.partialExtraSigners,
64
+ signingOptions: this.partialSigningOptions
65
+ };
66
+ }
67
+ addOutput(txOut) {
68
+ this.partialTxBody = { ...this.partialTxBody, outputs: [...(this.partialTxBody.outputs || []), txOut] };
69
+ return this;
70
+ }
71
+ removeOutput(txOut) {
72
+ this.partialTxBody = {
73
+ ...this.partialTxBody,
74
+ outputs: this.partialTxBody.outputs?.filter((output) => !(0, util_1.deepEquals)(output, txOut))
75
+ };
76
+ return this;
77
+ }
78
+ buildOutput(txOut) {
79
+ return new OutputBuilder_1.TxOutputBuilder({
80
+ logger: (0, util_1.contextLogger)(__classPrivateFieldGet(this, _GenericTxBuilder_logger, "f"), 'outputBuilder'),
81
+ outputValidator: __classPrivateFieldGet(this, _GenericTxBuilder_outputValidator, "f"),
82
+ txOut
83
+ });
84
+ }
85
+ delegate(poolId) {
86
+ __classPrivateFieldSet(this, _GenericTxBuilder_delegateConfig, poolId ? { poolId, type: 'delegate' } : { type: 'deregister' }, "f");
87
+ return this;
88
+ }
89
+ metadata(metadata) {
90
+ this.partialAuxiliaryData = { ...this.partialAuxiliaryData, blob: new Map(metadata) };
91
+ return this;
92
+ }
93
+ extraSigners(signers) {
94
+ this.partialExtraSigners = [...signers];
95
+ return this;
96
+ }
97
+ signingOptions(options) {
98
+ this.partialSigningOptions = { ...options };
99
+ return this;
100
+ }
101
+ build() {
102
+ return new LazyTxSigner({
103
+ builder: {
104
+ build: async () => {
105
+ __classPrivateFieldGet(this, _GenericTxBuilder_logger, "f").debug('Building');
106
+ try {
107
+ await __classPrivateFieldGet(this, _GenericTxBuilder_instances, "m", _GenericTxBuilder_addDelegationCertificates).call(this);
108
+ await __classPrivateFieldGet(this, _GenericTxBuilder_instances, "m", _GenericTxBuilder_validateOutputs).call(this);
109
+ const ownAddresses = await (0, rxjs_1.firstValueFrom)(__classPrivateFieldGet(this, _GenericTxBuilder_dependencies, "f").keyAgent.knownAddresses$);
110
+ const auxiliaryData = this.partialAuxiliaryData && { ...this.partialAuxiliaryData };
111
+ const extraSigners = this.partialExtraSigners && [...this.partialExtraSigners];
112
+ const signingOptions = this.partialSigningOptions && { ...this.partialSigningOptions };
113
+ if (this.partialAuxiliaryData) {
114
+ this.partialTxBody.auxiliaryDataHash = core_1.Cardano.computeAuxiliaryDataHash(this.partialAuxiliaryData);
115
+ }
116
+ const { body, hash, inputSelection } = await (0, initializeTx_1.initializeTx)({
117
+ auxiliaryData,
118
+ certificates: this.partialTxBody.certificates,
119
+ outputs: new Set(this.partialTxBody.outputs || []),
120
+ signingOptions,
121
+ witness: { extraSigners }
122
+ }, __classPrivateFieldGet(this, _GenericTxBuilder_dependencies, "f"));
123
+ return {
124
+ ctx: {
125
+ auxiliaryData,
126
+ ownAddresses,
127
+ signingOptions,
128
+ witness: { extraSigners }
129
+ },
130
+ inputSelection,
131
+ tx: { body, hash }
132
+ };
133
+ }
134
+ catch (error) {
135
+ __classPrivateFieldGet(this, _GenericTxBuilder_logger, "f").debug('Transaction build error', error);
136
+ if (Array.isArray(error))
137
+ throw error[0];
138
+ throw error;
139
+ }
140
+ }
141
+ },
142
+ signer: {
143
+ sign: ({ tx, ctx }) => (0, finalizeTx_1.finalizeTx)(tx, ctx, __classPrivateFieldGet(this, _GenericTxBuilder_dependencies, "f"))
144
+ }
145
+ });
146
+ }
147
+ }
148
+ exports.GenericTxBuilder = GenericTxBuilder;
149
+ _a = GenericTxBuilder, _GenericTxBuilder_dependencies = new WeakMap(), _GenericTxBuilder_outputValidator = new WeakMap(), _GenericTxBuilder_delegateConfig = new WeakMap(), _GenericTxBuilder_logger = new WeakMap(), _GenericTxBuilder_instances = new WeakSet(), _GenericTxBuilder_validateOutputs = async function _GenericTxBuilder_validateOutputs() {
150
+ if (this.partialTxBody.outputs) {
151
+ const errors = [];
152
+ await Promise.all(this.partialTxBody.outputs?.map((output) => this.buildOutput(output)
153
+ .build()
154
+ .catch((error) => errors.push(error))));
155
+ if (errors.length > 0) {
156
+ throw errors;
157
+ }
158
+ }
159
+ }, _GenericTxBuilder_addDelegationCertificates = async function _GenericTxBuilder_addDelegationCertificates() {
160
+ if (!__classPrivateFieldGet(this, _GenericTxBuilder_delegateConfig, "f")) {
161
+ return Promise.resolve();
162
+ }
163
+ const rewardAccounts = await __classPrivateFieldGet(this, _GenericTxBuilder_dependencies, "f").txBuilderProviders.rewardAccounts();
164
+ if (!rewardAccounts?.length) {
165
+ throw new types_1.RewardAccountMissingError();
166
+ }
167
+ this.partialTxBody = { ...this.partialTxBody, certificates: [] };
168
+ for (const rewardAccount of rewardAccounts) {
169
+ const stakeKeyHash = core_1.Cardano.RewardAccount.toHash(rewardAccount.address);
170
+ if (__classPrivateFieldGet(this, _GenericTxBuilder_delegateConfig, "f").type === 'deregister') {
171
+ if (rewardAccount.keyStatus === core_1.Cardano.StakeKeyStatus.Unregistered) {
172
+ __classPrivateFieldGet(this, _GenericTxBuilder_logger, "f").warn('Skipping stake key deregister. Stake key not registered.', rewardAccount.address, rewardAccount.keyStatus);
173
+ }
174
+ else {
175
+ this.partialTxBody.certificates.push({
176
+ __typename: core_1.Cardano.CertificateType.StakeKeyDeregistration,
177
+ stakeKeyHash
178
+ });
179
+ }
180
+ }
181
+ else if (__classPrivateFieldGet(this, _GenericTxBuilder_delegateConfig, "f").type === 'delegate') {
182
+ if (rewardAccount.keyStatus !== core_1.Cardano.StakeKeyStatus.Unregistered) {
183
+ __classPrivateFieldGet(this, _GenericTxBuilder_logger, "f").debug('Skipping stake key register. Stake key already registered', rewardAccount.address, rewardAccount.keyStatus);
184
+ }
185
+ else {
186
+ this.partialTxBody.certificates.push({
187
+ __typename: core_1.Cardano.CertificateType.StakeKeyRegistration,
188
+ stakeKeyHash
189
+ });
190
+ }
191
+ this.partialTxBody.certificates.push(__classPrivateFieldGet(GenericTxBuilder, _a, "m", _GenericTxBuilder_createDelegationCert).call(GenericTxBuilder, __classPrivateFieldGet(this, _GenericTxBuilder_delegateConfig, "f").poolId, stakeKeyHash));
192
+ }
193
+ }
194
+ }, _GenericTxBuilder_createDelegationCert = function _GenericTxBuilder_createDelegationCert(poolId, stakeKeyHash) {
195
+ return {
196
+ __typename: core_1.Cardano.CertificateType.StakeDelegation,
197
+ poolId,
198
+ stakeKeyHash
199
+ };
200
+ };
201
+ //# sourceMappingURL=TxBuilder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TxBuilder.js","sourceRoot":"","sources":["../../../src/tx-builder/TxBuilder.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import { Cardano } from '@cardano-sdk/core';
2
+ import { FinalizeTxDependencies, SignedTx, TxContext } from './types';
3
+ export declare const finalizeTx: (tx: Cardano.TxBodyWithHash, { ownAddresses, witness, signingOptions, auxiliaryData, isValid }: TxContext, { inputResolver, keyAgent }: FinalizeTxDependencies, stubSign?: boolean) => Promise<SignedTx>;
4
+ //# sourceMappingURL=finalizeTx.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"finalizeTx.d.ts","sourceRoot":"","sources":["../../../src/tx-builder/finalizeTx.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EAAE,sBAAsB,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAoBtE,eAAO,MAAM,UAAU,OACjB,QAAQ,cAAc,qEACyC,SAAS,+BAC/C,sBAAsB,yBAElD,QAAQ,QAAQ,CAuBlB,CAAC"}
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.finalizeTx = void 0;
4
+ const key_management_1 = require("@cardano-sdk/key-management");
5
+ const getSignatures = async (keyAgent, txInternals, extraSigners, signingOptions) => {
6
+ const signatures = await keyAgent.signTransaction(txInternals, signingOptions);
7
+ if (extraSigners) {
8
+ for (const extraSigner of extraSigners) {
9
+ const extraSignature = await extraSigner.sign(txInternals);
10
+ signatures.set(extraSignature.pubKey, extraSignature.signature);
11
+ }
12
+ }
13
+ return signatures;
14
+ };
15
+ const finalizeTx = async (tx, { ownAddresses, witness, signingOptions, auxiliaryData, isValid }, { inputResolver, keyAgent }, stubSign = false) => {
16
+ const signatures = stubSign
17
+ ? await key_management_1.util.stubSignTransaction(tx.body, ownAddresses, inputResolver, witness?.extraSigners, signingOptions)
18
+ : await getSignatures(keyAgent, tx, witness?.extraSigners, signingOptions);
19
+ return {
20
+ tx: {
21
+ auxiliaryData,
22
+ body: tx.body,
23
+ id: tx.hash,
24
+ isValid,
25
+ witness: {
26
+ ...witness,
27
+ signatures: new Map([...signatures.entries(), ...(witness?.signatures?.entries() || [])])
28
+ }
29
+ }
30
+ };
31
+ };
32
+ exports.finalizeTx = finalizeTx;
33
+ //# sourceMappingURL=finalizeTx.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"finalizeTx.js","sourceRoot":"","sources":["../../../src/tx-builder/finalizeTx.ts"],"names":[],"mappings":";;;AAAA,gEAKqC;AAIrC,MAAM,aAAa,GAAG,KAAK,EACzB,QAAuB,EACvB,WAAmC,EACnC,YAAkC,EAClC,cAAuC,EACvC,EAAE;IACF,MAAM,UAAU,GAAuB,MAAM,QAAQ,CAAC,eAAe,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;IAEnG,IAAI,YAAY,EAAE;QAChB,KAAK,MAAM,WAAW,IAAI,YAAY,EAAE;YACtC,MAAM,cAAc,GAAG,MAAM,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAC3D,UAAU,CAAC,GAAG,CAAC,cAAc,CAAC,MAAM,EAAE,cAAc,CAAC,SAAS,CAAC,CAAC;SACjE;KACF;IAED,OAAO,UAAU,CAAC;AACpB,CAAC,CAAC;AAEK,MAAM,UAAU,GAAG,KAAK,EAC7B,EAA0B,EAC1B,EAAE,YAAY,EAAE,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,OAAO,EAAa,EAC5E,EAAE,aAAa,EAAE,QAAQ,EAA0B,EACnD,QAAQ,GAAG,KAAK,EACG,EAAE;IACrB,MAAM,UAAU,GAAG,QAAQ;QACzB,CAAC,CAAC,MAAM,qBAAiB,CAAC,mBAAmB,CACzC,EAAE,CAAC,IAAI,EACP,YAAY,EACZ,aAAa,EACb,OAAO,EAAE,YAAY,EACrB,cAAc,CACf;QACH,CAAC,CAAC,MAAM,aAAa,CAAC,QAAQ,EAAE,EAAE,EAAE,OAAO,EAAE,YAAY,EAAE,cAAc,CAAC,CAAC;IAE7E,OAAO;QACL,EAAE,EAAE;YACF,aAAa;YACb,IAAI,EAAE,EAAE,CAAC,IAAI;YACb,EAAE,EAAE,EAAE,CAAC,IAAI;YACX,OAAO;YACP,OAAO,EAAE;gBACP,GAAG,OAAO;gBACV,UAAU,EAAE,IAAI,GAAG,CAAC,CAAC,GAAG,UAAU,CAAC,OAAO,EAAE,EAAE,GAAG,CAAC,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;aAC1F;SACF;KACF,CAAC;AACJ,CAAC,CAAC;AA5BW,QAAA,UAAU,cA4BrB"}
@@ -0,0 +1,6 @@
1
+ export * from './OutputBuilder';
2
+ export * from './finalizeTx';
3
+ export * from './initializeTx';
4
+ export * from './types';
5
+ export * from './TxBuilder';
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/tx-builder/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC"}
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./OutputBuilder"), exports);
18
+ __exportStar(require("./finalizeTx"), exports);
19
+ __exportStar(require("./initializeTx"), exports);
20
+ __exportStar(require("./types"), exports);
21
+ __exportStar(require("./TxBuilder"), exports);
22
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tx-builder/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,kDAAgC;AAChC,+CAA6B;AAC7B,iDAA+B;AAC/B,0CAAwB;AACxB,8CAA4B"}
@@ -0,0 +1,4 @@
1
+ import { InitializeTxProps, InitializeTxResult } from '../types';
2
+ import { TxBuilderDependencies } from './types';
3
+ export declare const initializeTx: (props: InitializeTxProps, { txBuilderProviders, inputSelector, inputResolver, keyAgent, logger }: TxBuilderDependencies) => Promise<InitializeTxResult>;
4
+ //# sourceMappingURL=initializeTx.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"initializeTx.d.ts","sourceRoot":"","sources":["../../../src/tx-builder/initializeTx.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AACjE,OAAO,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAOhD,eAAO,MAAM,YAAY,UAChB,iBAAiB,0EAOrB,qBAAqB,KACvB,QAAQ,kBAAkB,CA+E5B,CAAC"}
@@ -0,0 +1,81 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.initializeTx = void 0;
4
+ const input_selection_1 = require("@cardano-sdk/input-selection");
5
+ const core_1 = require("@cardano-sdk/core");
6
+ const createTransactionInternals_1 = require("../createTransactionInternals");
7
+ const input_selection_2 = require("../input-selection");
8
+ const ensureValidityInterval_1 = require("../ensureValidityInterval");
9
+ const finalizeTx_1 = require("./finalizeTx");
10
+ const rxjs_1 = require("rxjs");
11
+ const initializeTx = async (props, { txBuilderProviders, inputSelector = (0, input_selection_1.roundRobinRandomImprove)(), inputResolver, keyAgent, logger }) => {
12
+ const [tip, genesisParameters, protocolParameters, addresses, changeAddress, rewardAccounts, utxo] = await Promise.all([
13
+ txBuilderProviders.tip(),
14
+ txBuilderProviders.genesisParameters(),
15
+ txBuilderProviders.protocolParameters(),
16
+ (0, rxjs_1.firstValueFrom)(keyAgent.knownAddresses$),
17
+ txBuilderProviders.changeAddress(),
18
+ txBuilderProviders.rewardAccounts(),
19
+ txBuilderProviders.utxoAvailable()
20
+ ]);
21
+ const validityInterval = (0, ensureValidityInterval_1.ensureValidityInterval)(tip.slot, genesisParameters, props.options?.validityInterval);
22
+ const withdrawals = rewardAccounts
23
+ .map(({ rewardBalance: quantity, address: stakeAddress }) => ({
24
+ quantity,
25
+ stakeAddress
26
+ }))
27
+ .filter(({ quantity }) => !!quantity);
28
+ const constraints = (0, input_selection_2.defaultSelectionConstraints)({
29
+ buildTx: async (inputSelection) => {
30
+ logger.debug('Building TX for selection constraints', inputSelection);
31
+ if (withdrawals.length > 0) {
32
+ logger.debug('Adding rewards withdrawal in the transaction', withdrawals);
33
+ }
34
+ const unsignedTx = await (0, createTransactionInternals_1.createTransactionInternals)({
35
+ auxiliaryData: props.auxiliaryData,
36
+ certificates: props.certificates,
37
+ changeAddress,
38
+ collaterals: props.collaterals,
39
+ inputSelection,
40
+ mint: props.mint,
41
+ requiredExtraSignatures: props.requiredExtraSignatures,
42
+ scriptIntegrityHash: props.scriptIntegrityHash,
43
+ validityInterval,
44
+ ...(withdrawals.length > 0 ? { withdrawals } : {})
45
+ });
46
+ const { tx } = await (0, finalizeTx_1.finalizeTx)(unsignedTx, {
47
+ auxiliaryData: props.auxiliaryData,
48
+ ownAddresses: addresses,
49
+ signingOptions: props.signingOptions,
50
+ witness: props.witness
51
+ }, { inputResolver, keyAgent }, true);
52
+ return tx;
53
+ },
54
+ protocolParameters
55
+ });
56
+ const implicitCoin = core_1.Cardano.util.computeImplicitCoin(protocolParameters, {
57
+ certificates: props.certificates,
58
+ withdrawals
59
+ });
60
+ const { selection: inputSelection } = await inputSelector.select({
61
+ constraints,
62
+ implicitValue: { coin: implicitCoin, mint: props.mint },
63
+ outputs: props.outputs || new Set(),
64
+ utxo: new Set(utxo)
65
+ });
66
+ const { body, hash } = await (0, createTransactionInternals_1.createTransactionInternals)({
67
+ auxiliaryData: props.auxiliaryData,
68
+ certificates: props.certificates,
69
+ changeAddress,
70
+ collaterals: props.collaterals,
71
+ inputSelection,
72
+ mint: props.mint,
73
+ requiredExtraSignatures: props.requiredExtraSignatures,
74
+ scriptIntegrityHash: props.scriptIntegrityHash,
75
+ validityInterval,
76
+ ...(withdrawals.length > 0 ? { withdrawals } : {})
77
+ });
78
+ return { body, hash, inputSelection };
79
+ };
80
+ exports.initializeTx = initializeTx;
81
+ //# sourceMappingURL=initializeTx.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"initializeTx.js","sourceRoot":"","sources":["../../../src/tx-builder/initializeTx.ts"],"names":[],"mappings":";;;AAAA,kEAAuE;AAEvE,4CAA4C;AAG5C,8EAA2E;AAC3E,wDAAiE;AACjE,sEAAmE;AACnE,6CAA0C;AAC1C,+BAAsC;AAE/B,MAAM,YAAY,GAAG,KAAK,EAC/B,KAAwB,EACxB,EACE,kBAAkB,EAClB,aAAa,GAAG,IAAA,yCAAuB,GAAE,EACzC,aAAa,EACb,QAAQ,EACR,MAAM,EACgB,EACK,EAAE;IAC/B,MAAM,CAAC,GAAG,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,SAAS,EAAE,aAAa,EAAE,cAAc,EAAE,IAAI,CAAC,GAChG,MAAM,OAAO,CAAC,GAAG,CAAC;QAChB,kBAAkB,CAAC,GAAG,EAAE;QACxB,kBAAkB,CAAC,iBAAiB,EAAE;QACtC,kBAAkB,CAAC,kBAAkB,EAAE;QACvC,IAAA,qBAAc,EAAC,QAAQ,CAAC,eAAe,CAAC;QACxC,kBAAkB,CAAC,aAAa,EAAE;QAClC,kBAAkB,CAAC,cAAc,EAAE;QACnC,kBAAkB,CAAC,aAAa,EAAE;KACnC,CAAC,CAAC;IACL,MAAM,gBAAgB,GAAG,IAAA,+CAAsB,EAAC,GAAG,CAAC,IAAI,EAAE,iBAAiB,EAAE,KAAK,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC;IAC9G,MAAM,WAAW,GAAyB,cAAc;SACrD,GAAG,CAAC,CAAC,EAAE,aAAa,EAAE,QAAQ,EAAE,OAAO,EAAE,YAAY,EAAE,EAAE,EAAE,CAAC,CAAC;QAC5D,QAAQ;QACR,YAAY;KACb,CAAC,CAAC;SACF,MAAM,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;IAExC,MAAM,WAAW,GAAG,IAAA,6CAA2B,EAAC;QAC9C,OAAO,EAAE,KAAK,EAAE,cAAc,EAAE,EAAE;YAChC,MAAM,CAAC,KAAK,CAAC,uCAAuC,EAAE,cAAc,CAAC,CAAC;YACtE,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC1B,MAAM,CAAC,KAAK,CAAC,8CAA8C,EAAE,WAAW,CAAC,CAAC;aAC3E;YACD,MAAM,UAAU,GAAG,MAAM,IAAA,uDAA0B,EAAC;gBAClD,aAAa,EAAE,KAAK,CAAC,aAAa;gBAClC,YAAY,EAAE,KAAK,CAAC,YAAY;gBAChC,aAAa;gBACb,WAAW,EAAE,KAAK,CAAC,WAAW;gBAC9B,cAAc;gBACd,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,uBAAuB,EAAE,KAAK,CAAC,uBAAuB;gBACtD,mBAAmB,EAAE,KAAK,CAAC,mBAAmB;gBAC9C,gBAAgB;gBAChB,GAAG,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACnD,CAAC,CAAC;YAEH,MAAM,EAAE,EAAE,EAAE,GAAG,MAAM,IAAA,uBAAU,EAC7B,UAAU,EACV;gBACE,aAAa,EAAE,KAAK,CAAC,aAAa;gBAClC,YAAY,EAAE,SAAS;gBACvB,cAAc,EAAE,KAAK,CAAC,cAAc;gBACpC,OAAO,EAAE,KAAK,CAAC,OAAO;aACvB,EACD,EAAE,aAAa,EAAE,QAAQ,EAAE,EAC3B,IAAI,CACL,CAAC;YACF,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,kBAAkB;KACnB,CAAC,CAAC;IAEH,MAAM,YAAY,GAAG,cAAO,CAAC,IAAI,CAAC,mBAAmB,CAAC,kBAAkB,EAAE;QACxE,YAAY,EAAE,KAAK,CAAC,YAAY;QAChC,WAAW;KACZ,CAAC,CAAC;IAEH,MAAM,EAAE,SAAS,EAAE,cAAc,EAAE,GAAG,MAAM,aAAa,CAAC,MAAM,CAAC;QAC/D,WAAW;QACX,aAAa,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE;QACvD,OAAO,EAAE,KAAK,CAAC,OAAO,IAAI,IAAI,GAAG,EAAE;QACnC,IAAI,EAAE,IAAI,GAAG,CAAC,IAAI,CAAC;KACpB,CAAC,CAAC;IACH,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,IAAA,uDAA0B,EAAC;QACtD,aAAa,EAAE,KAAK,CAAC,aAAa;QAClC,YAAY,EAAE,KAAK,CAAC,YAAY;QAChC,aAAa;QACb,WAAW,EAAE,KAAK,CAAC,WAAW;QAC9B,cAAc;QACd,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,uBAAuB,EAAE,KAAK,CAAC,uBAAuB;QACtD,mBAAmB,EAAE,KAAK,CAAC,mBAAmB;QAC9C,gBAAgB;QAChB,GAAG,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACnD,CAAC,CAAC;IAEH,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC;AACxC,CAAC,CAAC;AAxFW,QAAA,YAAY,gBAwFvB"}