Week 1 June 2023
Lelantus Spark
- Levon tried setting up devnet explorer, but was not successful. Having issues building the explorer with Node.js, hopefully sproxet can find the issue faster
- Peter is currently doing the wallet refactoring PR testing and fixes. Estimated to be done within this week. The two parts that are out of sync are now in sync.
- Peter found that the Fedora compilation issue was not a distribution specific issue. It had something to do with the newest GCC tools.
- Peter is reviewing the refactoring of existing Spark code, which is included in the wallet refactor PR.
- Levon was reviewing UI code and bug fixes. There are some missing checks and crashes that were happening on Firo-qt and Firod.
- Levon did some small wallet refactoring based on Aram’s comments.
- Mobile lib will be updated based on all the changes.
- After finishing with explorer and testing on devnet, hopefully we will be able to move on to testnet by the end of the week.
Firo
- Sproxet gentrified the input selection as a template function and moved to getting Lelantus transaction creation to use that input selection function to make transaction creation less messy.
- This algorithm selects transactions from the coinControl feature in a specific order. If the option to require all inputs (coinControl->fRequireAllInputs) is not set, it stops once it has enough inputs to cover the desired outputs. Otherwise, it consumes all available inputs. It starts by choosing the smallest unspent transaction output (UTXO) in the wallet. If this UTXO alone is enough to cover the output value, the selection process ends. If not, it looks for a combination of the smallest UTXO and any other UTXO that can fulfil the output value requirement. If no such combination exists, it proceeds to choose the largest UTXO, followed by the next smallest, and so on, until the output requirements are met or the maximum size (nMaxSize) or input limits (coinControl->nMaxInputs) are reached. At that point, it starts replacing the largest small inputs chosen with the largest inputs that haven’t been selected yet. If this replacement process fails, it indicates that the transactions in the wallet cannot fulfil the output requirements within the specified constraints, resulting in a failure.
Miscellaneous
- Ledger-live: Gevorg did some refactoring of the code and will meet with Levon to test the hardware wallet