I've been doing end to end scenario tests and when I got to paying the vendor it kept crashing.
What 's been happening is when you make a buy request the vendor clicks accept and it creates a 2-of-2 multisig address on the vendors side. Then the vendor sends the security deposit to it, then, that gets sent to the buyer and the buyer locks the escrow by sending the funds to that address. That part is all working great!!
Next step, after the vendor ships the item, the buyer clicks request payment which creates a transaction that spends the funds from the multisig address and sends the entire amount (vendor's security deposit + buyer's security deposit) to the vendor...It sends that raw transaction string to the buyer for them to sign and then they can click Pay/Release Escrow, and it will sign it and broadcast the tx to the network and the vendor gets paid.
The problem I'm getting right now is, I created an item listing and ran through it, and when I click pay it crashes and the log says TX Decode Failed. But if I paste the raw tx string into the rpc console and do decoderawtransaction, it decodes it correctly. Multi-sig stuff is complicated and the fact that the escrow locks successfully and the ui buttons enable/disable correctly is a big accomplishment.
After spending a long time trying to work out why the error return keeps happening I kind of know what the problem is at last. ... I'm pretty sure this bug is because I was passing a string instead of an array into the decoder. I also thought it might be to do with checking the escrow lock before the tx's had chance to confirm but even after confirmation it's still saying TX decode failed.
Once I crack this last bug so it's working smoothly for finalizing transactions, in all scenarios, it's good to go!
I've been up working on this for the second 24 hour in a row now so I'll probably need to get some rest soon and get back on it with a refreshed mind.
Will keep everyone updated.
Sounds good, you are almost close to end.
Since you found the bug, could we get an ETA ?