1.7 KiB
Concepts
Authorization
Any concrete type of authorization defined in the x/authz
module must fulfill the Authorization
interface outlined below. Authorizations determine exactly what privileges are granted. They are extensible and can be defined for any Msg service method even outside of the module where the Msg method is defined. Authorizations use the new ServiceMsg
type from ADR 031.
+++ c95de9c417/x/authz/types/authorizations.go (L15-L24)
Built-in Authorizations
Cosmos-SDK x/authz
module comes with following authorization types
SendAuthorization
SendAuthorization
implements Authorization
interface for the cosmos.bank.v1beta1.Msg/Send
ServiceMsg, that takes a SpendLimit
and updates it down to zero.
+++ c95de9c417/proto/cosmos/authz/v1beta1/authz.proto (L12-L19)
+++ c95de9c417/x/authz/types/send_authorization.go (L23-L45)
spent_limit
keeps track of how many coins left in the authorization.
GenericAuthorization
GenericAuthorization
implements the Authorization
interface, that gives unrestricted permission to execute the provided ServiceMsg on behalf of granter's account.
+++ c95de9c417/proto/cosmos/authz/v1beta1/authz.proto (L21-L30)
+++ c95de9c417/x/authz/types/generic_authorization.go (L20-L28)
method_name
holds ServiceMsg type.