perf(ckbtc): avoid cloning the UTXOs set in estimate_withdrawal_fee
#7974
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Improve the efficiency of the endpoint
estimate_withdrawal_feeby removing the cloning of the UTXO set, which can be quite large (around 60k entries for ckBTC).The cloning is not necessary because the endpoint
estimate_withdrawal_feeis a query endpoint, so that event though the underlying logic (the methodsestimate_retrieve_btc_feeandestimate_retrieve_doge_fee) needs a mutable reference to the UTXO set (to remove selected UTXOs), any state change will be reverted. This PR also introduces a benchmark for the ckBTC minter endpoint to measure the exact gains.