Documentation ¶
Index ¶
- Constants
- Variables
- func GrantQueueKey(expiration time.Time, granter sdk.AccAddress, grantee sdk.AccAddress) []byte
- func GrantQueueTimePrefix(expiration time.Time) []byte
- type Keeper
- func (k Keeper) DeleteGrant(ctx sdk.Context, grantee sdk.AccAddress, granter sdk.AccAddress, ...) error
- func (k Keeper) DequeueAndDeleteExpiredGrants(ctx sdk.Context) error
- func (k Keeper) DispatchActions(ctx sdk.Context, grantee sdk.AccAddress, msgs []sdk.Msg) ([][]byte, error)
- func (k Keeper) Exec(goCtx context.Context, msg *authz.MsgExec) (*authz.MsgExecResponse, error)
- func (k Keeper) ExportGenesis(ctx sdk.Context) *authz.GenesisState
- func (k Keeper) GetAuthorization(ctx sdk.Context, grantee sdk.AccAddress, granter sdk.AccAddress, ...) (authz.Authorization, *time.Time)
- func (k Keeper) GetAuthorizations(ctx sdk.Context, grantee sdk.AccAddress, granter sdk.AccAddress) ([]authz.Authorization, error)
- func (k Keeper) Grant(goCtx context.Context, msg *authz.MsgGrant) (*authz.MsgGrantResponse, error)
- func (k Keeper) GranteeGrants(c context.Context, req *authz.QueryGranteeGrantsRequest) (*authz.QueryGranteeGrantsResponse, error)
- func (k Keeper) GranterGrants(c context.Context, req *authz.QueryGranterGrantsRequest) (*authz.QueryGranterGrantsResponse, error)
- func (k Keeper) Grants(c context.Context, req *authz.QueryGrantsRequest) (*authz.QueryGrantsResponse, error)
- func (k Keeper) InitGenesis(ctx sdk.Context, data *authz.GenesisState)
- func (k Keeper) IterateGrants(ctx sdk.Context, ...)
- func (k Keeper) Logger(ctx sdk.Context) log.Logger
- func (k Keeper) Revoke(goCtx context.Context, msg *authz.MsgRevoke) (*authz.MsgRevokeResponse, error)
- func (k Keeper) SaveGrant(ctx sdk.Context, grantee, granter sdk.AccAddress, ...) error
- type Migrator
Constants ¶
const StoreKey = authz.ModuleName
StoreKey is the store key string for authz
Variables ¶
var ( GrantKey = []byte{0x01} // prefix for each key GrantQueuePrefix = []byte{0x02} )
Keys for store prefixes Items are stored with the following key: values
- 0x01<grant_Bytes>: Grant - 0x02<grant_expiration_Bytes>: GrantQueueItem
Functions ¶
func GrantQueueKey ¶
func GrantQueueKey(expiration time.Time, granter sdk.AccAddress, grantee sdk.AccAddress) []byte
GrantQueueKey - return grant queue store key. If a given grant doesn't have a defined expiration, then it should not be used in the pruning queue. Key format is:
0x02<expiration><granterAddressLen (1 Byte)><granterAddressBytes><granteeAddressLen (1 Byte)><granteeAddressBytes>: GrantQueueItem
func GrantQueueTimePrefix ¶
GrantQueueTimePrefix - return grant queue time prefix
Types ¶
type Keeper ¶
type Keeper struct {
// contains filtered or unexported fields
}
func NewKeeper ¶
func NewKeeper(storeKey storetypes.StoreKey, cdc codec.BinaryCodec, router *baseapp.MsgServiceRouter, ak authz.AccountKeeper) Keeper
NewKeeper constructs a message authorization Keeper
func (Keeper) DeleteGrant ¶
func (k Keeper) DeleteGrant(ctx sdk.Context, grantee sdk.AccAddress, granter sdk.AccAddress, msgType string) error
DeleteGrant revokes any authorization for the provided message type granted to the grantee by the granter.
func (Keeper) DequeueAndDeleteExpiredGrants ¶
DequeueAndDeleteExpiredGrants deletes expired grants from the state and grant queue.
func (Keeper) DispatchActions ¶
func (k Keeper) DispatchActions(ctx sdk.Context, grantee sdk.AccAddress, msgs []sdk.Msg) ([][]byte, error)
DispatchActions attempts to execute the provided messages via authorization grants from the message signer to the grantee.
func (Keeper) ExportGenesis ¶
func (k Keeper) ExportGenesis(ctx sdk.Context) *authz.GenesisState
ExportGenesis returns a GenesisState for a given context.
func (Keeper) GetAuthorization ¶
func (k Keeper) GetAuthorization(ctx sdk.Context, grantee sdk.AccAddress, granter sdk.AccAddress, msgType string) (authz.Authorization, *time.Time)
GetAuthorization returns an Authorization and it's expiration time. A nil Authorization is returned under the following circumstances:
- No grant is found.
- A grant is found, but it is expired.
- There was an error getting the authorization from the grant.
func (Keeper) GetAuthorizations ¶
func (k Keeper) GetAuthorizations(ctx sdk.Context, grantee sdk.AccAddress, granter sdk.AccAddress) ([]authz.Authorization, error)
GetAuthorizations Returns list of `Authorizations` granted to the grantee by the granter.
func (Keeper) GranteeGrants ¶
func (k Keeper) GranteeGrants(c context.Context, req *authz.QueryGranteeGrantsRequest) (*authz.QueryGranteeGrantsResponse, error)
GranteeGrants implements the Query/GranteeGrants gRPC method.
func (Keeper) GranterGrants ¶
func (k Keeper) GranterGrants(c context.Context, req *authz.QueryGranterGrantsRequest) (*authz.QueryGranterGrantsResponse, error)
GranterGrants implements the Query/GranterGrants gRPC method.
func (Keeper) Grants ¶
func (k Keeper) Grants(c context.Context, req *authz.QueryGrantsRequest) (*authz.QueryGrantsResponse, error)
Grants implements the Query/Grants gRPC method. It returns grants for a granter-grantee pair. If msg type URL is set, it returns grants only for that msg type.
func (Keeper) InitGenesis ¶
func (k Keeper) InitGenesis(ctx sdk.Context, data *authz.GenesisState)
InitGenesis new authz genesis
func (Keeper) IterateGrants ¶
func (k Keeper) IterateGrants(ctx sdk.Context, handler func(granterAddr sdk.AccAddress, granteeAddr sdk.AccAddress, grant authz.Grant) bool, )
IterateGrants iterates over all authorization grants This function should be used with caution because it can involve significant IO operations. It should not be used in query or msg services without charging additional gas. The iteration stops when the handler function returns true or the iterator exhaust.
func (Keeper) Revoke ¶
func (k Keeper) Revoke(goCtx context.Context, msg *authz.MsgRevoke) (*authz.MsgRevokeResponse, error)
Revoke implements the MsgServer.Revoke method.
func (Keeper) SaveGrant ¶
func (k Keeper) SaveGrant(ctx sdk.Context, grantee, granter sdk.AccAddress, authorization authz.Authorization, expiration *time.Time) error
SaveGrant method grants the provided authorization to the grantee on the granter's account with the provided expiration time and insert authorization key into the grants queue. If there is an existing authorization grant for the same `sdk.Msg` type, this grant overwrites that.