@cardano-sdk/input-selection 0.9.4 → 0.10.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 (76) hide show
  1. package/dist/cjs/GreedySelection/GreedyInputSelector.d.ts +11 -0
  2. package/dist/cjs/GreedySelection/GreedyInputSelector.d.ts.map +1 -0
  3. package/dist/cjs/GreedySelection/GreedyInputSelector.js +114 -0
  4. package/dist/cjs/GreedySelection/GreedyInputSelector.js.map +1 -0
  5. package/dist/cjs/GreedySelection/index.d.ts +3 -0
  6. package/dist/cjs/GreedySelection/index.d.ts.map +1 -0
  7. package/dist/cjs/GreedySelection/index.js +19 -0
  8. package/dist/cjs/GreedySelection/index.js.map +1 -0
  9. package/dist/cjs/GreedySelection/util.d.ts +4 -0
  10. package/dist/cjs/GreedySelection/util.d.ts.map +1 -0
  11. package/dist/cjs/GreedySelection/util.js +61 -0
  12. package/dist/cjs/GreedySelection/util.js.map +1 -0
  13. package/dist/cjs/RoundRobinRandomImprove/change.d.ts +1 -1
  14. package/dist/cjs/RoundRobinRandomImprove/change.d.ts.map +1 -1
  15. package/dist/cjs/RoundRobinRandomImprove/change.js +2 -3
  16. package/dist/cjs/RoundRobinRandomImprove/change.js.map +1 -1
  17. package/dist/cjs/RoundRobinRandomImprove/index.d.ts +3 -1
  18. package/dist/cjs/RoundRobinRandomImprove/index.d.ts.map +1 -1
  19. package/dist/cjs/RoundRobinRandomImprove/index.js +14 -6
  20. package/dist/cjs/RoundRobinRandomImprove/index.js.map +1 -1
  21. package/dist/cjs/RoundRobinRandomImprove/roundRobin.d.ts +1 -1
  22. package/dist/cjs/RoundRobinRandomImprove/roundRobin.d.ts.map +1 -1
  23. package/dist/cjs/RoundRobinRandomImprove/roundRobin.js +1 -1
  24. package/dist/cjs/RoundRobinRandomImprove/roundRobin.js.map +1 -1
  25. package/dist/cjs/index.d.ts +1 -0
  26. package/dist/cjs/index.d.ts.map +1 -1
  27. package/dist/cjs/index.js +1 -0
  28. package/dist/cjs/index.js.map +1 -1
  29. package/dist/cjs/tsconfig.tsbuildinfo +1 -1
  30. package/dist/cjs/types.d.ts +1 -1
  31. package/dist/cjs/types.d.ts.map +1 -1
  32. package/dist/cjs/{RoundRobinRandomImprove/util.d.ts → util.d.ts} +9 -2
  33. package/dist/cjs/util.d.ts.map +1 -0
  34. package/dist/cjs/{RoundRobinRandomImprove/util.js → util.js} +111 -3
  35. package/dist/cjs/util.js.map +1 -0
  36. package/dist/esm/GreedySelection/GreedyInputSelector.d.ts +11 -0
  37. package/dist/esm/GreedySelection/GreedyInputSelector.d.ts.map +1 -0
  38. package/dist/esm/GreedySelection/GreedyInputSelector.js +110 -0
  39. package/dist/esm/GreedySelection/GreedyInputSelector.js.map +1 -0
  40. package/dist/esm/GreedySelection/index.d.ts +3 -0
  41. package/dist/esm/GreedySelection/index.d.ts.map +1 -0
  42. package/dist/esm/GreedySelection/index.js +3 -0
  43. package/dist/esm/GreedySelection/index.js.map +1 -0
  44. package/dist/esm/GreedySelection/util.d.ts +4 -0
  45. package/dist/esm/GreedySelection/util.d.ts.map +1 -0
  46. package/dist/esm/GreedySelection/util.js +57 -0
  47. package/dist/esm/GreedySelection/util.js.map +1 -0
  48. package/dist/esm/RoundRobinRandomImprove/change.d.ts +1 -1
  49. package/dist/esm/RoundRobinRandomImprove/change.d.ts.map +1 -1
  50. package/dist/esm/RoundRobinRandomImprove/change.js +2 -3
  51. package/dist/esm/RoundRobinRandomImprove/change.js.map +1 -1
  52. package/dist/esm/RoundRobinRandomImprove/index.d.ts +3 -1
  53. package/dist/esm/RoundRobinRandomImprove/index.d.ts.map +1 -1
  54. package/dist/esm/RoundRobinRandomImprove/index.js +14 -6
  55. package/dist/esm/RoundRobinRandomImprove/index.js.map +1 -1
  56. package/dist/esm/RoundRobinRandomImprove/roundRobin.d.ts +1 -1
  57. package/dist/esm/RoundRobinRandomImprove/roundRobin.d.ts.map +1 -1
  58. package/dist/esm/RoundRobinRandomImprove/roundRobin.js +1 -1
  59. package/dist/esm/RoundRobinRandomImprove/roundRobin.js.map +1 -1
  60. package/dist/esm/index.d.ts +1 -0
  61. package/dist/esm/index.d.ts.map +1 -1
  62. package/dist/esm/index.js +1 -0
  63. package/dist/esm/index.js.map +1 -1
  64. package/dist/esm/tsconfig.tsbuildinfo +1 -1
  65. package/dist/esm/types.d.ts +1 -1
  66. package/dist/esm/types.d.ts.map +1 -1
  67. package/dist/esm/{RoundRobinRandomImprove/util.d.ts → util.d.ts} +9 -2
  68. package/dist/esm/util.d.ts.map +1 -0
  69. package/dist/esm/util.js +166 -0
  70. package/dist/esm/util.js.map +1 -0
  71. package/package.json +6 -19
  72. package/dist/cjs/RoundRobinRandomImprove/util.d.ts.map +0 -1
  73. package/dist/cjs/RoundRobinRandomImprove/util.js.map +0 -1
  74. package/dist/esm/RoundRobinRandomImprove/util.d.ts.map +0 -1
  75. package/dist/esm/RoundRobinRandomImprove/util.js +0 -63
  76. package/dist/esm/RoundRobinRandomImprove/util.js.map +0 -1
@@ -2,7 +2,7 @@ import { Cardano } from '@cardano-sdk/core';
2
2
  export interface SelectionSkeleton {
3
3
  inputs: Set<Cardano.Utxo>;
4
4
  outputs: Set<Cardano.TxOut>;
5
- change: Set<Cardano.Value>;
5
+ change: Array<Cardano.TxOut>;
6
6
  fee: Cardano.Lovelace;
7
7
  }
8
8
  export declare type Selection = SelectionSkeleton;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAE5C,MAAM,WAAW,iBAAiB;IAOhC,MAAM,EAAE,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAI1B,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAM5B,MAAM,EAAE,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAK3B,GAAG,EAAE,OAAO,CAAC,QAAQ,CAAC;CACvB;AAED,oBAAY,SAAS,GAAG,iBAAiB,CAAC;AAE1C,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,SAAS,CAAC;IAOrB,aAAa,EAAE,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;CAClC;AAKD,oBAAY,aAAa,GAAG,CAAC,iBAAiB,EAAE,iBAAiB,KAAK,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;AAKhG,oBAAY,2BAA2B,GAAG,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC;AAKtF,oBAAY,0BAA0B,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,KAAK,OAAO,CAAC,QAAQ,CAAC;AAMrF,oBAAY,qBAAqB,GAAG,CAAC,iBAAiB,EAAE,iBAAiB,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;AAE9F,MAAM,WAAW,oBAAoB;IACnC,kBAAkB,EAAE,aAAa,CAAC;IAClC,2BAA2B,EAAE,2BAA2B,CAAC;IACzD,0BAA0B,EAAE,0BAA0B,CAAC;IACvD,qBAAqB,EAAE,qBAAqB,CAAC;CAC9C;AAKD,MAAM,WAAW,aAAa;IAI5B,IAAI,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC;IAKjC,IAAI,CAAC,EAAE,OAAO,CAAC,QAAQ,CAAC;CACzB;AAED,MAAM,WAAW,wBAAwB;IAIvC,IAAI,EAAE,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAIxB,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAI5B,WAAW,EAAE,oBAAoB,CAAC;IAIlC,aAAa,CAAC,EAAE,aAAa,CAAC;CAC/B;AAED,MAAM,WAAW,aAAa;IAM5B,MAAM,CAAC,MAAM,EAAE,wBAAwB,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;CACpE;AAED,oBAAY,mCAAmC,GAAG,IAAI,CACpD,OAAO,CAAC,kBAAkB,EAC1B,kBAAkB,GAAG,WAAW,GAAG,cAAc,GAAG,mBAAmB,GAAG,gBAAgB,GAAG,QAAQ,CACtG,CAAC;AAEF,oBAAY,0CAA0C,GAAG,QAAQ,CAAC;KAC/D,CAAC,IAAI,MAAM,mCAAmC,GAAG,mCAAmC,CAAC,CAAC,CAAC;CACzF,CAAC,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAE5C,MAAM,WAAW,iBAAiB;IAOhC,MAAM,EAAE,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAI1B,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAM5B,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAM7B,GAAG,EAAE,OAAO,CAAC,QAAQ,CAAC;CACvB;AAED,oBAAY,SAAS,GAAG,iBAAiB,CAAC;AAE1C,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,SAAS,CAAC;IAOrB,aAAa,EAAE,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;CAClC;AAKD,oBAAY,aAAa,GAAG,CAAC,iBAAiB,EAAE,iBAAiB,KAAK,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;AAKhG,oBAAY,2BAA2B,GAAG,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC;AAKtF,oBAAY,0BAA0B,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,KAAK,OAAO,CAAC,QAAQ,CAAC;AAMrF,oBAAY,qBAAqB,GAAG,CAAC,iBAAiB,EAAE,iBAAiB,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;AAE9F,MAAM,WAAW,oBAAoB;IACnC,kBAAkB,EAAE,aAAa,CAAC;IAClC,2BAA2B,EAAE,2BAA2B,CAAC;IACzD,0BAA0B,EAAE,0BAA0B,CAAC;IACvD,qBAAqB,EAAE,qBAAqB,CAAC;CAC9C;AAKD,MAAM,WAAW,aAAa;IAI5B,IAAI,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC;IAKjC,IAAI,CAAC,EAAE,OAAO,CAAC,QAAQ,CAAC;CACzB;AAED,MAAM,WAAW,wBAAwB;IAIvC,IAAI,EAAE,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAIxB,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAI5B,WAAW,EAAE,oBAAoB,CAAC;IAIlC,aAAa,CAAC,EAAE,aAAa,CAAC;CAC/B;AAED,MAAM,WAAW,aAAa;IAM5B,MAAM,CAAC,MAAM,EAAE,wBAAwB,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;CACpE;AAED,oBAAY,mCAAmC,GAAG,IAAI,CACpD,OAAO,CAAC,kBAAkB,EAC1B,kBAAkB,GAAG,WAAW,GAAG,cAAc,GAAG,mBAAmB,GAAG,gBAAgB,GAAG,QAAQ,CACtG,CAAC;AAEF,oBAAY,0CAA0C,GAAG,QAAQ,CAAC;KAC/D,CAAC,IAAI,MAAM,mCAAmC,GAAG,mCAAmC,CAAC,CAAC,CAAC;CACzF,CAAC,CAAC"}
@@ -1,5 +1,6 @@
1
1
  import { Cardano } from '@cardano-sdk/core';
2
- import { ImplicitValue } from '../types';
2
+ import { ComputeMinimumCoinQuantity, ImplicitValue, TokenBundleSizeExceedsLimit } from './types';
3
+ export declare const stubMaxSizeAddress: Cardano.PaymentAddress;
3
4
  export interface ImplicitTokens {
4
5
  spend(assetId: Cardano.AssetId): bigint;
5
6
  input(assetId: Cardano.AssetId): bigint;
@@ -11,6 +12,7 @@ export interface RequiredImplicitValue {
11
12
  export interface RoundRobinRandomImproveArgs {
12
13
  utxo: Cardano.Utxo[];
13
14
  outputs: Cardano.TxOut[];
15
+ changeAddress: Cardano.PaymentAddress;
14
16
  uniqueTxAssetIDs: Cardano.AssetId[];
15
17
  implicitValue: RequiredImplicitValue;
16
18
  random: typeof Math.random;
@@ -24,11 +26,16 @@ export declare const mintToImplicitTokens: (mintMap?: Cardano.TokenMap) => {
24
26
  implicitTokensInput: Map<Cardano.AssetId, bigint>;
25
27
  implicitTokensSpend: Map<Cardano.AssetId, bigint>;
26
28
  };
27
- export declare const preProcessArgs: (availableUtxo: Set<Cardano.Utxo>, outputSet: Set<Cardano.TxOut>, partialImplicitValue?: ImplicitValue) => PreProcessedArgs;
29
+ export declare const preProcessArgs: (availableUtxo: Set<Cardano.Utxo>, outputSet: Set<Cardano.TxOut>, changeAddress: Cardano.PaymentAddress, partialImplicitValue?: ImplicitValue) => PreProcessedArgs;
28
30
  export declare function toValues(outputs: Cardano.TxOut[]): Cardano.Value[];
29
31
  export declare function toValues(utxo: Cardano.Utxo[]): Cardano.Value[];
30
32
  export declare const assetQuantitySelector: (id: Cardano.AssetId) => (quantities: Cardano.Value[]) => bigint;
31
33
  export declare const getCoinQuantity: (quantities: Cardano.Value[]) => bigint;
32
34
  export declare const assertIsCoinBalanceSufficient: (utxoValues: Cardano.Value[], outputValues: Cardano.Value[], implicitCoin: Required<Cardano.util.ImplicitCoin>) => void;
33
35
  export declare const assertIsBalanceSufficient: (uniqueTxAssetIDs: Cardano.AssetId[], utxo: Cardano.Utxo[], outputs: Cardano.TxOut[], { implicitCoin, implicitTokens }: RequiredImplicitValue) => void;
36
+ export declare const sortByCoins: (lhs: Cardano.TxOut, rhs: Cardano.TxOut) => 0 | 1 | -1;
37
+ export declare const subtractTokenMaps: (lhs: Cardano.TokenMap | undefined, rhs: Cardano.TokenMap | undefined) => Cardano.TokenMap | undefined;
38
+ export declare const addTokenMaps: (lhs: Cardano.TokenMap | undefined, rhs: Cardano.TokenMap | undefined) => Cardano.TokenMap | undefined;
39
+ export declare const hasNegativeAssetValue: (assets: Cardano.TokenMap | undefined) => boolean;
40
+ export declare const isValidValue: (value: Cardano.Value, computeMinimumCoinQuantity: ComputeMinimumCoinQuantity, tokenBundleSizeExceedsLimit: TokenBundleSizeExceedsLimit, feeToDiscount: bigint) => boolean;
34
41
  //# sourceMappingURL=util.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../../src/util.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EAAE,0BAA0B,EAAE,aAAa,EAAE,2BAA2B,EAAE,MAAM,SAAS,CAAC;AAIjG,eAAO,MAAM,kBAAkB,wBAE9B,CAAC;AAEF,MAAM,WAAW,cAAc;IAC7B,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,GAAG,MAAM,CAAC;IACxC,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,GAAG,MAAM,CAAC;CACzC;AAED,MAAM,WAAW,qBAAqB;IACpC,YAAY,EAAE,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAClD,cAAc,EAAE,cAAc,CAAC;CAChC;AAED,MAAM,WAAW,2BAA2B;IAC1C,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC;IACrB,OAAO,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC;IACzB,aAAa,EAAE,OAAO,CAAC,cAAc,CAAC;IACtC,gBAAgB,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC;IACpC,aAAa,EAAE,qBAAqB,CAAC;IACrC,MAAM,EAAE,OAAO,IAAI,CAAC,MAAM,CAAC;CAC5B;AAED,oBAAY,gBAAgB,GAAG,IAAI,CAAC,2BAA2B,EAAE,QAAQ,CAAC,CAAC;AAE3E,MAAM,WAAW,aAAa;IAC5B,YAAY,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC;IAC7B,aAAa,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC;CAC/B;AAED,eAAO,MAAM,oBAAoB;;;CAOhC,CAAC;AAEF,eAAO,MAAM,cAAc,kBACV,IAAI,QAAQ,IAAI,CAAC,aACrB,IAAI,QAAQ,KAAK,CAAC,iBACd,QAAQ,cAAc,yBACd,aAAa,KACnC,gBAqBF,CAAC;AAKF,wBAAgB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,KAAK,EAAE,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;AACpE,wBAAgB,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;AAWhE,eAAO,MAAM,qBAAqB,OAC3B,QAAQ,OAAO,kBACP,QAAQ,KAAK,EAAE,KAAG,MACwC,CAAC;AAE1E,eAAO,MAAM,eAAe,eAAgB,QAAQ,KAAK,EAAE,KAAG,MACR,CAAC;AAEvD,eAAO,MAAM,6BAA6B,eAC5B,QAAQ,KAAK,EAAE,gBACb,QAAQ,KAAK,EAAE,gBACf,SAAS,QAAQ,IAAI,CAAC,YAAY,CAAC,SAOlD,CAAC;AAQF,eAAO,MAAM,yBAAyB,qBAClB,QAAQ,OAAO,EAAE,QAC7B,QAAQ,IAAI,EAAE,WACX,QAAQ,KAAK,EAAE,oCACU,qBAAqB,KACtD,IAeF,CAAC;AAQF,eAAO,MAAM,WAAW,QAAS,QAAQ,KAAK,OAAO,QAAQ,KAAK,eAOjE,CAAC;AASF,eAAO,MAAM,iBAAiB,QACvB,QAAQ,QAAQ,GAAG,SAAS,OAC5B,QAAQ,QAAQ,GAAG,SAAS,KAChC,QAAQ,QAAQ,GAAG,SA0DrB,CAAC;AASF,eAAO,MAAM,YAAY,QAClB,QAAQ,QAAQ,GAAG,SAAS,OAC5B,QAAQ,QAAQ,GAAG,SAAS,KAChC,QAAQ,QAAQ,GAAG,SAoCrB,CAAC;AAQF,eAAO,MAAM,qBAAqB,WAAY,QAAQ,QAAQ,GAAG,SAAS,KAAG,OAK5E,CAAC;AAWF,eAAO,MAAM,YAAY,UAChB,QAAQ,KAAK,8BACQ,0BAA0B,+BACzB,2BAA2B,iBACzC,MAAM,KACpB,OAMF,CAAC"}
@@ -3,10 +3,12 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.assertIsBalanceSufficient = exports.assertIsCoinBalanceSufficient = exports.getCoinQuantity = exports.assetQuantitySelector = exports.toValues = exports.preProcessArgs = exports.mintToImplicitTokens = void 0;
6
+ exports.isValidValue = exports.hasNegativeAssetValue = exports.addTokenMaps = exports.subtractTokenMaps = exports.sortByCoins = exports.assertIsBalanceSufficient = exports.assertIsCoinBalanceSufficient = exports.getCoinQuantity = exports.assetQuantitySelector = exports.toValues = exports.preProcessArgs = exports.mintToImplicitTokens = exports.stubMaxSizeAddress = void 0;
7
7
  const util_1 = require("@cardano-sdk/util");
8
- const InputSelectionError_1 = require("../InputSelectionError");
8
+ const core_1 = require("@cardano-sdk/core");
9
+ const InputSelectionError_1 = require("./InputSelectionError");
9
10
  const uniq_1 = __importDefault(require("lodash/uniq"));
11
+ exports.stubMaxSizeAddress = core_1.Cardano.PaymentAddress('addr_test1qqydn46r6mhge0kfpqmt36m6q43knzsd9ga32n96m89px3nuzcjqw982pcftgx53fu5527z2cj2tkx2h8ux2vxsg475qypp3m9');
10
12
  const mintToImplicitTokens = (mintMap = new Map()) => {
11
13
  const mint = [...mintMap.entries()];
12
14
  const implicitTokensInput = new Map(mint.filter(([_, quantity]) => quantity > 0));
@@ -14,7 +16,7 @@ const mintToImplicitTokens = (mintMap = new Map()) => {
14
16
  return { implicitTokensInput, implicitTokensSpend };
15
17
  };
16
18
  exports.mintToImplicitTokens = mintToImplicitTokens;
17
- const preProcessArgs = (availableUtxo, outputSet, partialImplicitValue) => {
19
+ const preProcessArgs = (availableUtxo, outputSet, changeAddress, partialImplicitValue) => {
18
20
  const outputs = [...outputSet];
19
21
  const implicitCoin = {
20
22
  deposit: partialImplicitValue?.coin?.deposit || 0n,
@@ -29,6 +31,7 @@ const preProcessArgs = (availableUtxo, outputSet, partialImplicitValue) => {
29
31
  const uniqueOutputAssetIDs = (0, uniq_1.default)(outputs.flatMap(({ value: { assets } }) => [...(assets?.keys() || [])]));
30
32
  const uniqueTxAssetIDs = (0, uniq_1.default)([...uniqueOutputAssetIDs, ...mintMap.keys()]);
31
33
  return {
34
+ changeAddress,
32
35
  implicitValue: { implicitCoin, implicitTokens },
33
36
  outputs,
34
37
  uniqueTxAssetIDs,
@@ -73,4 +76,109 @@ const assertIsBalanceSufficient = (uniqueTxAssetIDs, utxo, outputs, { implicitCo
73
76
  (0, exports.assertIsCoinBalanceSufficient)(utxoValues, outputsValues, implicitCoin);
74
77
  };
75
78
  exports.assertIsBalanceSufficient = assertIsBalanceSufficient;
79
+ const sortByCoins = (lhs, rhs) => {
80
+ if (lhs.value.coins > rhs.value.coins) {
81
+ return -1;
82
+ }
83
+ else if (lhs.value.coins < rhs.value.coins) {
84
+ return 1;
85
+ }
86
+ return 0;
87
+ };
88
+ exports.sortByCoins = sortByCoins;
89
+ const subtractTokenMaps = (lhs, rhs) => {
90
+ if (!rhs) {
91
+ if (!lhs)
92
+ return undefined;
93
+ const nonEmptyValues = new Map();
94
+ for (const [key, value] of lhs.entries()) {
95
+ if (value !== 0n)
96
+ nonEmptyValues.set(key, value);
97
+ }
98
+ return nonEmptyValues;
99
+ }
100
+ if (!lhs) {
101
+ const negativeValues = new Map();
102
+ for (const [key, value] of rhs.entries()) {
103
+ if (value !== 0n)
104
+ negativeValues.set(key, -value);
105
+ }
106
+ return negativeValues;
107
+ }
108
+ const result = new Map();
109
+ const intersection = new Array();
110
+ for (const [key, value] of lhs.entries()) {
111
+ if (rhs.has(key)) {
112
+ intersection.push(key);
113
+ continue;
114
+ }
115
+ if (value !== 0n)
116
+ result.set(key, value);
117
+ }
118
+ for (const [key, value] of rhs.entries()) {
119
+ if (lhs.has(key)) {
120
+ intersection.push(key);
121
+ continue;
122
+ }
123
+ if (value !== 0n)
124
+ result.set(key, -value);
125
+ }
126
+ const uniqIntersection = (0, uniq_1.default)(intersection);
127
+ for (const id of uniqIntersection) {
128
+ const lshVal = lhs.get(id);
129
+ const rshVal = rhs.get(id);
130
+ const remainingCoins = lshVal - rshVal;
131
+ if (remainingCoins !== 0n)
132
+ result.set(id, remainingCoins);
133
+ }
134
+ return result;
135
+ };
136
+ exports.subtractTokenMaps = subtractTokenMaps;
137
+ const addTokenMaps = (lhs, rhs) => {
138
+ if (!lhs)
139
+ return rhs;
140
+ if (!rhs)
141
+ return lhs;
142
+ const result = new Map();
143
+ const intersection = new Array();
144
+ for (const [key, value] of lhs.entries()) {
145
+ if (rhs.has(key)) {
146
+ intersection.push(key);
147
+ continue;
148
+ }
149
+ if (value !== 0n)
150
+ result.set(key, value);
151
+ }
152
+ for (const [key, value] of rhs.entries()) {
153
+ if (lhs.has(key)) {
154
+ intersection.push(key);
155
+ continue;
156
+ }
157
+ if (value !== 0n)
158
+ result.set(key, value);
159
+ }
160
+ const uniqIntersection = (0, uniq_1.default)(intersection);
161
+ for (const id of uniqIntersection) {
162
+ const lshVal = lhs.get(id);
163
+ const rshVal = rhs.get(id);
164
+ if (lshVal + rshVal !== 0n)
165
+ result.set(id, lshVal + rshVal);
166
+ }
167
+ return result;
168
+ };
169
+ exports.addTokenMaps = addTokenMaps;
170
+ const hasNegativeAssetValue = (assets) => {
171
+ if (!assets)
172
+ return false;
173
+ const values = [...assets.values()];
174
+ return values.some((quantity) => quantity < 0n);
175
+ };
176
+ exports.hasNegativeAssetValue = hasNegativeAssetValue;
177
+ const isValidValue = (value, computeMinimumCoinQuantity, tokenBundleSizeExceedsLimit, feeToDiscount) => {
178
+ let isValid = value.coins - feeToDiscount >= computeMinimumCoinQuantity({ address: exports.stubMaxSizeAddress, value });
179
+ if (value.assets)
180
+ isValid = isValid && !tokenBundleSizeExceedsLimit(value.assets);
181
+ return isValid;
182
+ };
183
+ exports.isValidValue = isValidValue;
76
184
  //# sourceMappingURL=util.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"util.js","sourceRoot":"","sources":["../../src/util.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import { Cardano } from '@cardano-sdk/core';
2
+ import { InputSelectionParameters, InputSelector, SelectionResult } from '../types';
3
+ export interface GreedySelectorProps {
4
+ getChangeAddresses: () => Promise<Map<Cardano.PaymentAddress, number>>;
5
+ }
6
+ export declare class GreedyInputSelector implements InputSelector {
7
+ #private;
8
+ constructor(props: GreedySelectorProps);
9
+ select(params: InputSelectionParameters): Promise<SelectionResult>;
10
+ }
11
+ //# sourceMappingURL=GreedyInputSelector.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GreedyInputSelector.d.ts","sourceRoot":"","sources":["../../../src/GreedySelection/GreedyInputSelector.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAA2B,MAAM,mBAAmB,CAAC;AAErE,OAAO,EAAE,wBAAwB,EAAE,aAAa,EAAwB,eAAe,EAAE,MAAM,UAAU,CAAC;AAe1G,MAAM,WAAW,mBAAmB;IAalC,kBAAkB,EAAE,MAAM,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC,CAAC;CACxE;AAiID,qBAAa,mBAAoB,YAAW,aAAa;;gBAG3C,KAAK,EAAE,mBAAmB;IAIhC,MAAM,CAAC,MAAM,EAAE,wBAAwB,GAAG,OAAO,CAAC,eAAe,CAAC;CAuDzE"}
@@ -0,0 +1,110 @@
1
+ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
2
+ if (kind === "m") throw new TypeError("Private method is not writable");
3
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
4
+ 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");
5
+ return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
6
+ };
7
+ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
8
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
9
+ 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");
10
+ return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
11
+ };
12
+ var _GreedyInputSelector_props;
13
+ import { coalesceValueQuantities } from '@cardano-sdk/core';
14
+ import { InputSelectionError, InputSelectionFailure } from '../InputSelectionError';
15
+ import { addTokenMaps, getCoinQuantity, hasNegativeAssetValue, sortByCoins, stubMaxSizeAddress, subtractTokenMaps, toValues } from '../util';
16
+ import { splitChange } from './util';
17
+ const adjustOutputsForFee = async (changeLovelace, constraints, inputs, outputs, changeOutputs, currentFee) => {
18
+ const totalOutputs = new Set([...outputs, ...changeOutputs]);
19
+ const fee = await constraints.computeMinimumCost({
20
+ change: [],
21
+ fee: currentFee,
22
+ inputs,
23
+ outputs: totalOutputs
24
+ });
25
+ if (fee === changeLovelace)
26
+ return { change: [], fee };
27
+ if (changeLovelace < fee)
28
+ throw new InputSelectionError(InputSelectionFailure.UtxoBalanceInsufficient);
29
+ const updatedOutputs = [...changeOutputs];
30
+ updatedOutputs.sort(sortByCoins);
31
+ let feeAccountedFor = false;
32
+ for (const output of updatedOutputs) {
33
+ const adjustedCoins = output.value.coins - fee;
34
+ if (adjustedCoins >= constraints.computeMinimumCoinQuantity(output)) {
35
+ output.value.coins = adjustedCoins;
36
+ feeAccountedFor = true;
37
+ break;
38
+ }
39
+ }
40
+ if (!feeAccountedFor) {
41
+ throw new InputSelectionError(InputSelectionFailure.UtxoFullyDepleted);
42
+ }
43
+ return { change: [...updatedOutputs], fee };
44
+ };
45
+ const splitChangeAndComputeFee = async (inputs, outputs, changeLovelace, changeAssets, constraints, getChangeAddresses, fee) => {
46
+ const changeOutputs = await splitChange(getChangeAddresses, changeLovelace, changeAssets, constraints.computeMinimumCoinQuantity, constraints.tokenBundleSizeExceedsLimit, fee);
47
+ const adjustedChangeOutputs = await adjustOutputsForFee(changeLovelace, constraints, inputs, outputs, changeOutputs, fee);
48
+ if (adjustedChangeOutputs.fee >= changeLovelace) {
49
+ return {
50
+ change: [
51
+ {
52
+ address: stubMaxSizeAddress,
53
+ value: {
54
+ assets: changeAssets,
55
+ coins: 0n
56
+ }
57
+ }
58
+ ],
59
+ fee: adjustedChangeOutputs.fee
60
+ };
61
+ }
62
+ if (fee < adjustedChangeOutputs.fee) {
63
+ return splitChangeAndComputeFee(inputs, outputs, changeLovelace, changeAssets, constraints, getChangeAddresses, adjustedChangeOutputs.fee);
64
+ }
65
+ return adjustedChangeOutputs;
66
+ };
67
+ export class GreedyInputSelector {
68
+ constructor(props) {
69
+ _GreedyInputSelector_props.set(this, void 0);
70
+ __classPrivateFieldSet(this, _GreedyInputSelector_props, props, "f");
71
+ }
72
+ async select(params) {
73
+ const { utxo: inputs, outputs, constraints, implicitValue } = params;
74
+ const utxoValues = toValues([...inputs]);
75
+ const outputsValues = toValues([...outputs]);
76
+ const totalLovelaceInUtxoSet = getCoinQuantity(utxoValues);
77
+ const totalLovelaceInOutputSet = getCoinQuantity(outputsValues);
78
+ const totalAssetsInUtxoSet = coalesceValueQuantities(utxoValues).assets;
79
+ const totalAssetsInOutputSet = coalesceValueQuantities(outputsValues).assets;
80
+ const implicitCoinInput = implicitValue?.coin?.input || 0n;
81
+ const implicitCoinOutput = implicitValue?.coin?.deposit || 0n;
82
+ const implicitAssetInput = implicitValue?.mint || new Map();
83
+ const totalLovelaceInput = totalLovelaceInUtxoSet + implicitCoinInput;
84
+ const totalLovelaceOutput = totalLovelaceInOutputSet + implicitCoinOutput;
85
+ const totalAssetsInput = addTokenMaps(totalAssetsInUtxoSet, implicitAssetInput);
86
+ const changeLovelace = totalLovelaceInput - totalLovelaceOutput;
87
+ const changeAssets = subtractTokenMaps(totalAssetsInput, totalAssetsInOutputSet);
88
+ if (inputs.size === 0 || totalLovelaceOutput > totalLovelaceInput || hasNegativeAssetValue(changeAssets))
89
+ throw new InputSelectionError(InputSelectionFailure.UtxoBalanceInsufficient);
90
+ const adjustedChangeOutputs = await splitChangeAndComputeFee(inputs, outputs, changeLovelace, changeAssets, constraints, __classPrivateFieldGet(this, _GreedyInputSelector_props, "f").getChangeAddresses, 0n);
91
+ const change = adjustedChangeOutputs.change.filter((out) => out.value.coins > 0n || (out.value.assets?.size || 0) > 0);
92
+ if (changeLovelace - adjustedChangeOutputs.fee < 0n)
93
+ throw new InputSelectionError(InputSelectionFailure.UtxoBalanceInsufficient);
94
+ if (inputs.size >
95
+ (await constraints.computeSelectionLimit({ change, fee: adjustedChangeOutputs.fee, inputs, outputs }))) {
96
+ throw new InputSelectionError(InputSelectionFailure.MaximumInputCountExceeded);
97
+ }
98
+ return {
99
+ remainingUTxO: new Set(),
100
+ selection: {
101
+ change,
102
+ fee: adjustedChangeOutputs.fee,
103
+ inputs,
104
+ outputs
105
+ }
106
+ };
107
+ }
108
+ }
109
+ _GreedyInputSelector_props = new WeakMap();
110
+ //# sourceMappingURL=GreedyInputSelector.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GreedyInputSelector.js","sourceRoot":"","sources":["../../../src/GreedySelection/GreedyInputSelector.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export * from './GreedyInputSelector';
2
+ export * from './util';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/GreedySelection/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,QAAQ,CAAC"}
@@ -0,0 +1,3 @@
1
+ export * from './GreedyInputSelector';
2
+ export * from './util';
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/GreedySelection/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,QAAQ,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { Cardano } from '@cardano-sdk/core';
2
+ import { ComputeMinimumCoinQuantity, TokenBundleSizeExceedsLimit } from '../types';
3
+ export declare const splitChange: (getChangeAddresses: () => Promise<Map<Cardano.PaymentAddress, number>>, totalChangeLovelace: bigint, totalChangeAssets: Cardano.TokenMap | undefined, computeMinimumCoinQuantity: ComputeMinimumCoinQuantity, tokenBundleSizeExceedsLimit: TokenBundleSizeExceedsLimit, fee: bigint) => Promise<Array<Cardano.TxOut>>;
4
+ //# sourceMappingURL=util.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../../../src/GreedySelection/util.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EAAE,0BAA0B,EAAE,2BAA2B,EAAE,MAAM,UAAU,CAAC;AA6EnF,eAAO,MAAM,WAAW,uBACF,MAAM,QAAQ,IAAI,QAAQ,cAAc,EAAE,MAAM,CAAC,CAAC,uBACjD,MAAM,qBACR,QAAQ,QAAQ,GAAG,SAAS,8BACnB,0BAA0B,+BACzB,2BAA2B,OACnD,MAAM,KACV,QAAQ,MAAM,QAAQ,KAAK,CAAC,CA0C9B,CAAC"}
@@ -0,0 +1,57 @@
1
+ import { BigNumber } from 'bignumber.js';
2
+ import { InputSelectionError, InputSelectionFailure } from '../InputSelectionError';
3
+ import { addTokenMaps, isValidValue, sortByCoins, subtractTokenMaps } from '../util';
4
+ const PERCENTAGE_TOLERANCE = 0.05;
5
+ const distributeAssets = (outputs, computeMinimumCoinQuantity, tokenBundleSizeExceedsLimit, fee) => {
6
+ const adjustedOutputs = [...outputs];
7
+ for (let i = 0; i < adjustedOutputs.length; ++i) {
8
+ const output = adjustedOutputs[i];
9
+ if (!isValidValue(output.value, computeMinimumCoinQuantity, tokenBundleSizeExceedsLimit, fee)) {
10
+ if (i === adjustedOutputs.length - 1) {
11
+ throw new InputSelectionError(InputSelectionFailure.UtxoFullyDepleted);
12
+ }
13
+ if (!output.value.assets || output.value.assets.size === 0) {
14
+ throw new InputSelectionError(InputSelectionFailure.UtxoFullyDepleted);
15
+ }
16
+ const splicedAsset = new Map([...output.value.assets.entries()].splice(0, 1));
17
+ const currentOutputNewAssets = subtractTokenMaps(output.value.assets, splicedAsset);
18
+ const nextOutputNewAssets = addTokenMaps(adjustedOutputs[i + 1].value.assets, splicedAsset);
19
+ output.value.assets = currentOutputNewAssets;
20
+ adjustedOutputs[i + 1].value.assets = nextOutputNewAssets;
21
+ return distributeAssets(adjustedOutputs, computeMinimumCoinQuantity, tokenBundleSizeExceedsLimit, fee);
22
+ }
23
+ }
24
+ return adjustedOutputs;
25
+ };
26
+ export const splitChange = async (getChangeAddresses, totalChangeLovelace, totalChangeAssets, computeMinimumCoinQuantity, tokenBundleSizeExceedsLimit, fee) => {
27
+ const changeAddresses = await getChangeAddresses();
28
+ const totalWeight = [...changeAddresses.values()].reduce((sum, current) => sum + current, 0);
29
+ const changeAsPercent = new Map([...changeAddresses.entries()].map((value) => [value[0], value[1] / totalWeight]));
30
+ const totalPercentage = [...changeAsPercent.values()].reduce((sum, current) => sum + current, 0);
31
+ if (Math.abs(1 - totalPercentage) > PERCENTAGE_TOLERANCE)
32
+ throw new InputSelectionError(InputSelectionFailure.UtxoBalanceInsufficient);
33
+ const changeOutputs = [...changeAsPercent.entries()].map((val) => ({
34
+ address: val[0],
35
+ value: { coins: 0n }
36
+ }));
37
+ let runningTotal = 0n;
38
+ const totalCoinAllocation = new BigNumber(totalChangeLovelace.toString());
39
+ for (const txOut of changeOutputs) {
40
+ const factor = new BigNumber(changeAsPercent.get(txOut.address));
41
+ const coinAllocation = BigInt(totalCoinAllocation.multipliedBy(factor).toFixed(0, 0));
42
+ runningTotal += coinAllocation;
43
+ txOut.value.coins =
44
+ runningTotal > totalChangeLovelace ? coinAllocation - (runningTotal - totalChangeLovelace) : coinAllocation;
45
+ }
46
+ if (runningTotal < totalChangeLovelace) {
47
+ const missingAllocation = totalChangeLovelace - runningTotal;
48
+ changeOutputs[changeOutputs.length - 1].value.coins += missingAllocation;
49
+ }
50
+ const sortedOutputs = changeOutputs.sort(sortByCoins).filter((out) => out.value.coins > 0n);
51
+ if (sortedOutputs && sortedOutputs.length > 0)
52
+ sortedOutputs[0].value.assets = totalChangeAssets;
53
+ if (!totalChangeAssets || totalChangeAssets.size === 0)
54
+ return sortedOutputs;
55
+ return distributeAssets(sortedOutputs, computeMinimumCoinQuantity, tokenBundleSizeExceedsLimit, fee);
56
+ };
57
+ //# sourceMappingURL=util.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"util.js","sourceRoot":"","sources":["../../../src/GreedySelection/util.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { Cardano } from '@cardano-sdk/core';
2
2
  import { ComputeMinimumCoinQuantity, TokenBundleSizeExceedsLimit } from '../types';
3
- import { RequiredImplicitValue, UtxoSelection } from './util';
3
+ import { RequiredImplicitValue, UtxoSelection } from '../util';
4
4
  declare type EstimateTxFeeWithOriginalOutputs = (utxo: Cardano.Utxo[], change: Cardano.Value[]) => Promise<Cardano.Lovelace>;
5
5
  interface ChangeComputationArgs {
6
6
  utxoSelection: UtxoSelection;
@@ -1 +1 @@
1
- {"version":3,"file":"change.d.ts","sourceRoot":"","sources":["../../../src/RoundRobinRandomImprove/change.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAA2B,MAAM,mBAAmB,CAAC;AACrE,OAAO,EAAE,0BAA0B,EAAE,2BAA2B,EAAE,MAAM,UAAU,CAAC;AAEnF,OAAO,EAAE,qBAAqB,EAAE,aAAa,EAAoD,MAAM,QAAQ,CAAC;AAKhH,aAAK,gCAAgC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,KAAK,EAAE,KAAK,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;AAMrH,UAAU,qBAAqB;IAC7B,aAAa,EAAE,aAAa,CAAC;IAC7B,YAAY,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC;IAC9B,gBAAgB,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC;IACpC,aAAa,EAAE,qBAAqB,CAAC;IACrC,aAAa,EAAE,gCAAgC,CAAC;IAChD,0BAA0B,EAAE,0BAA0B,CAAC;IACvD,2BAA2B,EAAE,2BAA2B,CAAC;IACzD,MAAM,EAAE,OAAO,IAAI,CAAC,MAAM,CAAC;CAC5B;AAED,UAAU,uBAAuB;IAC/B,aAAa,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC;IAC9B,MAAM,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC;IACvB,MAAM,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC;IACxB,GAAG,EAAE,OAAO,CAAC,QAAQ,CAAC;CACvB;AAkMD,eAAO,MAAM,0CAA0C,kBACtC,QAAQ,KAAK,EAAE,8BACF,0BAA0B,KACrD,QAAQ,KAAK,EAAE,GAAG,SA0CpB,CAAC;AA+DF,eAAO,MAAM,4BAA4B,qJAStC,qBAAqB,KAAG,QAAQ,uBAAuB,CAuEzD,CAAC"}
1
+ {"version":3,"file":"change.d.ts","sourceRoot":"","sources":["../../../src/RoundRobinRandomImprove/change.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAA2B,MAAM,mBAAmB,CAAC;AACrE,OAAO,EAAE,0BAA0B,EAAE,2BAA2B,EAAE,MAAM,UAAU,CAAC;AAEnF,OAAO,EACL,qBAAqB,EACrB,aAAa,EAKd,MAAM,SAAS,CAAC;AAKjB,aAAK,gCAAgC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,KAAK,EAAE,KAAK,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;AAErH,UAAU,qBAAqB;IAC7B,aAAa,EAAE,aAAa,CAAC;IAC7B,YAAY,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC;IAC9B,gBAAgB,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC;IACpC,aAAa,EAAE,qBAAqB,CAAC;IACrC,aAAa,EAAE,gCAAgC,CAAC;IAChD,0BAA0B,EAAE,0BAA0B,CAAC;IACvD,2BAA2B,EAAE,2BAA2B,CAAC;IACzD,MAAM,EAAE,OAAO,IAAI,CAAC,MAAM,CAAC;CAC5B;AAED,UAAU,uBAAuB;IAC/B,aAAa,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC;IAC9B,MAAM,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC;IACvB,MAAM,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC;IACxB,GAAG,EAAE,OAAO,CAAC,QAAQ,CAAC;CACvB;AAkMD,eAAO,MAAM,0CAA0C,kBACtC,QAAQ,KAAK,EAAE,8BACF,0BAA0B,KACrD,QAAQ,KAAK,EAAE,GAAG,SA0CpB,CAAC;AA+DF,eAAO,MAAM,4BAA4B,qJAStC,qBAAqB,KAAG,QAAQ,uBAAuB,CAuEzD,CAAC"}
@@ -1,10 +1,9 @@
1
- import { Cardano, coalesceValueQuantities } from '@cardano-sdk/core';
1
+ import { coalesceValueQuantities } from '@cardano-sdk/core';
2
2
  import { InputSelectionError, InputSelectionFailure } from '../InputSelectionError';
3
- import { assetQuantitySelector, getCoinQuantity, toValues } from './util';
3
+ import { assetQuantitySelector, getCoinQuantity, stubMaxSizeAddress, toValues } from '../util';
4
4
  import minBy from 'lodash/minBy';
5
5
  import orderBy from 'lodash/orderBy';
6
6
  import pick from 'lodash/pick';
7
- const stubMaxSizeAddress = Cardano.PaymentAddress('addr_test1qqydn46r6mhge0kfpqmt36m6q43knzsd9ga32n96m89px3nuzcjqw982pcftgx53fu5527z2cj2tkx2h8ux2vxsg475qypp3m9');
8
7
  const getLeftoverAssets = (utxoSelected, uniqueTxAssetIDs) => {
9
8
  const leftovers = new Map();
10
9
  for (const [_, { value: { assets } }] of utxoSelected) {
@@ -1 +1 @@
1
- {"version":3,"file":"change.js","sourceRoot":"","sources":["../../../src/RoundRobinRandomImprove/change.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"change.js","sourceRoot":"","sources":["../../../src/RoundRobinRandomImprove/change.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,9 @@
1
+ import { Cardano } from '@cardano-sdk/core';
1
2
  import { InputSelector } from '../types';
2
3
  interface RoundRobinRandomImproveOptions {
4
+ getChangeAddress: () => Promise<Cardano.PaymentAddress>;
3
5
  random?: typeof Math.random;
4
6
  }
5
- export declare const roundRobinRandomImprove: ({ random }?: RoundRobinRandomImproveOptions) => InputSelector;
7
+ export declare const roundRobinRandomImprove: ({ getChangeAddress, random }: RoundRobinRandomImproveOptions) => InputSelector;
6
8
  export {};
7
9
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/RoundRobinRandomImprove/index.ts"],"names":[],"mappings":"AACA,OAAO,EAA4B,aAAa,EAAmB,MAAM,UAAU,CAAC;AAMpF,UAAU,8BAA8B;IACtC,MAAM,CAAC,EAAE,OAAO,IAAI,CAAC,MAAM,CAAC;CAC7B;AAED,eAAO,MAAM,uBAAuB,gBAEjC,8BAA8B,KAAQ,aAqDvC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/RoundRobinRandomImprove/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAW,MAAM,mBAAmB,CAAC;AAErD,OAAO,EAA4B,aAAa,EAAmB,MAAM,UAAU,CAAC;AAKpF,UAAU,8BAA8B;IACtC,gBAAgB,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;IACxD,MAAM,CAAC,EAAE,OAAO,IAAI,CAAC,MAAM,CAAC;CAC7B;AAED,eAAO,MAAM,uBAAuB,iCAGjC,8BAA8B,KAAG,aAqElC,CAAC"}
@@ -1,13 +1,15 @@
1
- import { InputSelectionError, InputSelectionFailure } from '../InputSelectionError';
2
- import { assertIsBalanceSufficient, preProcessArgs, toValues } from './util';
3
1
  import { cmlUtil } from '@cardano-sdk/core';
2
+ import { InputSelectionError, InputSelectionFailure } from '../InputSelectionError';
3
+ import { assertIsBalanceSufficient, preProcessArgs, toValues } from '../util';
4
4
  import { computeChangeAndAdjustForFee } from './change';
5
5
  import { roundRobinSelection } from './roundRobin';
6
- export const roundRobinRandomImprove = ({ random = Math.random } = {}) => ({
6
+ export const roundRobinRandomImprove = ({ getChangeAddress, random = Math.random }) => ({
7
7
  select: async ({ utxo: utxoSet, outputs: outputSet, constraints: { computeMinimumCost, computeSelectionLimit, computeMinimumCoinQuantity, tokenBundleSizeExceedsLimit }, implicitValue: partialImplicitValue = {} }) => {
8
- const { utxo, outputs, uniqueTxAssetIDs, implicitValue } = preProcessArgs(utxoSet, outputSet, partialImplicitValue);
8
+ const changeAddress = await getChangeAddress();
9
+ const { utxo, outputs, uniqueTxAssetIDs, implicitValue } = preProcessArgs(utxoSet, outputSet, changeAddress, partialImplicitValue);
9
10
  assertIsBalanceSufficient(uniqueTxAssetIDs, utxo, outputs, implicitValue);
10
11
  const roundRobinSelectionResult = roundRobinSelection({
12
+ changeAddress,
11
13
  implicitValue,
12
14
  outputs,
13
15
  random,
@@ -17,7 +19,10 @@ export const roundRobinRandomImprove = ({ random = Math.random } = {}) => ({
17
19
  const result = await computeChangeAndAdjustForFee({
18
20
  computeMinimumCoinQuantity,
19
21
  estimateTxFee: (utxos, changeValues) => computeMinimumCost({
20
- change: new Set(changeValues),
22
+ change: changeValues.map((value) => ({
23
+ address: changeAddress,
24
+ value
25
+ })),
21
26
  fee: cmlUtil.MAX_U64,
22
27
  inputs: new Set(utxos),
23
28
  outputs: outputSet
@@ -30,7 +35,10 @@ export const roundRobinRandomImprove = ({ random = Math.random } = {}) => ({
30
35
  utxoSelection: roundRobinSelectionResult
31
36
  });
32
37
  const inputs = new Set(result.inputs);
33
- const change = new Set(result.change);
38
+ const change = result.change.map((value) => ({
39
+ address: changeAddress,
40
+ value
41
+ }));
34
42
  if (result.inputs.length > (await computeSelectionLimit({ change, fee: result.fee, inputs, outputs: outputSet }))) {
35
43
  throw new InputSelectionError(InputSelectionFailure.MaximumInputCountExceeded);
36
44
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/RoundRobinRandomImprove/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAEpF,OAAO,EAAE,yBAAyB,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAC7E,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EAAE,4BAA4B,EAAE,MAAM,UAAU,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAMnD,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,EACtC,MAAM,GAAG,IAAI,CAAC,MAAM,KACc,EAAE,EAAiB,EAAE,CAAC,CAAC;IACzD,MAAM,EAAE,KAAK,EAAE,EACb,IAAI,EAAE,OAAO,EACb,OAAO,EAAE,SAAS,EAClB,WAAW,EAAE,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,0BAA0B,EAAE,2BAA2B,EAAE,EACnH,aAAa,EAAE,oBAAoB,GAAG,EAAE,EACf,EAA4B,EAAE;QACvD,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,GAAG,cAAc,CAAC,OAAO,EAAE,SAAS,EAAE,oBAAoB,CAAC,CAAC;QAEpH,yBAAyB,CAAC,gBAAgB,EAAE,IAAI,EAAE,OAAO,EAAE,aAAa,CAAC,CAAC;QAE1E,MAAM,yBAAyB,GAAG,mBAAmB,CAAC;YACpD,aAAa;YACb,OAAO;YACP,MAAM;YACN,gBAAgB;YAChB,IAAI;SACL,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,MAAM,4BAA4B,CAAC;YAChD,0BAA0B;YAC1B,aAAa,EAAE,CAAC,KAAK,EAAE,YAAY,EAAE,EAAE,CACrC,kBAAkB,CAAC;gBACjB,MAAM,EAAE,IAAI,GAAG,CAAC,YAAY,CAAC;gBAC7B,GAAG,EAAE,OAAO,CAAC,OAAO;gBACpB,MAAM,EAAE,IAAI,GAAG,CAAC,KAAK,CAAC;gBACtB,OAAO,EAAE,SAAS;aACnB,CAAC;YACJ,aAAa;YACb,YAAY,EAAE,QAAQ,CAAC,OAAO,CAAC;YAC/B,MAAM;YACN,2BAA2B;YAC3B,gBAAgB;YAChB,aAAa,EAAE,yBAAyB;SACzC,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACtC,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAEtC,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,MAAM,qBAAqB,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC,EAAE;YACjH,MAAM,IAAI,mBAAmB,CAAC,qBAAqB,CAAC,yBAAyB,CAAC,CAAC;SAChF;QAED,OAAO;YACL,aAAa,EAAE,IAAI,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC;YAC5C,SAAS,EAAE;gBACT,MAAM;gBACN,GAAG,EAAE,MAAM,CAAC,GAAG;gBACf,MAAM;gBACN,OAAO,EAAE,SAAS;aACnB;SACF,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/RoundRobinRandomImprove/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,OAAO,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAEpF,OAAO,EAAE,yBAAyB,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC9E,OAAO,EAAE,4BAA4B,EAAE,MAAM,UAAU,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAOnD,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,EACtC,gBAAgB,EAChB,MAAM,GAAG,IAAI,CAAC,MAAM,EACW,EAAiB,EAAE,CAAC,CAAC;IACpD,MAAM,EAAE,KAAK,EAAE,EACb,IAAI,EAAE,OAAO,EACb,OAAO,EAAE,SAAS,EAClB,WAAW,EAAE,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,0BAA0B,EAAE,2BAA2B,EAAE,EACnH,aAAa,EAAE,oBAAoB,GAAG,EAAE,EACf,EAA4B,EAAE;QACvD,MAAM,aAAa,GAAG,MAAM,gBAAgB,EAAE,CAAC;QAC/C,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,GAAG,cAAc,CACvE,OAAO,EACP,SAAS,EACT,aAAa,EACb,oBAAoB,CACrB,CAAC;QAEF,yBAAyB,CAAC,gBAAgB,EAAE,IAAI,EAAE,OAAO,EAAE,aAAa,CAAC,CAAC;QAE1E,MAAM,yBAAyB,GAAG,mBAAmB,CAAC;YACpD,aAAa;YACb,aAAa;YACb,OAAO;YACP,MAAM;YACN,gBAAgB;YAChB,IAAI;SACL,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,MAAM,4BAA4B,CAAC;YAChD,0BAA0B;YAC1B,aAAa,EAAE,CAAC,KAAK,EAAE,YAAY,EAAE,EAAE,CACrC,kBAAkB,CAAC;gBACjB,MAAM,EAAE,YAAY,CAAC,GAAG,CACtB,CAAC,KAAK,EAAE,EAAE,CACR,CAAC;oBACC,OAAO,EAAE,aAAa;oBACtB,KAAK;iBACY,CAAA,CACtB;gBACD,GAAG,EAAE,OAAO,CAAC,OAAO;gBACpB,MAAM,EAAE,IAAI,GAAG,CAAC,KAAK,CAAC;gBACtB,OAAO,EAAE,SAAS;aACnB,CAAC;YACJ,aAAa;YACb,YAAY,EAAE,QAAQ,CAAC,OAAO,CAAC;YAC/B,MAAM;YACN,2BAA2B;YAC3B,gBAAgB;YAChB,aAAa,EAAE,yBAAyB;SACzC,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACtC,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YAC3C,OAAO,EAAE,aAAa;YACtB,KAAK;SACN,CAAC,CAAC,CAAC;QAEJ,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,MAAM,qBAAqB,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC,EAAE;YACjH,MAAM,IAAI,mBAAmB,CAAC,qBAAqB,CAAC,yBAAyB,CAAC,CAAC;SAChF;QAED,OAAO;YACL,aAAa,EAAE,IAAI,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC;YAC5C,SAAS,EAAE;gBACT,MAAM;gBACN,GAAG,EAAE,MAAM,CAAC,GAAG;gBACf,MAAM;gBACN,OAAO,EAAE,SAAS;aACnB;SACF,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"}
@@ -1,3 +1,3 @@
1
- import { RoundRobinRandomImproveArgs, UtxoSelection } from './util';
1
+ import { RoundRobinRandomImproveArgs, UtxoSelection } from '../util';
2
2
  export declare const roundRobinSelection: ({ utxo: utxosWithValue, outputs: outputsWithValue, uniqueTxAssetIDs, random, implicitValue }: RoundRobinRandomImproveArgs) => UtxoSelection;
3
3
  //# sourceMappingURL=roundRobin.d.ts.map