Best practices for refundable crowdsale (2.20)

Greetings to all!
I would like to know the logic of working with the refund function.
As far as I remember, in the early versions of the OpenZeppelin, it was enough, after finalizing, to send a zero transaction (0 ETH) to the address of crowdsale contract and the funds were automatically returned to the sender.
Now (with RefundablePostDeliveryCrowdsale) I should transfer the address (refundee) to the function claimRefund(), and you can send it from any user. I understand how to help the user in the web-interface with Metamask.
However, what if the user does not know how to insert (or get) the HEX data and is used only by Mist wallet.
I would be grateful if you tell me the best practices for refunds that are a goal not reached.

Many thanks!

1 Like

Hi @BitUser welcome to the forum. If you want to let the community know more about yourself and the project that you are working on you can Introduce yourself here!

The change to remove the restriction on who can release funds was part of OpenZeppelin 2.0 in October 2018.

  • Removed restriction on who can release funds in PullPayments , PaymentSplitter , PostDeliveryCrowdsale , RefundableCrowdsale . (#1275)

In your interface you could provide the option to specify any participant address and pre-fill this with the current users account address. This allows participants to release their funds using any account.

If your participants are interacting with the smart contract directly, then you may need to provide a guide that talks your users through the process to avoid any issues.

An alternative, depending on the number of participants (as you would be paying the transaction fees), would be to call claimRefund on your participants behalf.

As an aside Mist has been sunset