Skip to content

Dispense Fails with a Closed Dispenser on Same Address #2571

@jdogresorg

Description

@jdogresorg

Since dispensers have been changed to require a dispense message to trigger a dispense instead of a normal BTC send, the feature of automatically detecting a BTC send to an address with an open dispenser and then auto-converting the request from a send to a dispense message is not consistently working.

To work around this issue, I have been working to update FreeWallet to handle generating the dispense transaction directly, but am getting nonsense errors.

Issue 1 : Auto-conversions to dispense not working.

Auto-converting BTC send to dispense when destination has an open dispenser is not working consistently.

Sometimes the auto-conversion works, sometimes it does not, and user are losing funds as a result. I have heard of users having issues with this feature both in FreeWallet and Horizon.

Issue 2 : Invalid error message returned to valid dispense request

When trying to generate a dispense transaction on an address with an open dispenser, invalid error messages are returned

Source Address        : 1JDogZS6tQcSxwfxhv6XKKjcyicYA4Feev
Dispenser Address     : 1LJCLfaKU6aNUn5w96cge7woiBE4Hn22x8
Dispenser Transaction : 00a65b06e696a3d44fc14fbf6fbf4da15284d1e441a6ea3e49d136153b3f20b6

You can view open dispenser at :
https://tokenscan.io/tx/00a65b06e696a3d44fc14fbf6fbf4da15284d1e441a6ea3e49d136153b3f20b6

Example API request

https://api.counterparty.io:4000/v2/addresses/1JDogZS6tQcSxwfxhv6XKKjcyicYA4Feev/compose/dispense?dispenser=1LJCLfaKU6aNUn5w96cge7woiBE4Hn22x8&quantity=1000000&exact_fee=1280&allow_unconfirmed_inputs=true

Example API Response

"error": "['dispenser is not open', 'dispenser is empty', 'dispenser is not open', 'dispenser is empty']"

Example response in FreeWallet showing errors from API

image

Example response in POSTMAN showing errors from API

image

I hope you take this matter seriously, as it is losing users funds by doing normal BTC sends when they should be dispenses and preventing people from actually using your new dispense transaction (your new/preferred method to trigger a dispense)

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions