Current logic:
- In the case at least at least one multisig output exists, type is not basic.
If type is basic:
- If number of outputs > 2: start class A parsing
- Otherwise: start BTC payment parsing
Source:
|
if num_of_outputs > 2: # for reference, data, marker |
Payment is parsed here:
|
def parse_bitcoin_payment(tx, tx_hash='unknown'): |
I think there may be some edge cases where a transaction is a payment, but with more than two outputs overall. This would currently slip through and be considered as class A type-ish transaction.
On a longer term I think it would be beneficial, if transactions are not parsed in a "this or that" way, but based on parsing priorities. What I mean is something like:
- Try parse as class B multisig transaction
- If invalid, fallback and try to parse as class A transaction
- If invalid, fallback and try to parse as Bitcoin payment
Current logic:
If type is basic:
Source:
mastercoin-tools/msc_parse.py
Line 182 in f5d382f
Payment is parsed here:
mastercoin-tools/msc_utils_parsing.py
Line 108 in f5d382f
I think there may be some edge cases where a transaction is a payment, but with more than two outputs overall. This would currently slip through and be considered as class A type-ish transaction.
On a longer term I think it would be beneficial, if transactions are not parsed in a "this or that" way, but based on parsing priorities. What I mean is something like: