def _send_screen(self):
ec, self._history = await api.Wallet.history(self._ws,
self._active_pocket)
self._send_fields = ["", "", "", ""]
self._selected_send_item = 0
while True:
await self._display_history()
c = self.screen.getch()
if c == curses.KEY_UP:
self._selected_send_item -= 1
if self._selected_send_item < 0:
self._selected_send_item = 3
elif c == curses.KEY_DOWN:
self._selected_send_item += 1
if self._selected_send_item > 3:
self._selected_send_item = 0
elif c == curses.KEY_ENTER or c == 10 or c == 13:
if self._selected_send_item == 0:
break
_, addr, amount, fee = self._send_fields
try:
decimal.Decimal(amount)
except decimal.InvalidOperation:
self._status = "Invalid amount"
break
try:
decimal.Decimal(fee)
except decimal.InvalidOperation:
self._status = "Invalid fee"
break
addr_type = await api.Daemon.validate_address(self._ws,
addr)
if addr_type == "invalid":
self._status = "Invalid address"
break
dests = [(addr, amount)]
ec, tx_hash = await api.Wallet.send(self._ws, dests, fee=fee,
pocket=self._active_pocket)
if ec:
self._status = ec.name
else:
self._status = "Sent %s" % tx_hash
break
elif c == curses.KEY_BACKSPACE:
self._send_fields[self._selected_send_item] = \
self._send_fields[self._selected_send_item][:-1]
elif c == curses.KEY_LEFT or c == curses.KEY_RIGHT:
pass
else:
self._send_fields[self._selected_send_item] += chr(c)
评论列表
文章目录