Open placer14 opened 4 years ago
The source of this bug is due to our non-ETH wallet's Multisign
return value returning the tx script, which is inconsistent with the ETH wallet (which only returns the tx hash). This value is being used inside of OrderPayment
messages on OpenBazaarNode.ReleasePayment()
and causing the vendor node which receives it to fail to process it properly. This is probably inconsequential because only ETH requires the message at all, but we have not designed this logic to be optional and should be consistent with how it's being consumed for all wallet cases.
Decided that we would make our non-ETH wallet's return value be a txid (taking care to ensure BigEndian txids via hex.Decode((wire.MsgTx).TxHash().String()
). Changes will be made in-place within the vendors folder and we will reconcile dependencies when eth-master is merged.
Due to the inconsequential nature of this bug, we will postpone it's resolution until after more critical items are resolved.
@drwasho since this is not a show stopper should we defer this?
Yes I think so.
Was testing the dispute payout flow and found the new ORDER_PAYMENT message had an invalid transaction ID. Here is an example of the protobuf data I encountered:
The steps to reproduce this: 1) Create a moderated order and open a dispute. 2) Moderator resolves 100% of funds to the buyer. 3) Buyer accepts payout, generating the invalid ORDER_PAYMENT message to send to the vendor. 4) Observe the bad message data named
paymentDetails
withinnet/service/handlers.go.handleOrderPayment
within this block of code:This does not seem to prevent funds from resolving in this case, as the resolution was sent 100% to the buyer. Unsure what would happen with split payment resolution.