@@ -165,7 +165,7 @@ RUN chown --recursive ${USER} ${WORK_DIR} ${ANDROID_SDK_HOME}
|
|||||||
RUN chown ${USER} /opt
|
RUN chown ${USER} /opt
|
||||||
USER ${USER}
|
USER ${USER}
|
||||||
|
|
||||||
# venv, VIRTUAL_ENV is used by buildozer to indicate a venv environemnt
|
# venv, VIRTUAL_ENV is used by buildozer to indicate a venv environment
|
||||||
ENV VIRTUAL_ENV=/opt/venv
|
ENV VIRTUAL_ENV=/opt/venv
|
||||||
RUN python3 -m venv ${VIRTUAL_ENV}
|
RUN python3 -m venv ${VIRTUAL_ENV}
|
||||||
ENV PATH="${VIRTUAL_ENV}/bin:${PATH}"
|
ENV PATH="${VIRTUAL_ENV}/bin:${PATH}"
|
||||||
|
|||||||
@@ -100,7 +100,7 @@ lib-dynload/pyexpat.so
|
|||||||
plat-linux3/regen
|
plat-linux3/regen
|
||||||
|
|
||||||
#>sqlite3
|
#>sqlite3
|
||||||
# conditionnal include depending if some recipes are included or not.
|
# conditional include depending if some recipes are included or not.
|
||||||
#sqlite3/*
|
#sqlite3/*
|
||||||
#lib-dynload/_sqlite3.so
|
#lib-dynload/_sqlite3.so
|
||||||
#<sqlite3
|
#<sqlite3
|
||||||
|
|||||||
@@ -147,7 +147,7 @@ class QrReaderCameraDialog(Logger, MessageBoxMixin, QDialog):
|
|||||||
self.image_effect = ImageGraphicsEffect(self, self.crop_blur_effect)
|
self.image_effect = ImageGraphicsEffect(self, self.crop_blur_effect)
|
||||||
|
|
||||||
|
|
||||||
# Note these should stay as queued connections becasue we use the idiom
|
# Note these should stay as queued connections because we use the idiom
|
||||||
# self.reject() and self.accept() in this class to kill the scan --
|
# self.reject() and self.accept() in this class to kill the scan --
|
||||||
# and we do it from within callback functions. If you don't use
|
# and we do it from within callback functions. If you don't use
|
||||||
# queued connections here, bad things can happen.
|
# queued connections here, bad things can happen.
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ _logger = get_logger(__name__)
|
|||||||
|
|
||||||
class RateLimiter(Logger):
|
class RateLimiter(Logger):
|
||||||
''' Manages the state of a @rate_limited decorated function, collating
|
''' Manages the state of a @rate_limited decorated function, collating
|
||||||
multiple invocations. This class is not intented to be used directly. Instead,
|
multiple invocations. This class is not intended to be used directly. Instead,
|
||||||
use the @rate_limited decorator (for instance methods).
|
use the @rate_limited decorator (for instance methods).
|
||||||
This state instance gets inserted into the instance attributes of the target
|
This state instance gets inserted into the instance attributes of the target
|
||||||
object wherever a @rate_limited decorator appears.
|
object wherever a @rate_limited decorator appears.
|
||||||
|
|||||||
@@ -788,7 +788,7 @@ class SendTab(QWidget, MessageBoxMixin, Logger):
|
|||||||
self.logger.debug(f'merchant notify error: {pi.get_error()}')
|
self.logger.debug(f'merchant notify error: {pi.get_error()}')
|
||||||
else:
|
else:
|
||||||
self.logger.debug(f'merchant notify result: {pi.merchant_ack_status}: {pi.merchant_ack_message}')
|
self.logger.debug(f'merchant notify result: {pi.merchant_ack_status}: {pi.merchant_ack_message}')
|
||||||
# TODO: show user? if we broadcasted the tx succesfully, do we care?
|
# TODO: show user? if we broadcasted the tx successfully, do we care?
|
||||||
# BitPay complains with a NAK if tx is RbF
|
# BitPay complains with a NAK if tx is RbF
|
||||||
|
|
||||||
def toggle_paytomany(self):
|
def toggle_paytomany(self):
|
||||||
|
|||||||
@@ -1622,7 +1622,7 @@ class Channel(AbstractChannel):
|
|||||||
# in the latter case, the result does not depend on peer_state
|
# in the latter case, the result does not depend on peer_state
|
||||||
ret = []
|
ret = []
|
||||||
if not self.is_closed() and self.peer_state == PeerState.GOOD:
|
if not self.is_closed() and self.peer_state == PeerState.GOOD:
|
||||||
# If there are unsettled HTLCs, althought is possible to cooperatively close,
|
# If there are unsettled HTLCs, although is possible to cooperatively close,
|
||||||
# we choose not to expose that option in the GUI, because it is very likely
|
# we choose not to expose that option in the GUI, because it is very likely
|
||||||
# that HTLCs will take a long time to settle (submarine swap, or stuck payment),
|
# that HTLCs will take a long time to settle (submarine swap, or stuck payment),
|
||||||
# and the close dialog would be taking a very long time to finish
|
# and the close dialog would be taking a very long time to finish
|
||||||
@@ -1657,7 +1657,7 @@ class Channel(AbstractChannel):
|
|||||||
continue
|
continue
|
||||||
if htlc.cltv_abs - recv_htlc_deadline_delta > local_height:
|
if htlc.cltv_abs - recv_htlc_deadline_delta > local_height:
|
||||||
continue
|
continue
|
||||||
# Do not force-close if we just sent fullfill_htlc and have not received revack yet
|
# Do not force-close if we just sent fulfill_htlc and have not received revack yet
|
||||||
if htlc_id in self.htlc_settle_time and now() - self.htlc_settle_time[htlc_id] < 30:
|
if htlc_id in self.htlc_settle_time and now() - self.htlc_settle_time[htlc_id] < 30:
|
||||||
continue
|
continue
|
||||||
htlcs_we_could_reclaim[(RECEIVED, htlc_id)] = htlc
|
htlcs_we_could_reclaim[(RECEIVED, htlc_id)] = htlc
|
||||||
|
|||||||
@@ -2252,7 +2252,7 @@ class Peer(Logger):
|
|||||||
if not (their_scriptpubkey == their_upfront_scriptpubkey):
|
if not (their_scriptpubkey == their_upfront_scriptpubkey):
|
||||||
await self.send_warning(
|
await self.send_warning(
|
||||||
chan.channel_id,
|
chan.channel_id,
|
||||||
"remote didn't use upfront shutdown script it commited to in channel opening",
|
"remote didn't use upfront shutdown script it committed to in channel opening",
|
||||||
close_connection=True)
|
close_connection=True)
|
||||||
else:
|
else:
|
||||||
# BOLT-02 restrict the scriptpubkey to some templates:
|
# BOLT-02 restrict the scriptpubkey to some templates:
|
||||||
@@ -2298,7 +2298,7 @@ class Peer(Logger):
|
|||||||
await asyncio.sleep(0.1)
|
await asyncio.sleep(0.1)
|
||||||
self.send_message('shutdown', channel_id=chan.channel_id, len=len(scriptpubkey), scriptpubkey=scriptpubkey)
|
self.send_message('shutdown', channel_id=chan.channel_id, len=len(scriptpubkey), scriptpubkey=scriptpubkey)
|
||||||
chan.set_state(ChannelState.SHUTDOWN)
|
chan.set_state(ChannelState.SHUTDOWN)
|
||||||
# can fullfill or fail htlcs. cannot add htlcs, because state != OPEN
|
# can fulfill or fail htlcs. cannot add htlcs, because state != OPEN
|
||||||
chan.set_can_send_ctx_updates(True)
|
chan.set_can_send_ctx_updates(True)
|
||||||
|
|
||||||
def get_shutdown_fee_range(self, chan, closing_tx, is_local):
|
def get_shutdown_fee_range(self, chan, closing_tx, is_local):
|
||||||
|
|||||||
@@ -64,7 +64,7 @@ class PaymentIdentifierState(IntEnum):
|
|||||||
# and supply a refund address (bip70)
|
# and supply a refund address (bip70)
|
||||||
MERCHANT_ACK = 6 # PI notified merchant. nothing to be done.
|
MERCHANT_ACK = 6 # PI notified merchant. nothing to be done.
|
||||||
ERROR = 50 # generic error
|
ERROR = 50 # generic error
|
||||||
NOT_FOUND = 51 # PI contains a recognized destination format, but resolve step was unsuccesful
|
NOT_FOUND = 51 # PI contains a recognized destination format, but resolve step was unsuccessful
|
||||||
MERCHANT_ERROR = 52 # PI failed notifying the merchant after broadcasting onchain TX
|
MERCHANT_ERROR = 52 # PI failed notifying the merchant after broadcasting onchain TX
|
||||||
INVALID_AMOUNT = 53 # Specified amount not accepted
|
INVALID_AMOUNT = 53 # Specified amount not accepted
|
||||||
|
|
||||||
|
|||||||
@@ -256,7 +256,7 @@ class CKCCSettingsDialog(WindowModalDialog):
|
|||||||
# append the firmware header a second time
|
# append the firmware header a second time
|
||||||
result = dev.send_recv(CCProtocolPacker.upload(size, size+FW_HEADER_SIZE, hdr))
|
result = dev.send_recv(CCProtocolPacker.upload(size, size+FW_HEADER_SIZE, hdr))
|
||||||
|
|
||||||
# make it reboot into bootlaoder which might install it
|
# make it reboot into bootloader which might install it
|
||||||
dev.send_recv(CCProtocolPacker.reboot())
|
dev.send_recv(CCProtocolPacker.reboot())
|
||||||
|
|
||||||
self.thread.add(doit)
|
self.thread.add(doit)
|
||||||
|
|||||||
@@ -60,7 +60,7 @@ class SqlDB(Logger):
|
|||||||
if not future.cancelled():
|
if not future.cancelled():
|
||||||
self.asyncio_loop.call_soon_threadsafe(future.set_result, result)
|
self.asyncio_loop.call_soon_threadsafe(future.set_result, result)
|
||||||
# note: in sweepstore session.commit() is called inside
|
# note: in sweepstore session.commit() is called inside
|
||||||
# the sql-decorated methods, so commiting to disk is awaited
|
# the sql-decorated methods, so committing to disk is awaited
|
||||||
if self.commit_interval:
|
if self.commit_interval:
|
||||||
i = (i + 1) % self.commit_interval
|
i = (i + 1) % self.commit_interval
|
||||||
if i == 0:
|
if i == 0:
|
||||||
|
|||||||
Reference in New Issue
Block a user