Prior to this commit, if the call to the bitcoin rpc
gettransaction resulted in an exception other than JsonRpcError,
the code would crash as the variable `res` was uninitialized.
This fixes that by always setting res to None in this case, and
also promotes the logging messages for such errors to warning.
Makes travis run docker tests only if at least one of the following is true :
* This is a cron job
* This is a tag push (e.g. release)
* The commit message specifies the string TRAVIS_RUN_DOCKERS
(also removed `except:` from `.travis.yml` as it's obsolete now)
cbc39bc Fix links (d3spwn)
8e6a099 Addes section about installing and configuring Bitcoin Core (d3spwn)
275d24b Moved section to the right place (d3spwn)
769990d Add section about installing on Windows (d3spwn)
993f3fd Add mention of Windows installation documentation. (d3spwn)
f539b02 Check sequence and locktime are conforming to payjoin v0 in transaction from receiver to sender. Also add note about implicit defence against attack mentioned in BIP79; we only ever sign the predetermined set of inputs. (AdamISZ)
Fixes#105.
Prior to this commit the channel chosen to send on in a
call to MessageChannelCollection.prepare_privmsg was not
respect and instead the entry in the active_channels was
used, resulting in a Taker not seeing the presence of Makers
in other channels than the one chosen here. This meant that
in cases of channel disconnection, fallback to other channels
was failing (although not always deterministically). This
commit fixes this by allowing the sending of the privmsg
on a specific channel, as was intended, and so when Makers
send messages on multiple channels, they are marked as seen
on all those channels, allowing dynamic switching in case
of channel connection failures.
In addition there are two minor improvements to debug
messages.
This is the first mitigation of issue #105 , so it doesnt crash and prints useful log output for users to handle this issue.
Fixing this problem by switching to another message channel is way more complex.
While testing/debugging #105 we found that agora disconnects our taker about 1 minute after joining the pit, just before starting the CJ. Only that IRC server seems to be affected.
transaction from receiver to sender. Also add note about
implicit defence against attack mentioned in BIP79; we only
ever sign the predetermined set of inputs.
371772f No coins fallback if mixdepth empty The code prior to this commit incorrectly only chose the no-coins fallback in PayJoin on receiver side if the call to wallet.get_utxos_by_mixdepth()[mixdepth] resulted in a raised exception, but of course it returns an empty dict, so after this commit the self.no_coins_fallback is called in case an empty dict is returned; note that the prior case still resulted in the same behaviour of publishing a non-CJ transaction, but now the info messages/prompts are clear. (AdamISZ)
If the user manually chooses a bitcoin tx fee, it could end up below the bitcoin network's min relay fee.
This PR get the bitcoin core instance's configured min relay fee and uses it as a floor value (btccore) or uses 1000 as floor otherwise (btc as fallback when RPC call returns no good value and for electrum interface).
Prior to this commit, if at least one sender utxo was larger
than the payment amount, the algorithm used by the receiver
to attempt to find coins to avoid triggering the UIH2 condition
was wrong, resulting in UIH2 being triggered where it was not
necessary, in a reasonable fraction of cases. This fixes the
algorithm to be in line with what was written in the linked gist
(see comment to P2EPMaker.on_tx_received).
The code prior to this commit incorrectly only chose the
no-coins fallback in PayJoin on receiver side if the call
to wallet.get_utxos_by_mixdepth()[mixdepth] resulted in a
raised exception, but of course it returns an empty dict,
so after this commit the self.no_coins_fallback is called in
case an empty dict is returned; note that the prior case
still resulted in the same behaviour of publishing a non-CJ
transaction, but now the info messages/prompts are clear.