[x] π I created my PR using provided : CODE_STANDARDS
[x] π I have read the short Code of Conduct: CODE_OF_CONDUCT
[x] π I tested my changes locally.
[x] β I have provided tests for my changes.
[x] π I have used conventional commits.
[ ] π I have updated any related documentation.
[x] πΎ PR was issued based on the Github or Jira issue.
The primary goal of this task was to calculate the lowest fee for ARC mode, similar to what is done with mAPI. Additionally, to allow users (e.g., bux-server) configure a fee unit (satoshis/bytes) when use_fee_quotes is disabled.
To accomplish this, I had to rewrite some parts of the chainstate package. This was mainly due to the chainstate.Client being tightly coupled with minercraft.
I moved the minercraft initialization functions to minercraft_init.go. Then, I created another file broadcast_client_init.go, which contains an algorithm to calculate the lowest fee based on the GetFeeQuote function from the broadcast-client.
For reviewers:
The most interesting files to review are:
Pull Request Checklist
The primary goal of this task was to calculate the lowest fee for ARC mode, similar to what is done with mAPI. Additionally, to allow users (e.g., bux-server) configure a fee unit (satoshis/bytes) when use_fee_quotes is disabled.
To accomplish this, I had to rewrite some parts of the chainstate package. This was mainly due to the chainstate.Client being tightly coupled with minercraft.
I moved the minercraft initialization functions to
minercraft_init.go
. Then, I created another filebroadcast_client_init.go
, which contains an algorithm to calculate the lowest fee based on the GetFeeQuote function from the broadcast-client.For reviewers: The most interesting files to review are:
chainstate/client.go
chainstate/minercraft_init.go
chainstate/broadcast_client_init.go
model_draft_transaction.go