Skip to content

Commit e983626

Browse files
authored
Merge pull request #565 from Anastasia-Labs/fix-coin-selection
fix: allow coin selection to include inputs with scriptRef
2 parents 689cf6b + 06ac219 commit e983626

1 file changed

Lines changed: 8 additions & 5 deletions

File tree

packages/lucid/src/tx-builder/internal/CompleteTxBuilder.ts

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -226,10 +226,13 @@ export const selectionAndEvaluation = (
226226
) =>
227227
Effect.gen(function* () {
228228
const { config } = yield* TxConfig;
229-
const availableInputs = _Array.differenceWith(isEqualUTxO)(
230-
walletInputs,
231-
config.collectedInputs,
229+
const refScriptInputs = config.readInputs.filter(
230+
(input) => input.scriptRef,
232231
);
232+
const availableInputs = _Array.differenceWith(isEqualUTxO)(walletInputs, [
233+
...config.collectedInputs,
234+
...refScriptInputs,
235+
]);
233236

234237
const { selected: inputsToAdd, burnable } =
235238
coinSelection !== false
@@ -809,7 +812,7 @@ export const recursive = (
809812
Or it contains UTxOs with reference scripts; which are excluded from coin selection.`,
810813
);
811814
if (!Record.isEmptyRecord(requiredAssets)) {
812-
selected = selectUTxOs(inputs, requiredAssets);
815+
selected = selectUTxOs(inputs, requiredAssets, true);
813816
if (_Array.isEmptyArray(selected)) yield* error;
814817
}
815818

@@ -832,7 +835,7 @@ export const recursive = (
832835
selected,
833836
);
834837

835-
const extraSelected = selectUTxOs(remainingInputs, extraLovelace);
838+
const extraSelected = selectUTxOs(remainingInputs, extraLovelace, true);
836839
if (_Array.isEmptyArray(extraSelected)) {
837840
if (includeLeftoverLovelaceAsFee)
838841
return { selected: [...selected], burnable: extraLovelace };

0 commit comments

Comments
 (0)