Skip to content

Internal Server Error: pretix_eth.models.WalletAddressError: No wallet addresses remain that haven't been used #192

@ligi

Description

@ligi

stacktrace:

ERROR 2022-01-29 20:57:41,837 django.request log Internal Server Error: /devcon/test/order/70V9U/adl6at0uelvtooim/
Traceback (most recent call last):
  File "/var/pretix/venv/lib/python3.8/site-packages/django/core/handlers/exception.py", line 47, in inner
    response = get_response(request)
  File "/var/pretix/venv/lib/python3.8/site-packages/django/core/handlers/base.py", line 181, in _get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
  File "/var/pretix/venv/lib/python3.8/site-packages/django/views/generic/base.py", line 70, in view
    return self.dispatch(request, *args, **kwargs)
  File "/var/pretix/venv/lib/python3.8/site-packages/django/utils/decorators.py", line 43, in _wrapper
    return bound_method(*args, **kwargs)
  File "/var/pretix/venv/lib/python3.8/site-packages/django/views/decorators/clickjacking.py", line 50, in wrapped_view
    resp = view_func(*args, **kwargs)
  File "/var/pretix/venv/lib/python3.8/site-packages/pretix/presale/views/robots.py", line 41, in dispatch
    resp = super().dispatch(request, *args, **kwargs)
  File "/var/pretix/venv/lib/python3.8/site-packages/django/views/generic/base.py", line 98, in dispatch
    return handler(request, *args, **kwargs)
  File "/var/pretix/venv/lib/python3.8/site-packages/pretix/presale/views/order.py", line 204, in get
    return super().get(request, *args, **kwargs)
  File "/var/pretix/venv/lib/python3.8/site-packages/django/views/generic/base.py", line 159, in get
    context = self.get_context_data(**kwargs)
  File "/var/pretix/venv/lib/python3.8/site-packages/pretix/presale/views/order.py", line 271, in get_context_data
    ctx['last_payment_info'] = pp.payment_pending_render(self.request, ctx['last_payment'])
  File "/var/pretix/venv/src/pretix-eth-payment-plugin/pretix_eth/payment.py", line 245, in payment_pending_render
    wallet_address = WalletAddress.objects.get_for_order_payment(
  File "/var/pretix/venv/src/pretix-eth-payment-plugin/pretix_eth/models.py", line 49, in get_for_order_payment
    raise WalletAddressError(
pretix_eth.models.WalletAddressError: No wallet addresses remain that haven't been used

steps to reproduce:

  • only upload one wallet address for the plugin
  • initiate to make a payment with this plugin
  • click on "Re-try payment or choose another payment method"
  • select ETH or DAI again
  • press "pay now"
  • then the above error occurs

So either the previous wallet address should be reused or the address should be freed again

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions