@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,89 @@
1
+ import { Cardano } from '@cardano-sdk/core';
2
+ import { CustomError } from 'ts-custom-error';
3
+ import { InputSelectionError, InputSelector, SelectionSkeleton } from '@cardano-sdk/input-selection';
4
+ import { AsyncKeyAgent, GroupedAddress, SignTransactionOptions, TransactionSigner } from '@cardano-sdk/key-management';
5
+ import { Hash32ByteBase16 } from '@cardano-sdk/crypto';
6
+ import { InitializeTxWitness, TxBuilderProviders } from '../types';
7
+ import { Logger } from 'ts-log';
8
+ import { OutputBuilderValidator } from './OutputBuilder';
9
+ import { OutputValidation } from '../output-validation';
10
+ export declare type PartialTxOut = Partial<Pick<Cardano.TxOut, 'address' | 'datumHash' | 'datum' | 'scriptReference'> & {
11
+ value: Partial<Cardano.Value>;
12
+ }>;
13
+ export declare enum TxOutputFailure {
14
+ MinimumCoin = "Minimum coin not met",
15
+ TokenBundleSizeExceedsLimit = "Token Bundle Exceeds Limit",
16
+ MissingRequiredFields = "Mandatory fields address or coin are missing"
17
+ }
18
+ export declare class OutputValidationMissingRequiredError extends CustomError {
19
+ txOut: PartialTxOut;
20
+ constructor(txOut: PartialTxOut);
21
+ }
22
+ export declare class OutputValidationMinimumCoinError extends CustomError {
23
+ txOut: PartialTxOut;
24
+ outputValidation: OutputValidation;
25
+ constructor(txOut: PartialTxOut, outputValidation: OutputValidation);
26
+ }
27
+ export declare class OutputValidationTokenBundleSizeError extends CustomError {
28
+ txOut: PartialTxOut;
29
+ outputValidation: OutputValidation;
30
+ constructor(txOut: PartialTxOut, outputValidation: OutputValidation);
31
+ }
32
+ export declare class RewardAccountMissingError extends CustomError {
33
+ }
34
+ export declare type TxOutValidationError = OutputValidationMissingRequiredError | OutputValidationMinimumCoinError | OutputValidationTokenBundleSizeError;
35
+ export declare type TxBodyValidationError = TxOutValidationError | InputSelectionError | RewardAccountMissingError;
36
+ export interface OutputBuilder {
37
+ inspect(): Promise<PartialTxOut>;
38
+ value(value: Cardano.Value): OutputBuilder;
39
+ coin(coin: Cardano.Lovelace): OutputBuilder;
40
+ assets(assets: Cardano.TokenMap): OutputBuilder;
41
+ asset(assetId: Cardano.AssetId, quantity: bigint): OutputBuilder;
42
+ address(address: Cardano.PaymentAddress): OutputBuilder;
43
+ datum(datum: Hash32ByteBase16): OutputBuilder;
44
+ build(): Promise<Cardano.TxOut>;
45
+ }
46
+ export interface TxContext {
47
+ ownAddresses: GroupedAddress[];
48
+ signingOptions?: SignTransactionOptions;
49
+ auxiliaryData?: Cardano.AuxiliaryData;
50
+ witness?: InitializeTxWitness;
51
+ isValid?: boolean;
52
+ }
53
+ export declare type TxInspection = Cardano.TxBodyWithHash & Pick<TxContext, 'ownAddresses' | 'auxiliaryData'> & {
54
+ inputSelection: SelectionSkeleton;
55
+ };
56
+ export interface SignedTx {
57
+ tx: Cardano.Tx;
58
+ }
59
+ export interface UnsignedTx {
60
+ inspect(): Promise<TxInspection>;
61
+ sign(): Promise<SignedTx>;
62
+ }
63
+ export interface PartialTx {
64
+ body: Partial<Cardano.TxBody>;
65
+ auxiliaryData?: Cardano.AuxiliaryData;
66
+ extraSigners?: TransactionSigner[];
67
+ signingOptions?: SignTransactionOptions;
68
+ }
69
+ export interface TxBuilder {
70
+ inspect(): Promise<PartialTx>;
71
+ addOutput(txOut: Cardano.TxOut): TxBuilder;
72
+ removeOutput(txOut: Cardano.TxOut): TxBuilder;
73
+ buildOutput(txOut?: PartialTxOut): OutputBuilder;
74
+ delegate(poolId?: Cardano.PoolId): TxBuilder;
75
+ metadata(metadata: Cardano.TxMetadata): TxBuilder;
76
+ extraSigners(signers: TransactionSigner[]): TxBuilder;
77
+ signingOptions(options: SignTransactionOptions): TxBuilder;
78
+ build(): UnsignedTx;
79
+ }
80
+ export interface TxBuilderDependencies {
81
+ inputSelector?: InputSelector;
82
+ inputResolver: Cardano.InputResolver;
83
+ keyAgent: AsyncKeyAgent;
84
+ txBuilderProviders: TxBuilderProviders;
85
+ logger: Logger;
86
+ outputValidator?: OutputBuilderValidator;
87
+ }
88
+ export declare type FinalizeTxDependencies = Pick<TxBuilderDependencies, 'inputResolver' | 'keyAgent'>;
89
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/tx-builder/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RewardAccountMissingError = exports.OutputValidationTokenBundleSizeError = exports.OutputValidationMinimumCoinError = exports.OutputValidationMissingRequiredError = exports.TxOutputFailure = void 0;
4
+ const ts_custom_error_1 = require("ts-custom-error");
5
+ var TxOutputFailure;
6
+ (function (TxOutputFailure) {
7
+ TxOutputFailure["MinimumCoin"] = "Minimum coin not met";
8
+ TxOutputFailure["TokenBundleSizeExceedsLimit"] = "Token Bundle Exceeds Limit";
9
+ TxOutputFailure["MissingRequiredFields"] = "Mandatory fields address or coin are missing";
10
+ })(TxOutputFailure = exports.TxOutputFailure || (exports.TxOutputFailure = {}));
11
+ class OutputValidationMissingRequiredError extends ts_custom_error_1.CustomError {
12
+ constructor(txOut) {
13
+ super(TxOutputFailure.MissingRequiredFields);
14
+ this.txOut = txOut;
15
+ }
16
+ }
17
+ exports.OutputValidationMissingRequiredError = OutputValidationMissingRequiredError;
18
+ class OutputValidationMinimumCoinError extends ts_custom_error_1.CustomError {
19
+ constructor(txOut, outputValidation) {
20
+ super(TxOutputFailure.MinimumCoin);
21
+ this.txOut = txOut;
22
+ this.outputValidation = outputValidation;
23
+ }
24
+ }
25
+ exports.OutputValidationMinimumCoinError = OutputValidationMinimumCoinError;
26
+ class OutputValidationTokenBundleSizeError extends ts_custom_error_1.CustomError {
27
+ constructor(txOut, outputValidation) {
28
+ super(TxOutputFailure.TokenBundleSizeExceedsLimit);
29
+ this.txOut = txOut;
30
+ this.outputValidation = outputValidation;
31
+ }
32
+ }
33
+ exports.OutputValidationTokenBundleSizeError = OutputValidationTokenBundleSizeError;
34
+ class RewardAccountMissingError extends ts_custom_error_1.CustomError {
35
+ }
36
+ exports.RewardAccountMissingError = RewardAccountMissingError;
37
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/tx-builder/types.ts"],"names":[],"mappings":";;;AACA,qDAA8C;AAe9C,IAAY,eAIX;AAJD,WAAY,eAAe;IACzB,uDAAoC,CAAA;IACpC,6EAA0D,CAAA;IAC1D,yFAAsE,CAAA;AACxE,CAAC,EAJW,eAAe,GAAf,uBAAe,KAAf,uBAAe,QAI1B;AAED,MAAa,oCAAqC,SAAQ,6BAAW;IACnE,YAA0B,KAAmB;QAC3C,KAAK,CAAC,eAAe,CAAC,qBAAqB,CAAC,CAAC;QADrB,UAAK,GAAL,KAAK,CAAc;IAE7C,CAAC;CACF;AAJD,oFAIC;AAED,MAAa,gCAAiC,SAAQ,6BAAW;IAC/D,YAA0B,KAAmB,EAAS,gBAAkC;QACtF,KAAK,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC;QADX,UAAK,GAAL,KAAK,CAAc;QAAS,qBAAgB,GAAhB,gBAAgB,CAAkB;IAExF,CAAC;CACF;AAJD,4EAIC;AAED,MAAa,oCAAqC,SAAQ,6BAAW;IACnE,YAA0B,KAAmB,EAAS,gBAAkC;QACtF,KAAK,CAAC,eAAe,CAAC,2BAA2B,CAAC,CAAC;QAD3B,UAAK,GAAL,KAAK,CAAc;QAAS,qBAAgB,GAAhB,gBAAgB,CAAkB;IAExF,CAAC;CACF;AAJD,oFAIC;AAED,MAAa,yBAA0B,SAAQ,6BAAW;CAAG;AAA7D,8DAA6D"}
@@ -0,0 +1,37 @@
1
+ import * as Crypto from '@cardano-sdk/crypto';
2
+ import { Cardano } from '@cardano-sdk/core';
3
+ import { SelectionSkeleton } from '@cardano-sdk/input-selection';
4
+ import { SignTransactionOptions, TransactionSigner } from '@cardano-sdk/key-management';
5
+ import { MinimumCoinQuantityPerOutput } from './output-validation';
6
+ export declare type InitializeTxResult = Cardano.TxBodyWithHash & {
7
+ inputSelection: SelectionSkeleton;
8
+ };
9
+ export interface TxBuilderProviders {
10
+ tip: () => Promise<Cardano.Tip>;
11
+ protocolParameters: () => Promise<Cardano.ProtocolParameters>;
12
+ changeAddress: () => Promise<Cardano.PaymentAddress>;
13
+ genesisParameters: () => Promise<Cardano.CompactGenesis>;
14
+ rewardAccounts: () => Promise<Omit<Cardano.RewardAccountInfo, 'delegatee'>[]>;
15
+ utxoAvailable: () => Promise<Cardano.Utxo[]>;
16
+ }
17
+ export declare type InitializeTxWitness = Partial<Cardano.Witness> & {
18
+ extraSigners?: TransactionSigner[];
19
+ };
20
+ export interface InitializeTxProps {
21
+ outputs?: Set<Cardano.TxOut>;
22
+ certificates?: Cardano.Certificate[];
23
+ options?: {
24
+ validityInterval?: Cardano.ValidityInterval;
25
+ };
26
+ collaterals?: Set<Cardano.TxIn>;
27
+ mint?: Cardano.TokenMap;
28
+ scriptIntegrityHash?: Crypto.Hash32ByteBase16;
29
+ requiredExtraSignatures?: Crypto.Ed25519KeyHashHex[];
30
+ auxiliaryData?: Cardano.AuxiliaryData;
31
+ witness?: InitializeTxWitness;
32
+ signingOptions?: SignTransactionOptions;
33
+ }
34
+ export interface InitializeTxPropsValidationResult {
35
+ minimumCoinQuantities: MinimumCoinQuantityPerOutput;
36
+ }
37
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAExF,OAAO,EAAE,4BAA4B,EAAE,MAAM,qBAAqB,CAAC;AAEnE,oBAAY,kBAAkB,GAAG,OAAO,CAAC,cAAc,GAAG;IAAE,cAAc,EAAE,iBAAiB,CAAA;CAAE,CAAC;AAEhG,MAAM,WAAW,kBAAkB;IACjC,GAAG,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAChC,kBAAkB,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAC9D,aAAa,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;IACrD,iBAAiB,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;IACzD,cAAc,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE,WAAW,CAAC,EAAE,CAAC,CAAC;IAC9E,aAAa,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;CAC9C;AAED,oBAAY,mBAAmB,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG;IAAE,YAAY,CAAC,EAAE,iBAAiB,EAAE,CAAA;CAAE,CAAC;AAEpG,MAAM,WAAW,iBAAiB;IAChC,OAAO,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAC7B,YAAY,CAAC,EAAE,OAAO,CAAC,WAAW,EAAE,CAAC;IACrC,OAAO,CAAC,EAAE;QACR,gBAAgB,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC;KAC7C,CAAC;IACF,WAAW,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAChC,IAAI,CAAC,EAAE,OAAO,CAAC,QAAQ,CAAC;IACxB,mBAAmB,CAAC,EAAE,MAAM,CAAC,gBAAgB,CAAC;IAC9C,uBAAuB,CAAC,EAAE,MAAM,CAAC,iBAAiB,EAAE,CAAC;IACrD,aAAa,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC;IACtC,OAAO,CAAC,EAAE,mBAAmB,CAAC;IAC9B,cAAc,CAAC,EAAE,sBAAsB,CAAC;CACzC;AAED,MAAM,WAAW,iCAAiC;IAChD,qBAAqB,EAAE,4BAA4B,CAAC;CACrD"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,17 @@
1
+ import * as Crypto from '@cardano-sdk/crypto';
2
+ import { Cardano } from '@cardano-sdk/core';
3
+ import { SelectionResult } from '@cardano-sdk/input-selection';
4
+ export declare type CreateTxInternalsProps = {
5
+ changeAddress: Cardano.PaymentAddress;
6
+ inputSelection: SelectionResult['selection'];
7
+ validityInterval: Cardano.ValidityInterval;
8
+ certificates?: Cardano.Certificate[];
9
+ withdrawals?: Cardano.Withdrawal[];
10
+ auxiliaryData?: Cardano.AuxiliaryData;
11
+ collaterals?: Set<Cardano.TxIn>;
12
+ mint?: Cardano.TokenMap;
13
+ scriptIntegrityHash?: Crypto.Hash32ByteBase16;
14
+ requiredExtraSignatures?: Crypto.Ed25519KeyHashHex[];
15
+ };
16
+ export declare const createTransactionInternals: ({ auxiliaryData, changeAddress, withdrawals, certificates, validityInterval, inputSelection, collaterals, mint, scriptIntegrityHash, requiredExtraSignatures }: CreateTxInternalsProps) => Promise<Cardano.TxBodyWithHash>;
17
+ //# sourceMappingURL=createTransactionInternals.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createTransactionInternals.d.ts","sourceRoot":"","sources":["../../src/createTransactionInternals.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAAO,OAAO,EAAmB,MAAM,mBAAmB,CAAC;AAClE,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAG/D,oBAAY,sBAAsB,GAAG;IACnC,aAAa,EAAE,OAAO,CAAC,cAAc,CAAC;IACtC,cAAc,EAAE,eAAe,CAAC,WAAW,CAAC,CAAC;IAC7C,gBAAgB,EAAE,OAAO,CAAC,gBAAgB,CAAC;IAC3C,YAAY,CAAC,EAAE,OAAO,CAAC,WAAW,EAAE,CAAC;IACrC,WAAW,CAAC,EAAE,OAAO,CAAC,UAAU,EAAE,CAAC;IACnC,aAAa,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC;IACtC,WAAW,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAChC,IAAI,CAAC,EAAE,OAAO,CAAC,QAAQ,CAAC;IACxB,mBAAmB,CAAC,EAAE,MAAM,CAAC,gBAAgB,CAAC;IAC9C,uBAAuB,CAAC,EAAE,MAAM,CAAC,iBAAiB,EAAE,CAAC;CACtD,CAAC;AAEF,eAAO,MAAM,0BAA0B,mKAWpC,sBAAsB,KAAG,QAAQ,QAAQ,cAAc,CA4BtD,CAAC"}
@@ -0,0 +1,31 @@
1
+ import { CML, Cardano, coreToCml, util } from '@cardano-sdk/core';
2
+ import { usingAutoFree } from '@cardano-sdk/util';
3
+ export const createTransactionInternals = async ({ auxiliaryData, changeAddress, withdrawals, certificates, validityInterval, inputSelection, collaterals, mint, scriptIntegrityHash, requiredExtraSignatures }) => usingAutoFree((scope) => {
4
+ const outputs = [...inputSelection.outputs];
5
+ for (const value of inputSelection.change) {
6
+ outputs.push({
7
+ address: changeAddress,
8
+ value
9
+ });
10
+ }
11
+ const body = {
12
+ auxiliaryDataHash: auxiliaryData ? Cardano.computeAuxiliaryDataHash(auxiliaryData) : undefined,
13
+ certificates,
14
+ fee: inputSelection.fee,
15
+ inputs: [...inputSelection.inputs].map(([txIn]) => txIn),
16
+ mint,
17
+ outputs,
18
+ requiredExtraSignatures,
19
+ scriptIntegrityHash,
20
+ validityInterval,
21
+ withdrawals
22
+ };
23
+ if (collaterals)
24
+ body.collaterals = [...collaterals];
25
+ const cslBody = coreToCml.txBody(scope, body);
26
+ return {
27
+ body,
28
+ hash: Cardano.TransactionId.fromHexBlob(util.bytesToHex(scope.manage(CML.hash_transaction(cslBody)).to_bytes()))
29
+ };
30
+ });
31
+ //# sourceMappingURL=createTransactionInternals.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createTransactionInternals.js","sourceRoot":"","sources":["../../src/createTransactionInternals.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAElE,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAelD,MAAM,CAAC,MAAM,0BAA0B,GAAG,KAAK,EAAE,EAC/C,aAAa,EACb,aAAa,EACb,WAAW,EACX,YAAY,EACZ,gBAAgB,EAChB,cAAc,EACd,WAAW,EACX,IAAI,EACJ,mBAAmB,EACnB,uBAAuB,EACA,EAAmC,EAAE,CAC5D,aAAa,CAAC,CAAC,KAAK,EAAE,EAAE;IACtB,MAAM,OAAO,GAAG,CAAC,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;IAC5C,KAAK,MAAM,KAAK,IAAI,cAAc,CAAC,MAAM,EAAE;QACzC,OAAO,CAAC,IAAI,CAAC;YACX,OAAO,EAAE,aAAa;YACtB,KAAK;SACN,CAAC,CAAC;KACJ;IACD,MAAM,IAAI,GAAmB;QAC3B,iBAAiB,EAAE,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC,wBAAwB,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,SAAS;QAC9F,YAAY;QACZ,GAAG,EAAE,cAAc,CAAC,GAAG;QACvB,MAAM,EAAE,CAAC,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC;QACxD,IAAI;QACJ,OAAO;QACP,uBAAuB;QACvB,mBAAmB;QACnB,gBAAgB;QAChB,WAAW;KACZ,CAAC;IACF,IAAI,WAAW;QAAE,IAAI,CAAC,WAAW,GAAG,CAAC,GAAG,WAAW,CAAC,CAAC;IACrD,MAAM,OAAO,GAAG,SAAS,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IAE9C,OAAO;QACL,IAAI;QACJ,IAAI,EAAE,OAAO,CAAC,aAAa,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;KACjH,CAAC;AACJ,CAAC,CAAC,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { Cardano, Seconds } from '@cardano-sdk/core';
2
+ export declare const calcTimeOffsetSlotNumber: (startSlot: Cardano.Slot, seconds: Seconds, slotLength: Seconds) => Cardano.Slot;
3
+ export declare const ensureValidityInterval: (currentSlot: Cardano.Slot, { slotLength }: Pick<Cardano.CompactGenesis, 'slotLength'>, validityInterval?: Cardano.ValidityInterval) => Cardano.ValidityInterval;
4
+ //# sourceMappingURL=ensureValidityInterval.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ensureValidityInterval.d.ts","sourceRoot":"","sources":["../../src/ensureValidityInterval.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAYrD,eAAO,MAAM,wBAAwB,cACxB,QAAQ,IAAI,WACd,OAAO,cACJ,OAAO,KAClB,QAAQ,IAAsD,CAAC;AAelE,eAAO,MAAM,sBAAsB,gBACpB,QAAQ,IAAI,kBACT,KAAK,QAAQ,cAAc,EAAE,YAAY,CAAC,qBACvC,QAAQ,gBAAgB,KAC1C,QAAQ,gBAGT,CAAC"}
@@ -0,0 +1,8 @@
1
+ import { Cardano, Seconds } from '@cardano-sdk/core';
2
+ const twoHours = Seconds(2 * 3600);
3
+ export const calcTimeOffsetSlotNumber = (startSlot, seconds, slotLength) => Cardano.Slot(startSlot + seconds * slotLength);
4
+ export const ensureValidityInterval = (currentSlot, { slotLength }, validityInterval) => ({
5
+ invalidHereafter: calcTimeOffsetSlotNumber(currentSlot, twoHours, slotLength),
6
+ ...validityInterval
7
+ });
8
+ //# sourceMappingURL=ensureValidityInterval.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ensureValidityInterval.js","sourceRoot":"","sources":["../../src/ensureValidityInterval.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAErD,MAAM,QAAQ,GAAG,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;AAUnC,MAAM,CAAC,MAAM,wBAAwB,GAAG,CACtC,SAAuB,EACvB,OAAgB,EAChB,UAAmB,EACL,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,GAAG,OAAO,GAAG,UAAU,CAAC,CAAC;AAelE,MAAM,CAAC,MAAM,sBAAsB,GAAG,CACpC,WAAyB,EACzB,EAAE,UAAU,EAA8C,EAC1D,gBAA2C,EACjB,EAAE,CAAC,CAAC;IAC9B,gBAAgB,EAAE,wBAAwB,CAAC,WAAW,EAAE,QAAQ,EAAE,UAAU,CAAC;IAC7E,GAAG,gBAAgB;CACpB,CAAC,CAAC"}
@@ -1,3 +1,8 @@
1
+ export * from './createTransactionInternals';
1
2
  export * from './fees';
2
3
  export * from './input-selection';
4
+ export * from './output-validation';
5
+ export * from './tx-builder';
6
+ export * from './ensureValidityInterval';
7
+ export * from './types';
3
8
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAC;AACvB,cAAc,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,8BAA8B,CAAC;AAC7C,cAAc,QAAQ,CAAC;AACvB,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,cAAc,CAAC;AAC7B,cAAc,0BAA0B,CAAC;AACzC,cAAc,SAAS,CAAC"}
package/dist/esm/index.js CHANGED
@@ -1,3 +1,8 @@
1
+ export * from './createTransactionInternals';
1
2
  export * from './fees';
2
3
  export * from './input-selection';
4
+ export * from './output-validation';
5
+ export * from './tx-builder';
6
+ export * from './ensureValidityInterval';
7
+ export * from './types';
3
8
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAC;AACvB,cAAc,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,8BAA8B,CAAC;AAC7C,cAAc,QAAQ,CAAC;AACvB,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,cAAc,CAAC;AAC7B,cAAc,0BAA0B,CAAC;AACzC,cAAc,SAAS,CAAC"}
@@ -0,0 +1,3 @@
1
+ export * from './outputValidator';
2
+ export * from './types';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/output-validation/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,SAAS,CAAC"}
@@ -0,0 +1,3 @@
1
+ export * from './outputValidator';
2
+ export * from './types';
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/output-validation/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,SAAS,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { OutputValidator, OutputValidatorContext } from './types';
2
+ export declare const createOutputValidator: ({ protocolParameters: protocolParametersGetter }: OutputValidatorContext) => OutputValidator;
3
+ //# sourceMappingURL=outputValidator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"outputValidator.d.ts","sourceRoot":"","sources":["../../../src/output-validation/outputValidator.ts"],"names":[],"mappings":"AAGA,OAAO,EAEL,eAAe,EACf,sBAAsB,EAEvB,MAAM,SAAS,CAAC;AAGjB,eAAO,MAAM,qBAAqB,qDAE/B,sBAAsB,KAAG,eAmD3B,CAAC"}
@@ -0,0 +1,47 @@
1
+ import { BigIntMath } from '@cardano-sdk/util';
2
+ import { Cardano } from '@cardano-sdk/core';
3
+ import { computeMinimumCoinQuantity, tokenBundleSizeExceedsLimit } from '../input-selection';
4
+ export const createOutputValidator = ({ protocolParameters: protocolParametersGetter }) => {
5
+ const validateValue = async (value, protocolParameters) => {
6
+ const { coinsPerUtxoByte, maxValueSize } = protocolParameters || (await protocolParametersGetter());
7
+ const stubMaxSizeAddress = Cardano.PaymentAddress('addr_test1qqydn46r6mhge0kfpqmt36m6q43knzsd9ga32n96m89px3nuzcjqw982pcftgx53fu5527z2cj2tkx2h8ux2vxsg475qypp3m9');
8
+ const stubTxOut = { address: stubMaxSizeAddress, value };
9
+ const minimumCoin = BigInt(computeMinimumCoinQuantity(coinsPerUtxoByte)(stubTxOut));
10
+ return {
11
+ coinMissing: BigIntMath.max([minimumCoin - value.coins, 0n]),
12
+ minimumCoin,
13
+ tokenBundleSizeExceedsLimit: tokenBundleSizeExceedsLimit(maxValueSize)(value.assets)
14
+ };
15
+ };
16
+ const validateValues = async (values) => {
17
+ const protocolParameters = await protocolParametersGetter();
18
+ const validations = new Map();
19
+ for (const value of values) {
20
+ validations.set(value, await validateValue(value, protocolParameters));
21
+ }
22
+ return validations;
23
+ };
24
+ const validateOutput = async (output, protocolParameters) => {
25
+ const { coinsPerUtxoByte, maxValueSize } = protocolParameters || (await protocolParametersGetter());
26
+ const minimumCoin = BigInt(computeMinimumCoinQuantity(coinsPerUtxoByte)(output));
27
+ return {
28
+ coinMissing: BigIntMath.max([minimumCoin - output.value.coins, 0n]),
29
+ minimumCoin,
30
+ tokenBundleSizeExceedsLimit: tokenBundleSizeExceedsLimit(maxValueSize)(output.value.assets)
31
+ };
32
+ };
33
+ return {
34
+ validateOutput,
35
+ async validateOutputs(outputs) {
36
+ const protocolParameters = await protocolParametersGetter();
37
+ const validations = new Map();
38
+ for (const output of outputs) {
39
+ validations.set(output, await validateOutput(output, protocolParameters));
40
+ }
41
+ return validations;
42
+ },
43
+ validateValue,
44
+ validateValues
45
+ };
46
+ };
47
+ //# sourceMappingURL=outputValidator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"outputValidator.js","sourceRoot":"","sources":["../../../src/output-validation/outputValidator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAQ5C,OAAO,EAAE,0BAA0B,EAAE,2BAA2B,EAAE,MAAM,oBAAoB,CAAC;AAE7F,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,EACpC,kBAAkB,EAAE,wBAAwB,EACrB,EAAmB,EAAE;IAC5C,MAAM,aAAa,GAAG,KAAK,EACzB,KAAoB,EACpB,kBAAgE,EACrC,EAAE;QAC7B,MAAM,EAAE,gBAAgB,EAAE,YAAY,EAAE,GAAG,kBAAkB,IAAI,CAAC,MAAM,wBAAwB,EAAE,CAAC,CAAC;QACpG,MAAM,kBAAkB,GAAG,OAAO,CAAC,cAAc,CAC/C,8GAA8G,CAC/G,CAAC;QACF,MAAM,SAAS,GAAkB,EAAE,OAAO,EAAE,kBAAkB,EAAE,KAAK,EAAE,CAAC;QACxE,MAAM,WAAW,GAAG,MAAM,CAAC,0BAA0B,CAAC,gBAAgB,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;QACpF,OAAO;YACL,WAAW,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,WAAW,GAAG,KAAK,CAAC,KAAK,EAAE,EAAE,CAAC,CAAE;YAC7D,WAAW;YACX,2BAA2B,EAAE,2BAA2B,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC;SACrF,CAAC;IACJ,CAAC,CAAC;IACF,MAAM,cAAc,GAAG,KAAK,EAAE,MAA+B,EAAE,EAAE;QAC/D,MAAM,kBAAkB,GAAG,MAAM,wBAAwB,EAAE,CAAC;QAC5D,MAAM,WAAW,GAAG,IAAI,GAAG,EAAmC,CAAC;QAC/D,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE;YAC1B,WAAW,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,aAAa,CAAC,KAAK,EAAE,kBAAkB,CAAC,CAAC,CAAC;SACxE;QACD,OAAO,WAAW,CAAC;IACrB,CAAC,CAAC;IACF,MAAM,cAAc,GAAG,KAAK,EAC1B,MAAqB,EACrB,kBAAgE,EAChE,EAAE;QACF,MAAM,EAAE,gBAAgB,EAAE,YAAY,EAAE,GAAG,kBAAkB,IAAI,CAAC,MAAM,wBAAwB,EAAE,CAAC,CAAC;QACpG,MAAM,WAAW,GAAG,MAAM,CAAC,0BAA0B,CAAC,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;QACjF,OAAO;YACL,WAAW,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE,CAAC,CAAE;YACpE,WAAW;YACX,2BAA2B,EAAE,2BAA2B,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC;SAC5F,CAAC;IACJ,CAAC,CAAC;IAEF,OAAO;QACL,cAAc;QACd,KAAK,CAAC,eAAe,CAAC,OAAgC;YACpD,MAAM,kBAAkB,GAAG,MAAM,wBAAwB,EAAE,CAAC;YAC5D,MAAM,WAAW,GAAG,IAAI,GAAG,EAAmC,CAAC;YAC/D,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;gBAC5B,WAAW,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,cAAc,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC,CAAC;aAC3E;YACD,OAAO,WAAW,CAAC;QACrB,CAAC;QACD,aAAa;QACb,cAAc;KACf,CAAC;AACJ,CAAC,CAAC"}
@@ -0,0 +1,18 @@
1
+ import { Cardano } from '@cardano-sdk/core';
2
+ export declare type ProtocolParametersRequiredByOutputValidator = Pick<Cardano.ProtocolParameters, 'coinsPerUtxoByte' | 'maxValueSize'>;
3
+ export interface OutputValidatorContext {
4
+ protocolParameters: () => Promise<ProtocolParametersRequiredByOutputValidator>;
5
+ }
6
+ export interface OutputValidation {
7
+ minimumCoin: Cardano.Lovelace;
8
+ coinMissing: Cardano.Lovelace;
9
+ tokenBundleSizeExceedsLimit: boolean;
10
+ }
11
+ export interface OutputValidator {
12
+ validateValue(output: Cardano.Value): Promise<OutputValidation>;
13
+ validateValues(outputs: Iterable<Cardano.Value>): Promise<Map<Cardano.Value, OutputValidation>>;
14
+ validateOutput(output: Cardano.TxOut): Promise<OutputValidation>;
15
+ validateOutputs(outputs: Iterable<Cardano.TxOut>): Promise<Map<Cardano.TxOut, OutputValidation>>;
16
+ }
17
+ export declare type MinimumCoinQuantityPerOutput = Map<Cardano.TxOut, OutputValidation>;
18
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/output-validation/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAE5C,oBAAY,2CAA2C,GAAG,IAAI,CAC5D,OAAO,CAAC,kBAAkB,EAC1B,kBAAkB,GAAG,cAAc,CACpC,CAAC;AACF,MAAM,WAAW,sBAAsB;IAIrC,kBAAkB,EAAE,MAAM,OAAO,CAAC,2CAA2C,CAAC,CAAC;CAChF;AAED,MAAM,WAAW,gBAAgB;IAC/B,WAAW,EAAE,OAAO,CAAC,QAAQ,CAAC;IAC9B,WAAW,EAAE,OAAO,CAAC,QAAQ,CAAC;IAC9B,2BAA2B,EAAE,OAAO,CAAC;CACtC;AAED,MAAM,WAAW,eAAe;IAQ9B,aAAa,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAQhE,cAAc,CAAC,OAAO,EAAE,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAC,CAAC;IAIhG,cAAc,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAIjE,eAAe,CAAC,OAAO,EAAE,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAC,CAAC;CAClG;AAED,oBAAY,4BAA4B,GAAG,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/output-validation/types.ts"],"names":[],"mappings":""}