informalsystems / basecoin-rs

An example ABCI application making use of tendermint-rs and ibc-rs
Apache License 2.0
55 stars 17 forks source link

ICS20 module requirements #53

Open hu55a1n1 opened 2 years ago

hu55a1n1 commented 2 years ago

We're essentially looking for answers to these questions ->

hu55a1n1 commented 2 years ago

Is the ibc-rs ICS20 API readily usable?

I think the DummyTransferModule implementation in the ibc-rs ICS20 PR gives us some confidence on the usability of the API as that is modelled in a way that is very similar to basecoin's implementation.

Are we missing any gRPC endpoints?

From my preliminary findings, it doesn't seem like we'd need any additional gRPC endpoints on basecoin's side for the ICS20 module impl. Turns out we might need some gRPC endpoints for ICS20 -> https://github.com/cosmos/ibc-go/blob/main/proto/ibc/applications/transfer/v1/query.proto. Still not clear if and where hermes uses them.

What changes are required to the bank module?

We need support for module accounts and the ability to mint and burn tokens.

Can we make progress here before ICS20 is delivered on ibc-rs side?

We could start by updating basecoin's dependencies to match those of ibc-rs and make changes to the bank and accounts facilities. But the API is expected to see major changes with the ICS20 implementation and OCap removal, so I think we it's better to wait.