Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Feature]: Implement coin selection algorithm into TransactionBuilder #1520

Closed
ilap opened this issue Jan 14, 2025 · 0 comments · Fixed by #1684
Closed

[Feature]: Implement coin selection algorithm into TransactionBuilder #1520

ilap opened this issue Jan 14, 2025 · 0 comments · Fixed by #1684
Labels
enhancement New feature or request

Comments

@ilap
Copy link
Contributor

ilap commented Jan 14, 2025

Feature Title

Dynamic coin selection algorithm functionality

Feature Description

This feature aims to implement a coin selection algorithm into the TransactionBuilder to automatically select the most efficient set of unspent transaction outputs (UTXOs) from the the provided inputs (ideally all of the user's wallet utxos) for constructing transaction.

The algorithm should ensure that the selected UTXOs minimise transaction fees and improve overall transaction efficiency, including the handling of native tokens.

Use Case

This feature will optimise transaction fees and improve overall performance, especially when dealing with native tokens. The automatic selection of UTXOs will streamline the transaction creation process, making it more user-friendly and efficient.

Is this a modification to an existing feature?

No

@ilap ilap added the enhancement New feature or request label Jan 14, 2025
ilap added a commit to ilap/catalyst-voices that referenced this issue Jan 24, 2025
minikin added a commit that referenced this issue Feb 4, 2025
…dynamic coin selection algorithm (#1684)

* feat(dart/catalyst_cardano_serialization): initial implementation of dynamic coin selection algorithm (#1520)

* feat(dart/catalyst_cardano_serialization): add tests for coin selection and fix various issues

* feat(dart/catalyst_cardano_serialization): improve naming and comments for better clarity and reduced ambiguity

* fix(dart/catalyst_cardano_serialization): correct loop condition to properly check for available inputs

* fix(dart/catalyst_cardano_serialization): resolve broken property-based tests and improve code readability

* fix(dart/catalyst_cardano_serialization): inline types, clean comments, use final/enum, resolve typos

* fix(dar/catalyst_cardano_serialization): fix incorrect output fee calc, normalize balance, and refine asset mapping in input handling

* feat(dart/catalyst_cardano_serialization): add property test for transaction fee calculation

* fix(dart/catalyst_cardano_serialization): simplify and fix output fee calculation by removing unnecessary CBOR length adjustment

* fix(dart/catalyst_cardano_serialization): correct public key hash extraction and improve fake witness set generation

* feat(dart/catalyst_cardano_serialization): expose hash lengths as public constants for easier usage

* chore(dart/catalyst_cardano_serialization)): address PR review feedback with validation, type fixes, and docs improvements

* chore(dart/catalyst_cardano_serialization): revert accidental removal of the `final` class modifier from `InputBuilder` class

* fix(dart/catalyst_cardano_serialization): ensure change calculation respects minimum input requirement

* feat(dart/catalyst_cardano_serialization): enhance selection utility for fixed address generation and improved output normalization

* chore(dart/catalyst_cardano_serialization)): address PR review feedbacks

---------

Co-authored-by: Dominik Toton <[email protected]>
Co-authored-by: Oleksandr Prokhorenko <[email protected]>
@github-project-automation github-project-automation bot moved this from New to 🔬 Ready For QA in Catalyst Feb 4, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
Archived in project
1 participant