-
Notifications
You must be signed in to change notification settings - Fork 356
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
discussion: cw20-base methods should be nonpayable, or forward funds #862
Comments
cc @webmaster128 / @ethanfrey . I'd be curious if this has been discussed before and your thoughts. |
That is a common problem with what to do when unnecessary tokens are sent to contract with the method, and I remember we discussed it with Ethan. Sure, you can add a check if there is anything sent with the method (which is equivalent to making it Adding the additional While back in the day, I was convinced more to very strictly limit the ability to accept tokens by contract, right now, I would do it only when it actually introduces some problems - for eg., if I accept exactly one native token on instantiation and use it to determine "denom" my contract is operating on, then I would actually assert there is exactly one token send (as if they are many, I could pick the wrong one which may lead to problems). |
@hashedone, thank you for the thoughts. I used to also hold your point about code like this being un-needed as frontends are the API consumers. What I have come to appreciate over time is that as we are using non-restrictive licenses, and writing infrastructure-like code, there will be many frontends and many users who do unexpected things with this code. I wonder if, when the result is funds locked in the contract, it is good to air on the side of caution? |
I agree with @hashedone here. If we want such a solution, it should include bank sends. But x/bank does not know about the existence of x/wasm, which is also fair from a design point of view. One could imagine a hook system where x/wasm registers for such events. But this would create also some overhead. Something similar was discussed in CosmWasm/cosmwasm#1515 before. |
cool. thanks for the thoughts @hashedone and @webmaster128 :) sounds good to me. |
currently, funds sent in a cw20-base
Send
message are not forwarded, nor is an error returned if they are included. this isn't great UX. it would be nice to put together a coherent thought on what to do with native tokens sent to the cw20-base contract. i am happy to do the implementation work.two ideas:
cw20-base
methods nonpayable, orobviously there are more permutations here, and I'd be interested in hearing arguments for other ones.
The text was updated successfully, but these errors were encountered: