{"action":"created","issue":{"url":"https://api.github.com/repos/cosmos/cosmos-sdk/issues/1810","repository_url":"https://api.github.com/repos/cosmos/cosmos-sdk","labels_url":"https://api.github.com/repos/cosmos/cosmos-sdk/issues/1810/labels{/name}","comments_url":"https://api.github.com/repos/cosmos/cosmos-sdk/issues/1810/comments","events_url":"https://api.github.com/repos/cosmos/cosmos-sdk/issues/1810/events","html_url":"https://github.com/cosmos/cosmos-sdk/issues/1810","id":344252965,"node_id":"MDU6SXNzdWUzNDQyNTI5NjU=","number":1810,"title":"Reduce Module Dependency","user":{"login":"mossid","id":18329646,"node_id":"MDQ6VXNlcjE4MzI5NjQ2","avatar_url":"https://avatars0.githubusercontent.com/u/18329646?v=4","gravatar_id":"","url":"https://api.github.com/users/mossid","html_url":"https://github.com/mossid","followers_url":"https://api.github.com/users/mossid/followers","following_url":"https://api.github.com/users/mossid/following{/other_user}","gists_url":"https://api.github.com/users/mossid/gists{/gist_id}","starred_url":"https://api.github.com/users/mossid/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mossid/subscriptions","organizations_url":"https://api.github.com/users/mossid/orgs","repos_url":"https://api.github.com/users/mossid/repos","events_url":"https://api.github.com/users/mossid/events{/privacy}","received_events_url":"https://api.github.com/users/mossid/received_events","type":"User","site_admin":false},"labels":[{"id":672809710,"node_id":"MDU6TGFiZWw2NzI4MDk3MTA=","url":"https://api.github.com/repos/cosmos/cosmos-sdk/labels/API","name":"API","color":"fafad2","default":false},{"id":600427492,"node_id":"MDU6TGFiZWw2MDA0Mjc0OTI=","url":"https://api.github.com/repos/cosmos/cosmos-sdk/labels/discussion","name":"discussion","color":"d2d2fa","default":false}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":0,"created_at":"2018-07-25T00:53:10Z","updated_at":"2018-07-31T18:39:03Z","closed_at":null,"author_association":"CONTRIBUTOR","body":"Currently modules under `x/` have following dependencies:\r\n\r\n* `Bank`: `Auth` for accessing accounts\r\n* `Gov`: `Bank` for modifying balances\r\n* `Slashing`: `Params` for retrieving parameters\r\n* `Stake`: `Bank` for modifying balances\r\n\r\nTo reduce the dependencies, we must import interface that satisfies the needs, not the keeper struct itself. We are doing it for stake module, and allso see https://github.com/cosmos/cosmos-sdk/issues/1528\r\n\r\nSo instead of importing `bank.CoinKeeper` from `bank`, we can define `type CoinKeeper interface` in `types/`(since it is needed widely) and import that. "},"comment":{"url":"https://api.github.com/repos/cosmos/cosmos-sdk/issues/comments/409325149","html_url":"https://github.com/cosmos/cosmos-sdk/issues/1810#issuecomment-409325149","issue_url":"https://api.github.com/repos/cosmos/cosmos-sdk/issues/1810","id":409325149,"node_id":"MDEyOklzc3VlQ29tbWVudDQwOTMyNTE0OQ==","user":{"login":"rigelrozanski","id":20132176,"node_id":"MDQ6VXNlcjIwMTMyMTc2","avatar_url":"https://avatars1.githubusercontent.com/u/20132176?v=4","gravatar_id":"","url":"https://api.github.com/users/rigelrozanski","html_url":"https://github.com/rigelrozanski","followers_url":"https://api.github.com/users/rigelrozanski/followers","following_url":"https://api.github.com/users/rigelrozanski/following{/other_user}","gists_url":"https://api.github.com/users/rigelrozanski/gists{/gist_id}","starred_url":"https://api.github.com/users/rigelrozanski/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rigelrozanski/subscriptions","organizations_url":"https://api.github.com/users/rigelrozanski/orgs","repos_url":"https://api.github.com/users/rigelrozanski/repos","events_url":"https://api.github.com/users/rigelrozanski/events{/privacy}","received_events_url":"https://api.github.com/users/rigelrozanski/received_events","type":"User","site_admin":false},"created_at":"2018-07-31T18:39:03Z","updated_at":"2018-07-31T18:39:03Z","author_association":"MEMBER","body":"As per discussions with @sunnya97 we should probably define a new layer of abstraction for the common interfaces which all modules anticipated to be working together fulfill (kind of like a `types/` dir for a group of modules). You should sync with sunny on this one for sure!"}}
{"actor":{"display_login":"rigelrozanski"}}