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

feat: Bitcoin utxo consolidation #1326

Merged
merged 6 commits into from
Oct 23, 2023
Merged

Conversation

ws4charlie
Copy link
Contributor

@ws4charlie ws4charlie commented Oct 20, 2023

Description

  • Introduced a UTXO ranking parameter consolidationRank (set to 10 for now) as consolidation threshold.
  • Added additional algorithm into SelectUTXOs to trigger consolidation on every outTx.
  • Consolidation happens only when the resulting number of UTXOs (under TSS) is greater than 10, allowing a buffer of 10 incoming UTXOs created by cross-chain contract call (or donation) on Bitcoin.
  • When consolidation happens, each outTx will be able to consolidate up to 19 (20 - 1) UTXOs.
  • Reverted UTXO DustOffset back to 2000 for Zetachain mainnet.

Closes:

Type of change

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • This change requires a documentation update

How Has This Been Tested?

Please describe the tests that you ran to verify your changes. Include instructions and any relevant details so others can reproduce.

  • Tested CCTX in localnet
  • Tested in development environment
  • Go unit tests
  • Go integration tests
  • Tested via GitHub Actions

Checklist:

  • I have added unit tests that prove my fix feature works

@github-actions
Copy link

!!!WARNING!!!
nosec detected in the following files: zetaclient/btc_signer.go

Be very careful about using #nosec in code. It can be a quick way to suppress security warnings and move forward with development, it should be employed with caution. Suppressing warnings with #nosec can hide potentially serious vulnerabilities. Only use #nosec when you're absolutely certain that the security issue is either a false positive or has been mitigated in another way.

Only suppress a single rule (or a specific set of rules) within a section of code, while continuing to scan for other problems. To do this, you can list the rule(s) to be suppressed within the #nosec annotation, e.g: /* #nosec G401 */ or //#nosec G201 G202 G203
Broad #nosec annotations should be avoided, as they can hide other vulnerabilities. The CI will block you from merging this PR until you remove #nosec annotations that do not target specific rules.

Pay extra attention to the way #nosec is being used in the files listed above.

@github-actions github-actions bot added the nosec label Oct 20, 2023
@ws4charlie ws4charlie changed the title feat: Bitcoin UTXO consolidation feat: Bitcoin utxo consolidation Oct 20, 2023
zetaclient/bitcoin_client.go Outdated Show resolved Hide resolved
zetaclient/bitcoin_client.go Outdated Show resolved Hide resolved
zetaclient/bitcoin_client.go Outdated Show resolved Hide resolved
zetaclient/bitcoin_client.go Outdated Show resolved Hide resolved
zetaclient/bitcoin_client.go Outdated Show resolved Hide resolved
@lumtis lumtis linked an issue Oct 20, 2023 that may be closed by this pull request
Copy link
Member

@lumtis lumtis left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks legit to me

@ws4charlie ws4charlie merged commit a4f2978 into develop Oct 23, 2023
13 checks passed
@lumtis lumtis deleted the feat-BTC-UTXO-consolidation branch October 27, 2023 23:19
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

UTXOs consolidation for Bitcoin
3 participants