Skip to content
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

Adding new authorization type for IBC transfer in authz #13416

Closed
jonathanjmak opened this issue Sep 28, 2022 · 2 comments
Closed

Adding new authorization type for IBC transfer in authz #13416

jonathanjmak opened this issue Sep 28, 2022 · 2 comments

Comments

@jonathanjmak
Copy link

Summary

Currently in the Cosmos SDK, the main types of authorization are stake, send, and generic authorization. With stake and send, there is an allowlist for authorization. However, if you wanted to authorize an IBC transfer, you would need to use generic authorization, which exposes unnecessarily loose permissions (because there is no allowlist, theoretically the authorized entity could IBC transfer to any address). We want to add in an authorization for IBC transfers to specific addresses via the allowlist.

Problem Definition

You don't want to use generic authorization for tasks outside of stake and send. It would make sense to add in an authorization type for IBC transfers given that is one of the most common use cases of the ecosystem. One example where this would be useful is authorizing an entity to programmatically conduct an IBC transfer to your existing wallets. Currently, you need to manually IBC transfer assets across chains yourself, but having this would allow you to easily IBC transfer assets across chains from an entity's app without the need to expose unnecessary authorizations.

Proposal

  1. A new authorization type IBCTransferAuthorization
  2. Parameters: AllowList, SpendLimit
    AllowList would contain a list of addresses authorized to receive IBC transferred assets
    SpendLimit is the amount that is authorized for each IBC transfer asset
  3. Optional Parameters: Port,Channel

You can make implementation almost identical to SendAuthorization except now you are also making a new authorization type for IBC Transfers.

Very similar to this issue that was accepted: #12609
PR closing the above issue: #12648

@aaronc
Copy link
Member

aaronc commented Sep 28, 2022

I think this belongs in the ibc repo to not introduce a circular dependency on IBC

@jonathanjmak
Copy link
Author

Thanks for your feedback! Added here: cosmos/ibc-go#2431

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants