TxList and AddressList classes for Liquid #1280
Merged
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.
This PR improves the compatibility of Liquid functionality with Bitcoin functionality of Specter. Fixes some issues in Liquid like tracking of used addresses (still shows 0 amount though).
PR is getting pretty big so I decided to make it now and continue integration work in the next ones.
Core changes:
Wallet
class creates_transactions
and_addresses
cache not from hard-coded classes but from one defined in the class. This meansLWallet
can just use different classes and the rest of functions remain the same.LAddressList
class allows lookups not only by confidential address but also by unconfidential addresses. The returned value is a confidential address.TxList
stores full raw transaction not in CSV but in a separate directory now. Storing raw transactions in CSV was causing problems if tx is too large (either in case of liquid with all the proofs or just huge bitcoin transactions)Export to CSV
now doesn't include raw transactions (causing problems for people, reported in Telegram channel)Other changes
get_address_from_dict
is slightly modified to support more options whereaddress
oraddresses
is stored - can be directly in the dict or inscriptPubKey
of it. Raises an error if address is not found or address isFee
(liquid)gettransaction
function in the wallet can accept more arguments:full
if you needhex
field with full hex transaction,decode
if you want to decode transaction.