x/feegrant API Audit changes (#9194)

* -add comments to proto fields
-add comments to msg and query server
-remove decorator from docs
-add coments to msgs.go
-remove decorator from godoc

* Update x/feegrant/spec/04_events.md

Co-authored-by: Marie Gauthier <marie.gauthier63@gmail.com>

* refactor and add to docs
*refactor proto msg names and functions
*add docs pertaining to auth's ante handler for deducted fees

* lint

* update comment

* gofmt

Co-authored-by: technicallyty <48813565+tytech3@users.noreply.github.com>
Co-authored-by: Marie Gauthier <marie.gauthier63@gmail.com>
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
This commit is contained in:
technicallyty 2021-05-03 05:34:48 -07:00 committed by GitHub
parent 711976efc1
commit d3bcc15b11
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
43 changed files with 1006 additions and 989 deletions

View File

@ -307,29 +307,29 @@
- [Msg](#cosmos.evidence.v1beta1.Msg)
- [cosmos/feegrant/v1beta1/feegrant.proto](#cosmos/feegrant/v1beta1/feegrant.proto)
- [AllowedMsgFeeAllowance](#cosmos.feegrant.v1beta1.AllowedMsgFeeAllowance)
- [BasicFeeAllowance](#cosmos.feegrant.v1beta1.BasicFeeAllowance)
- [AllowedMsgAllowance](#cosmos.feegrant.v1beta1.AllowedMsgAllowance)
- [BasicAllowance](#cosmos.feegrant.v1beta1.BasicAllowance)
- [Duration](#cosmos.feegrant.v1beta1.Duration)
- [ExpiresAt](#cosmos.feegrant.v1beta1.ExpiresAt)
- [FeeAllowanceGrant](#cosmos.feegrant.v1beta1.FeeAllowanceGrant)
- [PeriodicFeeAllowance](#cosmos.feegrant.v1beta1.PeriodicFeeAllowance)
- [Grant](#cosmos.feegrant.v1beta1.Grant)
- [PeriodicAllowance](#cosmos.feegrant.v1beta1.PeriodicAllowance)
- [cosmos/feegrant/v1beta1/genesis.proto](#cosmos/feegrant/v1beta1/genesis.proto)
- [GenesisState](#cosmos.feegrant.v1beta1.GenesisState)
- [cosmos/feegrant/v1beta1/query.proto](#cosmos/feegrant/v1beta1/query.proto)
- [QueryFeeAllowanceRequest](#cosmos.feegrant.v1beta1.QueryFeeAllowanceRequest)
- [QueryFeeAllowanceResponse](#cosmos.feegrant.v1beta1.QueryFeeAllowanceResponse)
- [QueryFeeAllowancesRequest](#cosmos.feegrant.v1beta1.QueryFeeAllowancesRequest)
- [QueryFeeAllowancesResponse](#cosmos.feegrant.v1beta1.QueryFeeAllowancesResponse)
- [QueryAllowanceRequest](#cosmos.feegrant.v1beta1.QueryAllowanceRequest)
- [QueryAllowanceResponse](#cosmos.feegrant.v1beta1.QueryAllowanceResponse)
- [QueryAllowancesRequest](#cosmos.feegrant.v1beta1.QueryAllowancesRequest)
- [QueryAllowancesResponse](#cosmos.feegrant.v1beta1.QueryAllowancesResponse)
- [Query](#cosmos.feegrant.v1beta1.Query)
- [cosmos/feegrant/v1beta1/tx.proto](#cosmos/feegrant/v1beta1/tx.proto)
- [MsgGrantFeeAllowance](#cosmos.feegrant.v1beta1.MsgGrantFeeAllowance)
- [MsgGrantFeeAllowanceResponse](#cosmos.feegrant.v1beta1.MsgGrantFeeAllowanceResponse)
- [MsgRevokeFeeAllowance](#cosmos.feegrant.v1beta1.MsgRevokeFeeAllowance)
- [MsgRevokeFeeAllowanceResponse](#cosmos.feegrant.v1beta1.MsgRevokeFeeAllowanceResponse)
- [MsgGrantAllowance](#cosmos.feegrant.v1beta1.MsgGrantAllowance)
- [MsgGrantAllowanceResponse](#cosmos.feegrant.v1beta1.MsgGrantAllowanceResponse)
- [MsgRevokeAllowance](#cosmos.feegrant.v1beta1.MsgRevokeAllowance)
- [MsgRevokeAllowanceResponse](#cosmos.feegrant.v1beta1.MsgRevokeAllowanceResponse)
- [Msg](#cosmos.feegrant.v1beta1.Msg)
@ -4545,10 +4545,10 @@ Msg defines the evidence Msg service.
<a name="cosmos.feegrant.v1beta1.AllowedMsgFeeAllowance"></a>
<a name="cosmos.feegrant.v1beta1.AllowedMsgAllowance"></a>
### AllowedMsgFeeAllowance
AllowedMsgFeeAllowance creates allowance only for specified message types.
### AllowedMsgAllowance
AllowedMsgAllowance creates allowance only for specified message types.
| Field | Type | Label | Description |
@ -4561,11 +4561,11 @@ AllowedMsgFeeAllowance creates allowance only for specified message types.
<a name="cosmos.feegrant.v1beta1.BasicFeeAllowance"></a>
<a name="cosmos.feegrant.v1beta1.BasicAllowance"></a>
### BasicFeeAllowance
BasicFeeAllowance implements FeeAllowance with a one-time grant of tokens
that optionally expires. The delegatee can use up to SpendLimit to cover fees.
### BasicAllowance
BasicAllowance implements Allowance with a one-time grant of tokens
that optionally expires. The grantee can use up to SpendLimit to cover fees.
| Field | Type | Label | Description |
@ -4612,33 +4612,33 @@ It may be *either* block time or block height
<a name="cosmos.feegrant.v1beta1.FeeAllowanceGrant"></a>
<a name="cosmos.feegrant.v1beta1.Grant"></a>
### FeeAllowanceGrant
FeeAllowanceGrant is stored in the KVStore to record a grant with full context
### Grant
Grant is stored in the KVStore to record a grant with full context
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| `granter` | [string](#string) | | |
| `grantee` | [string](#string) | | |
| `allowance` | [google.protobuf.Any](#google.protobuf.Any) | | |
| `granter` | [string](#string) | | granter is the address of the user granting an allowance of their funds. |
| `grantee` | [string](#string) | | grantee is the address of the user being granted an allowance of another user's funds. |
| `allowance` | [google.protobuf.Any](#google.protobuf.Any) | | allowance can be any of basic and filtered fee allowance. |
<a name="cosmos.feegrant.v1beta1.PeriodicFeeAllowance"></a>
<a name="cosmos.feegrant.v1beta1.PeriodicAllowance"></a>
### PeriodicFeeAllowance
PeriodicFeeAllowance extends FeeAllowance to allow for both a maximum cap,
### PeriodicAllowance
PeriodicAllowance extends Allowance to allow for both a maximum cap,
as well as a limit per time period.
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| `basic` | [BasicFeeAllowance](#cosmos.feegrant.v1beta1.BasicFeeAllowance) | | basic specifies a struct of `BasicFeeAllowance` |
| `basic` | [BasicAllowance](#cosmos.feegrant.v1beta1.BasicAllowance) | | basic specifies a struct of `BasicAllowance` |
| `period` | [Duration](#cosmos.feegrant.v1beta1.Duration) | | period specifies the time duration in which period_spend_limit coins can be spent before that allowance is reset |
| `period_spend_limit` | [cosmos.base.v1beta1.Coin](#cosmos.base.v1beta1.Coin) | repeated | period_spend_limit specifies the maximum number of coins that can be spent in the period |
| `period_can_spend` | [cosmos.base.v1beta1.Coin](#cosmos.base.v1beta1.Coin) | repeated | period_can_spend is the number of coins left to be spent before the period_reset time |
@ -4673,7 +4673,7 @@ GenesisState contains a set of fee allowances, persisted from the store
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| `fee_allowances` | [FeeAllowanceGrant](#cosmos.feegrant.v1beta1.FeeAllowanceGrant) | repeated | |
| `allowances` | [Grant](#cosmos.feegrant.v1beta1.Grant) | repeated | |
@ -4696,41 +4696,41 @@ GenesisState contains a set of fee allowances, persisted from the store
<a name="cosmos.feegrant.v1beta1.QueryFeeAllowanceRequest"></a>
<a name="cosmos.feegrant.v1beta1.QueryAllowanceRequest"></a>
### QueryFeeAllowanceRequest
QueryFeeAllowanceRequest is the request type for the Query/FeeAllowance RPC method.
### QueryAllowanceRequest
QueryAllowanceRequest is the request type for the Query/Allowance RPC method.
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| `granter` | [string](#string) | | |
| `grantee` | [string](#string) | | |
| `granter` | [string](#string) | | granter is the address of the user granting an allowance of their funds. |
| `grantee` | [string](#string) | | grantee is the address of the user being granted an allowance of another user's funds. |
<a name="cosmos.feegrant.v1beta1.QueryFeeAllowanceResponse"></a>
<a name="cosmos.feegrant.v1beta1.QueryAllowanceResponse"></a>
### QueryFeeAllowanceResponse
QueryFeeAllowanceResponse is the response type for the Query/FeeAllowance RPC method.
### QueryAllowanceResponse
QueryAllowanceResponse is the response type for the Query/Allowance RPC method.
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| `fee_allowance` | [FeeAllowanceGrant](#cosmos.feegrant.v1beta1.FeeAllowanceGrant) | | fee_allowance is a fee_allowance granted for grantee by granter. |
| `allowance` | [Grant](#cosmos.feegrant.v1beta1.Grant) | | allowance is a allowance granted for grantee by granter. |
<a name="cosmos.feegrant.v1beta1.QueryFeeAllowancesRequest"></a>
<a name="cosmos.feegrant.v1beta1.QueryAllowancesRequest"></a>
### QueryFeeAllowancesRequest
QueryFeeAllowancesRequest is the request type for the Query/FeeAllowances RPC method.
### QueryAllowancesRequest
QueryAllowancesRequest is the request type for the Query/Allowances RPC method.
| Field | Type | Label | Description |
@ -4743,15 +4743,15 @@ QueryFeeAllowancesRequest is the request type for the Query/FeeAllowances RPC me
<a name="cosmos.feegrant.v1beta1.QueryFeeAllowancesResponse"></a>
<a name="cosmos.feegrant.v1beta1.QueryAllowancesResponse"></a>
### QueryFeeAllowancesResponse
QueryFeeAllowancesResponse is the response type for the Query/FeeAllowances RPC method.
### QueryAllowancesResponse
QueryAllowancesResponse is the response type for the Query/Allowances RPC method.
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| `fee_allowances` | [FeeAllowanceGrant](#cosmos.feegrant.v1beta1.FeeAllowanceGrant) | repeated | fee_allowances are fee_allowance's granted for grantee by granter. |
| `allowances` | [Grant](#cosmos.feegrant.v1beta1.Grant) | repeated | allowances are allowance's granted for grantee by granter. |
| `pagination` | [cosmos.base.query.v1beta1.PageResponse](#cosmos.base.query.v1beta1.PageResponse) | | pagination defines an pagination for the response. |
@ -4772,8 +4772,8 @@ Query defines the gRPC querier service.
| Method Name | Request Type | Response Type | Description | HTTP Verb | Endpoint |
| ----------- | ------------ | ------------- | ------------| ------- | -------- |
| `FeeAllowance` | [QueryFeeAllowanceRequest](#cosmos.feegrant.v1beta1.QueryFeeAllowanceRequest) | [QueryFeeAllowanceResponse](#cosmos.feegrant.v1beta1.QueryFeeAllowanceResponse) | FeeAllowance returns fee granted to the grantee by the granter. | GET|/cosmos/feegrant/v1beta1/fee_allowance/{granter}/{grantee}|
| `FeeAllowances` | [QueryFeeAllowancesRequest](#cosmos.feegrant.v1beta1.QueryFeeAllowancesRequest) | [QueryFeeAllowancesResponse](#cosmos.feegrant.v1beta1.QueryFeeAllowancesResponse) | FeeAllowances returns all the grants for address. | GET|/cosmos/feegrant/v1beta1/fee_allowances/{grantee}|
| `Allowance` | [QueryAllowanceRequest](#cosmos.feegrant.v1beta1.QueryAllowanceRequest) | [QueryAllowanceResponse](#cosmos.feegrant.v1beta1.QueryAllowanceResponse) | Allowance returns fee granted to the grantee by the granter. | GET|/cosmos/feegrant/v1beta1/allowance/{granter}/{grantee}|
| `Allowances` | [QueryAllowancesRequest](#cosmos.feegrant.v1beta1.QueryAllowancesRequest) | [QueryAllowancesResponse](#cosmos.feegrant.v1beta1.QueryAllowancesResponse) | Allowances returns all the grants for address. | GET|/cosmos/feegrant/v1beta1/allowances/{grantee}|
<!-- end services -->
@ -4786,54 +4786,54 @@ Query defines the gRPC querier service.
<a name="cosmos.feegrant.v1beta1.MsgGrantFeeAllowance"></a>
<a name="cosmos.feegrant.v1beta1.MsgGrantAllowance"></a>
### MsgGrantFeeAllowance
MsgGrantFeeAllowance adds permission for Grantee to spend up to Allowance
### MsgGrantAllowance
MsgGrantAllowance adds permission for Grantee to spend up to Allowance
of fees from the account of Granter.
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| `granter` | [string](#string) | | |
| `grantee` | [string](#string) | | |
| `allowance` | [google.protobuf.Any](#google.protobuf.Any) | | |
| `granter` | [string](#string) | | granter is the address of the user granting an allowance of their funds. |
| `grantee` | [string](#string) | | grantee is the address of the user being granted an allowance of another user's funds. |
| `allowance` | [google.protobuf.Any](#google.protobuf.Any) | | allowance can be any of basic and filtered fee allowance. |
<a name="cosmos.feegrant.v1beta1.MsgGrantFeeAllowanceResponse"></a>
<a name="cosmos.feegrant.v1beta1.MsgGrantAllowanceResponse"></a>
### MsgGrantFeeAllowanceResponse
MsgGrantFeeAllowanceResponse defines the Msg/GrantFeeAllowanceResponse response type.
### MsgGrantAllowanceResponse
MsgGrantAllowanceResponse defines the Msg/GrantAllowanceResponse response type.
<a name="cosmos.feegrant.v1beta1.MsgRevokeFeeAllowance"></a>
<a name="cosmos.feegrant.v1beta1.MsgRevokeAllowance"></a>
### MsgRevokeFeeAllowance
MsgRevokeFeeAllowance removes any existing FeeAllowance from Granter to Grantee.
### MsgRevokeAllowance
MsgRevokeAllowance removes any existing Allowance from Granter to Grantee.
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| `granter` | [string](#string) | | |
| `grantee` | [string](#string) | | |
| `granter` | [string](#string) | | granter is the address of the user granting an allowance of their funds. |
| `grantee` | [string](#string) | | grantee is the address of the user being granted an allowance of another user's funds. |
<a name="cosmos.feegrant.v1beta1.MsgRevokeFeeAllowanceResponse"></a>
<a name="cosmos.feegrant.v1beta1.MsgRevokeAllowanceResponse"></a>
### MsgRevokeFeeAllowanceResponse
MsgRevokeFeeAllowanceResponse defines the Msg/RevokeFeeAllowanceResponse response type.
### MsgRevokeAllowanceResponse
MsgRevokeAllowanceResponse defines the Msg/RevokeAllowanceResponse response type.
@ -4853,8 +4853,8 @@ Msg defines the feegrant msg service.
| Method Name | Request Type | Response Type | Description | HTTP Verb | Endpoint |
| ----------- | ------------ | ------------- | ------------| ------- | -------- |
| `GrantFeeAllowance` | [MsgGrantFeeAllowance](#cosmos.feegrant.v1beta1.MsgGrantFeeAllowance) | [MsgGrantFeeAllowanceResponse](#cosmos.feegrant.v1beta1.MsgGrantFeeAllowanceResponse) | GrantFeeAllowance grants fee allowance to the grantee on the granter's account with the provided expiration time. | |
| `RevokeFeeAllowance` | [MsgRevokeFeeAllowance](#cosmos.feegrant.v1beta1.MsgRevokeFeeAllowance) | [MsgRevokeFeeAllowanceResponse](#cosmos.feegrant.v1beta1.MsgRevokeFeeAllowanceResponse) | RevokeFeeAllowance revokes any fee allowance of granter's account that has been granted to the grantee. | |
| `GrantAllowance` | [MsgGrantAllowance](#cosmos.feegrant.v1beta1.MsgGrantAllowance) | [MsgGrantAllowanceResponse](#cosmos.feegrant.v1beta1.MsgGrantAllowanceResponse) | GrantAllowance grants fee allowance to the grantee on the granter's account with the provided expiration time. | |
| `RevokeAllowance` | [MsgRevokeAllowance](#cosmos.feegrant.v1beta1.MsgRevokeAllowance) | [MsgRevokeAllowanceResponse](#cosmos.feegrant.v1beta1.MsgRevokeAllowanceResponse) | RevokeAllowance revokes any fee allowance of granter's account that has been granted to the grantee. | |
<!-- end services -->

View File

@ -10,9 +10,9 @@ import "google/protobuf/duration.proto";
option go_package = "github.com/cosmos/cosmos-sdk/x/feegrant/types";
// BasicFeeAllowance implements FeeAllowance with a one-time grant of tokens
// that optionally expires. The delegatee can use up to SpendLimit to cover fees.
message BasicFeeAllowance {
// BasicAllowance implements Allowance with a one-time grant of tokens
// that optionally expires. The grantee can use up to SpendLimit to cover fees.
message BasicAllowance {
option (cosmos_proto.implements_interface) = "FeeAllowanceI";
// spend_limit specifies the maximum amount of tokens that can be spent
@ -25,13 +25,13 @@ message BasicFeeAllowance {
ExpiresAt expiration = 2 [(gogoproto.nullable) = false];
}
// PeriodicFeeAllowance extends FeeAllowance to allow for both a maximum cap,
// PeriodicAllowance extends Allowance to allow for both a maximum cap,
// as well as a limit per time period.
message PeriodicFeeAllowance {
message PeriodicAllowance {
option (cosmos_proto.implements_interface) = "FeeAllowanceI";
// basic specifies a struct of `BasicFeeAllowance`
BasicFeeAllowance basic = 1 [(gogoproto.nullable) = false];
// basic specifies a struct of `BasicAllowance`
BasicAllowance basic = 1 [(gogoproto.nullable) = false];
// period specifies the time duration in which period_spend_limit coins can
// be spent before that allowance is reset
@ -52,8 +52,8 @@ message PeriodicFeeAllowance {
ExpiresAt period_reset = 5 [(gogoproto.nullable) = false];
}
// AllowedMsgFeeAllowance creates allowance only for specified message types.
message AllowedMsgFeeAllowance {
// AllowedMsgAllowance creates allowance only for specified message types.
message AllowedMsgAllowance {
option (gogoproto.goproto_getters) = false;
option (cosmos_proto.implements_interface) = "FeeAllowanceI";
@ -84,10 +84,14 @@ message ExpiresAt {
}
}
// FeeAllowanceGrant is stored in the KVStore to record a grant with full context
message FeeAllowanceGrant {
// Grant is stored in the KVStore to record a grant with full context
message Grant {
// granter is the address of the user granting an allowance of their funds.
string granter = 1;
// grantee is the address of the user being granted an allowance of another user's funds.
string grantee = 2;
// allowance can be any of basic and filtered fee allowance.
google.protobuf.Any allowance = 3 [(cosmos_proto.accepts_interface) = "FeeAllowanceI"];
}

View File

@ -8,5 +8,5 @@ option go_package = "github.com/cosmos/cosmos-sdk/x/feegrant/types";
// GenesisState contains a set of fee allowances, persisted from the store
message GenesisState {
repeated FeeAllowanceGrant fee_allowances = 1 [(gogoproto.nullable) = false];
repeated Grant allowances = 1 [(gogoproto.nullable) = false];
}

View File

@ -1,7 +1,6 @@
syntax = "proto3";
package cosmos.feegrant.v1beta1;
import "gogoproto/gogo.proto";
import "cosmos/feegrant/v1beta1/feegrant.proto";
import "cosmos/base/query/v1beta1/pagination.proto";
import "google/api/annotations.proto";
@ -11,41 +10,44 @@ option go_package = "github.com/cosmos/cosmos-sdk/x/feegrant/types";
// Query defines the gRPC querier service.
service Query {
// FeeAllowance returns fee granted to the grantee by the granter.
rpc FeeAllowance(QueryFeeAllowanceRequest) returns (QueryFeeAllowanceResponse) {
option (google.api.http).get = "/cosmos/feegrant/v1beta1/fee_allowance/{granter}/{grantee}";
// Allowance returns fee granted to the grantee by the granter.
rpc Allowance(QueryAllowanceRequest) returns (QueryAllowanceResponse) {
option (google.api.http).get = "/cosmos/feegrant/v1beta1/allowance/{granter}/{grantee}";
}
// FeeAllowances returns all the grants for address.
rpc FeeAllowances(QueryFeeAllowancesRequest) returns (QueryFeeAllowancesResponse) {
option (google.api.http).get = "/cosmos/feegrant/v1beta1/fee_allowances/{grantee}";
// Allowances returns all the grants for address.
rpc Allowances(QueryAllowancesRequest) returns (QueryAllowancesResponse) {
option (google.api.http).get = "/cosmos/feegrant/v1beta1/allowances/{grantee}";
}
}
// QueryFeeAllowanceRequest is the request type for the Query/FeeAllowance RPC method.
message QueryFeeAllowanceRequest {
// QueryAllowanceRequest is the request type for the Query/Allowance RPC method.
message QueryAllowanceRequest {
// granter is the address of the user granting an allowance of their funds.
string granter = 1;
// grantee is the address of the user being granted an allowance of another user's funds.
string grantee = 2;
}
// QueryFeeAllowanceResponse is the response type for the Query/FeeAllowance RPC method.
message QueryFeeAllowanceResponse {
// fee_allowance is a fee_allowance granted for grantee by granter.
cosmos.feegrant.v1beta1.FeeAllowanceGrant fee_allowance = 1;
// QueryAllowanceResponse is the response type for the Query/Allowance RPC method.
message QueryAllowanceResponse {
// allowance is a allowance granted for grantee by granter.
cosmos.feegrant.v1beta1.Grant allowance = 1;
}
// QueryFeeAllowancesRequest is the request type for the Query/FeeAllowances RPC method.
message QueryFeeAllowancesRequest {
// QueryAllowancesRequest is the request type for the Query/Allowances RPC method.
message QueryAllowancesRequest {
string grantee = 1;
// pagination defines an pagination for the request.
cosmos.base.query.v1beta1.PageRequest pagination = 2;
}
// QueryFeeAllowancesResponse is the response type for the Query/FeeAllowances RPC method.
message QueryFeeAllowancesResponse {
// fee_allowances are fee_allowance's granted for grantee by granter.
repeated cosmos.feegrant.v1beta1.FeeAllowanceGrant fee_allowances = 1;
// QueryAllowancesResponse is the response type for the Query/Allowances RPC method.
message QueryAllowancesResponse {
// allowances are allowance's granted for grantee by granter.
repeated cosmos.feegrant.v1beta1.Grant allowances = 1;
// pagination defines an pagination for the response.
cosmos.base.query.v1beta1.PageResponse pagination = 2;

View File

@ -10,31 +10,39 @@ option go_package = "github.com/cosmos/cosmos-sdk/x/feegrant/types";
// Msg defines the feegrant msg service.
service Msg {
// GrantFeeAllowance grants fee allowance to the grantee on the granter's
// GrantAllowance grants fee allowance to the grantee on the granter's
// account with the provided expiration time.
rpc GrantFeeAllowance(MsgGrantFeeAllowance) returns (MsgGrantFeeAllowanceResponse);
rpc GrantAllowance(MsgGrantAllowance) returns (MsgGrantAllowanceResponse);
// RevokeFeeAllowance revokes any fee allowance of granter's account that
// RevokeAllowance revokes any fee allowance of granter's account that
// has been granted to the grantee.
rpc RevokeFeeAllowance(MsgRevokeFeeAllowance) returns (MsgRevokeFeeAllowanceResponse);
rpc RevokeAllowance(MsgRevokeAllowance) returns (MsgRevokeAllowanceResponse);
}
// MsgGrantFeeAllowance adds permission for Grantee to spend up to Allowance
// MsgGrantAllowance adds permission for Grantee to spend up to Allowance
// of fees from the account of Granter.
message MsgGrantFeeAllowance {
message MsgGrantAllowance {
// granter is the address of the user granting an allowance of their funds.
string granter = 1;
// grantee is the address of the user being granted an allowance of another user's funds.
string grantee = 2;
// allowance can be any of basic and filtered fee allowance.
google.protobuf.Any allowance = 3 [(cosmos_proto.accepts_interface) = "FeeAllowanceI"];
}
// MsgGrantFeeAllowanceResponse defines the Msg/GrantFeeAllowanceResponse response type.
message MsgGrantFeeAllowanceResponse {}
// MsgGrantAllowanceResponse defines the Msg/GrantAllowanceResponse response type.
message MsgGrantAllowanceResponse {}
// MsgRevokeFeeAllowance removes any existing FeeAllowance from Granter to Grantee.
message MsgRevokeFeeAllowance {
// MsgRevokeAllowance removes any existing Allowance from Granter to Grantee.
message MsgRevokeAllowance {
// granter is the address of the user granting an allowance of their funds.
string granter = 1;
// grantee is the address of the user being granted an allowance of another user's funds.
string grantee = 2;
}
// MsgRevokeFeeAllowanceResponse defines the Msg/RevokeFeeAllowanceResponse response type.
message MsgRevokeFeeAllowanceResponse {}
// MsgRevokeAllowanceResponse defines the Msg/RevokeAllowanceResponse response type.
message MsgRevokeAllowanceResponse {}

View File

@ -54,13 +54,13 @@ func (suite *AnteTestSuite) TestDeductFeesNoDelegation() {
suite.Require().NoError(err)
// grant fee allowance from `addr2` to `addr3` (plenty to pay)
err = app.FeeGrantKeeper.GrantFeeAllowance(ctx, addr2, addr3, &types.BasicFeeAllowance{
err = app.FeeGrantKeeper.GrantAllowance(ctx, addr2, addr3, &types.BasicAllowance{
SpendLimit: sdk.NewCoins(sdk.NewInt64Coin("atom", 500)),
})
suite.Require().NoError(err)
// grant low fee allowance (20atom), to check the tx requesting more than allowed.
err = app.FeeGrantKeeper.GrantFeeAllowance(ctx, addr2, addr4, &types.BasicFeeAllowance{
err = app.FeeGrantKeeper.GrantAllowance(ctx, addr2, addr4, &types.BasicAllowance{
SpendLimit: sdk.NewCoins(sdk.NewInt64Coin("atom", 20)),
})
suite.Require().NoError(err)

View File

@ -59,9 +59,9 @@ $ %s query feegrant grant [granter] [grantee]
return err
}
res, err := queryClient.FeeAllowance(
res, err := queryClient.Allowance(
cmd.Context(),
&types.QueryFeeAllowanceRequest{
&types.QueryAllowanceRequest{
Granter: granterAddr.String(),
Grantee: granteeAddr.String(),
},
@ -71,7 +71,7 @@ $ %s query feegrant grant [granter] [grantee]
return err
}
return clientCtx.PrintProto(res.FeeAllowance)
return clientCtx.PrintProto(res.Allowance)
},
}
@ -107,9 +107,9 @@ $ %s query feegrant grants [grantee]
return err
}
res, err := queryClient.FeeAllowances(
res, err := queryClient.Allowances(
cmd.Context(),
&types.QueryFeeAllowancesRequest{
&types.QueryAllowancesRequest{
Grantee: granteeAddr.String(),
Pagination: pageReq,
},

View File

@ -97,7 +97,7 @@ Examples:
return err
}
basic := types.BasicFeeAllowance{
basic := types.BasicAllowance{
SpendLimit: limit,
}
@ -136,7 +136,7 @@ Examples:
return fmt.Errorf("period(%d) cannot reset after expiration(%v)", periodClock, exp)
}
periodic := types.PeriodicFeeAllowance{
periodic := types.PeriodicAllowance{
Basic: basic,
Period: types.ClockDuration(time.Duration(periodClock) * time.Second),
PeriodReset: types.ExpiresAtTime(periodReset),
@ -157,20 +157,20 @@ Examples:
}
if len(allowedMsgs) > 0 {
grant, err = types.NewAllowedMsgFeeAllowance(grant, allowedMsgs)
grant, err = types.NewAllowedMsgAllowance(grant, allowedMsgs)
if err != nil {
return err
}
}
msg, err := types.NewMsgGrantFeeAllowance(grant, granter, grantee)
msg, err := types.NewMsgGrantAllowance(grant, granter, grantee)
if err != nil {
return err
}
svcMsgClientConn := &msgservice.ServiceMsgClientConn{}
msgClient := types.NewMsgClient(svcMsgClientConn)
_, err = msgClient.GrantFeeAllowance(cmd.Context(), msg)
_, err = msgClient.GrantAllowance(cmd.Context(), msg)
if err != nil {
return err
}
@ -215,10 +215,10 @@ Example:
return err
}
msg := types.NewMsgRevokeFeeAllowance(clientCtx.GetFromAddress(), grantee)
msg := types.NewMsgRevokeAllowance(clientCtx.GetFromAddress(), grantee)
svcMsgClientConn := &msgservice.ServiceMsgClientConn{}
msgClient := types.NewMsgClient(svcMsgClientConn)
_, err = msgClient.RevokeFeeAllowance(cmd.Context(), &msg)
_, err = msgClient.RevokeAllowance(cmd.Context(), &msg)
if err != nil {
return err
}

View File

@ -36,7 +36,7 @@ type IntegrationTestSuite struct {
network *network.Network
addedGranter sdk.AccAddress
addedGrantee sdk.AccAddress
addedGrant types.FeeAllowanceGrant
addedGrant types.Grant
}
func NewIntegrationTestSuite(cfg network.Config) *IntegrationTestSuite {
@ -89,7 +89,7 @@ func (s *IntegrationTestSuite) SetupSuite() {
s.addedGranter = granter
s.addedGrantee = grantee
grant, err := types.NewFeeAllowanceGrant(granter, grantee, &types.BasicFeeAllowance{
grant, err := types.NewGrant(granter, grantee, &types.BasicAllowance{
SpendLimit: sdk.NewCoins(fee),
})
s.Require().NoError(err)
@ -113,8 +113,8 @@ func (s *IntegrationTestSuite) TestCmdGetFeeGrant() {
args []string
expectErrMsg string
expectErr bool
respType *types.FeeAllowanceGrant
resp *types.FeeAllowanceGrant
respType *types.Grant
resp *types.Grant
}{
{
"wrong granter",
@ -155,7 +155,7 @@ func (s *IntegrationTestSuite) TestCmdGetFeeGrant() {
},
"",
false,
&types.FeeAllowanceGrant{},
&types.Grant{},
&s.addedGrant,
},
}
@ -175,13 +175,13 @@ func (s *IntegrationTestSuite) TestCmdGetFeeGrant() {
s.Require().NoError(clientCtx.JSONMarshaler.UnmarshalJSON(out.Bytes(), tc.respType), out.String())
s.Require().Equal(tc.respType.Grantee, tc.respType.Grantee)
s.Require().Equal(tc.respType.Granter, tc.respType.Granter)
grant, err := tc.respType.GetFeeGrant()
grant, err := tc.respType.GetGrant()
s.Require().NoError(err)
grant1, err1 := tc.resp.GetFeeGrant()
grant1, err1 := tc.resp.GetGrant()
s.Require().NoError(err1)
s.Require().Equal(
grant.(*types.BasicFeeAllowance).SpendLimit,
grant1.(*types.BasicFeeAllowance).SpendLimit,
grant.(*types.BasicAllowance).SpendLimit,
grant1.(*types.BasicAllowance).SpendLimit,
)
}
})
@ -197,7 +197,7 @@ func (s *IntegrationTestSuite) TestCmdGetFeeGrants() {
name string
args []string
expectErr bool
resp *types.QueryFeeAllowancesResponse
resp *types.QueryAllowancesResponse
expectLength int
}{
{
@ -214,7 +214,7 @@ func (s *IntegrationTestSuite) TestCmdGetFeeGrants() {
"cosmos1nph3cfzk6trsmfxkeu943nvach5qw4vwstnvkl",
fmt.Sprintf("--%s=json", tmcli.OutputFlag),
},
false, &types.QueryFeeAllowancesResponse{}, 0,
false, &types.QueryAllowancesResponse{}, 0,
},
{
"valid req",
@ -222,7 +222,7 @@ func (s *IntegrationTestSuite) TestCmdGetFeeGrants() {
grantee.String(),
fmt.Sprintf("--%s=json", tmcli.OutputFlag),
},
false, &types.QueryFeeAllowancesResponse{}, 1,
false, &types.QueryAllowancesResponse{}, 1,
},
}
@ -238,7 +238,7 @@ func (s *IntegrationTestSuite) TestCmdGetFeeGrants() {
} else {
s.Require().NoError(err)
s.Require().NoError(clientCtx.JSONMarshaler.UnmarshalJSON(out.Bytes(), tc.resp), out.String())
s.Require().Len(tc.resp.FeeAllowances, tc.expectLength)
s.Require().Len(tc.resp.Allowances, tc.expectLength)
}
})
}
@ -733,20 +733,20 @@ func (s *IntegrationTestSuite) TestFilteredFeeAllowance() {
out, err := clitestutil.ExecTestCLICmd(clientCtx, cmd, args)
s.Require().NoError(err)
resp := &types.FeeAllowanceGrant{}
resp := &types.Grant{}
s.Require().NoError(clientCtx.JSONMarshaler.UnmarshalJSON(out.Bytes(), resp), out.String())
s.Require().Equal(resp.Grantee, resp.Grantee)
s.Require().Equal(resp.Granter, resp.Granter)
grant, err := resp.GetFeeGrant()
grant, err := resp.GetGrant()
s.Require().NoError(err)
filteredFeeGrant, err := grant.(*types.AllowedMsgFeeAllowance).GetAllowance()
filteredFeeGrant, err := grant.(*types.AllowedMsgAllowance).GetAllowance()
s.Require().NoError(err)
s.Require().Equal(
filteredFeeGrant.(*types.BasicFeeAllowance).SpendLimit.String(),
filteredFeeGrant.(*types.BasicAllowance).SpendLimit.String(),
spendLimit.String(),
)

View File

@ -19,11 +19,5 @@ pays the fees.
The fee allowance that a grantee receives is specified by an implementation of
the FeeAllowance interface. Two FeeAllowance implementations are provided in
this package: BasicFeeAllowance and PeriodicFeeAllowance.
In order to integrate this into an application, we must use the DeductGrantedFeeDecorator
ante handler from this package instead of the default DeductFeeDecorator from x/auth.
To allow handling txs from empty accounts (with fees paid from an existing account),
we have to re-order the decorators as well.
*/
package feegrant

View File

@ -8,7 +8,7 @@ import (
// InitGenesis will initialize the keeper from a *previously validated* GenesisState
func InitGenesis(ctx sdk.Context, k keeper.Keeper, data *types.GenesisState) error {
for _, f := range data.FeeAllowances {
for _, f := range data.Allowances {
granter, err := sdk.AccAddressFromBech32(f.Granter)
if err != nil {
return err
@ -18,12 +18,12 @@ func InitGenesis(ctx sdk.Context, k keeper.Keeper, data *types.GenesisState) err
return err
}
grant, err := f.GetFeeGrant()
grant, err := f.GetGrant()
if err != nil {
return err
}
err = k.GrantFeeAllowance(ctx, granter, grantee, grant)
err = k.GrantAllowance(ctx, granter, grantee, grant)
if err != nil {
return err
}
@ -40,14 +40,14 @@ func InitGenesis(ctx sdk.Context, k keeper.Keeper, data *types.GenesisState) err
// them to perform any changes needed prior to export.
func ExportGenesis(ctx sdk.Context, k keeper.Keeper) (*types.GenesisState, error) {
time, height := ctx.BlockTime(), ctx.BlockHeight()
var grants []types.FeeAllowanceGrant
var grants []types.Grant
err := k.IterateAllFeeAllowances(ctx, func(grant types.FeeAllowanceGrant) bool {
err := k.IterateAllFeeAllowances(ctx, func(grant types.Grant) bool {
grants = append(grants, grant.PrepareForExport(time, height))
return false
})
return &types.GenesisState{
FeeAllowances: grants,
Allowances: grants,
}, err
}

View File

@ -41,14 +41,14 @@ func (suite *GenesisTestSuite) TestImportExportGenesis() {
now := suite.ctx.BlockHeader().Time
msgSrvr := keeper.NewMsgServerImpl(suite.keeper)
allowance := &types.BasicFeeAllowance{SpendLimit: coins, Expiration: types.ExpiresAtTime(now.AddDate(1, 0, 0))}
err := suite.keeper.GrantFeeAllowance(suite.ctx, granterAddr, granteeAddr, allowance)
allowance := &types.BasicAllowance{SpendLimit: coins, Expiration: types.ExpiresAtTime(now.AddDate(1, 0, 0))}
err := suite.keeper.GrantAllowance(suite.ctx, granterAddr, granteeAddr, allowance)
suite.Require().NoError(err)
genesis, err := feegrant.ExportGenesis(suite.ctx, suite.keeper)
suite.Require().NoError(err)
// revoke fee allowance
_, err = msgSrvr.RevokeFeeAllowance(sdk.WrapSDKContext(suite.ctx), &types.MsgRevokeFeeAllowance{
_, err = msgSrvr.RevokeAllowance(sdk.WrapSDKContext(suite.ctx), &types.MsgRevokeAllowance{
Granter: granterAddr.String(),
Grantee: granteeAddr.String(),
})
@ -67,11 +67,11 @@ func (suite *GenesisTestSuite) TestInitGenesis() {
testCases := []struct {
name string
feeAllowances []types.FeeAllowanceGrant
feeAllowances []types.Grant
}{
{
"invalid granter",
[]types.FeeAllowanceGrant{
[]types.Grant{
{
Granter: "invalid granter",
Grantee: granteeAddr.String(),
@ -80,7 +80,7 @@ func (suite *GenesisTestSuite) TestInitGenesis() {
},
{
"invalid grantee",
[]types.FeeAllowanceGrant{
[]types.Grant{
{
Granter: granterAddr.String(),
Grantee: "invalid grantee",
@ -89,7 +89,7 @@ func (suite *GenesisTestSuite) TestInitGenesis() {
},
{
"invalid allowance",
[]types.FeeAllowanceGrant{
[]types.Grant{
{
Granter: granterAddr.String(),
Grantee: granteeAddr.String(),
@ -102,7 +102,7 @@ func (suite *GenesisTestSuite) TestInitGenesis() {
for _, tc := range testCases {
tc := tc
suite.Run(tc.name, func() {
err := feegrant.InitGenesis(suite.ctx, suite.keeper, &types.GenesisState{FeeAllowances: tc.feeAllowances})
err := feegrant.InitGenesis(suite.ctx, suite.keeper, &types.GenesisState{Allowances: tc.feeAllowances})
suite.Require().Error(err)
})
}

View File

@ -16,8 +16,8 @@ import (
var _ types.QueryServer = Keeper{}
// FeeAllowance returns fee granted to the grantee by the granter.
func (q Keeper) FeeAllowance(c context.Context, req *types.QueryFeeAllowanceRequest) (*types.QueryFeeAllowanceResponse, error) {
// Allowance returns fee granted to the grantee by the granter.
func (q Keeper) Allowance(c context.Context, req *types.QueryAllowanceRequest) (*types.QueryAllowanceResponse, error) {
if req == nil {
return nil, status.Error(codes.InvalidArgument, "invalid request")
}
@ -34,7 +34,7 @@ func (q Keeper) FeeAllowance(c context.Context, req *types.QueryFeeAllowanceRequ
ctx := sdk.UnwrapSDKContext(c)
feeAllowance, err := q.GetFeeAllowance(ctx, granterAddr, granteeAddr)
feeAllowance, err := q.GetAllowance(ctx, granterAddr, granteeAddr)
if err != nil {
return nil, status.Errorf(codes.Internal, err.Error())
}
@ -49,8 +49,8 @@ func (q Keeper) FeeAllowance(c context.Context, req *types.QueryFeeAllowanceRequ
return nil, status.Errorf(codes.Internal, err.Error())
}
return &types.QueryFeeAllowanceResponse{
FeeAllowance: &types.FeeAllowanceGrant{
return &types.QueryAllowanceResponse{
Allowance: &types.Grant{
Granter: granterAddr.String(),
Grantee: granteeAddr.String(),
Allowance: feeAllowanceAny,
@ -58,7 +58,8 @@ func (q Keeper) FeeAllowance(c context.Context, req *types.QueryFeeAllowanceRequ
}, nil
}
func (q Keeper) FeeAllowances(c context.Context, req *types.QueryFeeAllowancesRequest) (*types.QueryFeeAllowancesResponse, error) {
// Allowances queries all the allowances granted to the given grantee.
func (q Keeper) Allowances(c context.Context, req *types.QueryAllowancesRequest) (*types.QueryAllowancesResponse, error) {
if req == nil {
return nil, status.Error(codes.InvalidArgument, "invalid request")
}
@ -70,13 +71,13 @@ func (q Keeper) FeeAllowances(c context.Context, req *types.QueryFeeAllowancesRe
ctx := sdk.UnwrapSDKContext(c)
var grants []*types.FeeAllowanceGrant
var grants []*types.Grant
store := ctx.KVStore(q.storeKey)
grantsStore := prefix.NewStore(store, types.FeeAllowancePrefixByGrantee(granteeAddr))
pageRes, err := query.Paginate(grantsStore, req.Pagination, func(key []byte, value []byte) error {
var grant types.FeeAllowanceGrant
var grant types.Grant
if err := q.cdc.Unmarshal(value, &grant); err != nil {
return err
@ -90,5 +91,5 @@ func (q Keeper) FeeAllowances(c context.Context, req *types.QueryFeeAllowancesRe
return nil, status.Error(codes.Internal, err.Error())
}
return &types.QueryFeeAllowancesResponse{FeeAllowances: grants, Pagination: pageRes}, nil
return &types.QueryAllowancesResponse{Allowances: grants, Pagination: pageRes}, nil
}

View File

@ -9,51 +9,51 @@ func (suite *KeeperTestSuite) TestFeeAllowance() {
testCases := []struct {
name string
req *types.QueryFeeAllowanceRequest
req *types.QueryAllowanceRequest
expectErr bool
preRun func()
postRun func(_ *types.QueryFeeAllowanceResponse)
postRun func(_ *types.QueryAllowanceResponse)
}{
{
"nil request",
nil,
true,
func() {},
func(*types.QueryFeeAllowanceResponse) {},
func(*types.QueryAllowanceResponse) {},
},
{
"fail: invalid granter",
&types.QueryFeeAllowanceRequest{
&types.QueryAllowanceRequest{
Granter: "invalid_granter",
Grantee: suite.addrs[0].String(),
},
true,
func() {},
func(*types.QueryFeeAllowanceResponse) {},
func(*types.QueryAllowanceResponse) {},
},
{
"fail: invalid grantee",
&types.QueryFeeAllowanceRequest{
&types.QueryAllowanceRequest{
Granter: suite.addrs[0].String(),
Grantee: "invalid_grantee",
},
true,
func() {},
func(*types.QueryFeeAllowanceResponse) {},
func(*types.QueryAllowanceResponse) {},
},
{
"fail: no grants",
&types.QueryFeeAllowanceRequest{
&types.QueryAllowanceRequest{
Granter: suite.addrs[0].String(),
Grantee: suite.addrs[1].String(),
},
true,
func() {},
func(*types.QueryFeeAllowanceResponse) {},
func(*types.QueryAllowanceResponse) {},
},
{
"valid query: expect single grant",
&types.QueryFeeAllowanceRequest{
&types.QueryAllowanceRequest{
Granter: suite.addrs[0].String(),
Grantee: suite.addrs[1].String(),
},
@ -61,9 +61,9 @@ func (suite *KeeperTestSuite) TestFeeAllowance() {
func() {
grantFeeAllowance(suite)
},
func(allowance *types.QueryFeeAllowanceResponse) {
suite.Require().Equal(allowance.FeeAllowance.Granter, suite.addrs[0].String())
suite.Require().Equal(allowance.FeeAllowance.Grantee, suite.addrs[1].String())
func(response *types.QueryAllowanceResponse) {
suite.Require().Equal(response.Allowance.Granter, suite.addrs[0].String())
suite.Require().Equal(response.Allowance.Grantee, suite.addrs[1].String())
},
},
}
@ -71,7 +71,7 @@ func (suite *KeeperTestSuite) TestFeeAllowance() {
for _, tc := range testCases {
suite.Run(tc.name, func() {
tc.preRun()
resp, err := suite.keeper.FeeAllowance(suite.ctx, tc.req)
resp, err := suite.keeper.Allowance(suite.ctx, tc.req)
if tc.expectErr {
suite.Require().Error(err)
} else {
@ -85,51 +85,51 @@ func (suite *KeeperTestSuite) TestFeeAllowance() {
func (suite *KeeperTestSuite) TestFeeAllowances() {
testCases := []struct {
name string
req *types.QueryFeeAllowancesRequest
req *types.QueryAllowancesRequest
expectErr bool
preRun func()
postRun func(_ *types.QueryFeeAllowancesResponse)
postRun func(_ *types.QueryAllowancesResponse)
}{
{
"nil request",
nil,
true,
func() {},
func(*types.QueryFeeAllowancesResponse) {},
func(*types.QueryAllowancesResponse) {},
},
{
"fail: invalid grantee",
&types.QueryFeeAllowancesRequest{
&types.QueryAllowancesRequest{
Grantee: "invalid_grantee",
},
true,
func() {},
func(*types.QueryFeeAllowancesResponse) {},
func(*types.QueryAllowancesResponse) {},
},
{
"no grants",
&types.QueryFeeAllowancesRequest{
&types.QueryAllowancesRequest{
Grantee: suite.addrs[1].String(),
},
false,
func() {},
func(resp *types.QueryFeeAllowancesResponse) {
suite.Require().Equal(len(resp.FeeAllowances), 0)
func(resp *types.QueryAllowancesResponse) {
suite.Require().Equal(len(resp.Allowances), 0)
},
},
{
"valid query: expect single grant",
&types.QueryFeeAllowancesRequest{
&types.QueryAllowancesRequest{
Grantee: suite.addrs[1].String(),
},
false,
func() {
grantFeeAllowance(suite)
},
func(resp *types.QueryFeeAllowancesResponse) {
suite.Require().Equal(len(resp.FeeAllowances), 1)
suite.Require().Equal(resp.FeeAllowances[0].Granter, suite.addrs[0].String())
suite.Require().Equal(resp.FeeAllowances[0].Grantee, suite.addrs[1].String())
func(resp *types.QueryAllowancesResponse) {
suite.Require().Equal(len(resp.Allowances), 1)
suite.Require().Equal(resp.Allowances[0].Granter, suite.addrs[0].String())
suite.Require().Equal(resp.Allowances[0].Grantee, suite.addrs[1].String())
},
},
}
@ -137,7 +137,7 @@ func (suite *KeeperTestSuite) TestFeeAllowances() {
for _, tc := range testCases {
suite.Run(tc.name, func() {
tc.preRun()
resp, err := suite.keeper.FeeAllowances(suite.ctx, tc.req)
resp, err := suite.keeper.Allowances(suite.ctx, tc.req)
if tc.expectErr {
suite.Require().Error(err)
} else {
@ -149,7 +149,7 @@ func (suite *KeeperTestSuite) TestFeeAllowances() {
}
func grantFeeAllowance(suite *KeeperTestSuite) {
err := suite.app.FeeGrantKeeper.GrantFeeAllowance(suite.sdkCtx, suite.addrs[0], suite.addrs[1], &types.BasicFeeAllowance{
err := suite.app.FeeGrantKeeper.GrantAllowance(suite.sdkCtx, suite.addrs[0], suite.addrs[1], &types.BasicAllowance{
SpendLimit: sdk.NewCoins(sdk.NewInt64Coin("atom", 555)),
Expiration: types.ExpiresAtHeight(334455),
})

View File

@ -36,8 +36,8 @@ func (k Keeper) Logger(ctx sdk.Context) log.Logger {
return ctx.Logger().With("module", fmt.Sprintf("x/%s", types.ModuleName))
}
// GrantFeeAllowance creates a new grant
func (k Keeper) GrantFeeAllowance(ctx sdk.Context, granter, grantee sdk.AccAddress, feeAllowance types.FeeAllowanceI) error {
// GrantAllowance creates a new grant
func (k Keeper) GrantAllowance(ctx sdk.Context, granter, grantee sdk.AccAddress, feeAllowance types.FeeAllowanceI) error {
// create the account if it is not in account state
granteeAcc := k.authKeeper.GetAccount(ctx, grantee)
@ -48,7 +48,7 @@ func (k Keeper) GrantFeeAllowance(ctx sdk.Context, granter, grantee sdk.AccAddre
store := ctx.KVStore(k.storeKey)
key := types.FeeAllowanceKey(granter, grantee)
grant, err := types.NewFeeAllowanceGrant(granter, grantee, feeAllowance)
grant, err := types.NewGrant(granter, grantee, feeAllowance)
if err != nil {
return err
}
@ -71,9 +71,9 @@ func (k Keeper) GrantFeeAllowance(ctx sdk.Context, granter, grantee sdk.AccAddre
return nil
}
// revokeFeeAllowance removes an existing grant
func (k Keeper) revokeFeeAllowance(ctx sdk.Context, granter, grantee sdk.AccAddress) error {
_, err := k.getFeeGrant(ctx, granter, grantee)
// revokeAllowance removes an existing grant
func (k Keeper) revokeAllowance(ctx sdk.Context, granter, grantee sdk.AccAddress) error {
_, err := k.getGrant(ctx, granter, grantee)
if err != nil {
return err
}
@ -92,20 +92,20 @@ func (k Keeper) revokeFeeAllowance(ctx sdk.Context, granter, grantee sdk.AccAddr
return nil
}
// GetFeeAllowance returns the allowance between the granter and grantee.
// GetAllowance returns the allowance between the granter and grantee.
// If there is none, it returns nil, nil.
// Returns an error on parsing issues
func (k Keeper) GetFeeAllowance(ctx sdk.Context, granter, grantee sdk.AccAddress) (types.FeeAllowanceI, error) {
grant, err := k.getFeeGrant(ctx, granter, grantee)
func (k Keeper) GetAllowance(ctx sdk.Context, granter, grantee sdk.AccAddress) (types.FeeAllowanceI, error) {
grant, err := k.getGrant(ctx, granter, grantee)
if err != nil {
return nil, err
}
return grant.GetFeeGrant()
return grant.GetGrant()
}
// getFeeGrant returns entire grant between both accounts
func (k Keeper) getFeeGrant(ctx sdk.Context, granter sdk.AccAddress, grantee sdk.AccAddress) (*types.FeeAllowanceGrant, error) {
// getGrant returns entire grant between both accounts
func (k Keeper) getGrant(ctx sdk.Context, granter sdk.AccAddress, grantee sdk.AccAddress) (*types.Grant, error) {
store := ctx.KVStore(k.storeKey)
key := types.FeeAllowanceKey(granter, grantee)
bz := store.Get(key)
@ -113,7 +113,7 @@ func (k Keeper) getFeeGrant(ctx sdk.Context, granter sdk.AccAddress, grantee sdk
return nil, sdkerrors.Wrap(sdkerrors.ErrUnauthorized, "fee-grant not found")
}
var feegrant types.FeeAllowanceGrant
var feegrant types.Grant
if err := k.cdc.Unmarshal(bz, &feegrant); err != nil {
return nil, err
}
@ -124,7 +124,7 @@ func (k Keeper) getFeeGrant(ctx sdk.Context, granter sdk.AccAddress, grantee sdk
// IterateAllFeeAllowances iterates over all the grants in the store.
// Callback to get all data, returns true to stop, false to keep reading
// Calling this without pagination is very expensive and only designed for export genesis
func (k Keeper) IterateAllFeeAllowances(ctx sdk.Context, cb func(types.FeeAllowanceGrant) bool) error {
func (k Keeper) IterateAllFeeAllowances(ctx sdk.Context, cb func(grant types.Grant) bool) error {
store := ctx.KVStore(k.storeKey)
iter := sdk.KVStorePrefixIterator(store, types.FeeAllowanceKeyPrefix)
defer iter.Close()
@ -132,7 +132,7 @@ func (k Keeper) IterateAllFeeAllowances(ctx sdk.Context, cb func(types.FeeAllowa
stop := false
for ; iter.Valid() && !stop; iter.Next() {
bz := iter.Value()
var feeGrant types.FeeAllowanceGrant
var feeGrant types.Grant
if err := k.cdc.Unmarshal(bz, &feeGrant); err != nil {
return err
}
@ -145,12 +145,12 @@ func (k Keeper) IterateAllFeeAllowances(ctx sdk.Context, cb func(types.FeeAllowa
// UseGrantedFees will try to pay the given fee from the granter's account as requested by the grantee
func (k Keeper) UseGrantedFees(ctx sdk.Context, granter, grantee sdk.AccAddress, fee sdk.Coins, msgs []sdk.Msg) error {
f, err := k.getFeeGrant(ctx, granter, grantee)
f, err := k.getGrant(ctx, granter, grantee)
if err != nil {
return err
}
grant, err := f.GetFeeGrant()
grant, err := f.GetGrant()
if err != nil {
return err
}
@ -159,7 +159,7 @@ func (k Keeper) UseGrantedFees(ctx sdk.Context, granter, grantee sdk.AccAddress,
if remove {
// Ignoring the `revokeFeeAllowance` error, because the user has enough grants to perform this transaction.
k.revokeFeeAllowance(ctx, granter, grantee)
k.revokeAllowance(ctx, granter, grantee)
if err != nil {
return err
}
@ -176,7 +176,7 @@ func (k Keeper) UseGrantedFees(ctx sdk.Context, granter, grantee sdk.AccAddress,
emitUseGrantEvent(ctx, granter.String(), grantee.String())
// if fee allowance is accepted, store the updated state of the allowance
return k.GrantFeeAllowance(ctx, granter, grantee, grant)
return k.GrantAllowance(ctx, granter, grantee, grant)
}
func emitUseGrantEvent(ctx sdk.Context, granter, grantee string) {

View File

@ -46,46 +46,46 @@ func (suite *KeeperTestSuite) SetupTest() {
func (suite *KeeperTestSuite) TestKeeperCrud() {
// some helpers
eth := sdk.NewCoins(sdk.NewInt64Coin("eth", 123))
basic := &types.BasicFeeAllowance{
basic := &types.BasicAllowance{
SpendLimit: suite.atom,
Expiration: types.ExpiresAtHeight(334455),
}
basic2 := &types.BasicFeeAllowance{
basic2 := &types.BasicAllowance{
SpendLimit: eth,
Expiration: types.ExpiresAtHeight(172436),
}
// let's set up some initial state here
err := suite.keeper.GrantFeeAllowance(suite.sdkCtx, suite.addrs[0], suite.addrs[1], basic)
err := suite.keeper.GrantAllowance(suite.sdkCtx, suite.addrs[0], suite.addrs[1], basic)
suite.Require().NoError(err)
err = suite.keeper.GrantFeeAllowance(suite.sdkCtx, suite.addrs[0], suite.addrs[2], basic2)
err = suite.keeper.GrantAllowance(suite.sdkCtx, suite.addrs[0], suite.addrs[2], basic2)
suite.Require().NoError(err)
err = suite.keeper.GrantFeeAllowance(suite.sdkCtx, suite.addrs[1], suite.addrs[2], basic)
err = suite.keeper.GrantAllowance(suite.sdkCtx, suite.addrs[1], suite.addrs[2], basic)
suite.Require().NoError(err)
err = suite.keeper.GrantFeeAllowance(suite.sdkCtx, suite.addrs[1], suite.addrs[3], basic)
err = suite.keeper.GrantAllowance(suite.sdkCtx, suite.addrs[1], suite.addrs[3], basic)
suite.Require().NoError(err)
err = suite.keeper.GrantFeeAllowance(suite.sdkCtx, suite.addrs[3], suite.addrs[0], basic2)
err = suite.keeper.GrantAllowance(suite.sdkCtx, suite.addrs[3], suite.addrs[0], basic2)
suite.Require().NoError(err)
// remove some, overwrite other
_, err = suite.msgSrvr.RevokeFeeAllowance(suite.ctx, &types.MsgRevokeFeeAllowance{Granter: suite.addrs[0].String(), Grantee: suite.addrs[1].String()})
_, err = suite.msgSrvr.RevokeAllowance(suite.ctx, &types.MsgRevokeAllowance{Granter: suite.addrs[0].String(), Grantee: suite.addrs[1].String()})
suite.Require().NoError(err)
_, err = suite.msgSrvr.RevokeFeeAllowance(suite.ctx, &types.MsgRevokeFeeAllowance{Granter: suite.addrs[0].String(), Grantee: suite.addrs[2].String()})
_, err = suite.msgSrvr.RevokeAllowance(suite.ctx, &types.MsgRevokeAllowance{Granter: suite.addrs[0].String(), Grantee: suite.addrs[2].String()})
suite.Require().NoError(err)
// revoke non-exist fee allowance
_, err = suite.msgSrvr.RevokeFeeAllowance(suite.ctx, &types.MsgRevokeFeeAllowance{Granter: suite.addrs[0].String(), Grantee: suite.addrs[2].String()})
_, err = suite.msgSrvr.RevokeAllowance(suite.ctx, &types.MsgRevokeAllowance{Granter: suite.addrs[0].String(), Grantee: suite.addrs[2].String()})
suite.Require().Error(err)
err = suite.keeper.GrantFeeAllowance(suite.sdkCtx, suite.addrs[0], suite.addrs[2], basic)
err = suite.keeper.GrantAllowance(suite.sdkCtx, suite.addrs[0], suite.addrs[2], basic)
suite.Require().NoError(err)
err = suite.keeper.GrantFeeAllowance(suite.sdkCtx, suite.addrs[1], suite.addrs[2], basic2)
err = suite.keeper.GrantAllowance(suite.sdkCtx, suite.addrs[1], suite.addrs[2], basic2)
suite.Require().NoError(err)
// end state:
@ -122,7 +122,7 @@ func (suite *KeeperTestSuite) TestKeeperCrud() {
for name, tc := range cases {
tc := tc
suite.Run(name, func() {
allow, _ := suite.keeper.GetFeeAllowance(suite.sdkCtx, tc.granter, tc.grantee)
allow, _ := suite.keeper.GetAllowance(suite.sdkCtx, tc.granter, tc.grantee)
if tc.allowance == nil {
suite.Nil(allow)
@ -136,25 +136,25 @@ func (suite *KeeperTestSuite) TestKeeperCrud() {
suite.Require().NoError(err)
// let's grant and revoke authorization to non existing account
err = suite.keeper.GrantFeeAllowance(suite.sdkCtx, suite.addrs[3], accAddr, basic2)
err = suite.keeper.GrantAllowance(suite.sdkCtx, suite.addrs[3], accAddr, basic2)
suite.Require().NoError(err)
_, err = suite.keeper.GetFeeAllowance(suite.sdkCtx, suite.addrs[3], accAddr)
_, err = suite.keeper.GetAllowance(suite.sdkCtx, suite.addrs[3], accAddr)
suite.Require().NoError(err)
_, err = suite.msgSrvr.RevokeFeeAllowance(suite.ctx, &types.MsgRevokeFeeAllowance{Granter: suite.addrs[3].String(), Grantee: accAddr.String()})
_, err = suite.msgSrvr.RevokeAllowance(suite.ctx, &types.MsgRevokeAllowance{Granter: suite.addrs[3].String(), Grantee: accAddr.String()})
suite.Require().NoError(err)
}
func (suite *KeeperTestSuite) TestUseGrantedFee() {
eth := sdk.NewCoins(sdk.NewInt64Coin("eth", 123))
future := &types.BasicFeeAllowance{
future := &types.BasicAllowance{
SpendLimit: suite.atom,
Expiration: types.ExpiresAtHeight(5678),
}
expired := &types.BasicFeeAllowance{
expired := &types.BasicAllowance{
SpendLimit: eth,
Expiration: types.ExpiresAtHeight(55),
}
@ -164,7 +164,7 @@ func (suite *KeeperTestSuite) TestUseGrantedFee() {
_ = hugeAtom
smallAtom := sdk.NewCoins(sdk.NewInt64Coin("atom", 1))
_ = smallAtom
futureAfterSmall := &types.BasicFeeAllowance{
futureAfterSmall := &types.BasicAllowance{
SpendLimit: sdk.NewCoins(sdk.NewInt64Coin("atom", 554)),
Expiration: types.ExpiresAtHeight(5678),
}
@ -214,10 +214,10 @@ func (suite *KeeperTestSuite) TestUseGrantedFee() {
// addr -> addr2 (future)
// addr -> addr3 (expired)
err := suite.keeper.GrantFeeAllowance(suite.sdkCtx, suite.addrs[0], suite.addrs[1], future)
err := suite.keeper.GrantAllowance(suite.sdkCtx, suite.addrs[0], suite.addrs[1], future)
suite.Require().NoError(err)
err = suite.keeper.GrantFeeAllowance(suite.sdkCtx, suite.addrs[0], suite.addrs[3], expired)
err = suite.keeper.GrantAllowance(suite.sdkCtx, suite.addrs[0], suite.addrs[3], expired)
suite.Require().NoError(err)
err = suite.keeper.UseGrantedFees(suite.sdkCtx, tc.granter, tc.grantee, tc.fee, []sdk.Msg{})
@ -227,7 +227,7 @@ func (suite *KeeperTestSuite) TestUseGrantedFee() {
suite.Error(err)
}
loaded, _ := suite.keeper.GetFeeAllowance(suite.sdkCtx, tc.granter, tc.grantee)
loaded, _ := suite.keeper.GetAllowance(suite.sdkCtx, tc.granter, tc.grantee)
suite.Equal(tc.final, loaded)
})
@ -236,20 +236,20 @@ func (suite *KeeperTestSuite) TestUseGrantedFee() {
func (suite *KeeperTestSuite) TestIterateGrants() {
eth := sdk.NewCoins(sdk.NewInt64Coin("eth", 123))
allowance := &types.BasicFeeAllowance{
allowance := &types.BasicAllowance{
SpendLimit: suite.atom,
Expiration: types.ExpiresAtHeight(5678),
}
allowance1 := &types.BasicFeeAllowance{
allowance1 := &types.BasicAllowance{
SpendLimit: eth,
Expiration: types.ExpiresAtTime(suite.sdkCtx.BlockTime().Add(24 * time.Hour)),
}
suite.keeper.GrantFeeAllowance(suite.sdkCtx, suite.addrs[0], suite.addrs[1], allowance)
suite.keeper.GrantFeeAllowance(suite.sdkCtx, suite.addrs[2], suite.addrs[1], allowance1)
suite.keeper.GrantAllowance(suite.sdkCtx, suite.addrs[0], suite.addrs[1], allowance)
suite.keeper.GrantAllowance(suite.sdkCtx, suite.addrs[2], suite.addrs[1], allowance1)
suite.keeper.IterateAllFeeAllowances(suite.sdkCtx, func(grant types.FeeAllowanceGrant) bool {
suite.keeper.IterateAllFeeAllowances(suite.sdkCtx, func(grant types.Grant) bool {
suite.Require().Equal(suite.addrs[1].String(), grant.Grantee)
suite.Require().Contains([]string{suite.addrs[0].String(), suite.addrs[2].String()}, grant.Granter)
return true

View File

@ -23,7 +23,8 @@ func NewMsgServerImpl(k Keeper) types.MsgServer {
var _ types.MsgServer = msgServer{}
func (k msgServer) GrantFeeAllowance(goCtx context.Context, msg *types.MsgGrantFeeAllowance) (*types.MsgGrantFeeAllowanceResponse, error) {
// GrantAllowance grants an allowance from the granter's funds to be used by the grantee.
func (k msgServer) GrantAllowance(goCtx context.Context, msg *types.MsgGrantAllowance) (*types.MsgGrantAllowanceResponse, error) {
ctx := sdk.UnwrapSDKContext(goCtx)
grantee, err := sdk.AccAddressFromBech32(msg.Grantee)
@ -37,7 +38,7 @@ func (k msgServer) GrantFeeAllowance(goCtx context.Context, msg *types.MsgGrantF
}
// Checking for duplicate entry
if f, _ := k.Keeper.GetFeeAllowance(ctx, granter, grantee); f != nil {
if f, _ := k.Keeper.GetAllowance(ctx, granter, grantee); f != nil {
return nil, sdkerrors.Wrap(sdkerrors.ErrInvalidRequest, "fee allowance already exists")
}
@ -46,15 +47,16 @@ func (k msgServer) GrantFeeAllowance(goCtx context.Context, msg *types.MsgGrantF
return nil, err
}
err = k.Keeper.GrantFeeAllowance(ctx, granter, grantee, allowance)
err = k.Keeper.GrantAllowance(ctx, granter, grantee, allowance)
if err != nil {
return nil, err
}
return &types.MsgGrantFeeAllowanceResponse{}, nil
return &types.MsgGrantAllowanceResponse{}, nil
}
func (k msgServer) RevokeFeeAllowance(goCtx context.Context, msg *types.MsgRevokeFeeAllowance) (*types.MsgRevokeFeeAllowanceResponse, error) {
// RevokeAllowance revokes a fee allowance between a granter and grantee.
func (k msgServer) RevokeAllowance(goCtx context.Context, msg *types.MsgRevokeAllowance) (*types.MsgRevokeAllowanceResponse, error) {
ctx := sdk.UnwrapSDKContext(goCtx)
grantee, err := sdk.AccAddressFromBech32(msg.Grantee)
@ -67,10 +69,10 @@ func (k msgServer) RevokeFeeAllowance(goCtx context.Context, msg *types.MsgRevok
return nil, err
}
err = k.Keeper.revokeFeeAllowance(ctx, granter, grantee)
err = k.Keeper.revokeAllowance(ctx, granter, grantee)
if err != nil {
return nil, err
}
return &types.MsgRevokeFeeAllowanceResponse{}, nil
return &types.MsgRevokeAllowanceResponse{}, nil
}

View File

@ -9,16 +9,16 @@ import (
func (suite *KeeperTestSuite) TestGrantFeeAllowance() {
testCases := []struct {
name string
req func() *types.MsgGrantFeeAllowance
req func() *types.MsgGrantAllowance
expectErr bool
errMsg string
}{
{
"invalid granter address",
func() *types.MsgGrantFeeAllowance {
any, err := codectypes.NewAnyWithValue(&types.BasicFeeAllowance{})
func() *types.MsgGrantAllowance {
any, err := codectypes.NewAnyWithValue(&types.BasicAllowance{})
suite.Require().NoError(err)
return &types.MsgGrantFeeAllowance{
return &types.MsgGrantAllowance{
Granter: "invalid-granter",
Grantee: suite.addrs[1].String(),
Allowance: any,
@ -29,10 +29,10 @@ func (suite *KeeperTestSuite) TestGrantFeeAllowance() {
},
{
"invalid grantee address",
func() *types.MsgGrantFeeAllowance {
any, err := codectypes.NewAnyWithValue(&types.BasicFeeAllowance{})
func() *types.MsgGrantAllowance {
any, err := codectypes.NewAnyWithValue(&types.BasicAllowance{})
suite.Require().NoError(err)
return &types.MsgGrantFeeAllowance{
return &types.MsgGrantAllowance{
Granter: suite.addrs[0].String(),
Grantee: "invalid-grantee",
Allowance: any,
@ -43,13 +43,13 @@ func (suite *KeeperTestSuite) TestGrantFeeAllowance() {
},
{
"valid: basic fee allowance",
func() *types.MsgGrantFeeAllowance {
any, err := codectypes.NewAnyWithValue(&types.BasicFeeAllowance{
func() *types.MsgGrantAllowance {
any, err := codectypes.NewAnyWithValue(&types.BasicAllowance{
SpendLimit: suite.atom,
Expiration: types.ExpiresAtTime(suite.sdkCtx.BlockTime().AddDate(1, 0, 0)),
})
suite.Require().NoError(err)
return &types.MsgGrantFeeAllowance{
return &types.MsgGrantAllowance{
Granter: suite.addrs[0].String(),
Grantee: suite.addrs[1].String(),
Allowance: any,
@ -60,13 +60,13 @@ func (suite *KeeperTestSuite) TestGrantFeeAllowance() {
},
{
"fail: fee allowance exists",
func() *types.MsgGrantFeeAllowance {
any, err := codectypes.NewAnyWithValue(&types.BasicFeeAllowance{
func() *types.MsgGrantAllowance {
any, err := codectypes.NewAnyWithValue(&types.BasicAllowance{
SpendLimit: suite.atom,
Expiration: types.ExpiresAtTime(suite.sdkCtx.BlockTime().AddDate(1, 0, 0)),
})
suite.Require().NoError(err)
return &types.MsgGrantFeeAllowance{
return &types.MsgGrantAllowance{
Granter: suite.addrs[0].String(),
Grantee: suite.addrs[1].String(),
Allowance: any,
@ -77,15 +77,15 @@ func (suite *KeeperTestSuite) TestGrantFeeAllowance() {
},
{
"valid: periodic fee allowance",
func() *types.MsgGrantFeeAllowance {
any, err := codectypes.NewAnyWithValue(&types.PeriodicFeeAllowance{
Basic: types.BasicFeeAllowance{
func() *types.MsgGrantAllowance {
any, err := codectypes.NewAnyWithValue(&types.PeriodicAllowance{
Basic: types.BasicAllowance{
SpendLimit: suite.atom,
Expiration: types.ExpiresAtTime(suite.sdkCtx.BlockTime().AddDate(1, 0, 0)),
},
})
suite.Require().NoError(err)
return &types.MsgGrantFeeAllowance{
return &types.MsgGrantAllowance{
Granter: suite.addrs[1].String(),
Grantee: suite.addrs[2].String(),
Allowance: any,
@ -96,15 +96,15 @@ func (suite *KeeperTestSuite) TestGrantFeeAllowance() {
},
{
"error: fee allowance exists",
func() *types.MsgGrantFeeAllowance {
any, err := codectypes.NewAnyWithValue(&types.PeriodicFeeAllowance{
Basic: types.BasicFeeAllowance{
func() *types.MsgGrantAllowance {
any, err := codectypes.NewAnyWithValue(&types.PeriodicAllowance{
Basic: types.BasicAllowance{
SpendLimit: suite.atom,
Expiration: types.ExpiresAtTime(suite.sdkCtx.BlockTime().AddDate(1, 0, 0)),
},
})
suite.Require().NoError(err)
return &types.MsgGrantFeeAllowance{
return &types.MsgGrantAllowance{
Granter: suite.addrs[1].String(),
Grantee: suite.addrs[2].String(),
Allowance: any,
@ -116,7 +116,7 @@ func (suite *KeeperTestSuite) TestGrantFeeAllowance() {
}
for _, tc := range testCases {
suite.Run(tc.name, func() {
_, err := suite.msgSrvr.GrantFeeAllowance(suite.ctx, tc.req())
_, err := suite.msgSrvr.GrantAllowance(suite.ctx, tc.req())
if tc.expectErr {
suite.Require().Error(err)
suite.Require().Contains(err.Error(), tc.errMsg)
@ -129,14 +129,14 @@ func (suite *KeeperTestSuite) TestRevokeFeeAllowance() {
testCases := []struct {
name string
request *types.MsgRevokeFeeAllowance
request *types.MsgRevokeAllowance
preRun func()
expectErr bool
errMsg string
}{
{
"error: invalid granter",
&types.MsgRevokeFeeAllowance{
&types.MsgRevokeAllowance{
Granter: "invalid-granter",
Grantee: suite.addrs[1].String(),
},
@ -146,7 +146,7 @@ func (suite *KeeperTestSuite) TestRevokeFeeAllowance() {
},
{
"error: invalid grantee",
&types.MsgRevokeFeeAllowance{
&types.MsgRevokeAllowance{
Granter: suite.addrs[0].String(),
Grantee: "invalid-grantee",
},
@ -156,7 +156,7 @@ func (suite *KeeperTestSuite) TestRevokeFeeAllowance() {
},
{
"error: fee allowance not found",
&types.MsgRevokeFeeAllowance{
&types.MsgRevokeAllowance{
Granter: suite.addrs[0].String(),
Grantee: suite.addrs[1].String(),
},
@ -166,29 +166,29 @@ func (suite *KeeperTestSuite) TestRevokeFeeAllowance() {
},
{
"success: revoke fee allowance",
&types.MsgRevokeFeeAllowance{
&types.MsgRevokeAllowance{
Granter: suite.addrs[0].String(),
Grantee: suite.addrs[1].String(),
},
func() {
// removing fee allowance from previous tests if exists
suite.msgSrvr.RevokeFeeAllowance(suite.ctx, &types.MsgRevokeFeeAllowance{
suite.msgSrvr.RevokeAllowance(suite.ctx, &types.MsgRevokeAllowance{
Granter: suite.addrs[0].String(),
Grantee: suite.addrs[1].String(),
})
any, err := codectypes.NewAnyWithValue(&types.PeriodicFeeAllowance{
Basic: types.BasicFeeAllowance{
any, err := codectypes.NewAnyWithValue(&types.PeriodicAllowance{
Basic: types.BasicAllowance{
SpendLimit: suite.atom,
Expiration: types.ExpiresAtTime(suite.sdkCtx.BlockTime().AddDate(1, 0, 0)),
},
})
suite.Require().NoError(err)
req := &types.MsgGrantFeeAllowance{
req := &types.MsgGrantAllowance{
Granter: suite.addrs[0].String(),
Grantee: suite.addrs[1].String(),
Allowance: any,
}
_, err = suite.msgSrvr.GrantFeeAllowance(suite.ctx, req)
_, err = suite.msgSrvr.GrantAllowance(suite.ctx, req)
suite.Require().NoError(err)
},
false,
@ -196,7 +196,7 @@ func (suite *KeeperTestSuite) TestRevokeFeeAllowance() {
},
{
"error: check fee allowance revoked",
&types.MsgRevokeFeeAllowance{
&types.MsgRevokeAllowance{
Granter: suite.addrs[0].String(),
Grantee: suite.addrs[1].String(),
},
@ -209,7 +209,7 @@ func (suite *KeeperTestSuite) TestRevokeFeeAllowance() {
for _, tc := range testCases {
suite.Run(tc.name, func() {
tc.preRun()
_, err := suite.msgSrvr.RevokeFeeAllowance(suite.ctx, tc.request)
_, err := suite.msgSrvr.RevokeAllowance(suite.ctx, tc.request)
if tc.expectErr {
suite.Require().Error(err)
suite.Require().Contains(err.Error(), tc.errMsg)

View File

@ -15,7 +15,7 @@ func NewDecodeStore(cdc codec.Codec) func(kvA, kvB kv.Pair) string {
return func(kvA, kvB kv.Pair) string {
switch {
case bytes.Equal(kvA.Key[:1], types.FeeAllowanceKeyPrefix):
var grantA, grantB types.FeeAllowanceGrant
var grantA, grantB types.Grant
cdc.MustUnmarshal(kvA.Value, &grantA)
cdc.MustUnmarshal(kvB.Value, &grantB)
return fmt.Sprintf("%v\n%v", grantA, grantB)

View File

@ -25,7 +25,7 @@ func TestDecodeStore(t *testing.T) {
cdc := simapp.MakeTestEncodingConfig().Marshaler
dec := simulation.NewDecodeStore(cdc)
grant, err := types.NewFeeAllowanceGrant(granterAddr, granteeAddr, &types.BasicFeeAllowance{
grant, err := types.NewGrant(granterAddr, granteeAddr, &types.BasicAllowance{
SpendLimit: sdk.NewCoins(sdk.NewCoin("foo", sdk.NewInt(100))),
})

View File

@ -15,8 +15,8 @@ import (
const feegrant = "feegrant"
// genFeeGrants returns a slice of randomly generated allowances.
func genFeeGrants(r *rand.Rand, accounts []simtypes.Account) []types.FeeAllowanceGrant {
allowances := make([]types.FeeAllowanceGrant, len(accounts)-1)
func genFeeGrants(r *rand.Rand, accounts []simtypes.Account) []types.Grant {
allowances := make([]types.Grant, len(accounts)-1)
for i := 0; i < len(accounts)-1; i++ {
granter := accounts[i].Address
grantee := accounts[i+1].Address
@ -25,22 +25,22 @@ func genFeeGrants(r *rand.Rand, accounts []simtypes.Account) []types.FeeAllowanc
return allowances
}
func generateRandomAllowances(granter, grantee sdk.AccAddress, r *rand.Rand) types.FeeAllowanceGrant {
allowances := make([]types.FeeAllowanceGrant, 3)
func generateRandomAllowances(granter, grantee sdk.AccAddress, r *rand.Rand) types.Grant {
allowances := make([]types.Grant, 3)
spendLimit := sdk.NewCoins(sdk.NewCoin("stake", sdk.NewInt(100)))
periodSpendLimit := sdk.NewCoins(sdk.NewCoin("stake", sdk.NewInt(10)))
basic := types.BasicFeeAllowance{
basic := types.BasicAllowance{
SpendLimit: spendLimit,
}
basicAllowance, err := types.NewFeeAllowanceGrant(granter, grantee, &basic)
basicAllowance, err := types.NewGrant(granter, grantee, &basic)
if err != nil {
panic(err)
}
allowances[0] = basicAllowance
periodicAllowance, err := types.NewFeeAllowanceGrant(granter, grantee, &types.PeriodicFeeAllowance{
periodicAllowance, err := types.NewGrant(granter, grantee, &types.PeriodicAllowance{
Basic: basic,
PeriodSpendLimit: periodSpendLimit,
Period: types.ClockDuration(time.Hour),
@ -50,7 +50,7 @@ func generateRandomAllowances(granter, grantee sdk.AccAddress, r *rand.Rand) typ
}
allowances[1] = periodicAllowance
filteredAllowance, err := types.NewFeeAllowanceGrant(granter, grantee, &types.AllowedMsgFeeAllowance{
filteredAllowance, err := types.NewGrant(granter, grantee, &types.AllowedMsgAllowance{
Allowance: basicAllowance.GetAllowance(),
AllowedMessages: []string{"/cosmos.gov.v1beta1.MsgSubmitProposal"},
})
@ -64,7 +64,7 @@ func generateRandomAllowances(granter, grantee sdk.AccAddress, r *rand.Rand) typ
// RandomizedGenState generates a random GenesisState for feegrant
func RandomizedGenState(simState *module.SimulationState) {
var feegrants []types.FeeAllowanceGrant
var feegrants []types.Grant
simState.AppParams.GetOrGenerate(
simState.Cdc, feegrant, &feegrants, simState.Rand,

View File

@ -36,5 +36,5 @@ func TestRandomizedGenState(t *testing.T) {
var feegrantGenesis types.GenesisState
simState.Cdc.MustUnmarshalJSON(simState.GenState[types.ModuleName], &feegrantGenesis)
require.Len(t, feegrantGenesis.FeeAllowances, len(accounts)-1)
require.Len(t, feegrantGenesis.Allowances, len(accounts)-1)
}

View File

@ -24,8 +24,8 @@ const (
)
var (
TypeMsgGrantFeeAllowance = sdk.MsgTypeURL(&types.MsgGrantFeeAllowance{})
TypeMsgRevokeFeeAllowance = sdk.MsgTypeURL(&types.MsgRevokeFeeAllowance{})
TypeMsgGrantFeeAllowance = sdk.MsgTypeURL(&types.MsgGrantAllowance{})
TypeMsgRevokeFeeAllowance = sdk.MsgTypeURL(&types.MsgRevokeAllowance{})
)
func WeightedOperations(
@ -74,7 +74,7 @@ func SimulateMsgGrantFeeAllowance(ak types.AccountKeeper, bk types.BankKeeper, k
return simtypes.NoOpMsg(types.ModuleName, TypeMsgGrantFeeAllowance, "grantee and granter cannot be same"), nil, nil
}
if f, _ := k.GetFeeAllowance(ctx, granter.Address, grantee.Address); f != nil {
if f, _ := k.GetAllowance(ctx, granter.Address, grantee.Address); f != nil {
return simtypes.NoOpMsg(types.ModuleName, TypeMsgGrantFeeAllowance, "fee allowance exists"), nil, nil
}
@ -91,7 +91,7 @@ func SimulateMsgGrantFeeAllowance(ak types.AccountKeeper, bk types.BankKeeper, k
return simtypes.NoOpMsg(types.ModuleName, TypeMsgGrantFeeAllowance, "unable to grant empty coins as SpendLimit"), nil, nil
}
msg, err := types.NewMsgGrantFeeAllowance(&types.BasicFeeAllowance{
msg, err := types.NewMsgGrantAllowance(&types.BasicAllowance{
SpendLimit: spendableCoins,
Expiration: types.ExpiresAtTime(ctx.BlockTime().Add(30 * time.Hour)),
}, granter.Address, grantee.Address)
@ -102,7 +102,7 @@ func SimulateMsgGrantFeeAllowance(ak types.AccountKeeper, bk types.BankKeeper, k
txGen := simappparams.MakeTestEncodingConfig().TxConfig
svcMsgClientConn := &msgservice.ServiceMsgClientConn{}
feegrantMsgClient := types.NewMsgClient(svcMsgClientConn)
_, err = feegrantMsgClient.GrantFeeAllowance(context.Background(), msg)
_, err = feegrantMsgClient.GrantAllowance(context.Background(), msg)
if err != nil {
return simtypes.NoOpMsg(types.ModuleName, TypeMsgGrantFeeAllowance, err.Error()), nil, err
}
@ -139,7 +139,7 @@ func SimulateMsgRevokeFeeAllowance(ak types.AccountKeeper, bk types.BankKeeper,
hasGrant := false
var granterAddr sdk.AccAddress
var granteeAddr sdk.AccAddress
k.IterateAllFeeAllowances(ctx, func(grant types.FeeAllowanceGrant) bool {
k.IterateAllFeeAllowances(ctx, func(grant types.Grant) bool {
granter, err := sdk.AccAddressFromBech32(grant.Granter)
if err != nil {
@ -171,12 +171,12 @@ func SimulateMsgRevokeFeeAllowance(ak types.AccountKeeper, bk types.BankKeeper,
return simtypes.NoOpMsg(types.ModuleName, TypeMsgRevokeFeeAllowance, err.Error()), nil, err
}
msg := types.NewMsgRevokeFeeAllowance(granterAddr, granteeAddr)
msg := types.NewMsgRevokeAllowance(granterAddr, granteeAddr)
txGen := simappparams.MakeTestEncodingConfig().TxConfig
svcMsgClientConn := &msgservice.ServiceMsgClientConn{}
feegrantMsgClient := types.NewMsgClient(svcMsgClientConn)
_, err = feegrantMsgClient.RevokeFeeAllowance(context.Background(), &msg)
_, err = feegrantMsgClient.RevokeAllowance(context.Background(), &msg)
if err != nil {
return simtypes.NoOpMsg(types.ModuleName, TypeMsgGrantFeeAllowance, err.Error()), nil, err
}

View File

@ -114,7 +114,7 @@ func (suite *SimTestSuite) TestSimulateMsgGrantFeeAllowance() {
operationMsg, futureOperations, err := op(r, app.BaseApp, ctx, accounts, "")
require.NoError(err)
var msg types.MsgGrantFeeAllowance
var msg types.MsgGrantAllowance
suite.app.AppCodec().UnmarshalJSON(operationMsg.Msg, &msg)
require.True(operationMsg.OK)
@ -139,11 +139,11 @@ func (suite *SimTestSuite) TestSimulateMsgRevokeFeeAllowance() {
granter, grantee := accounts[0], accounts[1]
err := app.FeeGrantKeeper.GrantFeeAllowance(
err := app.FeeGrantKeeper.GrantAllowance(
ctx,
granter.Address,
grantee.Address,
&types.BasicFeeAllowance{
&types.BasicAllowance{
SpendLimit: feeCoins,
Expiration: types.ExpiresAtTime(ctx.BlockTime().Add(30 * time.Hour)),
},
@ -155,7 +155,7 @@ func (suite *SimTestSuite) TestSimulateMsgRevokeFeeAllowance() {
operationMsg, futureOperations, err := op(r, app.BaseApp, ctx, accounts, "")
require.NoError(err)
var msg types.MsgRevokeFeeAllowance
var msg types.MsgRevokeAllowance
suite.app.AppCodec().UnmarshalJSON(operationMsg.Msg, &msg)
require.True(operationMsg.OK)

View File

@ -64,9 +64,8 @@ Example cmd:
./simd tx gov submit-proposal --title="Test Proposal" --description="My awesome proposal" --type="Text" --from validator-key --fee-account=cosmos1xh44hxt7spr67hqaa7nyx5gnutrz5fraw6grxn --chain-id=testnet --fees="10stake"
```
## DeductGrantedFeeDecorator
`feegrant` module also adds a `DeductGrantedFeeDecorator` ante handler. Whenever a transaction is being executed with `granter` field set, then this ante handler will check whether `payer` and `granter` have proper fee allowance grant in state. If it exists the fees will be deducted from the `granter`'s account address. If the `granter` field isn't set then this ante handler works as normal fee deductor.
## Granted Fee Deductions
Fees are deducted from grants in the `x/auth` ante handler. To learn more about how ante handlers work, read the [Auth Module AnteHandlers Guide](../../auth/spec/03_antehandlers.md).
## Gas
In order to prevent DoS attacks, using a filtered `x/feegrant` incurs gas. The SDK must assure that the `grantee`'s transactions all conform to the filter set by the `granter`. The SDK does this by iterating over the allowed messages in the filter and charging 10 gas per filtered message. The SDK will then iterate over the messages being sent by the `grantee` to ensure the messages adhere to the filter, also charging 10 gas per message. The SDK will stop iterating and fail the transaction if it finds a message that does not conform to the filter.

View File

@ -6,7 +6,7 @@ order: 4
The feegrant module emits the following events:
# Handlers
# Msg Server
### MsgGrantFeeAllowance
@ -30,4 +30,4 @@ The feegrant module emits the following events:
| -------- | ------------- | ------------------ |
| message | action | use_feegrant |
| message | granter | {granterAddress} |
| message | grantee | {granteeAddress} |
| message | grantee | {granteeAddress} |

View File

@ -19,7 +19,7 @@ This module allows accounts to grant fee allowances and to use fees from their a
- [BasicFeeAllowance](01_concepts.md#basicfeeallowance)
- [PeriodicFeeAllowance](01_concepts.md#periodicfeeallowance)
- [FeeAccount flag](01_concepts.md#feeaccount-flag)
- [DeductGrantedFeeDecorator](01_concepts.md#deductgrantedfeedecorator)
- [Granted Fee Deductions](01_concepts.md#granted-fee-deductions)
- [Gas](01_concepts.md#gas)
2. **[State](02_state.md)**
- [FeeAllowance](02_state.md#feeallowance)

View File

@ -7,7 +7,7 @@ import (
sdkerrors "github.com/cosmos/cosmos-sdk/types/errors"
)
var _ FeeAllowanceI = (*BasicFeeAllowance)(nil)
var _ FeeAllowanceI = (*BasicAllowance)(nil)
// Accept can use fee payment requested as well as timestamp/height of the current block
// to determine whether or not to process this. This is checked in
@ -19,7 +19,7 @@ var _ FeeAllowanceI = (*BasicFeeAllowance)(nil)
//
// If remove is true (regardless of the error), the FeeAllowance will be deleted from storage
// (eg. when it is used up). (See call to RevokeFeeAllowance in Keeper.UseGrantedFees)
func (a *BasicFeeAllowance) Accept(ctx sdk.Context, fee sdk.Coins, _ []sdk.Msg) (bool, error) {
func (a *BasicAllowance) Accept(ctx sdk.Context, fee sdk.Coins, _ []sdk.Msg) (bool, error) {
blockTime := ctx.BlockTime()
blockHeight := ctx.BlockHeight()
@ -43,15 +43,15 @@ func (a *BasicFeeAllowance) Accept(ctx sdk.Context, fee sdk.Coins, _ []sdk.Msg)
// PrepareForExport will adjust the expiration based on export time. In particular,
// it will subtract the dumpHeight from any height-based expiration to ensure that
// the elapsed number of blocks this allowance is valid for is fixed.
func (a *BasicFeeAllowance) PrepareForExport(dumpTime time.Time, dumpHeight int64) FeeAllowanceI {
return &BasicFeeAllowance{
func (a *BasicAllowance) PrepareForExport(dumpTime time.Time, dumpHeight int64) FeeAllowanceI {
return &BasicAllowance{
SpendLimit: a.SpendLimit,
Expiration: a.Expiration.PrepareForExport(dumpTime, dumpHeight),
}
}
// ValidateBasic implements FeeAllowance and enforces basic sanity checks
func (a BasicFeeAllowance) ValidateBasic() error {
func (a BasicAllowance) ValidateBasic() error {
if a.SpendLimit != nil {
if !a.SpendLimit.IsValid() {
return sdkerrors.Wrapf(sdkerrors.ErrInvalidCoins, "send amount is invalid: %s", a.SpendLimit)

View File

@ -23,7 +23,7 @@ func TestBasicFeeValidAllow(t *testing.T) {
leftAtom := sdk.NewCoins(sdk.NewInt64Coin("atom", 512))
cases := map[string]struct {
allowance *types.BasicFeeAllowance
allowance *types.BasicAllowance
// all other checks are ignored if valid=false
fee sdk.Coins
blockHeight int64
@ -32,11 +32,11 @@ func TestBasicFeeValidAllow(t *testing.T) {
remains sdk.Coins
}{
"empty": {
allowance: &types.BasicFeeAllowance{},
allowance: &types.BasicAllowance{},
accept: true,
},
"small fee without expire": {
allowance: &types.BasicFeeAllowance{
allowance: &types.BasicAllowance{
SpendLimit: atom,
},
fee: smallAtom,
@ -45,7 +45,7 @@ func TestBasicFeeValidAllow(t *testing.T) {
remains: leftAtom,
},
"all fee without expire": {
allowance: &types.BasicFeeAllowance{
allowance: &types.BasicAllowance{
SpendLimit: smallAtom,
},
fee: smallAtom,
@ -53,14 +53,14 @@ func TestBasicFeeValidAllow(t *testing.T) {
remove: true,
},
"wrong fee": {
allowance: &types.BasicFeeAllowance{
allowance: &types.BasicAllowance{
SpendLimit: smallAtom,
},
fee: eth,
accept: false,
},
"non-expired": {
allowance: &types.BasicFeeAllowance{
allowance: &types.BasicAllowance{
SpendLimit: atom,
Expiration: types.ExpiresAtHeight(100),
},
@ -71,7 +71,7 @@ func TestBasicFeeValidAllow(t *testing.T) {
remains: leftAtom,
},
"expired": {
allowance: &types.BasicFeeAllowance{
allowance: &types.BasicAllowance{
SpendLimit: atom,
Expiration: types.ExpiresAtHeight(100),
},
@ -81,7 +81,7 @@ func TestBasicFeeValidAllow(t *testing.T) {
remove: true,
},
"fee more than allowed": {
allowance: &types.BasicFeeAllowance{
allowance: &types.BasicAllowance{
SpendLimit: atom,
Expiration: types.ExpiresAtHeight(100),
},
@ -90,7 +90,7 @@ func TestBasicFeeValidAllow(t *testing.T) {
accept: false,
},
"with out spend limit": {
allowance: &types.BasicFeeAllowance{
allowance: &types.BasicAllowance{
Expiration: types.ExpiresAtHeight(100),
},
fee: bigAtom,
@ -98,7 +98,7 @@ func TestBasicFeeValidAllow(t *testing.T) {
accept: true,
},
"expired no spend limit": {
allowance: &types.BasicFeeAllowance{
allowance: &types.BasicAllowance{
Expiration: types.ExpiresAtHeight(100),
},
fee: bigAtom,
@ -144,7 +144,7 @@ func TestBasicFeeAllowTime(t *testing.T) {
oneHour := now.Add(1 * time.Hour)
cases := map[string]struct {
allow *types.BasicFeeAllowance
allow *types.BasicAllowance
// all other checks are ignored if valid=false
fee sdk.Coins
blockTime time.Time
@ -154,12 +154,12 @@ func TestBasicFeeAllowTime(t *testing.T) {
remains sdk.Coins
}{
"empty": {
allow: &types.BasicFeeAllowance{},
allow: &types.BasicAllowance{},
valid: true,
accept: true,
},
"small fee without expire": {
allow: &types.BasicFeeAllowance{
allow: &types.BasicAllowance{
SpendLimit: atom,
},
valid: true,
@ -169,7 +169,7 @@ func TestBasicFeeAllowTime(t *testing.T) {
remains: leftAtom,
},
"all fee without expire": {
allow: &types.BasicFeeAllowance{
allow: &types.BasicAllowance{
SpendLimit: smallAtom,
},
valid: true,
@ -178,7 +178,7 @@ func TestBasicFeeAllowTime(t *testing.T) {
remove: true,
},
"wrong fee": {
allow: &types.BasicFeeAllowance{
allow: &types.BasicAllowance{
SpendLimit: smallAtom,
},
valid: true,
@ -186,7 +186,7 @@ func TestBasicFeeAllowTime(t *testing.T) {
accept: false,
},
"non-expired": {
allow: &types.BasicFeeAllowance{
allow: &types.BasicAllowance{
SpendLimit: atom,
Expiration: types.ExpiresAtTime(oneHour),
},
@ -198,7 +198,7 @@ func TestBasicFeeAllowTime(t *testing.T) {
remains: leftAtom,
},
"expired": {
allow: &types.BasicFeeAllowance{
allow: &types.BasicAllowance{
SpendLimit: atom,
Expiration: types.ExpiresAtTime(now),
},
@ -209,7 +209,7 @@ func TestBasicFeeAllowTime(t *testing.T) {
remove: true,
},
"fee more than allowed": {
allow: &types.BasicFeeAllowance{
allow: &types.BasicAllowance{
SpendLimit: atom,
Expiration: types.ExpiresAtTime(oneHour),
},
@ -219,7 +219,7 @@ func TestBasicFeeAllowTime(t *testing.T) {
accept: false,
},
"without spend limit": {
allow: &types.BasicFeeAllowance{
allow: &types.BasicAllowance{
Expiration: types.ExpiresAtTime(oneHour),
},
valid: true,
@ -228,7 +228,7 @@ func TestBasicFeeAllowTime(t *testing.T) {
accept: true,
},
"expired no spend limit": {
allow: &types.BasicFeeAllowance{
allow: &types.BasicAllowance{
Expiration: types.ExpiresAtTime(now),
},
valid: true,

View File

@ -9,16 +9,16 @@ import (
// RegisterInterfaces registers the interfaces types with the interface registry
func RegisterInterfaces(registry types.InterfaceRegistry) {
registry.RegisterImplementations((*sdk.Msg)(nil),
&MsgGrantFeeAllowance{},
&MsgRevokeFeeAllowance{},
&MsgGrantAllowance{},
&MsgRevokeAllowance{},
)
registry.RegisterInterface(
"cosmos.feegrant.v1beta1.FeeAllowanceI",
(*FeeAllowanceI)(nil),
&BasicFeeAllowance{},
&PeriodicFeeAllowance{},
&AllowedMsgFeeAllowance{},
&BasicAllowance{},
&PeriodicAllowance{},
&AllowedMsgAllowance{},
)
msgservice.RegisterMsgServiceDesc(registry, &_Msg_serviceDesc)

View File

@ -32,9 +32,9 @@ var _ = time.Kitchen
// proto package needs to be updated.
const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package
// BasicFeeAllowance implements FeeAllowance with a one-time grant of tokens
// that optionally expires. The delegatee can use up to SpendLimit to cover fees.
type BasicFeeAllowance struct {
// BasicAllowance implements Allowance with a one-time grant of tokens
// that optionally expires. The grantee can use up to SpendLimit to cover fees.
type BasicAllowance struct {
// spend_limit specifies the maximum amount of tokens that can be spent
// by this allowance and will be updated as tokens are spent. If it is
// empty, there is no spend limit and any amount of coins can be spent.
@ -43,18 +43,18 @@ type BasicFeeAllowance struct {
Expiration ExpiresAt `protobuf:"bytes,2,opt,name=expiration,proto3" json:"expiration"`
}
func (m *BasicFeeAllowance) Reset() { *m = BasicFeeAllowance{} }
func (m *BasicFeeAllowance) String() string { return proto.CompactTextString(m) }
func (*BasicFeeAllowance) ProtoMessage() {}
func (*BasicFeeAllowance) Descriptor() ([]byte, []int) {
func (m *BasicAllowance) Reset() { *m = BasicAllowance{} }
func (m *BasicAllowance) String() string { return proto.CompactTextString(m) }
func (*BasicAllowance) ProtoMessage() {}
func (*BasicAllowance) Descriptor() ([]byte, []int) {
return fileDescriptor_7279582900c30aea, []int{0}
}
func (m *BasicFeeAllowance) XXX_Unmarshal(b []byte) error {
func (m *BasicAllowance) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
}
func (m *BasicFeeAllowance) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
func (m *BasicAllowance) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
if deterministic {
return xxx_messageInfo_BasicFeeAllowance.Marshal(b, m, deterministic)
return xxx_messageInfo_BasicAllowance.Marshal(b, m, deterministic)
} else {
b = b[:cap(b)]
n, err := m.MarshalToSizedBuffer(b)
@ -64,37 +64,37 @@ func (m *BasicFeeAllowance) XXX_Marshal(b []byte, deterministic bool) ([]byte, e
return b[:n], nil
}
}
func (m *BasicFeeAllowance) XXX_Merge(src proto.Message) {
xxx_messageInfo_BasicFeeAllowance.Merge(m, src)
func (m *BasicAllowance) XXX_Merge(src proto.Message) {
xxx_messageInfo_BasicAllowance.Merge(m, src)
}
func (m *BasicFeeAllowance) XXX_Size() int {
func (m *BasicAllowance) XXX_Size() int {
return m.Size()
}
func (m *BasicFeeAllowance) XXX_DiscardUnknown() {
xxx_messageInfo_BasicFeeAllowance.DiscardUnknown(m)
func (m *BasicAllowance) XXX_DiscardUnknown() {
xxx_messageInfo_BasicAllowance.DiscardUnknown(m)
}
var xxx_messageInfo_BasicFeeAllowance proto.InternalMessageInfo
var xxx_messageInfo_BasicAllowance proto.InternalMessageInfo
func (m *BasicFeeAllowance) GetSpendLimit() github_com_cosmos_cosmos_sdk_types.Coins {
func (m *BasicAllowance) GetSpendLimit() github_com_cosmos_cosmos_sdk_types.Coins {
if m != nil {
return m.SpendLimit
}
return nil
}
func (m *BasicFeeAllowance) GetExpiration() ExpiresAt {
func (m *BasicAllowance) GetExpiration() ExpiresAt {
if m != nil {
return m.Expiration
}
return ExpiresAt{}
}
// PeriodicFeeAllowance extends FeeAllowance to allow for both a maximum cap,
// PeriodicAllowance extends Allowance to allow for both a maximum cap,
// as well as a limit per time period.
type PeriodicFeeAllowance struct {
// basic specifies a struct of `BasicFeeAllowance`
Basic BasicFeeAllowance `protobuf:"bytes,1,opt,name=basic,proto3" json:"basic"`
type PeriodicAllowance struct {
// basic specifies a struct of `BasicAllowance`
Basic BasicAllowance `protobuf:"bytes,1,opt,name=basic,proto3" json:"basic"`
// period specifies the time duration in which period_spend_limit coins can
// be spent before that allowance is reset
Period Duration `protobuf:"bytes,2,opt,name=period,proto3" json:"period"`
@ -109,18 +109,18 @@ type PeriodicFeeAllowance struct {
PeriodReset ExpiresAt `protobuf:"bytes,5,opt,name=period_reset,json=periodReset,proto3" json:"period_reset"`
}
func (m *PeriodicFeeAllowance) Reset() { *m = PeriodicFeeAllowance{} }
func (m *PeriodicFeeAllowance) String() string { return proto.CompactTextString(m) }
func (*PeriodicFeeAllowance) ProtoMessage() {}
func (*PeriodicFeeAllowance) Descriptor() ([]byte, []int) {
func (m *PeriodicAllowance) Reset() { *m = PeriodicAllowance{} }
func (m *PeriodicAllowance) String() string { return proto.CompactTextString(m) }
func (*PeriodicAllowance) ProtoMessage() {}
func (*PeriodicAllowance) Descriptor() ([]byte, []int) {
return fileDescriptor_7279582900c30aea, []int{1}
}
func (m *PeriodicFeeAllowance) XXX_Unmarshal(b []byte) error {
func (m *PeriodicAllowance) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
}
func (m *PeriodicFeeAllowance) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
func (m *PeriodicAllowance) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
if deterministic {
return xxx_messageInfo_PeriodicFeeAllowance.Marshal(b, m, deterministic)
return xxx_messageInfo_PeriodicAllowance.Marshal(b, m, deterministic)
} else {
b = b[:cap(b)]
n, err := m.MarshalToSizedBuffer(b)
@ -130,73 +130,73 @@ func (m *PeriodicFeeAllowance) XXX_Marshal(b []byte, deterministic bool) ([]byte
return b[:n], nil
}
}
func (m *PeriodicFeeAllowance) XXX_Merge(src proto.Message) {
xxx_messageInfo_PeriodicFeeAllowance.Merge(m, src)
func (m *PeriodicAllowance) XXX_Merge(src proto.Message) {
xxx_messageInfo_PeriodicAllowance.Merge(m, src)
}
func (m *PeriodicFeeAllowance) XXX_Size() int {
func (m *PeriodicAllowance) XXX_Size() int {
return m.Size()
}
func (m *PeriodicFeeAllowance) XXX_DiscardUnknown() {
xxx_messageInfo_PeriodicFeeAllowance.DiscardUnknown(m)
func (m *PeriodicAllowance) XXX_DiscardUnknown() {
xxx_messageInfo_PeriodicAllowance.DiscardUnknown(m)
}
var xxx_messageInfo_PeriodicFeeAllowance proto.InternalMessageInfo
var xxx_messageInfo_PeriodicAllowance proto.InternalMessageInfo
func (m *PeriodicFeeAllowance) GetBasic() BasicFeeAllowance {
func (m *PeriodicAllowance) GetBasic() BasicAllowance {
if m != nil {
return m.Basic
}
return BasicFeeAllowance{}
return BasicAllowance{}
}
func (m *PeriodicFeeAllowance) GetPeriod() Duration {
func (m *PeriodicAllowance) GetPeriod() Duration {
if m != nil {
return m.Period
}
return Duration{}
}
func (m *PeriodicFeeAllowance) GetPeriodSpendLimit() github_com_cosmos_cosmos_sdk_types.Coins {
func (m *PeriodicAllowance) GetPeriodSpendLimit() github_com_cosmos_cosmos_sdk_types.Coins {
if m != nil {
return m.PeriodSpendLimit
}
return nil
}
func (m *PeriodicFeeAllowance) GetPeriodCanSpend() github_com_cosmos_cosmos_sdk_types.Coins {
func (m *PeriodicAllowance) GetPeriodCanSpend() github_com_cosmos_cosmos_sdk_types.Coins {
if m != nil {
return m.PeriodCanSpend
}
return nil
}
func (m *PeriodicFeeAllowance) GetPeriodReset() ExpiresAt {
func (m *PeriodicAllowance) GetPeriodReset() ExpiresAt {
if m != nil {
return m.PeriodReset
}
return ExpiresAt{}
}
// AllowedMsgFeeAllowance creates allowance only for specified message types.
type AllowedMsgFeeAllowance struct {
// AllowedMsgAllowance creates allowance only for specified message types.
type AllowedMsgAllowance struct {
// allowance can be any of basic and filtered fee allowance.
Allowance *types1.Any `protobuf:"bytes,1,opt,name=allowance,proto3" json:"allowance,omitempty"`
// allowed_messages are the messages for which the grantee has the access.
AllowedMessages []string `protobuf:"bytes,2,rep,name=allowed_messages,json=allowedMessages,proto3" json:"allowed_messages,omitempty"`
}
func (m *AllowedMsgFeeAllowance) Reset() { *m = AllowedMsgFeeAllowance{} }
func (m *AllowedMsgFeeAllowance) String() string { return proto.CompactTextString(m) }
func (*AllowedMsgFeeAllowance) ProtoMessage() {}
func (*AllowedMsgFeeAllowance) Descriptor() ([]byte, []int) {
func (m *AllowedMsgAllowance) Reset() { *m = AllowedMsgAllowance{} }
func (m *AllowedMsgAllowance) String() string { return proto.CompactTextString(m) }
func (*AllowedMsgAllowance) ProtoMessage() {}
func (*AllowedMsgAllowance) Descriptor() ([]byte, []int) {
return fileDescriptor_7279582900c30aea, []int{2}
}
func (m *AllowedMsgFeeAllowance) XXX_Unmarshal(b []byte) error {
func (m *AllowedMsgAllowance) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
}
func (m *AllowedMsgFeeAllowance) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
func (m *AllowedMsgAllowance) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
if deterministic {
return xxx_messageInfo_AllowedMsgFeeAllowance.Marshal(b, m, deterministic)
return xxx_messageInfo_AllowedMsgAllowance.Marshal(b, m, deterministic)
} else {
b = b[:cap(b)]
n, err := m.MarshalToSizedBuffer(b)
@ -206,17 +206,17 @@ func (m *AllowedMsgFeeAllowance) XXX_Marshal(b []byte, deterministic bool) ([]by
return b[:n], nil
}
}
func (m *AllowedMsgFeeAllowance) XXX_Merge(src proto.Message) {
xxx_messageInfo_AllowedMsgFeeAllowance.Merge(m, src)
func (m *AllowedMsgAllowance) XXX_Merge(src proto.Message) {
xxx_messageInfo_AllowedMsgAllowance.Merge(m, src)
}
func (m *AllowedMsgFeeAllowance) XXX_Size() int {
func (m *AllowedMsgAllowance) XXX_Size() int {
return m.Size()
}
func (m *AllowedMsgFeeAllowance) XXX_DiscardUnknown() {
xxx_messageInfo_AllowedMsgFeeAllowance.DiscardUnknown(m)
func (m *AllowedMsgAllowance) XXX_DiscardUnknown() {
xxx_messageInfo_AllowedMsgAllowance.DiscardUnknown(m)
}
var xxx_messageInfo_AllowedMsgFeeAllowance proto.InternalMessageInfo
var xxx_messageInfo_AllowedMsgAllowance proto.InternalMessageInfo
// Duration is a span of a clock time or number of blocks.
// This is designed to be added to an ExpiresAt struct.
@ -396,25 +396,28 @@ func (*ExpiresAt) XXX_OneofWrappers() []interface{} {
}
}
// FeeAllowanceGrant is stored in the KVStore to record a grant with full context
type FeeAllowanceGrant struct {
Granter string `protobuf:"bytes,1,opt,name=granter,proto3" json:"granter,omitempty"`
Grantee string `protobuf:"bytes,2,opt,name=grantee,proto3" json:"grantee,omitempty"`
// Grant is stored in the KVStore to record a grant with full context
type Grant struct {
// granter is the address of the user granting an allowance of their funds.
Granter string `protobuf:"bytes,1,opt,name=granter,proto3" json:"granter,omitempty"`
// grantee is the address of the user being granted an allowance of another user's funds.
Grantee string `protobuf:"bytes,2,opt,name=grantee,proto3" json:"grantee,omitempty"`
// allowance can be any of basic and filtered fee allowance.
Allowance *types1.Any `protobuf:"bytes,3,opt,name=allowance,proto3" json:"allowance,omitempty"`
}
func (m *FeeAllowanceGrant) Reset() { *m = FeeAllowanceGrant{} }
func (m *FeeAllowanceGrant) String() string { return proto.CompactTextString(m) }
func (*FeeAllowanceGrant) ProtoMessage() {}
func (*FeeAllowanceGrant) Descriptor() ([]byte, []int) {
func (m *Grant) Reset() { *m = Grant{} }
func (m *Grant) String() string { return proto.CompactTextString(m) }
func (*Grant) ProtoMessage() {}
func (*Grant) Descriptor() ([]byte, []int) {
return fileDescriptor_7279582900c30aea, []int{5}
}
func (m *FeeAllowanceGrant) XXX_Unmarshal(b []byte) error {
func (m *Grant) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
}
func (m *FeeAllowanceGrant) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
func (m *Grant) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
if deterministic {
return xxx_messageInfo_FeeAllowanceGrant.Marshal(b, m, deterministic)
return xxx_messageInfo_Grant.Marshal(b, m, deterministic)
} else {
b = b[:cap(b)]
n, err := m.MarshalToSizedBuffer(b)
@ -424,33 +427,33 @@ func (m *FeeAllowanceGrant) XXX_Marshal(b []byte, deterministic bool) ([]byte, e
return b[:n], nil
}
}
func (m *FeeAllowanceGrant) XXX_Merge(src proto.Message) {
xxx_messageInfo_FeeAllowanceGrant.Merge(m, src)
func (m *Grant) XXX_Merge(src proto.Message) {
xxx_messageInfo_Grant.Merge(m, src)
}
func (m *FeeAllowanceGrant) XXX_Size() int {
func (m *Grant) XXX_Size() int {
return m.Size()
}
func (m *FeeAllowanceGrant) XXX_DiscardUnknown() {
xxx_messageInfo_FeeAllowanceGrant.DiscardUnknown(m)
func (m *Grant) XXX_DiscardUnknown() {
xxx_messageInfo_Grant.DiscardUnknown(m)
}
var xxx_messageInfo_FeeAllowanceGrant proto.InternalMessageInfo
var xxx_messageInfo_Grant proto.InternalMessageInfo
func (m *FeeAllowanceGrant) GetGranter() string {
func (m *Grant) GetGranter() string {
if m != nil {
return m.Granter
}
return ""
}
func (m *FeeAllowanceGrant) GetGrantee() string {
func (m *Grant) GetGrantee() string {
if m != nil {
return m.Grantee
}
return ""
}
func (m *FeeAllowanceGrant) GetAllowance() *types1.Any {
func (m *Grant) GetAllowance() *types1.Any {
if m != nil {
return m.Allowance
}
@ -458,12 +461,12 @@ func (m *FeeAllowanceGrant) GetAllowance() *types1.Any {
}
func init() {
proto.RegisterType((*BasicFeeAllowance)(nil), "cosmos.feegrant.v1beta1.BasicFeeAllowance")
proto.RegisterType((*PeriodicFeeAllowance)(nil), "cosmos.feegrant.v1beta1.PeriodicFeeAllowance")
proto.RegisterType((*AllowedMsgFeeAllowance)(nil), "cosmos.feegrant.v1beta1.AllowedMsgFeeAllowance")
proto.RegisterType((*BasicAllowance)(nil), "cosmos.feegrant.v1beta1.BasicAllowance")
proto.RegisterType((*PeriodicAllowance)(nil), "cosmos.feegrant.v1beta1.PeriodicAllowance")
proto.RegisterType((*AllowedMsgAllowance)(nil), "cosmos.feegrant.v1beta1.AllowedMsgAllowance")
proto.RegisterType((*Duration)(nil), "cosmos.feegrant.v1beta1.Duration")
proto.RegisterType((*ExpiresAt)(nil), "cosmos.feegrant.v1beta1.ExpiresAt")
proto.RegisterType((*FeeAllowanceGrant)(nil), "cosmos.feegrant.v1beta1.FeeAllowanceGrant")
proto.RegisterType((*Grant)(nil), "cosmos.feegrant.v1beta1.Grant")
}
func init() {
@ -471,51 +474,51 @@ func init() {
}
var fileDescriptor_7279582900c30aea = []byte{
// 650 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x94, 0x4d, 0x6f, 0xd3, 0x30,
0x18, 0xc7, 0x93, 0xa5, 0x1b, 0xab, 0xcb, 0xcb, 0x6a, 0x0d, 0xc8, 0x76, 0x48, 0x47, 0x0f, 0xa8,
0x20, 0x2d, 0x61, 0x43, 0xe2, 0x30, 0x09, 0xa1, 0x65, 0xec, 0x05, 0xc1, 0x24, 0x14, 0x38, 0x71,
0xa9, 0x9c, 0xc4, 0x4b, 0xc3, 0x92, 0x38, 0x8a, 0x5d, 0x58, 0xbf, 0x01, 0x27, 0xb4, 0x23, 0x47,
0xb8, 0x72, 0xe6, 0x43, 0x4c, 0x9c, 0x26, 0x4e, 0x9c, 0x36, 0xd4, 0x7e, 0x02, 0xbe, 0x01, 0x8a,
0xed, 0xa4, 0xa5, 0xa5, 0x48, 0xa0, 0x9d, 0x92, 0xc7, 0x7e, 0x9e, 0xff, 0xef, 0x79, 0xb1, 0x0d,
0x6e, 0x7b, 0x84, 0xc6, 0x84, 0x5a, 0x07, 0x18, 0x07, 0x19, 0x4a, 0x98, 0xf5, 0x66, 0xcd, 0xc5,
0x0c, 0xad, 0x95, 0x0b, 0x66, 0x9a, 0x11, 0x46, 0xe0, 0x4d, 0xe1, 0x67, 0x96, 0xcb, 0xd2, 0x6f,
0x79, 0x31, 0x20, 0x01, 0xe1, 0x3e, 0x56, 0xfe, 0x27, 0xdc, 0x97, 0x97, 0x02, 0x42, 0x82, 0x08,
0x5b, 0xdc, 0x72, 0xbb, 0x07, 0x16, 0x4a, 0x7a, 0xc5, 0x96, 0x50, 0x6a, 0x8b, 0x18, 0x29, 0x2b,
0xb6, 0x0c, 0x99, 0x8c, 0x8b, 0x28, 0x2e, 0x13, 0xf1, 0x48, 0x98, 0xc8, 0xfd, 0xc6, 0xb8, 0x2a,
0x0b, 0x63, 0x4c, 0x19, 0x8a, 0xd3, 0x42, 0x60, 0xdc, 0xc1, 0xef, 0x66, 0x88, 0x85, 0x44, 0x0a,
0x34, 0xcf, 0x54, 0x50, 0xb7, 0x11, 0x0d, 0xbd, 0x1d, 0x8c, 0x37, 0xa3, 0x88, 0xbc, 0x45, 0x89,
0x87, 0x61, 0x04, 0x6a, 0x34, 0xc5, 0x89, 0xdf, 0x8e, 0xc2, 0x38, 0x64, 0xba, 0xba, 0xa2, 0xb5,
0x6a, 0xeb, 0x4b, 0xa6, 0x4c, 0x2d, 0x4f, 0xa6, 0xa8, 0xd6, 0xdc, 0x22, 0x61, 0x62, 0xdf, 0x3b,
0x39, 0x6b, 0x28, 0x9f, 0xcf, 0x1b, 0xad, 0x20, 0x64, 0x9d, 0xae, 0x6b, 0x7a, 0x24, 0x96, 0x75,
0xc8, 0xcf, 0x2a, 0xf5, 0x0f, 0x2d, 0xd6, 0x4b, 0x31, 0xe5, 0x01, 0xd4, 0x01, 0x5c, 0xff, 0x59,
0x2e, 0x0f, 0xf7, 0x00, 0xc0, 0x47, 0x69, 0x28, 0xf2, 0xd2, 0x67, 0x56, 0xd4, 0x56, 0x6d, 0xbd,
0x69, 0x4e, 0x69, 0xaf, 0xb9, 0x9d, 0xbb, 0x62, 0xba, 0xc9, 0xec, 0x4a, 0x4e, 0x75, 0x46, 0x62,
0x37, 0xea, 0xdf, 0xbe, 0xac, 0x5e, 0x19, 0xad, 0xe4, 0x49, 0xf3, 0xa7, 0x06, 0x16, 0x9f, 0xe3,
0x2c, 0x24, 0xfe, 0x58, 0x8d, 0x3b, 0x60, 0xd6, 0xcd, 0x0b, 0xd7, 0x55, 0x0e, 0xbc, 0x3b, 0x15,
0x38, 0xd1, 0x1e, 0x09, 0x16, 0xe1, 0xf0, 0x11, 0x98, 0x4b, 0xb9, 0xbe, 0xcc, 0xfc, 0xd6, 0x54,
0xa1, 0xc7, 0xb2, 0xf5, 0x32, 0x5e, 0x86, 0xc1, 0x1e, 0x80, 0xe2, 0xaf, 0x3d, 0xda, 0x73, 0xed,
0xe2, 0x7b, 0xbe, 0x20, 0x30, 0x2f, 0x86, 0x9d, 0xef, 0x02, 0xb9, 0xd6, 0xf6, 0x50, 0x22, 0xf0,
0x7a, 0xe5, 0xe2, 0xc1, 0x57, 0x05, 0x64, 0x0b, 0x25, 0x9c, 0x0d, 0x9f, 0x82, 0xcb, 0x12, 0x9b,
0x61, 0x8a, 0x99, 0x3e, 0xfb, 0x8f, 0x23, 0xaf, 0x89, 0x68, 0x27, 0x0f, 0xfe, 0xd3, 0xcc, 0x3f,
0xa9, 0xe0, 0x06, 0x37, 0xb1, 0xbf, 0x4f, 0x83, 0xdf, 0xa6, 0xbe, 0x0d, 0xaa, 0xa8, 0x30, 0xe4,
0xe4, 0x17, 0x4d, 0x71, 0x47, 0xcc, 0xe2, 0x8e, 0x98, 0x9b, 0x49, 0xcf, 0xae, 0x7f, 0x1d, 0x97,
0x75, 0x86, 0x91, 0xf0, 0x0e, 0x58, 0x40, 0x02, 0xd0, 0x8e, 0x31, 0xa5, 0x28, 0xc0, 0x54, 0x9f,
0x59, 0xd1, 0x5a, 0x55, 0xe7, 0x9a, 0x5c, 0xdf, 0x97, 0xcb, 0x1b, 0xd7, 0xdf, 0x7d, 0x6c, 0x28,
0x93, 0x39, 0xbe, 0x06, 0xf3, 0xc5, 0x79, 0x80, 0x0f, 0xc1, 0x7c, 0x71, 0x2d, 0x65, 0x4e, 0x4b,
0x13, 0x39, 0x0d, 0x0f, 0xcf, 0x87, 0xf3, 0x86, 0xba, 0xa7, 0x38, 0x65, 0x08, 0xd4, 0xc1, 0x9c,
0x1b, 0x11, 0xef, 0x90, 0xf2, 0x13, 0x58, 0xd9, 0x53, 0x1c, 0x69, 0xdb, 0xb3, 0x40, 0xa3, 0xdd,
0xb8, 0xe9, 0x83, 0x6a, 0xd9, 0x42, 0xf8, 0x00, 0x54, 0xf2, 0x47, 0x42, 0x82, 0x96, 0x27, 0x40,
0x2f, 0x8b, 0x17, 0xc4, 0xae, 0x1c, 0x0b, 0x12, 0xf7, 0xcf, 0x29, 0x1d, 0x1c, 0x06, 0x1d, 0xc6,
0x29, 0x5a, 0x4e, 0x11, 0x76, 0x41, 0x79, 0xaf, 0x82, 0xfa, 0x68, 0x8d, 0xbb, 0xf9, 0x0c, 0xa1,
0x0e, 0x2e, 0xf1, 0x61, 0xe2, 0x8c, 0x13, 0xab, 0x4e, 0x61, 0x0e, 0x77, 0x30, 0x57, 0x2c, 0x77,
0xc6, 0x86, 0xa4, 0xfd, 0xef, 0x90, 0xec, 0xdd, 0x93, 0xbe, 0xa1, 0x9e, 0xf6, 0x0d, 0xf5, 0x47,
0xdf, 0x50, 0x8f, 0x07, 0x86, 0x72, 0x3a, 0x30, 0x94, 0xef, 0x03, 0x43, 0x79, 0xb5, 0xfa, 0xd7,
0xa3, 0x7b, 0x34, 0x7c, 0xfb, 0xf9, 0x29, 0x76, 0xe7, 0x38, 0xf4, 0xfe, 0xaf, 0x00, 0x00, 0x00,
0xff, 0xff, 0xfc, 0x05, 0xa9, 0xc7, 0x1b, 0x06, 0x00, 0x00,
// 645 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x54, 0xbf, 0x6f, 0xd3, 0x40,
0x14, 0xb6, 0xeb, 0xa4, 0x34, 0x17, 0x28, 0xed, 0x51, 0x84, 0xdb, 0xc1, 0x29, 0x19, 0x20, 0x0c,
0xb5, 0x69, 0x91, 0x18, 0x2a, 0x21, 0x54, 0x97, 0xd2, 0x22, 0xa8, 0x84, 0x0c, 0x13, 0x4b, 0x74,
0xb6, 0xaf, 0xae, 0xa9, 0xed, 0xb3, 0x7c, 0x17, 0x68, 0x56, 0x26, 0xc6, 0x8e, 0x4c, 0x88, 0x99,
0x99, 0x3f, 0xa2, 0x62, 0xaa, 0x98, 0x90, 0x90, 0x28, 0x6a, 0x46, 0xfe, 0x09, 0xe4, 0xbb, 0xb3,
0x1d, 0x12, 0x82, 0x04, 0xea, 0x64, 0xbf, 0x7b, 0xef, 0xfb, 0xbe, 0xf7, 0xeb, 0x0e, 0xdc, 0xf0,
0x08, 0x8d, 0x09, 0xb5, 0xf6, 0x30, 0x0e, 0x32, 0x94, 0x30, 0xeb, 0xd5, 0xaa, 0x8b, 0x19, 0x5a,
0x2d, 0x0f, 0xcc, 0x34, 0x23, 0x8c, 0xc0, 0x6b, 0x22, 0xce, 0x2c, 0x8f, 0x65, 0xdc, 0xd2, 0x42,
0x40, 0x02, 0xc2, 0x63, 0xac, 0xfc, 0x4f, 0x84, 0x2f, 0x2d, 0x06, 0x84, 0x04, 0x11, 0xb6, 0xb8,
0xe5, 0xf6, 0xf6, 0x2c, 0x94, 0xf4, 0x0b, 0x97, 0x60, 0xea, 0x0a, 0x8c, 0xa4, 0x15, 0x2e, 0x43,
0x26, 0xe3, 0x22, 0x8a, 0xcb, 0x44, 0x3c, 0x12, 0x26, 0xd2, 0xdf, 0x1a, 0x65, 0x65, 0x61, 0x8c,
0x29, 0x43, 0x71, 0x5a, 0x10, 0x8c, 0x06, 0xf8, 0xbd, 0x0c, 0xb1, 0x90, 0x48, 0x82, 0xf6, 0x37,
0x15, 0xcc, 0xda, 0x88, 0x86, 0xde, 0x46, 0x14, 0x91, 0xd7, 0x28, 0xf1, 0x30, 0x8c, 0x40, 0x93,
0xa6, 0x38, 0xf1, 0xbb, 0x51, 0x18, 0x87, 0x4c, 0x57, 0x97, 0xb5, 0x4e, 0x73, 0x6d, 0xd1, 0x94,
0x79, 0xe5, 0x99, 0x14, 0xa5, 0x9a, 0x9b, 0x24, 0x4c, 0xec, 0xdb, 0xc7, 0xdf, 0x5b, 0xca, 0xc7,
0xd3, 0x56, 0x27, 0x08, 0xd9, 0x7e, 0xcf, 0x35, 0x3d, 0x12, 0xcb, 0x22, 0xe4, 0x67, 0x85, 0xfa,
0x07, 0x16, 0xeb, 0xa7, 0x98, 0x72, 0x00, 0x75, 0x00, 0xe7, 0x7f, 0x92, 0xd3, 0xc3, 0x1d, 0x00,
0xf0, 0x61, 0x1a, 0x8a, 0xa4, 0xf4, 0xa9, 0x65, 0xb5, 0xd3, 0x5c, 0x6b, 0x9b, 0x13, 0x7a, 0x6b,
0x6e, 0xe5, 0xa1, 0x98, 0x6e, 0x30, 0xbb, 0x96, 0xab, 0x3a, 0x43, 0xd8, 0xf5, 0xf9, 0x2f, 0x9f,
0x56, 0x2e, 0x3d, 0xc4, 0xb8, 0xac, 0xe4, 0x51, 0xfb, 0xa7, 0x06, 0xe6, 0x9f, 0xe2, 0x2c, 0x24,
0xfe, 0x70, 0x81, 0x9b, 0xa0, 0xee, 0xe6, 0x25, 0xeb, 0x2a, 0x57, 0xbb, 0x39, 0x51, 0xed, 0xf7,
0xc6, 0x48, 0x49, 0x81, 0x85, 0xf7, 0xc1, 0x74, 0xca, 0x99, 0x65, 0xce, 0xd7, 0x27, 0xb2, 0x3c,
0x90, 0x1d, 0x97, 0x78, 0x09, 0x83, 0x7d, 0x00, 0xc5, 0x5f, 0x77, 0xb8, 0xdb, 0xda, 0xf9, 0x77,
0x7b, 0x4e, 0xc8, 0x3c, 0xab, 0x7a, 0xde, 0x03, 0xf2, 0xac, 0xeb, 0xa1, 0x44, 0xc8, 0xeb, 0xb5,
0xf3, 0x17, 0x9e, 0x15, 0x22, 0x9b, 0x28, 0xe1, 0xda, 0xf0, 0x31, 0xb8, 0x28, 0x65, 0x33, 0x4c,
0x31, 0xd3, 0xeb, 0xff, 0x38, 0xec, 0xa6, 0x40, 0x3b, 0x39, 0xf8, 0x4f, 0xd3, 0x7e, 0xaf, 0x82,
0x2b, 0xdc, 0xc4, 0xfe, 0x2e, 0x0d, 0xaa, 0x79, 0x6f, 0x81, 0x06, 0x2a, 0x0c, 0x39, 0xf3, 0x05,
0x53, 0xdc, 0x0b, 0xb3, 0xb8, 0x17, 0xe6, 0x46, 0xd2, 0xb7, 0xe7, 0x3f, 0x8f, 0x72, 0x3a, 0x15,
0x12, 0xde, 0x02, 0x73, 0x48, 0xb0, 0x77, 0x63, 0x4c, 0x29, 0x0a, 0x30, 0xd5, 0xa7, 0x96, 0xb5,
0x4e, 0xc3, 0xb9, 0x2c, 0xcf, 0x77, 0xe5, 0xf1, 0xfa, 0xd5, 0xb7, 0x1f, 0x5a, 0xca, 0x78, 0x82,
0x2f, 0xc1, 0x4c, 0xb1, 0x0c, 0xf0, 0x1e, 0x98, 0x29, 0xae, 0xa2, 0xcc, 0x69, 0x71, 0x2c, 0xa7,
0x6a, 0x73, 0xde, 0x9d, 0xb6, 0xd4, 0x1d, 0xc5, 0x29, 0x21, 0x50, 0x07, 0xd3, 0x6e, 0x44, 0xbc,
0x03, 0xca, 0xd7, 0xaf, 0xb6, 0xa3, 0x38, 0xd2, 0xb6, 0xeb, 0x40, 0xa3, 0xbd, 0xb8, 0xed, 0x83,
0x46, 0xd9, 0x3f, 0x78, 0x17, 0xd4, 0xf2, 0x87, 0x41, 0x0a, 0x2d, 0x8d, 0x09, 0x3d, 0x2f, 0x5e,
0x0d, 0xbb, 0x76, 0x24, 0x94, 0x78, 0x7c, 0xae, 0xb2, 0x8f, 0xc3, 0x60, 0x9f, 0x71, 0x15, 0x2d,
0x57, 0x11, 0x76, 0xa1, 0xf2, 0x46, 0x05, 0xf5, 0xed, 0x7c, 0x68, 0x50, 0x07, 0x17, 0xf8, 0xf4,
0x70, 0xc6, 0x55, 0x1a, 0x4e, 0x61, 0x56, 0x1e, 0xcc, 0x59, 0x4a, 0xcf, 0xc8, 0x60, 0xb4, 0xff,
0x1d, 0x8c, 0xbd, 0x7d, 0x7c, 0x66, 0xa8, 0x27, 0x67, 0x86, 0xfa, 0xe3, 0xcc, 0x50, 0x8f, 0x06,
0x86, 0x72, 0x32, 0x30, 0x94, 0xaf, 0x03, 0x43, 0x79, 0xb1, 0xf2, 0xd7, 0x5d, 0x3d, 0xac, 0xde,
0x78, 0xbe, 0xb6, 0xee, 0x34, 0x17, 0xbd, 0xf3, 0x2b, 0x00, 0x00, 0xff, 0xff, 0x5a, 0x4c, 0xb0,
0x35, 0x03, 0x06, 0x00, 0x00,
}
func (m *BasicFeeAllowance) Marshal() (dAtA []byte, err error) {
func (m *BasicAllowance) Marshal() (dAtA []byte, err error) {
size := m.Size()
dAtA = make([]byte, size)
n, err := m.MarshalToSizedBuffer(dAtA[:size])
@ -525,12 +528,12 @@ func (m *BasicFeeAllowance) Marshal() (dAtA []byte, err error) {
return dAtA[:n], nil
}
func (m *BasicFeeAllowance) MarshalTo(dAtA []byte) (int, error) {
func (m *BasicAllowance) MarshalTo(dAtA []byte) (int, error) {
size := m.Size()
return m.MarshalToSizedBuffer(dAtA[:size])
}
func (m *BasicFeeAllowance) MarshalToSizedBuffer(dAtA []byte) (int, error) {
func (m *BasicAllowance) MarshalToSizedBuffer(dAtA []byte) (int, error) {
i := len(dAtA)
_ = i
var l int
@ -562,7 +565,7 @@ func (m *BasicFeeAllowance) MarshalToSizedBuffer(dAtA []byte) (int, error) {
return len(dAtA) - i, nil
}
func (m *PeriodicFeeAllowance) Marshal() (dAtA []byte, err error) {
func (m *PeriodicAllowance) Marshal() (dAtA []byte, err error) {
size := m.Size()
dAtA = make([]byte, size)
n, err := m.MarshalToSizedBuffer(dAtA[:size])
@ -572,12 +575,12 @@ func (m *PeriodicFeeAllowance) Marshal() (dAtA []byte, err error) {
return dAtA[:n], nil
}
func (m *PeriodicFeeAllowance) MarshalTo(dAtA []byte) (int, error) {
func (m *PeriodicAllowance) MarshalTo(dAtA []byte) (int, error) {
size := m.Size()
return m.MarshalToSizedBuffer(dAtA[:size])
}
func (m *PeriodicFeeAllowance) MarshalToSizedBuffer(dAtA []byte) (int, error) {
func (m *PeriodicAllowance) MarshalToSizedBuffer(dAtA []byte) (int, error) {
i := len(dAtA)
_ = i
var l int
@ -643,7 +646,7 @@ func (m *PeriodicFeeAllowance) MarshalToSizedBuffer(dAtA []byte) (int, error) {
return len(dAtA) - i, nil
}
func (m *AllowedMsgFeeAllowance) Marshal() (dAtA []byte, err error) {
func (m *AllowedMsgAllowance) Marshal() (dAtA []byte, err error) {
size := m.Size()
dAtA = make([]byte, size)
n, err := m.MarshalToSizedBuffer(dAtA[:size])
@ -653,12 +656,12 @@ func (m *AllowedMsgFeeAllowance) Marshal() (dAtA []byte, err error) {
return dAtA[:n], nil
}
func (m *AllowedMsgFeeAllowance) MarshalTo(dAtA []byte) (int, error) {
func (m *AllowedMsgAllowance) MarshalTo(dAtA []byte) (int, error) {
size := m.Size()
return m.MarshalToSizedBuffer(dAtA[:size])
}
func (m *AllowedMsgFeeAllowance) MarshalToSizedBuffer(dAtA []byte) (int, error) {
func (m *AllowedMsgAllowance) MarshalToSizedBuffer(dAtA []byte) (int, error) {
i := len(dAtA)
_ = i
var l int
@ -813,7 +816,7 @@ func (m *ExpiresAt_Height) MarshalToSizedBuffer(dAtA []byte) (int, error) {
dAtA[i] = 0x10
return len(dAtA) - i, nil
}
func (m *FeeAllowanceGrant) Marshal() (dAtA []byte, err error) {
func (m *Grant) Marshal() (dAtA []byte, err error) {
size := m.Size()
dAtA = make([]byte, size)
n, err := m.MarshalToSizedBuffer(dAtA[:size])
@ -823,12 +826,12 @@ func (m *FeeAllowanceGrant) Marshal() (dAtA []byte, err error) {
return dAtA[:n], nil
}
func (m *FeeAllowanceGrant) MarshalTo(dAtA []byte) (int, error) {
func (m *Grant) MarshalTo(dAtA []byte) (int, error) {
size := m.Size()
return m.MarshalToSizedBuffer(dAtA[:size])
}
func (m *FeeAllowanceGrant) MarshalToSizedBuffer(dAtA []byte) (int, error) {
func (m *Grant) MarshalToSizedBuffer(dAtA []byte) (int, error) {
i := len(dAtA)
_ = i
var l int
@ -873,7 +876,7 @@ func encodeVarintFeegrant(dAtA []byte, offset int, v uint64) int {
dAtA[offset] = uint8(v)
return base
}
func (m *BasicFeeAllowance) Size() (n int) {
func (m *BasicAllowance) Size() (n int) {
if m == nil {
return 0
}
@ -890,7 +893,7 @@ func (m *BasicFeeAllowance) Size() (n int) {
return n
}
func (m *PeriodicFeeAllowance) Size() (n int) {
func (m *PeriodicAllowance) Size() (n int) {
if m == nil {
return 0
}
@ -917,7 +920,7 @@ func (m *PeriodicFeeAllowance) Size() (n int) {
return n
}
func (m *AllowedMsgFeeAllowance) Size() (n int) {
func (m *AllowedMsgAllowance) Size() (n int) {
if m == nil {
return 0
}
@ -1002,7 +1005,7 @@ func (m *ExpiresAt_Height) Size() (n int) {
n += 1 + sovFeegrant(uint64(m.Height))
return n
}
func (m *FeeAllowanceGrant) Size() (n int) {
func (m *Grant) Size() (n int) {
if m == nil {
return 0
}
@ -1029,7 +1032,7 @@ func sovFeegrant(x uint64) (n int) {
func sozFeegrant(x uint64) (n int) {
return sovFeegrant(uint64((x << 1) ^ uint64((int64(x) >> 63))))
}
func (m *BasicFeeAllowance) Unmarshal(dAtA []byte) error {
func (m *BasicAllowance) Unmarshal(dAtA []byte) error {
l := len(dAtA)
iNdEx := 0
for iNdEx < l {
@ -1052,10 +1055,10 @@ func (m *BasicFeeAllowance) Unmarshal(dAtA []byte) error {
fieldNum := int32(wire >> 3)
wireType := int(wire & 0x7)
if wireType == 4 {
return fmt.Errorf("proto: BasicFeeAllowance: wiretype end group for non-group")
return fmt.Errorf("proto: BasicAllowance: wiretype end group for non-group")
}
if fieldNum <= 0 {
return fmt.Errorf("proto: BasicFeeAllowance: illegal tag %d (wire type %d)", fieldNum, wire)
return fmt.Errorf("proto: BasicAllowance: illegal tag %d (wire type %d)", fieldNum, wire)
}
switch fieldNum {
case 1:
@ -1146,7 +1149,7 @@ func (m *BasicFeeAllowance) Unmarshal(dAtA []byte) error {
}
return nil
}
func (m *PeriodicFeeAllowance) Unmarshal(dAtA []byte) error {
func (m *PeriodicAllowance) Unmarshal(dAtA []byte) error {
l := len(dAtA)
iNdEx := 0
for iNdEx < l {
@ -1169,10 +1172,10 @@ func (m *PeriodicFeeAllowance) Unmarshal(dAtA []byte) error {
fieldNum := int32(wire >> 3)
wireType := int(wire & 0x7)
if wireType == 4 {
return fmt.Errorf("proto: PeriodicFeeAllowance: wiretype end group for non-group")
return fmt.Errorf("proto: PeriodicAllowance: wiretype end group for non-group")
}
if fieldNum <= 0 {
return fmt.Errorf("proto: PeriodicFeeAllowance: illegal tag %d (wire type %d)", fieldNum, wire)
return fmt.Errorf("proto: PeriodicAllowance: illegal tag %d (wire type %d)", fieldNum, wire)
}
switch fieldNum {
case 1:
@ -1363,7 +1366,7 @@ func (m *PeriodicFeeAllowance) Unmarshal(dAtA []byte) error {
}
return nil
}
func (m *AllowedMsgFeeAllowance) Unmarshal(dAtA []byte) error {
func (m *AllowedMsgAllowance) Unmarshal(dAtA []byte) error {
l := len(dAtA)
iNdEx := 0
for iNdEx < l {
@ -1386,10 +1389,10 @@ func (m *AllowedMsgFeeAllowance) Unmarshal(dAtA []byte) error {
fieldNum := int32(wire >> 3)
wireType := int(wire & 0x7)
if wireType == 4 {
return fmt.Errorf("proto: AllowedMsgFeeAllowance: wiretype end group for non-group")
return fmt.Errorf("proto: AllowedMsgAllowance: wiretype end group for non-group")
}
if fieldNum <= 0 {
return fmt.Errorf("proto: AllowedMsgFeeAllowance: illegal tag %d (wire type %d)", fieldNum, wire)
return fmt.Errorf("proto: AllowedMsgAllowance: illegal tag %d (wire type %d)", fieldNum, wire)
}
switch fieldNum {
case 1:
@ -1691,7 +1694,7 @@ func (m *ExpiresAt) Unmarshal(dAtA []byte) error {
}
return nil
}
func (m *FeeAllowanceGrant) Unmarshal(dAtA []byte) error {
func (m *Grant) Unmarshal(dAtA []byte) error {
l := len(dAtA)
iNdEx := 0
for iNdEx < l {
@ -1714,10 +1717,10 @@ func (m *FeeAllowanceGrant) Unmarshal(dAtA []byte) error {
fieldNum := int32(wire >> 3)
wireType := int(wire & 0x7)
if wireType == 4 {
return fmt.Errorf("proto: FeeAllowanceGrant: wiretype end group for non-group")
return fmt.Errorf("proto: Grant: wiretype end group for non-group")
}
if fieldNum <= 0 {
return fmt.Errorf("proto: FeeAllowanceGrant: illegal tag %d (wire type %d)", fieldNum, wire)
return fmt.Errorf("proto: Grant: illegal tag %d (wire type %d)", fieldNum, wire)
}
switch fieldNum {
case 1:

View File

@ -15,17 +15,17 @@ const (
gasCostPerIteration = uint64(10)
)
var _ FeeAllowanceI = (*AllowedMsgFeeAllowance)(nil)
var _ types.UnpackInterfacesMessage = (*AllowedMsgFeeAllowance)(nil)
var _ FeeAllowanceI = (*AllowedMsgAllowance)(nil)
var _ types.UnpackInterfacesMessage = (*AllowedMsgAllowance)(nil)
// UnpackInterfaces implements UnpackInterfacesMessage.UnpackInterfaces
func (a *AllowedMsgFeeAllowance) UnpackInterfaces(unpacker types.AnyUnpacker) error {
func (a *AllowedMsgAllowance) UnpackInterfaces(unpacker types.AnyUnpacker) error {
var allowance FeeAllowanceI
return unpacker.UnpackAny(a.Allowance, &allowance)
}
// NewAllowedMsgFeeAllowance creates new filtered fee allowance.
func NewAllowedMsgFeeAllowance(allowance FeeAllowanceI, allowedMsgs []string) (*AllowedMsgFeeAllowance, error) {
func NewAllowedMsgAllowance(allowance FeeAllowanceI, allowedMsgs []string) (*AllowedMsgAllowance, error) {
msg, ok := allowance.(proto.Message)
if !ok {
return nil, sdkerrors.Wrapf(sdkerrors.ErrPackAny, "cannot proto marshal %T", msg)
@ -35,14 +35,14 @@ func NewAllowedMsgFeeAllowance(allowance FeeAllowanceI, allowedMsgs []string) (*
return nil, err
}
return &AllowedMsgFeeAllowance{
return &AllowedMsgAllowance{
Allowance: any,
AllowedMessages: allowedMsgs,
}, nil
}
// GetAllowance returns allowed fee allowance.
func (a *AllowedMsgFeeAllowance) GetAllowance() (FeeAllowanceI, error) {
func (a *AllowedMsgAllowance) GetAllowance() (FeeAllowanceI, error) {
allowance, ok := a.Allowance.GetCachedValue().(FeeAllowanceI)
if !ok {
return nil, sdkerrors.Wrap(ErrNoAllowance, "failed to get allowance")
@ -52,7 +52,7 @@ func (a *AllowedMsgFeeAllowance) GetAllowance() (FeeAllowanceI, error) {
}
// Accept method checks for the filtered messages has valid expiry
func (a *AllowedMsgFeeAllowance) Accept(ctx sdk.Context, fee sdk.Coins, msgs []sdk.Msg) (bool, error) {
func (a *AllowedMsgAllowance) Accept(ctx sdk.Context, fee sdk.Coins, msgs []sdk.Msg) (bool, error) {
if !a.allMsgTypesAllowed(ctx, msgs) {
return false, sdkerrors.Wrap(ErrMessageNotAllowed, "message does not exist in allowed messages")
}
@ -65,7 +65,7 @@ func (a *AllowedMsgFeeAllowance) Accept(ctx sdk.Context, fee sdk.Coins, msgs []s
return allowance.Accept(ctx, fee, msgs)
}
func (a *AllowedMsgFeeAllowance) allowedMsgsToMap(ctx sdk.Context) map[string]bool {
func (a *AllowedMsgAllowance) allowedMsgsToMap(ctx sdk.Context) map[string]bool {
msgsMap := make(map[string]bool, len(a.AllowedMessages))
for _, msg := range a.AllowedMessages {
ctx.GasMeter().ConsumeGas(gasCostPerIteration, "check msg")
@ -75,7 +75,7 @@ func (a *AllowedMsgFeeAllowance) allowedMsgsToMap(ctx sdk.Context) map[string]bo
return msgsMap
}
func (a *AllowedMsgFeeAllowance) allMsgTypesAllowed(ctx sdk.Context, msgs []sdk.Msg) bool {
func (a *AllowedMsgAllowance) allMsgTypesAllowed(ctx sdk.Context, msgs []sdk.Msg) bool {
msgsMap := a.allowedMsgsToMap(ctx)
for _, msg := range msgs {
@ -91,13 +91,13 @@ func (a *AllowedMsgFeeAllowance) allMsgTypesAllowed(ctx sdk.Context, msgs []sdk.
// PrepareForExport will adjust the expiration based on export time. In particular,
// it will subtract the dumpHeight from any height-based expiration to ensure that
// the elapsed number of blocks this allowance is valid for is fixed.
func (a *AllowedMsgFeeAllowance) PrepareForExport(dumpTime time.Time, dumpHeight int64) FeeAllowanceI {
func (a *AllowedMsgAllowance) PrepareForExport(dumpTime time.Time, dumpHeight int64) FeeAllowanceI {
allowance, err := a.GetAllowance()
if err != nil {
panic("failed to get allowance")
}
f, err := NewAllowedMsgFeeAllowance(allowance.PrepareForExport(dumpTime, dumpHeight), a.AllowedMessages)
f, err := NewAllowedMsgAllowance(allowance.PrepareForExport(dumpTime, dumpHeight), a.AllowedMessages)
if err != nil {
panic("failed to export filtered fee allowance")
}
@ -106,7 +106,7 @@ func (a *AllowedMsgFeeAllowance) PrepareForExport(dumpTime time.Time, dumpHeight
}
// ValidateBasic implements FeeAllowance and enforces basic sanity checks
func (a *AllowedMsgFeeAllowance) ValidateBasic() error {
func (a *AllowedMsgAllowance) ValidateBasic() error {
if a.Allowance == nil {
return sdkerrors.Wrap(ErrNoAllowance, "allowance should not be empty")
}

View File

@ -5,16 +5,16 @@ import "github.com/cosmos/cosmos-sdk/codec/types"
var _ types.UnpackInterfacesMessage = GenesisState{}
// NewGenesisState creates new GenesisState object
func NewGenesisState(entries []FeeAllowanceGrant) *GenesisState {
func NewGenesisState(entries []Grant) *GenesisState {
return &GenesisState{
FeeAllowances: entries,
Allowances: entries,
}
}
// ValidateGenesis ensures all grants in the genesis state are valid
func ValidateGenesis(data GenesisState) error {
for _, f := range data.FeeAllowances {
grant, err := f.GetFeeGrant()
for _, f := range data.Allowances {
grant, err := f.GetGrant()
if err != nil {
return err
}
@ -33,7 +33,7 @@ func DefaultGenesisState() *GenesisState {
// UnpackInterfaces implements UnpackInterfacesMessage.UnpackInterfaces
func (data GenesisState) UnpackInterfaces(unpacker types.AnyUnpacker) error {
for _, f := range data.FeeAllowances {
for _, f := range data.Allowances {
err := f.UnpackInterfaces(unpacker)
if err != nil {
return err

View File

@ -25,7 +25,7 @@ const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package
// GenesisState contains a set of fee allowances, persisted from the store
type GenesisState struct {
FeeAllowances []FeeAllowanceGrant `protobuf:"bytes,1,rep,name=fee_allowances,json=feeAllowances,proto3" json:"fee_allowances"`
Allowances []Grant `protobuf:"bytes,1,rep,name=allowances,proto3" json:"allowances"`
}
func (m *GenesisState) Reset() { *m = GenesisState{} }
@ -61,9 +61,9 @@ func (m *GenesisState) XXX_DiscardUnknown() {
var xxx_messageInfo_GenesisState proto.InternalMessageInfo
func (m *GenesisState) GetFeeAllowances() []FeeAllowanceGrant {
func (m *GenesisState) GetAllowances() []Grant {
if m != nil {
return m.FeeAllowances
return m.Allowances
}
return nil
}
@ -77,21 +77,20 @@ func init() {
}
var fileDescriptor_ac719d2d0954d1bf = []byte{
// 221 bytes of a gzipped FileDescriptorProto
// 208 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x52, 0x4d, 0xce, 0x2f, 0xce,
0xcd, 0x2f, 0xd6, 0x4f, 0x4b, 0x4d, 0x4d, 0x2f, 0x4a, 0xcc, 0x2b, 0xd1, 0x2f, 0x33, 0x4c, 0x4a,
0x2d, 0x49, 0x34, 0xd4, 0x4f, 0x4f, 0xcd, 0x4b, 0x2d, 0xce, 0x2c, 0xd6, 0x2b, 0x28, 0xca, 0x2f,
0xc9, 0x17, 0x12, 0x87, 0x28, 0xd3, 0x83, 0x29, 0xd3, 0x83, 0x2a, 0x93, 0x12, 0x49, 0xcf, 0x4f,
0xcf, 0x07, 0xab, 0xd1, 0x07, 0xb1, 0x20, 0xca, 0xa5, 0xd4, 0x70, 0x99, 0x0a, 0xd7, 0x0f, 0x56,
0xa7, 0x94, 0xce, 0xc5, 0xe3, 0x0e, 0xb1, 0x27, 0xb8, 0x24, 0xb1, 0x24, 0x55, 0x28, 0x9c, 0x8b,
0x2f, 0x2d, 0x35, 0x35, 0x3e, 0x31, 0x27, 0x27, 0xbf, 0x3c, 0x31, 0x2f, 0x39, 0xb5, 0x58, 0x82,
0x51, 0x81, 0x59, 0x83, 0xdb, 0x48, 0x4b, 0x0f, 0x87, 0xfd, 0x7a, 0x6e, 0xa9, 0xa9, 0x8e, 0x30,
0xd5, 0xee, 0x20, 0x19, 0x27, 0x96, 0x13, 0xf7, 0xe4, 0x19, 0x82, 0x78, 0xd3, 0x90, 0x24, 0x8a,
0x9d, 0xdc, 0x4f, 0x3c, 0x92, 0x63, 0xbc, 0xf0, 0x48, 0x8e, 0xf1, 0xc1, 0x23, 0x39, 0xc6, 0x09,
0x8f, 0xe5, 0x18, 0x2e, 0x3c, 0x96, 0x63, 0xb8, 0xf1, 0x58, 0x8e, 0x21, 0x4a, 0x37, 0x3d, 0xb3,
0x24, 0xa3, 0x34, 0x49, 0x2f, 0x39, 0x3f, 0x57, 0x1f, 0xea, 0x6a, 0x08, 0xa5, 0x5b, 0x9c, 0x92,
0xad, 0x5f, 0x81, 0xf0, 0x42, 0x49, 0x65, 0x41, 0x6a, 0x71, 0x12, 0x1b, 0xd8, 0xe1, 0xc6, 0x80,
0x00, 0x00, 0x00, 0xff, 0xff, 0xaf, 0x53, 0x6e, 0xc5, 0x38, 0x01, 0x00, 0x00,
0xa7, 0x14, 0xc2, 0xc5, 0xe3, 0x0e, 0xb1, 0x27, 0xb8, 0x24, 0xb1, 0x24, 0x55, 0xc8, 0x85, 0x8b,
0x2b, 0x31, 0x27, 0x27, 0xbf, 0x3c, 0x31, 0x2f, 0x39, 0xb5, 0x58, 0x82, 0x51, 0x81, 0x59, 0x83,
0xdb, 0x48, 0x4e, 0x0f, 0x87, 0xdd, 0x7a, 0xee, 0x20, 0x9e, 0x13, 0xcb, 0x89, 0x7b, 0xf2, 0x0c,
0x41, 0x48, 0xfa, 0x9c, 0xdc, 0x4f, 0x3c, 0x92, 0x63, 0xbc, 0xf0, 0x48, 0x8e, 0xf1, 0xc1, 0x23,
0x39, 0xc6, 0x09, 0x8f, 0xe5, 0x18, 0x2e, 0x3c, 0x96, 0x63, 0xb8, 0xf1, 0x58, 0x8e, 0x21, 0x4a,
0x37, 0x3d, 0xb3, 0x24, 0xa3, 0x34, 0x49, 0x2f, 0x39, 0x3f, 0x57, 0x1f, 0xea, 0x44, 0x08, 0xa5,
0x5b, 0x9c, 0x92, 0xad, 0x5f, 0x81, 0x70, 0x6f, 0x49, 0x65, 0x41, 0x6a, 0x71, 0x12, 0x1b, 0xd8,
0x95, 0xc6, 0x80, 0x00, 0x00, 0x00, 0xff, 0xff, 0x8b, 0xe8, 0xa0, 0x07, 0x25, 0x01, 0x00, 0x00,
}
func (m *GenesisState) Marshal() (dAtA []byte, err error) {
@ -114,10 +113,10 @@ func (m *GenesisState) MarshalToSizedBuffer(dAtA []byte) (int, error) {
_ = i
var l int
_ = l
if len(m.FeeAllowances) > 0 {
for iNdEx := len(m.FeeAllowances) - 1; iNdEx >= 0; iNdEx-- {
if len(m.Allowances) > 0 {
for iNdEx := len(m.Allowances) - 1; iNdEx >= 0; iNdEx-- {
{
size, err := m.FeeAllowances[iNdEx].MarshalToSizedBuffer(dAtA[:i])
size, err := m.Allowances[iNdEx].MarshalToSizedBuffer(dAtA[:i])
if err != nil {
return 0, err
}
@ -148,8 +147,8 @@ func (m *GenesisState) Size() (n int) {
}
var l int
_ = l
if len(m.FeeAllowances) > 0 {
for _, e := range m.FeeAllowances {
if len(m.Allowances) > 0 {
for _, e := range m.Allowances {
l = e.Size()
n += 1 + l + sovGenesis(uint64(l))
}
@ -194,7 +193,7 @@ func (m *GenesisState) Unmarshal(dAtA []byte) error {
switch fieldNum {
case 1:
if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field FeeAllowances", wireType)
return fmt.Errorf("proto: wrong wireType = %d for field Allowances", wireType)
}
var msglen int
for shift := uint(0); ; shift += 7 {
@ -221,8 +220,8 @@ func (m *GenesisState) Unmarshal(dAtA []byte) error {
if postIndex > l {
return io.ErrUnexpectedEOF
}
m.FeeAllowances = append(m.FeeAllowances, FeeAllowanceGrant{})
if err := m.FeeAllowances[len(m.FeeAllowances)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
m.Allowances = append(m.Allowances, Grant{})
if err := m.Allowances[len(m.Allowances)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
return err
}
iNdEx = postIndex

View File

@ -3,7 +3,7 @@ package types
import (
"time"
proto "github.com/gogo/protobuf/proto"
"github.com/gogo/protobuf/proto"
"github.com/cosmos/cosmos-sdk/codec/types"
sdk "github.com/cosmos/cosmos-sdk/types"
@ -11,23 +11,23 @@ import (
)
var (
_ types.UnpackInterfacesMessage = &FeeAllowanceGrant{}
_ types.UnpackInterfacesMessage = &Grant{}
)
// NewFeeAllowanceGrant creates a new FeeAllowanceGrant.
// NewGrant creates a new FeeAllowanceGrant.
//nolint:interfacer
func NewFeeAllowanceGrant(granter, grantee sdk.AccAddress, feeAllowance FeeAllowanceI) (FeeAllowanceGrant, error) {
func NewGrant(granter, grantee sdk.AccAddress, feeAllowance FeeAllowanceI) (Grant, error) {
msg, ok := feeAllowance.(proto.Message)
if !ok {
return FeeAllowanceGrant{}, sdkerrors.Wrapf(sdkerrors.ErrPackAny, "cannot proto marshal %T", feeAllowance)
return Grant{}, sdkerrors.Wrapf(sdkerrors.ErrPackAny, "cannot proto marshal %T", feeAllowance)
}
any, err := types.NewAnyWithValue(msg)
if err != nil {
return FeeAllowanceGrant{}, err
return Grant{}, err
}
return FeeAllowanceGrant{
return Grant{
Granter: granter.String(),
Grantee: grantee.String(),
Allowance: any,
@ -36,7 +36,7 @@ func NewFeeAllowanceGrant(granter, grantee sdk.AccAddress, feeAllowance FeeAllow
// ValidateBasic performs basic validation on
// FeeAllowanceGrant
func (a FeeAllowanceGrant) ValidateBasic() error {
func (a Grant) ValidateBasic() error {
if a.Granter == "" {
return sdkerrors.Wrap(sdkerrors.ErrInvalidAddress, "missing granter address")
}
@ -47,7 +47,7 @@ func (a FeeAllowanceGrant) ValidateBasic() error {
return sdkerrors.Wrap(sdkerrors.ErrInvalidAddress, "cannot self-grant fee authorization")
}
f, err := a.GetFeeGrant()
f, err := a.GetGrant()
if err != nil {
return err
}
@ -55,8 +55,8 @@ func (a FeeAllowanceGrant) ValidateBasic() error {
return f.ValidateBasic()
}
// GetFeeGrant unpacks allowance
func (a FeeAllowanceGrant) GetFeeGrant() (FeeAllowanceI, error) {
// GetGrant unpacks allowance
func (a Grant) GetGrant() (FeeAllowanceI, error) {
allowance, ok := a.Allowance.GetCachedValue().(FeeAllowanceI)
if !ok {
return nil, sdkerrors.Wrap(ErrNoAllowance, "failed to get allowance")
@ -66,37 +66,37 @@ func (a FeeAllowanceGrant) GetFeeGrant() (FeeAllowanceI, error) {
}
// UnpackInterfaces implements UnpackInterfacesMessage.UnpackInterfaces
func (a FeeAllowanceGrant) UnpackInterfaces(unpacker types.AnyUnpacker) error {
func (a Grant) UnpackInterfaces(unpacker types.AnyUnpacker) error {
var allowance FeeAllowanceI
return unpacker.UnpackAny(a.Allowance, &allowance)
}
// PrepareForExport will make all needed changes to the allowance to prepare to be
// re-imported at height 0, and return a copy of this grant.
func (a FeeAllowanceGrant) PrepareForExport(dumpTime time.Time, dumpHeight int64) FeeAllowanceGrant {
f, err := a.GetFeeGrant()
func (a Grant) PrepareForExport(dumpTime time.Time, dumpHeight int64) Grant {
f, err := a.GetGrant()
if err != nil {
return FeeAllowanceGrant{}
return Grant{}
}
feegrant := f.PrepareForExport(dumpTime, dumpHeight)
if feegrant == nil {
return FeeAllowanceGrant{}
return Grant{}
}
granter, err := sdk.AccAddressFromBech32(a.Granter)
if err != nil {
return FeeAllowanceGrant{}
return Grant{}
}
grantee, err := sdk.AccAddressFromBech32(a.Grantee)
if err != nil {
return FeeAllowanceGrant{}
return Grant{}
}
grant, err := NewFeeAllowanceGrant(granter, grantee, feegrant)
grant, err := NewGrant(granter, grantee, feegrant)
if err != nil {
return FeeAllowanceGrant{}
return Grant{}
}
return grant

View File

@ -75,7 +75,7 @@ func TestGrant(t *testing.T) {
for name, tc := range cases {
tc := tc
t.Run(name, func(t *testing.T) {
grant, err := types.NewFeeAllowanceGrant(tc.granter, tc.grantee, &types.BasicFeeAllowance{
grant, err := types.NewGrant(tc.granter, tc.grantee, &types.BasicAllowance{
SpendLimit: tc.limit,
Expiration: tc.expires,
})
@ -91,7 +91,7 @@ func TestGrant(t *testing.T) {
// if it is valid, let's try to serialize, deserialize, and make sure it matches
bz, err := cdc.Marshal(&grant)
require.NoError(t, err)
var loaded types.FeeAllowanceGrant
var loaded types.Grant
err = cdc.Unmarshal(bz, &loaded)
require.NoError(t, err)

View File

@ -9,13 +9,13 @@ import (
)
var (
_, _ sdk.Msg = &MsgGrantFeeAllowance{}, &MsgRevokeFeeAllowance{}
_ types.UnpackInterfacesMessage = &MsgGrantFeeAllowance{}
_, _ sdk.Msg = &MsgGrantAllowance{}, &MsgRevokeAllowance{}
_ types.UnpackInterfacesMessage = &MsgGrantAllowance{}
)
// NewMsgGrantFeeAllowance creates a new MsgGrantFeeAllowance.
// NewMsgGrantAllowance creates a new MsgGrantFeeAllowance.
//nolint:interfacer
func NewMsgGrantFeeAllowance(feeAllowance FeeAllowanceI, granter, grantee sdk.AccAddress) (*MsgGrantFeeAllowance, error) {
func NewMsgGrantAllowance(feeAllowance FeeAllowanceI, granter, grantee sdk.AccAddress) (*MsgGrantAllowance, error) {
msg, ok := feeAllowance.(proto.Message)
if !ok {
return nil, sdkerrors.Wrapf(sdkerrors.ErrPackAny, "cannot proto marshal %T", msg)
@ -25,7 +25,7 @@ func NewMsgGrantFeeAllowance(feeAllowance FeeAllowanceI, granter, grantee sdk.Ac
return nil, err
}
return &MsgGrantFeeAllowance{
return &MsgGrantAllowance{
Granter: granter.String(),
Grantee: grantee.String(),
Allowance: any,
@ -33,7 +33,7 @@ func NewMsgGrantFeeAllowance(feeAllowance FeeAllowanceI, granter, grantee sdk.Ac
}
// ValidateBasic implements the sdk.Msg interface.
func (msg MsgGrantFeeAllowance) ValidateBasic() error {
func (msg MsgGrantAllowance) ValidateBasic() error {
if msg.Granter == "" {
return sdkerrors.Wrap(sdkerrors.ErrInvalidAddress, "missing granter address")
}
@ -53,7 +53,7 @@ func (msg MsgGrantFeeAllowance) ValidateBasic() error {
}
// GetSigners gets the granter account associated with an allowance
func (msg MsgGrantFeeAllowance) GetSigners() []sdk.AccAddress {
func (msg MsgGrantAllowance) GetSigners() []sdk.AccAddress {
granter, err := sdk.AccAddressFromBech32(msg.Granter)
if err != nil {
panic(err)
@ -62,7 +62,7 @@ func (msg MsgGrantFeeAllowance) GetSigners() []sdk.AccAddress {
}
// GetFeeAllowanceI returns unpacked FeeAllowance
func (msg MsgGrantFeeAllowance) GetFeeAllowanceI() (FeeAllowanceI, error) {
func (msg MsgGrantAllowance) GetFeeAllowanceI() (FeeAllowanceI, error) {
allowance, ok := msg.Allowance.GetCachedValue().(FeeAllowanceI)
if !ok {
return nil, sdkerrors.Wrap(ErrNoAllowance, "failed to get allowance")
@ -72,19 +72,20 @@ func (msg MsgGrantFeeAllowance) GetFeeAllowanceI() (FeeAllowanceI, error) {
}
// UnpackInterfaces implements UnpackInterfacesMessage.UnpackInterfaces
func (msg MsgGrantFeeAllowance) UnpackInterfaces(unpacker types.AnyUnpacker) error {
func (msg MsgGrantAllowance) UnpackInterfaces(unpacker types.AnyUnpacker) error {
var allowance FeeAllowanceI
return unpacker.UnpackAny(msg.Allowance, &allowance)
}
// NewMsgRevokeFeeAllowance returns a message to revoke a fee allowance for a given
// NewMsgRevokeAllowance returns a message to revoke a fee allowance for a given
// granter and grantee
//nolint:interfacer
func NewMsgRevokeFeeAllowance(granter sdk.AccAddress, grantee sdk.AccAddress) MsgRevokeFeeAllowance {
return MsgRevokeFeeAllowance{Granter: granter.String(), Grantee: grantee.String()}
func NewMsgRevokeAllowance(granter sdk.AccAddress, grantee sdk.AccAddress) MsgRevokeAllowance {
return MsgRevokeAllowance{Granter: granter.String(), Grantee: grantee.String()}
}
func (msg MsgRevokeFeeAllowance) ValidateBasic() error {
// ValidateBasic implements the sdk.Msg interface.
func (msg MsgRevokeAllowance) ValidateBasic() error {
if msg.Granter == "" {
return sdkerrors.Wrap(sdkerrors.ErrInvalidAddress, "missing granter address")
}
@ -100,7 +101,7 @@ func (msg MsgRevokeFeeAllowance) ValidateBasic() error {
// GetSigners gets the granter address associated with an Allowance
// to revoke.
func (msg MsgRevokeFeeAllowance) GetSigners() []sdk.AccAddress {
func (msg MsgRevokeAllowance) GetSigners() []sdk.AccAddress {
granter, err := sdk.AccAddressFromBech32(msg.Granter)
if err != nil {
panic(err)

View File

@ -15,14 +15,14 @@ func TestMsgGrantFeeAllowance(t *testing.T) {
addr, _ := sdk.AccAddressFromBech32("cosmos1aeuqja06474dfrj7uqsvukm6rael982kk89mqr")
addr2, _ := sdk.AccAddressFromBech32("cosmos1nph3cfzk6trsmfxkeu943nvach5qw4vwstnvkl")
atom := sdk.NewCoins(sdk.NewInt64Coin("atom", 555))
basic := &types.BasicFeeAllowance{
basic := &types.BasicAllowance{
SpendLimit: atom,
Expiration: types.ExpiresAtTime(time.Now().Add(3 * time.Hour)),
}
cases := map[string]struct {
grantee sdk.AccAddress
granter sdk.AccAddress
grant *types.BasicFeeAllowance
grant *types.BasicAllowance
valid bool
}{
"valid":{
@ -52,7 +52,7 @@ func TestMsgGrantFeeAllowance(t *testing.T) {
}
for _,tc := range cases {
msg, err := types.NewMsgGrantFeeAllowance(tc.grant, tc.granter, tc.grantee)
msg, err := types.NewMsgGrantAllowance(tc.grant, tc.granter, tc.grantee)
require.NoError(t, err)
err = msg.ValidateBasic()
@ -78,14 +78,14 @@ func TestMsgRevokeFeeAllowance(t *testing.T) {
addr, _ := sdk.AccAddressFromBech32("cosmos1aeuqja06474dfrj7uqsvukm6rael982kk89mqr")
addr2, _ := sdk.AccAddressFromBech32("cosmos1nph3cfzk6trsmfxkeu943nvach5qw4vwstnvkl")
atom := sdk.NewCoins(sdk.NewInt64Coin("atom", 555))
basic := &types.BasicFeeAllowance{
basic := &types.BasicAllowance{
SpendLimit: atom,
Expiration: types.ExpiresAtTime(time.Now().Add(3 * time.Hour)),
}
cases := map[string]struct {
grantee sdk.AccAddress
granter sdk.AccAddress
grant *types.BasicFeeAllowance
grant *types.BasicAllowance
valid bool
}{
"valid":{
@ -115,7 +115,7 @@ func TestMsgRevokeFeeAllowance(t *testing.T) {
}
for _,tc := range cases {
msg := types.NewMsgRevokeFeeAllowance(tc.granter, tc.grantee)
msg := types.NewMsgRevokeAllowance(tc.granter, tc.grantee)
err := msg.ValidateBasic()
if tc.valid {
require.NoError(t, err)

View File

@ -7,7 +7,7 @@ import (
sdkerrors "github.com/cosmos/cosmos-sdk/types/errors"
)
var _ FeeAllowanceI = (*PeriodicFeeAllowance)(nil)
var _ FeeAllowanceI = (*PeriodicAllowance)(nil)
// Accept can use fee payment requested as well as timestamp/height of the current block
// to determine whether or not to process this. This is checked in
@ -19,7 +19,7 @@ var _ FeeAllowanceI = (*PeriodicFeeAllowance)(nil)
//
// If remove is true (regardless of the error), the FeeAllowance will be deleted from storage
// (eg. when it is used up). (See call to RevokeFeeAllowance in Keeper.UseGrantedFees)
func (a *PeriodicFeeAllowance) Accept(ctx sdk.Context, fee sdk.Coins, _ []sdk.Msg) (bool, error) {
func (a *PeriodicAllowance) Accept(ctx sdk.Context, fee sdk.Coins, _ []sdk.Msg) (bool, error) {
blockTime := ctx.BlockTime()
blockHeight := ctx.BlockHeight()
@ -54,7 +54,7 @@ func (a *PeriodicFeeAllowance) Accept(ctx sdk.Context, fee sdk.Coins, _ []sdk.Ms
// It will also update the PeriodReset. If we are within one Period, it will update from the
// last PeriodReset (eg. if you always do one tx per day, it will always reset the same time)
// If we are more then one period out (eg. no activity in a week), reset is one Period from the execution of this method
func (a *PeriodicFeeAllowance) tryResetPeriod(blockTime time.Time, blockHeight int64) {
func (a *PeriodicAllowance) tryResetPeriod(blockTime time.Time, blockHeight int64) {
if !a.PeriodReset.Undefined() && !a.PeriodReset.IsExpired(&blockTime, blockHeight) {
return
}
@ -77,9 +77,9 @@ func (a *PeriodicFeeAllowance) tryResetPeriod(blockTime time.Time, blockHeight i
// it will subtract the dumpHeight from any height-based expiration to ensure that
// the elapsed number of blocks this allowance is valid for is fixed.
// (For PeriodReset and Basic.Expiration)
func (a *PeriodicFeeAllowance) PrepareForExport(dumpTime time.Time, dumpHeight int64) FeeAllowanceI {
return &PeriodicFeeAllowance{
Basic: BasicFeeAllowance{
func (a *PeriodicAllowance) PrepareForExport(dumpTime time.Time, dumpHeight int64) FeeAllowanceI {
return &PeriodicAllowance{
Basic: BasicAllowance{
SpendLimit: a.Basic.SpendLimit,
Expiration: a.Basic.Expiration.PrepareForExport(dumpTime, dumpHeight),
},
@ -91,7 +91,7 @@ func (a *PeriodicFeeAllowance) PrepareForExport(dumpTime time.Time, dumpHeight i
}
// ValidateBasic implements FeeAllowance and enforces basic sanity checks
func (a PeriodicFeeAllowance) ValidateBasic() error {
func (a PeriodicAllowance) ValidateBasic() error {
if err := a.Basic.ValidateBasic(); err != nil {
return err
}

View File

@ -22,7 +22,7 @@ func TestPeriodicFeeValidAllow(t *testing.T) {
eth := sdk.NewCoins(sdk.NewInt64Coin("eth", 1))
cases := map[string]struct {
allowance types.PeriodicFeeAllowance
allowance types.PeriodicAllowance
// all other checks are ignored if valid=false
fee sdk.Coins
blockHeight int64
@ -34,12 +34,12 @@ func TestPeriodicFeeValidAllow(t *testing.T) {
periodReset types.ExpiresAt
}{
"empty": {
allowance: types.PeriodicFeeAllowance{},
allowance: types.PeriodicAllowance{},
valid: false,
},
"only basic": {
allowance: types.PeriodicFeeAllowance{
Basic: types.BasicFeeAllowance{
allowance: types.PeriodicAllowance{
Basic: types.BasicAllowance{
SpendLimit: atom,
Expiration: types.ExpiresAtHeight(100),
},
@ -47,7 +47,7 @@ func TestPeriodicFeeValidAllow(t *testing.T) {
valid: false,
},
"empty basic": {
allowance: types.PeriodicFeeAllowance{
allowance: types.PeriodicAllowance{
Period: types.BlockDuration(10),
PeriodSpendLimit: smallAtom,
PeriodReset: types.ExpiresAtHeight(70),
@ -59,8 +59,8 @@ func TestPeriodicFeeValidAllow(t *testing.T) {
periodReset: types.ExpiresAtHeight(80),
},
"mismatched currencies": {
allowance: types.PeriodicFeeAllowance{
Basic: types.BasicFeeAllowance{
allowance: types.PeriodicAllowance{
Basic: types.BasicAllowance{
SpendLimit: atom,
Expiration: types.ExpiresAtHeight(100),
},
@ -70,8 +70,8 @@ func TestPeriodicFeeValidAllow(t *testing.T) {
valid: false,
},
"first time": {
allowance: types.PeriodicFeeAllowance{
Basic: types.BasicFeeAllowance{
allowance: types.PeriodicAllowance{
Basic: types.BasicAllowance{
SpendLimit: atom,
Expiration: types.ExpiresAtHeight(100),
},
@ -88,8 +88,8 @@ func TestPeriodicFeeValidAllow(t *testing.T) {
periodReset: types.ExpiresAtHeight(85),
},
"same period": {
allowance: types.PeriodicFeeAllowance{
Basic: types.BasicFeeAllowance{
allowance: types.PeriodicAllowance{
Basic: types.BasicAllowance{
SpendLimit: atom,
Expiration: types.ExpiresAtHeight(100),
},
@ -108,8 +108,8 @@ func TestPeriodicFeeValidAllow(t *testing.T) {
periodReset: types.ExpiresAtHeight(80),
},
"step one period": {
allowance: types.PeriodicFeeAllowance{
Basic: types.BasicFeeAllowance{
allowance: types.PeriodicAllowance{
Basic: types.BasicAllowance{
SpendLimit: atom,
Expiration: types.ExpiresAtHeight(100),
},
@ -127,8 +127,8 @@ func TestPeriodicFeeValidAllow(t *testing.T) {
periodReset: types.ExpiresAtHeight(80), // one step from last reset, not now
},
"step limited by global allowance": {
allowance: types.PeriodicFeeAllowance{
Basic: types.BasicFeeAllowance{
allowance: types.PeriodicAllowance{
Basic: types.BasicAllowance{
SpendLimit: smallAtom,
Expiration: types.ExpiresAtHeight(100),
},
@ -146,8 +146,8 @@ func TestPeriodicFeeValidAllow(t *testing.T) {
periodReset: types.ExpiresAtHeight(80), // one step from last reset, not now
},
"expired": {
allowance: types.PeriodicFeeAllowance{
Basic: types.BasicFeeAllowance{
allowance: types.PeriodicAllowance{
Basic: types.BasicAllowance{
SpendLimit: atom,
Expiration: types.ExpiresAtHeight(100),
},
@ -161,8 +161,8 @@ func TestPeriodicFeeValidAllow(t *testing.T) {
remove: true,
},
"over period limit": {
allowance: types.PeriodicFeeAllowance{
Basic: types.BasicFeeAllowance{
allowance: types.PeriodicAllowance{
Basic: types.BasicAllowance{
SpendLimit: atom,
Expiration: types.ExpiresAtHeight(100),
},
@ -220,7 +220,7 @@ func TestPeriodicFeeValidAllowTime(t *testing.T) {
oneHour := now.Add(1 * time.Hour)
cases := map[string]struct {
allow types.PeriodicFeeAllowance
allow types.PeriodicAllowance
// all other checks are ignored if valid=false
fee sdk.Coins
blockTime time.Time
@ -232,12 +232,12 @@ func TestPeriodicFeeValidAllowTime(t *testing.T) {
periodReset types.ExpiresAt
}{
"empty": {
allow: types.PeriodicFeeAllowance{},
allow: types.PeriodicAllowance{},
valid: false,
},
"only basic": {
allow: types.PeriodicFeeAllowance{
Basic: types.BasicFeeAllowance{
allow: types.PeriodicAllowance{
Basic: types.BasicAllowance{
SpendLimit: atom,
Expiration: types.ExpiresAtTime(oneHour),
},
@ -245,7 +245,7 @@ func TestPeriodicFeeValidAllowTime(t *testing.T) {
valid: false,
},
"empty basic": {
allow: types.PeriodicFeeAllowance{
allow: types.PeriodicAllowance{
Period: types.ClockDuration(time.Duration(10) * time.Minute),
PeriodSpendLimit: smallAtom,
PeriodReset: types.ExpiresAtTime(now.Add(30 * time.Minute)),
@ -257,8 +257,8 @@ func TestPeriodicFeeValidAllowTime(t *testing.T) {
periodReset: types.ExpiresAtTime(now.Add(30 * time.Minute)),
},
"mismatched currencies": {
allow: types.PeriodicFeeAllowance{
Basic: types.BasicFeeAllowance{
allow: types.PeriodicAllowance{
Basic: types.BasicAllowance{
SpendLimit: atom,
Expiration: types.ExpiresAtTime(oneHour),
},
@ -268,8 +268,8 @@ func TestPeriodicFeeValidAllowTime(t *testing.T) {
valid: false,
},
"same period": {
allow: types.PeriodicFeeAllowance{
Basic: types.BasicFeeAllowance{
allow: types.PeriodicAllowance{
Basic: types.BasicAllowance{
SpendLimit: atom,
Expiration: types.ExpiresAtTime(now.Add(2 * time.Hour)),
},
@ -288,8 +288,8 @@ func TestPeriodicFeeValidAllowTime(t *testing.T) {
periodReset: types.ExpiresAtTime(now.Add(1 * time.Hour)),
},
"step one period": {
allow: types.PeriodicFeeAllowance{
Basic: types.BasicFeeAllowance{
allow: types.PeriodicAllowance{
Basic: types.BasicAllowance{
SpendLimit: atom,
Expiration: types.ExpiresAtTime(now.Add(2 * time.Hour)),
},
@ -307,8 +307,8 @@ func TestPeriodicFeeValidAllowTime(t *testing.T) {
periodReset: types.ExpiresAtTime(oneHour.Add(10 * time.Minute)), // one step from last reset, not now
},
"step limited by global allowance": {
allow: types.PeriodicFeeAllowance{
Basic: types.BasicFeeAllowance{
allow: types.PeriodicAllowance{
Basic: types.BasicAllowance{
SpendLimit: smallAtom,
Expiration: types.ExpiresAtTime(now.Add(2 * time.Hour)),
},
@ -326,8 +326,8 @@ func TestPeriodicFeeValidAllowTime(t *testing.T) {
periodReset: types.ExpiresAtTime(oneHour.Add(10 * time.Minute)), // one step from last reset, not now
},
"expired": {
allow: types.PeriodicFeeAllowance{
Basic: types.BasicFeeAllowance{
allow: types.PeriodicAllowance{
Basic: types.BasicAllowance{
SpendLimit: atom,
Expiration: types.ExpiresAtTime(now),
},
@ -341,8 +341,8 @@ func TestPeriodicFeeValidAllowTime(t *testing.T) {
remove: true,
},
"over period limit": {
allow: types.PeriodicFeeAllowance{
Basic: types.BasicFeeAllowance{
allow: types.PeriodicAllowance{
Basic: types.BasicAllowance{
SpendLimit: atom,
Expiration: types.ExpiresAtHeight(100),
},

View File

@ -7,7 +7,6 @@ import (
context "context"
fmt "fmt"
query "github.com/cosmos/cosmos-sdk/types/query"
_ "github.com/gogo/protobuf/gogoproto"
grpc1 "github.com/gogo/protobuf/grpc"
proto "github.com/gogo/protobuf/proto"
_ "google.golang.org/genproto/googleapis/api/annotations"
@ -30,24 +29,26 @@ var _ = math.Inf
// proto package needs to be updated.
const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package
// QueryFeeAllowanceRequest is the request type for the Query/FeeAllowance RPC method.
type QueryFeeAllowanceRequest struct {
// QueryAllowanceRequest is the request type for the Query/Allowance RPC method.
type QueryAllowanceRequest struct {
// granter is the address of the user granting an allowance of their funds.
Granter string `protobuf:"bytes,1,opt,name=granter,proto3" json:"granter,omitempty"`
// grantee is the address of the user being granted an allowance of another user's funds.
Grantee string `protobuf:"bytes,2,opt,name=grantee,proto3" json:"grantee,omitempty"`
}
func (m *QueryFeeAllowanceRequest) Reset() { *m = QueryFeeAllowanceRequest{} }
func (m *QueryFeeAllowanceRequest) String() string { return proto.CompactTextString(m) }
func (*QueryFeeAllowanceRequest) ProtoMessage() {}
func (*QueryFeeAllowanceRequest) Descriptor() ([]byte, []int) {
func (m *QueryAllowanceRequest) Reset() { *m = QueryAllowanceRequest{} }
func (m *QueryAllowanceRequest) String() string { return proto.CompactTextString(m) }
func (*QueryAllowanceRequest) ProtoMessage() {}
func (*QueryAllowanceRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_59efc303945de53f, []int{0}
}
func (m *QueryFeeAllowanceRequest) XXX_Unmarshal(b []byte) error {
func (m *QueryAllowanceRequest) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
}
func (m *QueryFeeAllowanceRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
func (m *QueryAllowanceRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
if deterministic {
return xxx_messageInfo_QueryFeeAllowanceRequest.Marshal(b, m, deterministic)
return xxx_messageInfo_QueryAllowanceRequest.Marshal(b, m, deterministic)
} else {
b = b[:cap(b)]
n, err := m.MarshalToSizedBuffer(b)
@ -57,50 +58,50 @@ func (m *QueryFeeAllowanceRequest) XXX_Marshal(b []byte, deterministic bool) ([]
return b[:n], nil
}
}
func (m *QueryFeeAllowanceRequest) XXX_Merge(src proto.Message) {
xxx_messageInfo_QueryFeeAllowanceRequest.Merge(m, src)
func (m *QueryAllowanceRequest) XXX_Merge(src proto.Message) {
xxx_messageInfo_QueryAllowanceRequest.Merge(m, src)
}
func (m *QueryFeeAllowanceRequest) XXX_Size() int {
func (m *QueryAllowanceRequest) XXX_Size() int {
return m.Size()
}
func (m *QueryFeeAllowanceRequest) XXX_DiscardUnknown() {
xxx_messageInfo_QueryFeeAllowanceRequest.DiscardUnknown(m)
func (m *QueryAllowanceRequest) XXX_DiscardUnknown() {
xxx_messageInfo_QueryAllowanceRequest.DiscardUnknown(m)
}
var xxx_messageInfo_QueryFeeAllowanceRequest proto.InternalMessageInfo
var xxx_messageInfo_QueryAllowanceRequest proto.InternalMessageInfo
func (m *QueryFeeAllowanceRequest) GetGranter() string {
func (m *QueryAllowanceRequest) GetGranter() string {
if m != nil {
return m.Granter
}
return ""
}
func (m *QueryFeeAllowanceRequest) GetGrantee() string {
func (m *QueryAllowanceRequest) GetGrantee() string {
if m != nil {
return m.Grantee
}
return ""
}
// QueryFeeAllowanceResponse is the response type for the Query/FeeAllowance RPC method.
type QueryFeeAllowanceResponse struct {
// fee_allowance is a fee_allowance granted for grantee by granter.
FeeAllowance *FeeAllowanceGrant `protobuf:"bytes,1,opt,name=fee_allowance,json=feeAllowance,proto3" json:"fee_allowance,omitempty"`
// QueryAllowanceResponse is the response type for the Query/Allowance RPC method.
type QueryAllowanceResponse struct {
// allowance is a allowance granted for grantee by granter.
Allowance *Grant `protobuf:"bytes,1,opt,name=allowance,proto3" json:"allowance,omitempty"`
}
func (m *QueryFeeAllowanceResponse) Reset() { *m = QueryFeeAllowanceResponse{} }
func (m *QueryFeeAllowanceResponse) String() string { return proto.CompactTextString(m) }
func (*QueryFeeAllowanceResponse) ProtoMessage() {}
func (*QueryFeeAllowanceResponse) Descriptor() ([]byte, []int) {
func (m *QueryAllowanceResponse) Reset() { *m = QueryAllowanceResponse{} }
func (m *QueryAllowanceResponse) String() string { return proto.CompactTextString(m) }
func (*QueryAllowanceResponse) ProtoMessage() {}
func (*QueryAllowanceResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_59efc303945de53f, []int{1}
}
func (m *QueryFeeAllowanceResponse) XXX_Unmarshal(b []byte) error {
func (m *QueryAllowanceResponse) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
}
func (m *QueryFeeAllowanceResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
func (m *QueryAllowanceResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
if deterministic {
return xxx_messageInfo_QueryFeeAllowanceResponse.Marshal(b, m, deterministic)
return xxx_messageInfo_QueryAllowanceResponse.Marshal(b, m, deterministic)
} else {
b = b[:cap(b)]
n, err := m.MarshalToSizedBuffer(b)
@ -110,44 +111,44 @@ func (m *QueryFeeAllowanceResponse) XXX_Marshal(b []byte, deterministic bool) ([
return b[:n], nil
}
}
func (m *QueryFeeAllowanceResponse) XXX_Merge(src proto.Message) {
xxx_messageInfo_QueryFeeAllowanceResponse.Merge(m, src)
func (m *QueryAllowanceResponse) XXX_Merge(src proto.Message) {
xxx_messageInfo_QueryAllowanceResponse.Merge(m, src)
}
func (m *QueryFeeAllowanceResponse) XXX_Size() int {
func (m *QueryAllowanceResponse) XXX_Size() int {
return m.Size()
}
func (m *QueryFeeAllowanceResponse) XXX_DiscardUnknown() {
xxx_messageInfo_QueryFeeAllowanceResponse.DiscardUnknown(m)
func (m *QueryAllowanceResponse) XXX_DiscardUnknown() {
xxx_messageInfo_QueryAllowanceResponse.DiscardUnknown(m)
}
var xxx_messageInfo_QueryFeeAllowanceResponse proto.InternalMessageInfo
var xxx_messageInfo_QueryAllowanceResponse proto.InternalMessageInfo
func (m *QueryFeeAllowanceResponse) GetFeeAllowance() *FeeAllowanceGrant {
func (m *QueryAllowanceResponse) GetAllowance() *Grant {
if m != nil {
return m.FeeAllowance
return m.Allowance
}
return nil
}
// QueryFeeAllowancesRequest is the request type for the Query/FeeAllowances RPC method.
type QueryFeeAllowancesRequest struct {
// QueryAllowancesRequest is the request type for the Query/Allowances RPC method.
type QueryAllowancesRequest struct {
Grantee string `protobuf:"bytes,1,opt,name=grantee,proto3" json:"grantee,omitempty"`
// pagination defines an pagination for the request.
Pagination *query.PageRequest `protobuf:"bytes,2,opt,name=pagination,proto3" json:"pagination,omitempty"`
}
func (m *QueryFeeAllowancesRequest) Reset() { *m = QueryFeeAllowancesRequest{} }
func (m *QueryFeeAllowancesRequest) String() string { return proto.CompactTextString(m) }
func (*QueryFeeAllowancesRequest) ProtoMessage() {}
func (*QueryFeeAllowancesRequest) Descriptor() ([]byte, []int) {
func (m *QueryAllowancesRequest) Reset() { *m = QueryAllowancesRequest{} }
func (m *QueryAllowancesRequest) String() string { return proto.CompactTextString(m) }
func (*QueryAllowancesRequest) ProtoMessage() {}
func (*QueryAllowancesRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_59efc303945de53f, []int{2}
}
func (m *QueryFeeAllowancesRequest) XXX_Unmarshal(b []byte) error {
func (m *QueryAllowancesRequest) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
}
func (m *QueryFeeAllowancesRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
func (m *QueryAllowancesRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
if deterministic {
return xxx_messageInfo_QueryFeeAllowancesRequest.Marshal(b, m, deterministic)
return xxx_messageInfo_QueryAllowancesRequest.Marshal(b, m, deterministic)
} else {
b = b[:cap(b)]
n, err := m.MarshalToSizedBuffer(b)
@ -157,52 +158,52 @@ func (m *QueryFeeAllowancesRequest) XXX_Marshal(b []byte, deterministic bool) ([
return b[:n], nil
}
}
func (m *QueryFeeAllowancesRequest) XXX_Merge(src proto.Message) {
xxx_messageInfo_QueryFeeAllowancesRequest.Merge(m, src)
func (m *QueryAllowancesRequest) XXX_Merge(src proto.Message) {
xxx_messageInfo_QueryAllowancesRequest.Merge(m, src)
}
func (m *QueryFeeAllowancesRequest) XXX_Size() int {
func (m *QueryAllowancesRequest) XXX_Size() int {
return m.Size()
}
func (m *QueryFeeAllowancesRequest) XXX_DiscardUnknown() {
xxx_messageInfo_QueryFeeAllowancesRequest.DiscardUnknown(m)
func (m *QueryAllowancesRequest) XXX_DiscardUnknown() {
xxx_messageInfo_QueryAllowancesRequest.DiscardUnknown(m)
}
var xxx_messageInfo_QueryFeeAllowancesRequest proto.InternalMessageInfo
var xxx_messageInfo_QueryAllowancesRequest proto.InternalMessageInfo
func (m *QueryFeeAllowancesRequest) GetGrantee() string {
func (m *QueryAllowancesRequest) GetGrantee() string {
if m != nil {
return m.Grantee
}
return ""
}
func (m *QueryFeeAllowancesRequest) GetPagination() *query.PageRequest {
func (m *QueryAllowancesRequest) GetPagination() *query.PageRequest {
if m != nil {
return m.Pagination
}
return nil
}
// QueryFeeAllowancesResponse is the response type for the Query/FeeAllowances RPC method.
type QueryFeeAllowancesResponse struct {
// fee_allowances are fee_allowance's granted for grantee by granter.
FeeAllowances []*FeeAllowanceGrant `protobuf:"bytes,1,rep,name=fee_allowances,json=feeAllowances,proto3" json:"fee_allowances,omitempty"`
// QueryAllowancesResponse is the response type for the Query/Allowances RPC method.
type QueryAllowancesResponse struct {
// allowances are allowance's granted for grantee by granter.
Allowances []*Grant `protobuf:"bytes,1,rep,name=allowances,proto3" json:"allowances,omitempty"`
// pagination defines an pagination for the response.
Pagination *query.PageResponse `protobuf:"bytes,2,opt,name=pagination,proto3" json:"pagination,omitempty"`
}
func (m *QueryFeeAllowancesResponse) Reset() { *m = QueryFeeAllowancesResponse{} }
func (m *QueryFeeAllowancesResponse) String() string { return proto.CompactTextString(m) }
func (*QueryFeeAllowancesResponse) ProtoMessage() {}
func (*QueryFeeAllowancesResponse) Descriptor() ([]byte, []int) {
func (m *QueryAllowancesResponse) Reset() { *m = QueryAllowancesResponse{} }
func (m *QueryAllowancesResponse) String() string { return proto.CompactTextString(m) }
func (*QueryAllowancesResponse) ProtoMessage() {}
func (*QueryAllowancesResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_59efc303945de53f, []int{3}
}
func (m *QueryFeeAllowancesResponse) XXX_Unmarshal(b []byte) error {
func (m *QueryAllowancesResponse) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
}
func (m *QueryFeeAllowancesResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
func (m *QueryAllowancesResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
if deterministic {
return xxx_messageInfo_QueryFeeAllowancesResponse.Marshal(b, m, deterministic)
return xxx_messageInfo_QueryAllowancesResponse.Marshal(b, m, deterministic)
} else {
b = b[:cap(b)]
n, err := m.MarshalToSizedBuffer(b)
@ -212,26 +213,26 @@ func (m *QueryFeeAllowancesResponse) XXX_Marshal(b []byte, deterministic bool) (
return b[:n], nil
}
}
func (m *QueryFeeAllowancesResponse) XXX_Merge(src proto.Message) {
xxx_messageInfo_QueryFeeAllowancesResponse.Merge(m, src)
func (m *QueryAllowancesResponse) XXX_Merge(src proto.Message) {
xxx_messageInfo_QueryAllowancesResponse.Merge(m, src)
}
func (m *QueryFeeAllowancesResponse) XXX_Size() int {
func (m *QueryAllowancesResponse) XXX_Size() int {
return m.Size()
}
func (m *QueryFeeAllowancesResponse) XXX_DiscardUnknown() {
xxx_messageInfo_QueryFeeAllowancesResponse.DiscardUnknown(m)
func (m *QueryAllowancesResponse) XXX_DiscardUnknown() {
xxx_messageInfo_QueryAllowancesResponse.DiscardUnknown(m)
}
var xxx_messageInfo_QueryFeeAllowancesResponse proto.InternalMessageInfo
var xxx_messageInfo_QueryAllowancesResponse proto.InternalMessageInfo
func (m *QueryFeeAllowancesResponse) GetFeeAllowances() []*FeeAllowanceGrant {
func (m *QueryAllowancesResponse) GetAllowances() []*Grant {
if m != nil {
return m.FeeAllowances
return m.Allowances
}
return nil
}
func (m *QueryFeeAllowancesResponse) GetPagination() *query.PageResponse {
func (m *QueryAllowancesResponse) GetPagination() *query.PageResponse {
if m != nil {
return m.Pagination
}
@ -239,10 +240,10 @@ func (m *QueryFeeAllowancesResponse) GetPagination() *query.PageResponse {
}
func init() {
proto.RegisterType((*QueryFeeAllowanceRequest)(nil), "cosmos.feegrant.v1beta1.QueryFeeAllowanceRequest")
proto.RegisterType((*QueryFeeAllowanceResponse)(nil), "cosmos.feegrant.v1beta1.QueryFeeAllowanceResponse")
proto.RegisterType((*QueryFeeAllowancesRequest)(nil), "cosmos.feegrant.v1beta1.QueryFeeAllowancesRequest")
proto.RegisterType((*QueryFeeAllowancesResponse)(nil), "cosmos.feegrant.v1beta1.QueryFeeAllowancesResponse")
proto.RegisterType((*QueryAllowanceRequest)(nil), "cosmos.feegrant.v1beta1.QueryAllowanceRequest")
proto.RegisterType((*QueryAllowanceResponse)(nil), "cosmos.feegrant.v1beta1.QueryAllowanceResponse")
proto.RegisterType((*QueryAllowancesRequest)(nil), "cosmos.feegrant.v1beta1.QueryAllowancesRequest")
proto.RegisterType((*QueryAllowancesResponse)(nil), "cosmos.feegrant.v1beta1.QueryAllowancesResponse")
}
func init() {
@ -250,36 +251,34 @@ func init() {
}
var fileDescriptor_59efc303945de53f = []byte{
// 455 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x93, 0x31, 0x8f, 0xd3, 0x30,
0x14, 0xc7, 0xeb, 0x22, 0x40, 0xf8, 0xae, 0x0c, 0x16, 0x12, 0x21, 0x42, 0xd1, 0x29, 0x48, 0x07,
0x3a, 0xe9, 0x62, 0x35, 0x9d, 0x40, 0x2c, 0xdc, 0x70, 0xdd, 0x80, 0xcb, 0xc8, 0x82, 0x9c, 0xf2,
0x6a, 0x22, 0x72, 0x71, 0x2e, 0x76, 0x81, 0x13, 0xea, 0xc2, 0x27, 0x40, 0xe2, 0xa3, 0xb0, 0xc0,
0x37, 0x60, 0x3c, 0x89, 0x85, 0x11, 0xb5, 0x7c, 0x09, 0x36, 0x14, 0x3b, 0x6e, 0x52, 0x91, 0x00,
0x99, 0xe2, 0xe4, 0xfd, 0xdf, 0x7b, 0xbf, 0xf7, 0xcf, 0x33, 0xbe, 0x33, 0x13, 0xf2, 0x54, 0x48,
0x3a, 0x07, 0xe0, 0x05, 0xcb, 0x14, 0x7d, 0x3d, 0x8e, 0x41, 0xb1, 0x31, 0x3d, 0x5b, 0x40, 0x71,
0x1e, 0xe4, 0x85, 0x50, 0x82, 0xdc, 0x34, 0xa2, 0xc0, 0x8a, 0x82, 0x4a, 0xe4, 0xde, 0xe0, 0x82,
0x0b, 0xad, 0xa1, 0xe5, 0xc9, 0xc8, 0xdd, 0xfd, 0xae, 0x9a, 0x9b, 0x7c, 0xa3, 0x3b, 0xa8, 0x74,
0x31, 0x93, 0x60, 0xfa, 0x6d, 0x94, 0x39, 0xe3, 0x49, 0xc6, 0x54, 0x22, 0xb2, 0x4a, 0x7b, 0x9b,
0x0b, 0xc1, 0x53, 0xa0, 0x2c, 0x4f, 0x28, 0xcb, 0x32, 0xa1, 0x74, 0x50, 0x9a, 0xa8, 0xff, 0x18,
0x3b, 0x27, 0x65, 0xfe, 0x31, 0xc0, 0xa3, 0x34, 0x15, 0x6f, 0x58, 0x36, 0x83, 0x08, 0xce, 0x16,
0x20, 0x15, 0x71, 0xf0, 0x55, 0xdd, 0x14, 0x0a, 0x07, 0xed, 0xa1, 0x7b, 0xd7, 0x22, 0xfb, 0x5a,
0x47, 0xc0, 0x19, 0x36, 0x23, 0xe0, 0xa7, 0xf8, 0x56, 0x4b, 0x3d, 0x99, 0x8b, 0x4c, 0x02, 0x79,
0x82, 0x47, 0x73, 0x80, 0xe7, 0xcc, 0x06, 0x74, 0xd9, 0x9d, 0xf0, 0x20, 0xe8, 0x70, 0x29, 0x68,
0x56, 0x99, 0x96, 0x91, 0x68, 0x77, 0xde, 0xf8, 0xe4, 0x2f, 0x5b, 0xba, 0xc9, 0x3f, 0xf0, 0x61,
0x1b, 0x1f, 0xc8, 0x31, 0xc6, 0xb5, 0x4d, 0x7a, 0x82, 0x9d, 0x70, 0xdf, 0x42, 0x94, 0x9e, 0x06,
0xe6, 0x1f, 0x5a, 0x8c, 0xa7, 0x8c, 0x5b, 0x53, 0xa2, 0x46, 0xa6, 0xff, 0x19, 0x61, 0xb7, 0xad,
0x7f, 0x35, 0xee, 0x09, 0xbe, 0xbe, 0x35, 0xae, 0x74, 0xd0, 0xde, 0xa5, 0x9e, 0xf3, 0x8e, 0x9a,
0xf3, 0x4a, 0x32, 0x6d, 0x21, 0xbf, 0xfb, 0x4f, 0x72, 0xc3, 0xd3, 0x44, 0x0f, 0x7f, 0x0d, 0xf1,
0x65, 0x8d, 0x4e, 0xbe, 0x20, 0xbc, 0xdb, 0xec, 0x4b, 0xc6, 0x9d, 0x78, 0x5d, 0x9b, 0xe2, 0x86,
0x7d, 0x52, 0x0c, 0x8d, 0x7f, 0xf4, 0xfe, 0xdb, 0xcf, 0x8f, 0xc3, 0x87, 0xe4, 0x01, 0xfd, 0xcb,
0xd2, 0xd7, 0xe6, 0xd1, 0x77, 0xd5, 0xf2, 0x2d, 0xed, 0x09, 0x96, 0xe4, 0x13, 0xc2, 0xa3, 0x2d,
0xef, 0x49, 0x0f, 0x12, 0xbb, 0x28, 0xee, 0xa4, 0x57, 0x4e, 0x85, 0x7f, 0x5f, 0xe3, 0x4f, 0xc8,
0xf8, 0xff, 0xf0, 0x65, 0x4d, 0x7d, 0x34, 0xfd, 0xba, 0xf2, 0xd0, 0xc5, 0xca, 0x43, 0x3f, 0x56,
0x1e, 0xfa, 0xb0, 0xf6, 0x06, 0x17, 0x6b, 0x6f, 0xf0, 0x7d, 0xed, 0x0d, 0x9e, 0x1d, 0xf2, 0x44,
0xbd, 0x5c, 0xc4, 0xc1, 0x4c, 0x9c, 0xda, 0xb2, 0xe6, 0x71, 0x28, 0x5f, 0xbc, 0xa2, 0x6f, 0xeb,
0x1e, 0xea, 0x3c, 0x07, 0x19, 0x5f, 0xd1, 0x77, 0x78, 0xf2, 0x3b, 0x00, 0x00, 0xff, 0xff, 0xb8,
0x46, 0x4c, 0xba, 0x8b, 0x04, 0x00, 0x00,
// 432 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x93, 0xc1, 0xca, 0xd3, 0x40,
0x10, 0xc7, 0xbb, 0x15, 0x95, 0x6e, 0x6f, 0x0b, 0xda, 0x10, 0x24, 0x94, 0x08, 0x55, 0x84, 0xee,
0xda, 0x8a, 0xe2, 0x41, 0x0a, 0x7a, 0xb0, 0x07, 0x2f, 0x9a, 0x83, 0x07, 0x6f, 0x9b, 0x3a, 0xc6,
0x60, 0x9b, 0x4d, 0xb3, 0x5b, 0xb5, 0x4a, 0x2f, 0x3e, 0x81, 0xe0, 0x1b, 0x78, 0xf0, 0xe4, 0x83,
0x78, 0x2c, 0x78, 0xf1, 0xe6, 0x47, 0xfb, 0x3d, 0xc8, 0x47, 0x37, 0xd9, 0x24, 0x5f, 0xdb, 0xd0,
0x9c, 0x92, 0xcd, 0xfc, 0xe7, 0x3f, 0xbf, 0x99, 0xd9, 0xe0, 0xdb, 0x13, 0x21, 0x67, 0x42, 0xb2,
0x77, 0x00, 0x41, 0xc2, 0x23, 0xc5, 0x3e, 0x0e, 0x7c, 0x50, 0x7c, 0xc0, 0xe6, 0x0b, 0x48, 0x96,
0x34, 0x4e, 0x84, 0x12, 0xa4, 0x93, 0x8a, 0xa8, 0x11, 0xd1, 0x4c, 0x64, 0xf7, 0xaa, 0xb2, 0x73,
0xa5, 0x36, 0xb0, 0xef, 0x65, 0x3a, 0x9f, 0x4b, 0x48, 0x9d, 0x73, 0x65, 0xcc, 0x83, 0x30, 0xe2,
0x2a, 0x14, 0x51, 0xa6, 0xbd, 0x15, 0x08, 0x11, 0x4c, 0x81, 0xf1, 0x38, 0x64, 0x3c, 0x8a, 0x84,
0xd2, 0x41, 0x99, 0x46, 0xdd, 0x17, 0xf8, 0xc6, 0xab, 0x5d, 0xfe, 0xd3, 0xe9, 0x54, 0x7c, 0xe2,
0xd1, 0x04, 0x3c, 0x98, 0x2f, 0x40, 0x2a, 0x62, 0xe1, 0xeb, 0xba, 0x22, 0x24, 0x16, 0xea, 0xa2,
0xbb, 0x2d, 0xcf, 0x1c, 0x8b, 0x08, 0x58, 0xcd, 0x72, 0x04, 0xdc, 0xd7, 0xf8, 0xe6, 0xbe, 0x99,
0x8c, 0x45, 0x24, 0x81, 0x3c, 0xc1, 0x2d, 0x6e, 0x3e, 0x6a, 0xbf, 0xf6, 0xd0, 0xa1, 0x15, 0x53,
0xa0, 0xe3, 0xdd, 0xc9, 0x2b, 0x12, 0xdc, 0x2f, 0xfb, 0xbe, 0xf2, 0x80, 0x12, 0x2e, 0x53, 0x02,
0x79, 0x8e, 0x71, 0x31, 0x0a, 0x0d, 0xda, 0x1e, 0xf6, 0x4c, 0xc9, 0xdd, 0xdc, 0x68, 0xba, 0x11,
0x53, 0xf4, 0x25, 0x0f, 0x4c, 0xef, 0x5e, 0x29, 0xd3, 0xfd, 0x89, 0x70, 0xe7, 0xa0, 0x78, 0xd6,
0xd5, 0x08, 0xe3, 0x1c, 0x52, 0x5a, 0xa8, 0x7b, 0xa5, 0x46, 0x5b, 0xa5, 0x0c, 0x32, 0x3e, 0xc2,
0x78, 0xe7, 0x24, 0x63, 0x5a, 0xbc, 0x0c, 0x39, 0xfc, 0xdf, 0xc4, 0x57, 0x35, 0x24, 0xf9, 0x8d,
0x70, 0x2b, 0x27, 0x25, 0xb4, 0x12, 0xe6, 0xe8, 0xd2, 0x6d, 0x56, 0x5b, 0x9f, 0x42, 0xb8, 0xa3,
0x6f, 0x7f, 0xcf, 0x7f, 0x34, 0x1f, 0x93, 0x47, 0xac, 0xea, 0xe6, 0xe6, 0xed, 0xb2, 0xaf, 0xd9,
0x05, 0x5a, 0x99, 0x37, 0x58, 0x91, 0x5f, 0x08, 0xe3, 0x62, 0xb0, 0xa4, 0x6e, 0x7d, 0xb3, 0x7f,
0xfb, 0x7e, 0xfd, 0x84, 0x8c, 0xf8, 0xa1, 0x26, 0x66, 0xa4, 0x7f, 0x9a, 0x58, 0x16, 0xa0, 0xcf,
0xc6, 0x7f, 0x36, 0x0e, 0x5a, 0x6f, 0x1c, 0x74, 0xb6, 0x71, 0xd0, 0xf7, 0xad, 0xd3, 0x58, 0x6f,
0x9d, 0xc6, 0xbf, 0xad, 0xd3, 0x78, 0xd3, 0x0f, 0x42, 0xf5, 0x7e, 0xe1, 0xd3, 0x89, 0x98, 0x19,
0xcb, 0xf4, 0xd1, 0x97, 0x6f, 0x3f, 0xb0, 0xcf, 0x85, 0xbf, 0x5a, 0xc6, 0x20, 0xfd, 0x6b, 0xfa,
0xbf, 0x7b, 0x70, 0x11, 0x00, 0x00, 0xff, 0xff, 0x86, 0xb1, 0x57, 0xa8, 0x29, 0x04, 0x00, 0x00,
}
// Reference imports to suppress errors if they are not otherwise used.
@ -294,10 +293,10 @@ const _ = grpc.SupportPackageIsVersion4
//
// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.
type QueryClient interface {
// FeeAllowance returns fee granted to the grantee by the granter.
FeeAllowance(ctx context.Context, in *QueryFeeAllowanceRequest, opts ...grpc.CallOption) (*QueryFeeAllowanceResponse, error)
// FeeAllowances returns all the grants for address.
FeeAllowances(ctx context.Context, in *QueryFeeAllowancesRequest, opts ...grpc.CallOption) (*QueryFeeAllowancesResponse, error)
// Allowance returns fee granted to the grantee by the granter.
Allowance(ctx context.Context, in *QueryAllowanceRequest, opts ...grpc.CallOption) (*QueryAllowanceResponse, error)
// Allowances returns all the grants for address.
Allowances(ctx context.Context, in *QueryAllowancesRequest, opts ...grpc.CallOption) (*QueryAllowancesResponse, error)
}
type queryClient struct {
@ -308,18 +307,18 @@ func NewQueryClient(cc grpc1.ClientConn) QueryClient {
return &queryClient{cc}
}
func (c *queryClient) FeeAllowance(ctx context.Context, in *QueryFeeAllowanceRequest, opts ...grpc.CallOption) (*QueryFeeAllowanceResponse, error) {
out := new(QueryFeeAllowanceResponse)
err := c.cc.Invoke(ctx, "/cosmos.feegrant.v1beta1.Query/FeeAllowance", in, out, opts...)
func (c *queryClient) Allowance(ctx context.Context, in *QueryAllowanceRequest, opts ...grpc.CallOption) (*QueryAllowanceResponse, error) {
out := new(QueryAllowanceResponse)
err := c.cc.Invoke(ctx, "/cosmos.feegrant.v1beta1.Query/Allowance", in, out, opts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *queryClient) FeeAllowances(ctx context.Context, in *QueryFeeAllowancesRequest, opts ...grpc.CallOption) (*QueryFeeAllowancesResponse, error) {
out := new(QueryFeeAllowancesResponse)
err := c.cc.Invoke(ctx, "/cosmos.feegrant.v1beta1.Query/FeeAllowances", in, out, opts...)
func (c *queryClient) Allowances(ctx context.Context, in *QueryAllowancesRequest, opts ...grpc.CallOption) (*QueryAllowancesResponse, error) {
out := new(QueryAllowancesResponse)
err := c.cc.Invoke(ctx, "/cosmos.feegrant.v1beta1.Query/Allowances", in, out, opts...)
if err != nil {
return nil, err
}
@ -328,59 +327,59 @@ func (c *queryClient) FeeAllowances(ctx context.Context, in *QueryFeeAllowancesR
// QueryServer is the server API for Query service.
type QueryServer interface {
// FeeAllowance returns fee granted to the grantee by the granter.
FeeAllowance(context.Context, *QueryFeeAllowanceRequest) (*QueryFeeAllowanceResponse, error)
// FeeAllowances returns all the grants for address.
FeeAllowances(context.Context, *QueryFeeAllowancesRequest) (*QueryFeeAllowancesResponse, error)
// Allowance returns fee granted to the grantee by the granter.
Allowance(context.Context, *QueryAllowanceRequest) (*QueryAllowanceResponse, error)
// Allowances returns all the grants for address.
Allowances(context.Context, *QueryAllowancesRequest) (*QueryAllowancesResponse, error)
}
// UnimplementedQueryServer can be embedded to have forward compatible implementations.
type UnimplementedQueryServer struct {
}
func (*UnimplementedQueryServer) FeeAllowance(ctx context.Context, req *QueryFeeAllowanceRequest) (*QueryFeeAllowanceResponse, error) {
return nil, status.Errorf(codes.Unimplemented, "method FeeAllowance not implemented")
func (*UnimplementedQueryServer) Allowance(ctx context.Context, req *QueryAllowanceRequest) (*QueryAllowanceResponse, error) {
return nil, status.Errorf(codes.Unimplemented, "method Allowance not implemented")
}
func (*UnimplementedQueryServer) FeeAllowances(ctx context.Context, req *QueryFeeAllowancesRequest) (*QueryFeeAllowancesResponse, error) {
return nil, status.Errorf(codes.Unimplemented, "method FeeAllowances not implemented")
func (*UnimplementedQueryServer) Allowances(ctx context.Context, req *QueryAllowancesRequest) (*QueryAllowancesResponse, error) {
return nil, status.Errorf(codes.Unimplemented, "method Allowances not implemented")
}
func RegisterQueryServer(s grpc1.Server, srv QueryServer) {
s.RegisterService(&_Query_serviceDesc, srv)
}
func _Query_FeeAllowance_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(QueryFeeAllowanceRequest)
func _Query_Allowance_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(QueryAllowanceRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(QueryServer).FeeAllowance(ctx, in)
return srv.(QueryServer).Allowance(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: "/cosmos.feegrant.v1beta1.Query/FeeAllowance",
FullMethod: "/cosmos.feegrant.v1beta1.Query/Allowance",
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(QueryServer).FeeAllowance(ctx, req.(*QueryFeeAllowanceRequest))
return srv.(QueryServer).Allowance(ctx, req.(*QueryAllowanceRequest))
}
return interceptor(ctx, in, info, handler)
}
func _Query_FeeAllowances_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(QueryFeeAllowancesRequest)
func _Query_Allowances_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(QueryAllowancesRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(QueryServer).FeeAllowances(ctx, in)
return srv.(QueryServer).Allowances(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: "/cosmos.feegrant.v1beta1.Query/FeeAllowances",
FullMethod: "/cosmos.feegrant.v1beta1.Query/Allowances",
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(QueryServer).FeeAllowances(ctx, req.(*QueryFeeAllowancesRequest))
return srv.(QueryServer).Allowances(ctx, req.(*QueryAllowancesRequest))
}
return interceptor(ctx, in, info, handler)
}
@ -390,19 +389,19 @@ var _Query_serviceDesc = grpc.ServiceDesc{
HandlerType: (*QueryServer)(nil),
Methods: []grpc.MethodDesc{
{
MethodName: "FeeAllowance",
Handler: _Query_FeeAllowance_Handler,
MethodName: "Allowance",
Handler: _Query_Allowance_Handler,
},
{
MethodName: "FeeAllowances",
Handler: _Query_FeeAllowances_Handler,
MethodName: "Allowances",
Handler: _Query_Allowances_Handler,
},
},
Streams: []grpc.StreamDesc{},
Metadata: "cosmos/feegrant/v1beta1/query.proto",
}
func (m *QueryFeeAllowanceRequest) Marshal() (dAtA []byte, err error) {
func (m *QueryAllowanceRequest) Marshal() (dAtA []byte, err error) {
size := m.Size()
dAtA = make([]byte, size)
n, err := m.MarshalToSizedBuffer(dAtA[:size])
@ -412,12 +411,12 @@ func (m *QueryFeeAllowanceRequest) Marshal() (dAtA []byte, err error) {
return dAtA[:n], nil
}
func (m *QueryFeeAllowanceRequest) MarshalTo(dAtA []byte) (int, error) {
func (m *QueryAllowanceRequest) MarshalTo(dAtA []byte) (int, error) {
size := m.Size()
return m.MarshalToSizedBuffer(dAtA[:size])
}
func (m *QueryFeeAllowanceRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) {
func (m *QueryAllowanceRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) {
i := len(dAtA)
_ = i
var l int
@ -439,7 +438,7 @@ func (m *QueryFeeAllowanceRequest) MarshalToSizedBuffer(dAtA []byte) (int, error
return len(dAtA) - i, nil
}
func (m *QueryFeeAllowanceResponse) Marshal() (dAtA []byte, err error) {
func (m *QueryAllowanceResponse) Marshal() (dAtA []byte, err error) {
size := m.Size()
dAtA = make([]byte, size)
n, err := m.MarshalToSizedBuffer(dAtA[:size])
@ -449,19 +448,19 @@ func (m *QueryFeeAllowanceResponse) Marshal() (dAtA []byte, err error) {
return dAtA[:n], nil
}
func (m *QueryFeeAllowanceResponse) MarshalTo(dAtA []byte) (int, error) {
func (m *QueryAllowanceResponse) MarshalTo(dAtA []byte) (int, error) {
size := m.Size()
return m.MarshalToSizedBuffer(dAtA[:size])
}
func (m *QueryFeeAllowanceResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) {
func (m *QueryAllowanceResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) {
i := len(dAtA)
_ = i
var l int
_ = l
if m.FeeAllowance != nil {
if m.Allowance != nil {
{
size, err := m.FeeAllowance.MarshalToSizedBuffer(dAtA[:i])
size, err := m.Allowance.MarshalToSizedBuffer(dAtA[:i])
if err != nil {
return 0, err
}
@ -474,7 +473,7 @@ func (m *QueryFeeAllowanceResponse) MarshalToSizedBuffer(dAtA []byte) (int, erro
return len(dAtA) - i, nil
}
func (m *QueryFeeAllowancesRequest) Marshal() (dAtA []byte, err error) {
func (m *QueryAllowancesRequest) Marshal() (dAtA []byte, err error) {
size := m.Size()
dAtA = make([]byte, size)
n, err := m.MarshalToSizedBuffer(dAtA[:size])
@ -484,12 +483,12 @@ func (m *QueryFeeAllowancesRequest) Marshal() (dAtA []byte, err error) {
return dAtA[:n], nil
}
func (m *QueryFeeAllowancesRequest) MarshalTo(dAtA []byte) (int, error) {
func (m *QueryAllowancesRequest) MarshalTo(dAtA []byte) (int, error) {
size := m.Size()
return m.MarshalToSizedBuffer(dAtA[:size])
}
func (m *QueryFeeAllowancesRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) {
func (m *QueryAllowancesRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) {
i := len(dAtA)
_ = i
var l int
@ -516,7 +515,7 @@ func (m *QueryFeeAllowancesRequest) MarshalToSizedBuffer(dAtA []byte) (int, erro
return len(dAtA) - i, nil
}
func (m *QueryFeeAllowancesResponse) Marshal() (dAtA []byte, err error) {
func (m *QueryAllowancesResponse) Marshal() (dAtA []byte, err error) {
size := m.Size()
dAtA = make([]byte, size)
n, err := m.MarshalToSizedBuffer(dAtA[:size])
@ -526,12 +525,12 @@ func (m *QueryFeeAllowancesResponse) Marshal() (dAtA []byte, err error) {
return dAtA[:n], nil
}
func (m *QueryFeeAllowancesResponse) MarshalTo(dAtA []byte) (int, error) {
func (m *QueryAllowancesResponse) MarshalTo(dAtA []byte) (int, error) {
size := m.Size()
return m.MarshalToSizedBuffer(dAtA[:size])
}
func (m *QueryFeeAllowancesResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) {
func (m *QueryAllowancesResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) {
i := len(dAtA)
_ = i
var l int
@ -548,10 +547,10 @@ func (m *QueryFeeAllowancesResponse) MarshalToSizedBuffer(dAtA []byte) (int, err
i--
dAtA[i] = 0x12
}
if len(m.FeeAllowances) > 0 {
for iNdEx := len(m.FeeAllowances) - 1; iNdEx >= 0; iNdEx-- {
if len(m.Allowances) > 0 {
for iNdEx := len(m.Allowances) - 1; iNdEx >= 0; iNdEx-- {
{
size, err := m.FeeAllowances[iNdEx].MarshalToSizedBuffer(dAtA[:i])
size, err := m.Allowances[iNdEx].MarshalToSizedBuffer(dAtA[:i])
if err != nil {
return 0, err
}
@ -576,7 +575,7 @@ func encodeVarintQuery(dAtA []byte, offset int, v uint64) int {
dAtA[offset] = uint8(v)
return base
}
func (m *QueryFeeAllowanceRequest) Size() (n int) {
func (m *QueryAllowanceRequest) Size() (n int) {
if m == nil {
return 0
}
@ -593,20 +592,20 @@ func (m *QueryFeeAllowanceRequest) Size() (n int) {
return n
}
func (m *QueryFeeAllowanceResponse) Size() (n int) {
func (m *QueryAllowanceResponse) Size() (n int) {
if m == nil {
return 0
}
var l int
_ = l
if m.FeeAllowance != nil {
l = m.FeeAllowance.Size()
if m.Allowance != nil {
l = m.Allowance.Size()
n += 1 + l + sovQuery(uint64(l))
}
return n
}
func (m *QueryFeeAllowancesRequest) Size() (n int) {
func (m *QueryAllowancesRequest) Size() (n int) {
if m == nil {
return 0
}
@ -623,14 +622,14 @@ func (m *QueryFeeAllowancesRequest) Size() (n int) {
return n
}
func (m *QueryFeeAllowancesResponse) Size() (n int) {
func (m *QueryAllowancesResponse) Size() (n int) {
if m == nil {
return 0
}
var l int
_ = l
if len(m.FeeAllowances) > 0 {
for _, e := range m.FeeAllowances {
if len(m.Allowances) > 0 {
for _, e := range m.Allowances {
l = e.Size()
n += 1 + l + sovQuery(uint64(l))
}
@ -648,7 +647,7 @@ func sovQuery(x uint64) (n int) {
func sozQuery(x uint64) (n int) {
return sovQuery(uint64((x << 1) ^ uint64((int64(x) >> 63))))
}
func (m *QueryFeeAllowanceRequest) Unmarshal(dAtA []byte) error {
func (m *QueryAllowanceRequest) Unmarshal(dAtA []byte) error {
l := len(dAtA)
iNdEx := 0
for iNdEx < l {
@ -671,10 +670,10 @@ func (m *QueryFeeAllowanceRequest) Unmarshal(dAtA []byte) error {
fieldNum := int32(wire >> 3)
wireType := int(wire & 0x7)
if wireType == 4 {
return fmt.Errorf("proto: QueryFeeAllowanceRequest: wiretype end group for non-group")
return fmt.Errorf("proto: QueryAllowanceRequest: wiretype end group for non-group")
}
if fieldNum <= 0 {
return fmt.Errorf("proto: QueryFeeAllowanceRequest: illegal tag %d (wire type %d)", fieldNum, wire)
return fmt.Errorf("proto: QueryAllowanceRequest: illegal tag %d (wire type %d)", fieldNum, wire)
}
switch fieldNum {
case 1:
@ -762,7 +761,7 @@ func (m *QueryFeeAllowanceRequest) Unmarshal(dAtA []byte) error {
}
return nil
}
func (m *QueryFeeAllowanceResponse) Unmarshal(dAtA []byte) error {
func (m *QueryAllowanceResponse) Unmarshal(dAtA []byte) error {
l := len(dAtA)
iNdEx := 0
for iNdEx < l {
@ -785,15 +784,15 @@ func (m *QueryFeeAllowanceResponse) Unmarshal(dAtA []byte) error {
fieldNum := int32(wire >> 3)
wireType := int(wire & 0x7)
if wireType == 4 {
return fmt.Errorf("proto: QueryFeeAllowanceResponse: wiretype end group for non-group")
return fmt.Errorf("proto: QueryAllowanceResponse: wiretype end group for non-group")
}
if fieldNum <= 0 {
return fmt.Errorf("proto: QueryFeeAllowanceResponse: illegal tag %d (wire type %d)", fieldNum, wire)
return fmt.Errorf("proto: QueryAllowanceResponse: illegal tag %d (wire type %d)", fieldNum, wire)
}
switch fieldNum {
case 1:
if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field FeeAllowance", wireType)
return fmt.Errorf("proto: wrong wireType = %d for field Allowance", wireType)
}
var msglen int
for shift := uint(0); ; shift += 7 {
@ -820,10 +819,10 @@ func (m *QueryFeeAllowanceResponse) Unmarshal(dAtA []byte) error {
if postIndex > l {
return io.ErrUnexpectedEOF
}
if m.FeeAllowance == nil {
m.FeeAllowance = &FeeAllowanceGrant{}
if m.Allowance == nil {
m.Allowance = &Grant{}
}
if err := m.FeeAllowance.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
if err := m.Allowance.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
return err
}
iNdEx = postIndex
@ -848,7 +847,7 @@ func (m *QueryFeeAllowanceResponse) Unmarshal(dAtA []byte) error {
}
return nil
}
func (m *QueryFeeAllowancesRequest) Unmarshal(dAtA []byte) error {
func (m *QueryAllowancesRequest) Unmarshal(dAtA []byte) error {
l := len(dAtA)
iNdEx := 0
for iNdEx < l {
@ -871,10 +870,10 @@ func (m *QueryFeeAllowancesRequest) Unmarshal(dAtA []byte) error {
fieldNum := int32(wire >> 3)
wireType := int(wire & 0x7)
if wireType == 4 {
return fmt.Errorf("proto: QueryFeeAllowancesRequest: wiretype end group for non-group")
return fmt.Errorf("proto: QueryAllowancesRequest: wiretype end group for non-group")
}
if fieldNum <= 0 {
return fmt.Errorf("proto: QueryFeeAllowancesRequest: illegal tag %d (wire type %d)", fieldNum, wire)
return fmt.Errorf("proto: QueryAllowancesRequest: illegal tag %d (wire type %d)", fieldNum, wire)
}
switch fieldNum {
case 1:
@ -966,7 +965,7 @@ func (m *QueryFeeAllowancesRequest) Unmarshal(dAtA []byte) error {
}
return nil
}
func (m *QueryFeeAllowancesResponse) Unmarshal(dAtA []byte) error {
func (m *QueryAllowancesResponse) Unmarshal(dAtA []byte) error {
l := len(dAtA)
iNdEx := 0
for iNdEx < l {
@ -989,15 +988,15 @@ func (m *QueryFeeAllowancesResponse) Unmarshal(dAtA []byte) error {
fieldNum := int32(wire >> 3)
wireType := int(wire & 0x7)
if wireType == 4 {
return fmt.Errorf("proto: QueryFeeAllowancesResponse: wiretype end group for non-group")
return fmt.Errorf("proto: QueryAllowancesResponse: wiretype end group for non-group")
}
if fieldNum <= 0 {
return fmt.Errorf("proto: QueryFeeAllowancesResponse: illegal tag %d (wire type %d)", fieldNum, wire)
return fmt.Errorf("proto: QueryAllowancesResponse: illegal tag %d (wire type %d)", fieldNum, wire)
}
switch fieldNum {
case 1:
if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field FeeAllowances", wireType)
return fmt.Errorf("proto: wrong wireType = %d for field Allowances", wireType)
}
var msglen int
for shift := uint(0); ; shift += 7 {
@ -1024,8 +1023,8 @@ func (m *QueryFeeAllowancesResponse) Unmarshal(dAtA []byte) error {
if postIndex > l {
return io.ErrUnexpectedEOF
}
m.FeeAllowances = append(m.FeeAllowances, &FeeAllowanceGrant{})
if err := m.FeeAllowances[len(m.FeeAllowances)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
m.Allowances = append(m.Allowances, &Grant{})
if err := m.Allowances[len(m.Allowances)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
return err
}
iNdEx = postIndex

View File

@ -31,8 +31,8 @@ var _ = runtime.String
var _ = utilities.NewDoubleArray
var _ = descriptor.ForMessage
func request_Query_FeeAllowance_0(ctx context.Context, marshaler runtime.Marshaler, client QueryClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
var protoReq QueryFeeAllowanceRequest
func request_Query_Allowance_0(ctx context.Context, marshaler runtime.Marshaler, client QueryClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
var protoReq QueryAllowanceRequest
var metadata runtime.ServerMetadata
var (
@ -64,13 +64,13 @@ func request_Query_FeeAllowance_0(ctx context.Context, marshaler runtime.Marshal
return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "grantee", err)
}
msg, err := client.FeeAllowance(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD))
msg, err := client.Allowance(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD))
return msg, metadata, err
}
func local_request_Query_FeeAllowance_0(ctx context.Context, marshaler runtime.Marshaler, server QueryServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
var protoReq QueryFeeAllowanceRequest
func local_request_Query_Allowance_0(ctx context.Context, marshaler runtime.Marshaler, server QueryServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
var protoReq QueryAllowanceRequest
var metadata runtime.ServerMetadata
var (
@ -102,17 +102,17 @@ func local_request_Query_FeeAllowance_0(ctx context.Context, marshaler runtime.M
return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "grantee", err)
}
msg, err := server.FeeAllowance(ctx, &protoReq)
msg, err := server.Allowance(ctx, &protoReq)
return msg, metadata, err
}
var (
filter_Query_FeeAllowances_0 = &utilities.DoubleArray{Encoding: map[string]int{"grantee": 0}, Base: []int{1, 1, 0}, Check: []int{0, 1, 2}}
filter_Query_Allowances_0 = &utilities.DoubleArray{Encoding: map[string]int{"grantee": 0}, Base: []int{1, 1, 0}, Check: []int{0, 1, 2}}
)
func request_Query_FeeAllowances_0(ctx context.Context, marshaler runtime.Marshaler, client QueryClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
var protoReq QueryFeeAllowancesRequest
func request_Query_Allowances_0(ctx context.Context, marshaler runtime.Marshaler, client QueryClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
var protoReq QueryAllowancesRequest
var metadata runtime.ServerMetadata
var (
@ -136,17 +136,17 @@ func request_Query_FeeAllowances_0(ctx context.Context, marshaler runtime.Marsha
if err := req.ParseForm(); err != nil {
return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
}
if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_Query_FeeAllowances_0); err != nil {
if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_Query_Allowances_0); err != nil {
return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
}
msg, err := client.FeeAllowances(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD))
msg, err := client.Allowances(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD))
return msg, metadata, err
}
func local_request_Query_FeeAllowances_0(ctx context.Context, marshaler runtime.Marshaler, server QueryServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
var protoReq QueryFeeAllowancesRequest
func local_request_Query_Allowances_0(ctx context.Context, marshaler runtime.Marshaler, server QueryServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
var protoReq QueryAllowancesRequest
var metadata runtime.ServerMetadata
var (
@ -170,11 +170,11 @@ func local_request_Query_FeeAllowances_0(ctx context.Context, marshaler runtime.
if err := req.ParseForm(); err != nil {
return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
}
if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_Query_FeeAllowances_0); err != nil {
if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_Query_Allowances_0); err != nil {
return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
}
msg, err := server.FeeAllowances(ctx, &protoReq)
msg, err := server.Allowances(ctx, &protoReq)
return msg, metadata, err
}
@ -185,7 +185,7 @@ func local_request_Query_FeeAllowances_0(ctx context.Context, marshaler runtime.
// Note that using this registration option will cause many gRPC library features (such as grpc.SendHeader, etc) to stop working. Consider using RegisterQueryHandlerFromEndpoint instead.
func RegisterQueryHandlerServer(ctx context.Context, mux *runtime.ServeMux, server QueryServer) error {
mux.Handle("GET", pattern_Query_FeeAllowance_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
mux.Handle("GET", pattern_Query_Allowance_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
ctx, cancel := context.WithCancel(req.Context())
defer cancel()
inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
@ -194,18 +194,18 @@ func RegisterQueryHandlerServer(ctx context.Context, mux *runtime.ServeMux, serv
runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
return
}
resp, md, err := local_request_Query_FeeAllowance_0(rctx, inboundMarshaler, server, req, pathParams)
resp, md, err := local_request_Query_Allowance_0(rctx, inboundMarshaler, server, req, pathParams)
ctx = runtime.NewServerMetadataContext(ctx, md)
if err != nil {
runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
return
}
forward_Query_FeeAllowance_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
forward_Query_Allowance_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
})
mux.Handle("GET", pattern_Query_FeeAllowances_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
mux.Handle("GET", pattern_Query_Allowances_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
ctx, cancel := context.WithCancel(req.Context())
defer cancel()
inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
@ -214,14 +214,14 @@ func RegisterQueryHandlerServer(ctx context.Context, mux *runtime.ServeMux, serv
runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
return
}
resp, md, err := local_request_Query_FeeAllowances_0(rctx, inboundMarshaler, server, req, pathParams)
resp, md, err := local_request_Query_Allowances_0(rctx, inboundMarshaler, server, req, pathParams)
ctx = runtime.NewServerMetadataContext(ctx, md)
if err != nil {
runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
return
}
forward_Query_FeeAllowances_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
forward_Query_Allowances_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
})
@ -266,7 +266,7 @@ func RegisterQueryHandler(ctx context.Context, mux *runtime.ServeMux, conn *grpc
// "QueryClient" to call the correct interceptors.
func RegisterQueryHandlerClient(ctx context.Context, mux *runtime.ServeMux, client QueryClient) error {
mux.Handle("GET", pattern_Query_FeeAllowance_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
mux.Handle("GET", pattern_Query_Allowance_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
ctx, cancel := context.WithCancel(req.Context())
defer cancel()
inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
@ -275,18 +275,18 @@ func RegisterQueryHandlerClient(ctx context.Context, mux *runtime.ServeMux, clie
runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
return
}
resp, md, err := request_Query_FeeAllowance_0(rctx, inboundMarshaler, client, req, pathParams)
resp, md, err := request_Query_Allowance_0(rctx, inboundMarshaler, client, req, pathParams)
ctx = runtime.NewServerMetadataContext(ctx, md)
if err != nil {
runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
return
}
forward_Query_FeeAllowance_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
forward_Query_Allowance_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
})
mux.Handle("GET", pattern_Query_FeeAllowances_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
mux.Handle("GET", pattern_Query_Allowances_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
ctx, cancel := context.WithCancel(req.Context())
defer cancel()
inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
@ -295,14 +295,14 @@ func RegisterQueryHandlerClient(ctx context.Context, mux *runtime.ServeMux, clie
runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
return
}
resp, md, err := request_Query_FeeAllowances_0(rctx, inboundMarshaler, client, req, pathParams)
resp, md, err := request_Query_Allowances_0(rctx, inboundMarshaler, client, req, pathParams)
ctx = runtime.NewServerMetadataContext(ctx, md)
if err != nil {
runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
return
}
forward_Query_FeeAllowances_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
forward_Query_Allowances_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
})
@ -310,13 +310,13 @@ func RegisterQueryHandlerClient(ctx context.Context, mux *runtime.ServeMux, clie
}
var (
pattern_Query_FeeAllowance_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 1, 0, 4, 1, 5, 4, 1, 0, 4, 1, 5, 5}, []string{"cosmos", "feegrant", "v1beta1", "fee_allowance", "granter", "grantee"}, "", runtime.AssumeColonVerbOpt(false)))
pattern_Query_Allowance_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 1, 0, 4, 1, 5, 4, 1, 0, 4, 1, 5, 5}, []string{"cosmos", "feegrant", "v1beta1", "allowance", "granter", "grantee"}, "", runtime.AssumeColonVerbOpt(false)))
pattern_Query_FeeAllowances_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 1, 0, 4, 1, 5, 4}, []string{"cosmos", "feegrant", "v1beta1", "fee_allowances", "grantee"}, "", runtime.AssumeColonVerbOpt(false)))
pattern_Query_Allowances_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 1, 0, 4, 1, 5, 4}, []string{"cosmos", "feegrant", "v1beta1", "allowances", "grantee"}, "", runtime.AssumeColonVerbOpt(false)))
)
var (
forward_Query_FeeAllowance_0 = runtime.ForwardResponseMessage
forward_Query_Allowance_0 = runtime.ForwardResponseMessage
forward_Query_FeeAllowances_0 = runtime.ForwardResponseMessage
forward_Query_Allowances_0 = runtime.ForwardResponseMessage
)

View File

@ -30,26 +30,29 @@ var _ = math.Inf
// proto package needs to be updated.
const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package
// MsgGrantFeeAllowance adds permission for Grantee to spend up to Allowance
// MsgGrantAllowance adds permission for Grantee to spend up to Allowance
// of fees from the account of Granter.
type MsgGrantFeeAllowance struct {
Granter string `protobuf:"bytes,1,opt,name=granter,proto3" json:"granter,omitempty"`
Grantee string `protobuf:"bytes,2,opt,name=grantee,proto3" json:"grantee,omitempty"`
type MsgGrantAllowance struct {
// granter is the address of the user granting an allowance of their funds.
Granter string `protobuf:"bytes,1,opt,name=granter,proto3" json:"granter,omitempty"`
// grantee is the address of the user being granted an allowance of another user's funds.
Grantee string `protobuf:"bytes,2,opt,name=grantee,proto3" json:"grantee,omitempty"`
// allowance can be any of basic and filtered fee allowance.
Allowance *types.Any `protobuf:"bytes,3,opt,name=allowance,proto3" json:"allowance,omitempty"`
}
func (m *MsgGrantFeeAllowance) Reset() { *m = MsgGrantFeeAllowance{} }
func (m *MsgGrantFeeAllowance) String() string { return proto.CompactTextString(m) }
func (*MsgGrantFeeAllowance) ProtoMessage() {}
func (*MsgGrantFeeAllowance) Descriptor() ([]byte, []int) {
func (m *MsgGrantAllowance) Reset() { *m = MsgGrantAllowance{} }
func (m *MsgGrantAllowance) String() string { return proto.CompactTextString(m) }
func (*MsgGrantAllowance) ProtoMessage() {}
func (*MsgGrantAllowance) Descriptor() ([]byte, []int) {
return fileDescriptor_dd44ad7946dad783, []int{0}
}
func (m *MsgGrantFeeAllowance) XXX_Unmarshal(b []byte) error {
func (m *MsgGrantAllowance) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
}
func (m *MsgGrantFeeAllowance) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
func (m *MsgGrantAllowance) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
if deterministic {
return xxx_messageInfo_MsgGrantFeeAllowance.Marshal(b, m, deterministic)
return xxx_messageInfo_MsgGrantAllowance.Marshal(b, m, deterministic)
} else {
b = b[:cap(b)]
n, err := m.MarshalToSizedBuffer(b)
@ -59,55 +62,55 @@ func (m *MsgGrantFeeAllowance) XXX_Marshal(b []byte, deterministic bool) ([]byte
return b[:n], nil
}
}
func (m *MsgGrantFeeAllowance) XXX_Merge(src proto.Message) {
xxx_messageInfo_MsgGrantFeeAllowance.Merge(m, src)
func (m *MsgGrantAllowance) XXX_Merge(src proto.Message) {
xxx_messageInfo_MsgGrantAllowance.Merge(m, src)
}
func (m *MsgGrantFeeAllowance) XXX_Size() int {
func (m *MsgGrantAllowance) XXX_Size() int {
return m.Size()
}
func (m *MsgGrantFeeAllowance) XXX_DiscardUnknown() {
xxx_messageInfo_MsgGrantFeeAllowance.DiscardUnknown(m)
func (m *MsgGrantAllowance) XXX_DiscardUnknown() {
xxx_messageInfo_MsgGrantAllowance.DiscardUnknown(m)
}
var xxx_messageInfo_MsgGrantFeeAllowance proto.InternalMessageInfo
var xxx_messageInfo_MsgGrantAllowance proto.InternalMessageInfo
func (m *MsgGrantFeeAllowance) GetGranter() string {
func (m *MsgGrantAllowance) GetGranter() string {
if m != nil {
return m.Granter
}
return ""
}
func (m *MsgGrantFeeAllowance) GetGrantee() string {
func (m *MsgGrantAllowance) GetGrantee() string {
if m != nil {
return m.Grantee
}
return ""
}
func (m *MsgGrantFeeAllowance) GetAllowance() *types.Any {
func (m *MsgGrantAllowance) GetAllowance() *types.Any {
if m != nil {
return m.Allowance
}
return nil
}
// MsgGrantFeeAllowanceResponse defines the Msg/GrantFeeAllowanceResponse response type.
type MsgGrantFeeAllowanceResponse struct {
// MsgGrantAllowanceResponse defines the Msg/GrantAllowanceResponse response type.
type MsgGrantAllowanceResponse struct {
}
func (m *MsgGrantFeeAllowanceResponse) Reset() { *m = MsgGrantFeeAllowanceResponse{} }
func (m *MsgGrantFeeAllowanceResponse) String() string { return proto.CompactTextString(m) }
func (*MsgGrantFeeAllowanceResponse) ProtoMessage() {}
func (*MsgGrantFeeAllowanceResponse) Descriptor() ([]byte, []int) {
func (m *MsgGrantAllowanceResponse) Reset() { *m = MsgGrantAllowanceResponse{} }
func (m *MsgGrantAllowanceResponse) String() string { return proto.CompactTextString(m) }
func (*MsgGrantAllowanceResponse) ProtoMessage() {}
func (*MsgGrantAllowanceResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_dd44ad7946dad783, []int{1}
}
func (m *MsgGrantFeeAllowanceResponse) XXX_Unmarshal(b []byte) error {
func (m *MsgGrantAllowanceResponse) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
}
func (m *MsgGrantFeeAllowanceResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
func (m *MsgGrantAllowanceResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
if deterministic {
return xxx_messageInfo_MsgGrantFeeAllowanceResponse.Marshal(b, m, deterministic)
return xxx_messageInfo_MsgGrantAllowanceResponse.Marshal(b, m, deterministic)
} else {
b = b[:cap(b)]
n, err := m.MarshalToSizedBuffer(b)
@ -117,36 +120,38 @@ func (m *MsgGrantFeeAllowanceResponse) XXX_Marshal(b []byte, deterministic bool)
return b[:n], nil
}
}
func (m *MsgGrantFeeAllowanceResponse) XXX_Merge(src proto.Message) {
xxx_messageInfo_MsgGrantFeeAllowanceResponse.Merge(m, src)
func (m *MsgGrantAllowanceResponse) XXX_Merge(src proto.Message) {
xxx_messageInfo_MsgGrantAllowanceResponse.Merge(m, src)
}
func (m *MsgGrantFeeAllowanceResponse) XXX_Size() int {
func (m *MsgGrantAllowanceResponse) XXX_Size() int {
return m.Size()
}
func (m *MsgGrantFeeAllowanceResponse) XXX_DiscardUnknown() {
xxx_messageInfo_MsgGrantFeeAllowanceResponse.DiscardUnknown(m)
func (m *MsgGrantAllowanceResponse) XXX_DiscardUnknown() {
xxx_messageInfo_MsgGrantAllowanceResponse.DiscardUnknown(m)
}
var xxx_messageInfo_MsgGrantFeeAllowanceResponse proto.InternalMessageInfo
var xxx_messageInfo_MsgGrantAllowanceResponse proto.InternalMessageInfo
// MsgRevokeFeeAllowance removes any existing FeeAllowance from Granter to Grantee.
type MsgRevokeFeeAllowance struct {
// MsgRevokeAllowance removes any existing Allowance from Granter to Grantee.
type MsgRevokeAllowance struct {
// granter is the address of the user granting an allowance of their funds.
Granter string `protobuf:"bytes,1,opt,name=granter,proto3" json:"granter,omitempty"`
// grantee is the address of the user being granted an allowance of another user's funds.
Grantee string `protobuf:"bytes,2,opt,name=grantee,proto3" json:"grantee,omitempty"`
}
func (m *MsgRevokeFeeAllowance) Reset() { *m = MsgRevokeFeeAllowance{} }
func (m *MsgRevokeFeeAllowance) String() string { return proto.CompactTextString(m) }
func (*MsgRevokeFeeAllowance) ProtoMessage() {}
func (*MsgRevokeFeeAllowance) Descriptor() ([]byte, []int) {
func (m *MsgRevokeAllowance) Reset() { *m = MsgRevokeAllowance{} }
func (m *MsgRevokeAllowance) String() string { return proto.CompactTextString(m) }
func (*MsgRevokeAllowance) ProtoMessage() {}
func (*MsgRevokeAllowance) Descriptor() ([]byte, []int) {
return fileDescriptor_dd44ad7946dad783, []int{2}
}
func (m *MsgRevokeFeeAllowance) XXX_Unmarshal(b []byte) error {
func (m *MsgRevokeAllowance) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
}
func (m *MsgRevokeFeeAllowance) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
func (m *MsgRevokeAllowance) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
if deterministic {
return xxx_messageInfo_MsgRevokeFeeAllowance.Marshal(b, m, deterministic)
return xxx_messageInfo_MsgRevokeAllowance.Marshal(b, m, deterministic)
} else {
b = b[:cap(b)]
n, err := m.MarshalToSizedBuffer(b)
@ -156,48 +161,48 @@ func (m *MsgRevokeFeeAllowance) XXX_Marshal(b []byte, deterministic bool) ([]byt
return b[:n], nil
}
}
func (m *MsgRevokeFeeAllowance) XXX_Merge(src proto.Message) {
xxx_messageInfo_MsgRevokeFeeAllowance.Merge(m, src)
func (m *MsgRevokeAllowance) XXX_Merge(src proto.Message) {
xxx_messageInfo_MsgRevokeAllowance.Merge(m, src)
}
func (m *MsgRevokeFeeAllowance) XXX_Size() int {
func (m *MsgRevokeAllowance) XXX_Size() int {
return m.Size()
}
func (m *MsgRevokeFeeAllowance) XXX_DiscardUnknown() {
xxx_messageInfo_MsgRevokeFeeAllowance.DiscardUnknown(m)
func (m *MsgRevokeAllowance) XXX_DiscardUnknown() {
xxx_messageInfo_MsgRevokeAllowance.DiscardUnknown(m)
}
var xxx_messageInfo_MsgRevokeFeeAllowance proto.InternalMessageInfo
var xxx_messageInfo_MsgRevokeAllowance proto.InternalMessageInfo
func (m *MsgRevokeFeeAllowance) GetGranter() string {
func (m *MsgRevokeAllowance) GetGranter() string {
if m != nil {
return m.Granter
}
return ""
}
func (m *MsgRevokeFeeAllowance) GetGrantee() string {
func (m *MsgRevokeAllowance) GetGrantee() string {
if m != nil {
return m.Grantee
}
return ""
}
// MsgRevokeFeeAllowanceResponse defines the Msg/RevokeFeeAllowanceResponse response type.
type MsgRevokeFeeAllowanceResponse struct {
// MsgRevokeAllowanceResponse defines the Msg/RevokeAllowanceResponse response type.
type MsgRevokeAllowanceResponse struct {
}
func (m *MsgRevokeFeeAllowanceResponse) Reset() { *m = MsgRevokeFeeAllowanceResponse{} }
func (m *MsgRevokeFeeAllowanceResponse) String() string { return proto.CompactTextString(m) }
func (*MsgRevokeFeeAllowanceResponse) ProtoMessage() {}
func (*MsgRevokeFeeAllowanceResponse) Descriptor() ([]byte, []int) {
func (m *MsgRevokeAllowanceResponse) Reset() { *m = MsgRevokeAllowanceResponse{} }
func (m *MsgRevokeAllowanceResponse) String() string { return proto.CompactTextString(m) }
func (*MsgRevokeAllowanceResponse) ProtoMessage() {}
func (*MsgRevokeAllowanceResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_dd44ad7946dad783, []int{3}
}
func (m *MsgRevokeFeeAllowanceResponse) XXX_Unmarshal(b []byte) error {
func (m *MsgRevokeAllowanceResponse) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
}
func (m *MsgRevokeFeeAllowanceResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
func (m *MsgRevokeAllowanceResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
if deterministic {
return xxx_messageInfo_MsgRevokeFeeAllowanceResponse.Marshal(b, m, deterministic)
return xxx_messageInfo_MsgRevokeAllowanceResponse.Marshal(b, m, deterministic)
} else {
b = b[:cap(b)]
n, err := m.MarshalToSizedBuffer(b)
@ -207,51 +212,51 @@ func (m *MsgRevokeFeeAllowanceResponse) XXX_Marshal(b []byte, deterministic bool
return b[:n], nil
}
}
func (m *MsgRevokeFeeAllowanceResponse) XXX_Merge(src proto.Message) {
xxx_messageInfo_MsgRevokeFeeAllowanceResponse.Merge(m, src)
func (m *MsgRevokeAllowanceResponse) XXX_Merge(src proto.Message) {
xxx_messageInfo_MsgRevokeAllowanceResponse.Merge(m, src)
}
func (m *MsgRevokeFeeAllowanceResponse) XXX_Size() int {
func (m *MsgRevokeAllowanceResponse) XXX_Size() int {
return m.Size()
}
func (m *MsgRevokeFeeAllowanceResponse) XXX_DiscardUnknown() {
xxx_messageInfo_MsgRevokeFeeAllowanceResponse.DiscardUnknown(m)
func (m *MsgRevokeAllowanceResponse) XXX_DiscardUnknown() {
xxx_messageInfo_MsgRevokeAllowanceResponse.DiscardUnknown(m)
}
var xxx_messageInfo_MsgRevokeFeeAllowanceResponse proto.InternalMessageInfo
var xxx_messageInfo_MsgRevokeAllowanceResponse proto.InternalMessageInfo
func init() {
proto.RegisterType((*MsgGrantFeeAllowance)(nil), "cosmos.feegrant.v1beta1.MsgGrantFeeAllowance")
proto.RegisterType((*MsgGrantFeeAllowanceResponse)(nil), "cosmos.feegrant.v1beta1.MsgGrantFeeAllowanceResponse")
proto.RegisterType((*MsgRevokeFeeAllowance)(nil), "cosmos.feegrant.v1beta1.MsgRevokeFeeAllowance")
proto.RegisterType((*MsgRevokeFeeAllowanceResponse)(nil), "cosmos.feegrant.v1beta1.MsgRevokeFeeAllowanceResponse")
proto.RegisterType((*MsgGrantAllowance)(nil), "cosmos.feegrant.v1beta1.MsgGrantAllowance")
proto.RegisterType((*MsgGrantAllowanceResponse)(nil), "cosmos.feegrant.v1beta1.MsgGrantAllowanceResponse")
proto.RegisterType((*MsgRevokeAllowance)(nil), "cosmos.feegrant.v1beta1.MsgRevokeAllowance")
proto.RegisterType((*MsgRevokeAllowanceResponse)(nil), "cosmos.feegrant.v1beta1.MsgRevokeAllowanceResponse")
}
func init() { proto.RegisterFile("cosmos/feegrant/v1beta1/tx.proto", fileDescriptor_dd44ad7946dad783) }
var fileDescriptor_dd44ad7946dad783 = []byte{
// 345 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x52, 0x48, 0xce, 0x2f, 0xce,
0xcd, 0x2f, 0xd6, 0x4f, 0x4b, 0x4d, 0x4d, 0x2f, 0x4a, 0xcc, 0x2b, 0xd1, 0x2f, 0x33, 0x4c, 0x4a,
0x2d, 0x49, 0x34, 0xd4, 0x2f, 0xa9, 0xd0, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0x12, 0x87, 0xa8,
0xd0, 0x83, 0xa9, 0xd0, 0x83, 0xaa, 0x90, 0x12, 0x49, 0xcf, 0x4f, 0xcf, 0x07, 0xab, 0xd1, 0x07,
0xb1, 0x20, 0xca, 0xa5, 0x24, 0xd3, 0xf3, 0xf3, 0xd3, 0x73, 0x52, 0xf5, 0xc1, 0xbc, 0xa4, 0xd2,
0x34, 0xfd, 0xc4, 0xbc, 0x4a, 0x98, 0x14, 0xc4, 0xa4, 0x78, 0x88, 0x1e, 0xa8, 0xb1, 0x60, 0x8e,
0xd2, 0x44, 0x46, 0x2e, 0x11, 0xdf, 0xe2, 0x74, 0x77, 0x90, 0x05, 0x6e, 0xa9, 0xa9, 0x8e, 0x39,
0x39, 0xf9, 0xe5, 0x89, 0x79, 0xc9, 0xa9, 0x42, 0x12, 0x5c, 0xec, 0x60, 0x5b, 0x53, 0x8b, 0x24,
0x18, 0x15, 0x18, 0x35, 0x38, 0x83, 0x60, 0x5c, 0x84, 0x4c, 0xaa, 0x04, 0x13, 0xb2, 0x4c, 0xaa,
0x90, 0x2b, 0x17, 0x67, 0x22, 0xcc, 0x00, 0x09, 0x66, 0x05, 0x46, 0x0d, 0x6e, 0x23, 0x11, 0x3d,
0x88, 0xb3, 0xf4, 0x60, 0xce, 0xd2, 0x73, 0xcc, 0xab, 0x74, 0x12, 0x3c, 0xb5, 0x45, 0x97, 0x17,
0xd9, 0x3a, 0xcf, 0x20, 0x84, 0x4e, 0x25, 0x39, 0x2e, 0x19, 0x6c, 0x4e, 0x0a, 0x4a, 0x2d, 0x2e,
0xc8, 0xcf, 0x2b, 0x4e, 0x55, 0xf2, 0xe6, 0x12, 0xf5, 0x2d, 0x4e, 0x0f, 0x4a, 0x2d, 0xcb, 0xcf,
0x4e, 0xa5, 0xd4, 0xcd, 0x4a, 0xf2, 0x5c, 0xb2, 0x58, 0x0d, 0x83, 0xd9, 0x66, 0xf4, 0x8f, 0x91,
0x8b, 0xd9, 0xb7, 0x38, 0x5d, 0xa8, 0x92, 0x4b, 0x10, 0x33, 0x94, 0x74, 0xf5, 0x70, 0x44, 0x92,
0x1e, 0x36, 0x1f, 0x48, 0x99, 0x92, 0xa4, 0x1c, 0xe6, 0x04, 0xa1, 0x1a, 0x2e, 0x21, 0x2c, 0xbe,
0xd5, 0xc3, 0x67, 0x18, 0xa6, 0x7a, 0x29, 0x33, 0xd2, 0xd4, 0xc3, 0x6c, 0x77, 0x72, 0x3f, 0xf1,
0x48, 0x8e, 0xf1, 0xc2, 0x23, 0x39, 0xc6, 0x07, 0x8f, 0xe4, 0x18, 0x27, 0x3c, 0x96, 0x63, 0xb8,
0xf0, 0x58, 0x8e, 0xe1, 0xc6, 0x63, 0x39, 0x86, 0x28, 0xdd, 0xf4, 0xcc, 0x92, 0x8c, 0xd2, 0x24,
0xbd, 0xe4, 0xfc, 0x5c, 0x68, 0xaa, 0x82, 0x52, 0xba, 0xc5, 0x29, 0xd9, 0xfa, 0x15, 0x88, 0xb4,
0x5d, 0x52, 0x59, 0x90, 0x5a, 0x9c, 0xc4, 0x06, 0x4e, 0x03, 0xc6, 0x80, 0x00, 0x00, 0x00, 0xff,
0xff, 0x7b, 0xbe, 0x24, 0x15, 0xfb, 0x02, 0x00, 0x00,
// 344 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x92, 0xc1, 0x4e, 0xc2, 0x40,
0x10, 0x86, 0x59, 0x49, 0x34, 0xac, 0x51, 0x43, 0x43, 0x62, 0xa9, 0x66, 0x43, 0x7a, 0x22, 0x1a,
0x76, 0x03, 0x3c, 0x01, 0x24, 0x8a, 0x1e, 0xb8, 0xf4, 0xe8, 0xc5, 0xb4, 0x38, 0xac, 0x06, 0xe8,
0x34, 0xec, 0x82, 0xf0, 0x12, 0xc6, 0x87, 0xf1, 0x21, 0x8c, 0x27, 0x8e, 0x1e, 0x0d, 0x5c, 0x7d,
0x08, 0x43, 0xdb, 0x15, 0x03, 0xd1, 0x68, 0x3c, 0xb5, 0x93, 0xf9, 0xe6, 0xff, 0xff, 0x76, 0x86,
0x96, 0x3a, 0xa8, 0x06, 0xa8, 0x44, 0x17, 0x40, 0x0e, 0xfd, 0x50, 0x8b, 0x71, 0x35, 0x00, 0xed,
0x57, 0x85, 0x9e, 0xf0, 0x68, 0x88, 0x1a, 0xad, 0xc3, 0x84, 0xe0, 0x86, 0xe0, 0x29, 0xe1, 0x14,
0x24, 0x4a, 0x8c, 0x19, 0xb1, 0x7c, 0x4b, 0x70, 0xa7, 0x28, 0x11, 0x65, 0x1f, 0x44, 0x5c, 0x05,
0xa3, 0xae, 0xf0, 0xc3, 0xa9, 0x69, 0x25, 0x4a, 0xd7, 0xc9, 0x4c, 0x2a, 0x1b, 0x17, 0xee, 0x03,
0xa1, 0xf9, 0xb6, 0x92, 0xad, 0xa5, 0x41, 0xa3, 0xdf, 0xc7, 0x7b, 0x3f, 0xec, 0x80, 0x65, 0xd3,
0x9d, 0xd8, 0x12, 0x86, 0x36, 0x29, 0x91, 0x72, 0xce, 0x33, 0xe5, 0xaa, 0x03, 0xf6, 0xd6, 0xd7,
0x0e, 0x58, 0x67, 0x34, 0xe7, 0x1b, 0x01, 0x3b, 0x5b, 0x22, 0xe5, 0xdd, 0x5a, 0x81, 0x27, 0x99,
0xb8, 0xc9, 0xc4, 0x1b, 0xe1, 0xb4, 0x99, 0x7f, 0x79, 0xaa, 0xec, 0x9d, 0x03, 0x7c, 0xda, 0x5d,
0x7a, 0xab, 0x49, 0xf7, 0x88, 0x16, 0x37, 0xf2, 0x78, 0xa0, 0x22, 0x0c, 0x15, 0xb8, 0x17, 0xd4,
0x6a, 0x2b, 0xe9, 0xc1, 0x18, 0x7b, 0xf0, 0xaf, 0xb4, 0xee, 0x31, 0x75, 0x36, 0x95, 0x8c, 0x4f,
0xed, 0x9d, 0xd0, 0x6c, 0x5b, 0x49, 0x2b, 0xa2, 0xfb, 0x6b, 0x7f, 0xe6, 0x84, 0x7f, 0xb3, 0x15,
0xbe, 0x91, 0xda, 0xa9, 0xfd, 0x9e, 0x35, 0xce, 0x96, 0xa2, 0x07, 0xeb, 0x9f, 0x77, 0xfa, 0x93,
0xcc, 0x1a, 0xec, 0xd4, 0xff, 0x00, 0x1b, 0xd3, 0x66, 0xeb, 0x79, 0xce, 0xc8, 0x6c, 0xce, 0xc8,
0xdb, 0x9c, 0x91, 0xc7, 0x05, 0xcb, 0xcc, 0x16, 0x2c, 0xf3, 0xba, 0x60, 0x99, 0xab, 0x8a, 0xbc,
0xd3, 0xb7, 0xa3, 0x80, 0x77, 0x70, 0x90, 0xde, 0x4d, 0xfa, 0xa8, 0xa8, 0x9b, 0x9e, 0x98, 0xac,
0xae, 0x57, 0x4f, 0x23, 0x50, 0xc1, 0x76, 0xbc, 0xe8, 0xfa, 0x47, 0x00, 0x00, 0x00, 0xff, 0xff,
0x8d, 0x25, 0xe0, 0x0e, 0xdd, 0x02, 0x00, 0x00,
}
// Reference imports to suppress errors if they are not otherwise used.
@ -266,12 +271,12 @@ const _ = grpc.SupportPackageIsVersion4
//
// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.
type MsgClient interface {
// GrantFeeAllowance grants fee allowance to the grantee on the granter's
// GrantAllowance grants fee allowance to the grantee on the granter's
// account with the provided expiration time.
GrantFeeAllowance(ctx context.Context, in *MsgGrantFeeAllowance, opts ...grpc.CallOption) (*MsgGrantFeeAllowanceResponse, error)
// RevokeFeeAllowance revokes any fee allowance of granter's account that
GrantAllowance(ctx context.Context, in *MsgGrantAllowance, opts ...grpc.CallOption) (*MsgGrantAllowanceResponse, error)
// RevokeAllowance revokes any fee allowance of granter's account that
// has been granted to the grantee.
RevokeFeeAllowance(ctx context.Context, in *MsgRevokeFeeAllowance, opts ...grpc.CallOption) (*MsgRevokeFeeAllowanceResponse, error)
RevokeAllowance(ctx context.Context, in *MsgRevokeAllowance, opts ...grpc.CallOption) (*MsgRevokeAllowanceResponse, error)
}
type msgClient struct {
@ -282,18 +287,18 @@ func NewMsgClient(cc grpc1.ClientConn) MsgClient {
return &msgClient{cc}
}
func (c *msgClient) GrantFeeAllowance(ctx context.Context, in *MsgGrantFeeAllowance, opts ...grpc.CallOption) (*MsgGrantFeeAllowanceResponse, error) {
out := new(MsgGrantFeeAllowanceResponse)
err := c.cc.Invoke(ctx, "/cosmos.feegrant.v1beta1.Msg/GrantFeeAllowance", in, out, opts...)
func (c *msgClient) GrantAllowance(ctx context.Context, in *MsgGrantAllowance, opts ...grpc.CallOption) (*MsgGrantAllowanceResponse, error) {
out := new(MsgGrantAllowanceResponse)
err := c.cc.Invoke(ctx, "/cosmos.feegrant.v1beta1.Msg/GrantAllowance", in, out, opts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *msgClient) RevokeFeeAllowance(ctx context.Context, in *MsgRevokeFeeAllowance, opts ...grpc.CallOption) (*MsgRevokeFeeAllowanceResponse, error) {
out := new(MsgRevokeFeeAllowanceResponse)
err := c.cc.Invoke(ctx, "/cosmos.feegrant.v1beta1.Msg/RevokeFeeAllowance", in, out, opts...)
func (c *msgClient) RevokeAllowance(ctx context.Context, in *MsgRevokeAllowance, opts ...grpc.CallOption) (*MsgRevokeAllowanceResponse, error) {
out := new(MsgRevokeAllowanceResponse)
err := c.cc.Invoke(ctx, "/cosmos.feegrant.v1beta1.Msg/RevokeAllowance", in, out, opts...)
if err != nil {
return nil, err
}
@ -302,61 +307,61 @@ func (c *msgClient) RevokeFeeAllowance(ctx context.Context, in *MsgRevokeFeeAllo
// MsgServer is the server API for Msg service.
type MsgServer interface {
// GrantFeeAllowance grants fee allowance to the grantee on the granter's
// GrantAllowance grants fee allowance to the grantee on the granter's
// account with the provided expiration time.
GrantFeeAllowance(context.Context, *MsgGrantFeeAllowance) (*MsgGrantFeeAllowanceResponse, error)
// RevokeFeeAllowance revokes any fee allowance of granter's account that
GrantAllowance(context.Context, *MsgGrantAllowance) (*MsgGrantAllowanceResponse, error)
// RevokeAllowance revokes any fee allowance of granter's account that
// has been granted to the grantee.
RevokeFeeAllowance(context.Context, *MsgRevokeFeeAllowance) (*MsgRevokeFeeAllowanceResponse, error)
RevokeAllowance(context.Context, *MsgRevokeAllowance) (*MsgRevokeAllowanceResponse, error)
}
// UnimplementedMsgServer can be embedded to have forward compatible implementations.
type UnimplementedMsgServer struct {
}
func (*UnimplementedMsgServer) GrantFeeAllowance(ctx context.Context, req *MsgGrantFeeAllowance) (*MsgGrantFeeAllowanceResponse, error) {
return nil, status.Errorf(codes.Unimplemented, "method GrantFeeAllowance not implemented")
func (*UnimplementedMsgServer) GrantAllowance(ctx context.Context, req *MsgGrantAllowance) (*MsgGrantAllowanceResponse, error) {
return nil, status.Errorf(codes.Unimplemented, "method GrantAllowance not implemented")
}
func (*UnimplementedMsgServer) RevokeFeeAllowance(ctx context.Context, req *MsgRevokeFeeAllowance) (*MsgRevokeFeeAllowanceResponse, error) {
return nil, status.Errorf(codes.Unimplemented, "method RevokeFeeAllowance not implemented")
func (*UnimplementedMsgServer) RevokeAllowance(ctx context.Context, req *MsgRevokeAllowance) (*MsgRevokeAllowanceResponse, error) {
return nil, status.Errorf(codes.Unimplemented, "method RevokeAllowance not implemented")
}
func RegisterMsgServer(s grpc1.Server, srv MsgServer) {
s.RegisterService(&_Msg_serviceDesc, srv)
}
func _Msg_GrantFeeAllowance_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(MsgGrantFeeAllowance)
func _Msg_GrantAllowance_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(MsgGrantAllowance)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(MsgServer).GrantFeeAllowance(ctx, in)
return srv.(MsgServer).GrantAllowance(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: "/cosmos.feegrant.v1beta1.Msg/GrantFeeAllowance",
FullMethod: "/cosmos.feegrant.v1beta1.Msg/GrantAllowance",
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(MsgServer).GrantFeeAllowance(ctx, req.(*MsgGrantFeeAllowance))
return srv.(MsgServer).GrantAllowance(ctx, req.(*MsgGrantAllowance))
}
return interceptor(ctx, in, info, handler)
}
func _Msg_RevokeFeeAllowance_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(MsgRevokeFeeAllowance)
func _Msg_RevokeAllowance_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(MsgRevokeAllowance)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(MsgServer).RevokeFeeAllowance(ctx, in)
return srv.(MsgServer).RevokeAllowance(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: "/cosmos.feegrant.v1beta1.Msg/RevokeFeeAllowance",
FullMethod: "/cosmos.feegrant.v1beta1.Msg/RevokeAllowance",
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(MsgServer).RevokeFeeAllowance(ctx, req.(*MsgRevokeFeeAllowance))
return srv.(MsgServer).RevokeAllowance(ctx, req.(*MsgRevokeAllowance))
}
return interceptor(ctx, in, info, handler)
}
@ -366,19 +371,19 @@ var _Msg_serviceDesc = grpc.ServiceDesc{
HandlerType: (*MsgServer)(nil),
Methods: []grpc.MethodDesc{
{
MethodName: "GrantFeeAllowance",
Handler: _Msg_GrantFeeAllowance_Handler,
MethodName: "GrantAllowance",
Handler: _Msg_GrantAllowance_Handler,
},
{
MethodName: "RevokeFeeAllowance",
Handler: _Msg_RevokeFeeAllowance_Handler,
MethodName: "RevokeAllowance",
Handler: _Msg_RevokeAllowance_Handler,
},
},
Streams: []grpc.StreamDesc{},
Metadata: "cosmos/feegrant/v1beta1/tx.proto",
}
func (m *MsgGrantFeeAllowance) Marshal() (dAtA []byte, err error) {
func (m *MsgGrantAllowance) Marshal() (dAtA []byte, err error) {
size := m.Size()
dAtA = make([]byte, size)
n, err := m.MarshalToSizedBuffer(dAtA[:size])
@ -388,12 +393,12 @@ func (m *MsgGrantFeeAllowance) Marshal() (dAtA []byte, err error) {
return dAtA[:n], nil
}
func (m *MsgGrantFeeAllowance) MarshalTo(dAtA []byte) (int, error) {
func (m *MsgGrantAllowance) MarshalTo(dAtA []byte) (int, error) {
size := m.Size()
return m.MarshalToSizedBuffer(dAtA[:size])
}
func (m *MsgGrantFeeAllowance) MarshalToSizedBuffer(dAtA []byte) (int, error) {
func (m *MsgGrantAllowance) MarshalToSizedBuffer(dAtA []byte) (int, error) {
i := len(dAtA)
_ = i
var l int
@ -427,7 +432,7 @@ func (m *MsgGrantFeeAllowance) MarshalToSizedBuffer(dAtA []byte) (int, error) {
return len(dAtA) - i, nil
}
func (m *MsgGrantFeeAllowanceResponse) Marshal() (dAtA []byte, err error) {
func (m *MsgGrantAllowanceResponse) Marshal() (dAtA []byte, err error) {
size := m.Size()
dAtA = make([]byte, size)
n, err := m.MarshalToSizedBuffer(dAtA[:size])
@ -437,12 +442,12 @@ func (m *MsgGrantFeeAllowanceResponse) Marshal() (dAtA []byte, err error) {
return dAtA[:n], nil
}
func (m *MsgGrantFeeAllowanceResponse) MarshalTo(dAtA []byte) (int, error) {
func (m *MsgGrantAllowanceResponse) MarshalTo(dAtA []byte) (int, error) {
size := m.Size()
return m.MarshalToSizedBuffer(dAtA[:size])
}
func (m *MsgGrantFeeAllowanceResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) {
func (m *MsgGrantAllowanceResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) {
i := len(dAtA)
_ = i
var l int
@ -450,7 +455,7 @@ func (m *MsgGrantFeeAllowanceResponse) MarshalToSizedBuffer(dAtA []byte) (int, e
return len(dAtA) - i, nil
}
func (m *MsgRevokeFeeAllowance) Marshal() (dAtA []byte, err error) {
func (m *MsgRevokeAllowance) Marshal() (dAtA []byte, err error) {
size := m.Size()
dAtA = make([]byte, size)
n, err := m.MarshalToSizedBuffer(dAtA[:size])
@ -460,12 +465,12 @@ func (m *MsgRevokeFeeAllowance) Marshal() (dAtA []byte, err error) {
return dAtA[:n], nil
}
func (m *MsgRevokeFeeAllowance) MarshalTo(dAtA []byte) (int, error) {
func (m *MsgRevokeAllowance) MarshalTo(dAtA []byte) (int, error) {
size := m.Size()
return m.MarshalToSizedBuffer(dAtA[:size])
}
func (m *MsgRevokeFeeAllowance) MarshalToSizedBuffer(dAtA []byte) (int, error) {
func (m *MsgRevokeAllowance) MarshalToSizedBuffer(dAtA []byte) (int, error) {
i := len(dAtA)
_ = i
var l int
@ -487,7 +492,7 @@ func (m *MsgRevokeFeeAllowance) MarshalToSizedBuffer(dAtA []byte) (int, error) {
return len(dAtA) - i, nil
}
func (m *MsgRevokeFeeAllowanceResponse) Marshal() (dAtA []byte, err error) {
func (m *MsgRevokeAllowanceResponse) Marshal() (dAtA []byte, err error) {
size := m.Size()
dAtA = make([]byte, size)
n, err := m.MarshalToSizedBuffer(dAtA[:size])
@ -497,12 +502,12 @@ func (m *MsgRevokeFeeAllowanceResponse) Marshal() (dAtA []byte, err error) {
return dAtA[:n], nil
}
func (m *MsgRevokeFeeAllowanceResponse) MarshalTo(dAtA []byte) (int, error) {
func (m *MsgRevokeAllowanceResponse) MarshalTo(dAtA []byte) (int, error) {
size := m.Size()
return m.MarshalToSizedBuffer(dAtA[:size])
}
func (m *MsgRevokeFeeAllowanceResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) {
func (m *MsgRevokeAllowanceResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) {
i := len(dAtA)
_ = i
var l int
@ -521,7 +526,7 @@ func encodeVarintTx(dAtA []byte, offset int, v uint64) int {
dAtA[offset] = uint8(v)
return base
}
func (m *MsgGrantFeeAllowance) Size() (n int) {
func (m *MsgGrantAllowance) Size() (n int) {
if m == nil {
return 0
}
@ -542,7 +547,7 @@ func (m *MsgGrantFeeAllowance) Size() (n int) {
return n
}
func (m *MsgGrantFeeAllowanceResponse) Size() (n int) {
func (m *MsgGrantAllowanceResponse) Size() (n int) {
if m == nil {
return 0
}
@ -551,7 +556,7 @@ func (m *MsgGrantFeeAllowanceResponse) Size() (n int) {
return n
}
func (m *MsgRevokeFeeAllowance) Size() (n int) {
func (m *MsgRevokeAllowance) Size() (n int) {
if m == nil {
return 0
}
@ -568,7 +573,7 @@ func (m *MsgRevokeFeeAllowance) Size() (n int) {
return n
}
func (m *MsgRevokeFeeAllowanceResponse) Size() (n int) {
func (m *MsgRevokeAllowanceResponse) Size() (n int) {
if m == nil {
return 0
}
@ -583,7 +588,7 @@ func sovTx(x uint64) (n int) {
func sozTx(x uint64) (n int) {
return sovTx(uint64((x << 1) ^ uint64((int64(x) >> 63))))
}
func (m *MsgGrantFeeAllowance) Unmarshal(dAtA []byte) error {
func (m *MsgGrantAllowance) Unmarshal(dAtA []byte) error {
l := len(dAtA)
iNdEx := 0
for iNdEx < l {
@ -606,10 +611,10 @@ func (m *MsgGrantFeeAllowance) Unmarshal(dAtA []byte) error {
fieldNum := int32(wire >> 3)
wireType := int(wire & 0x7)
if wireType == 4 {
return fmt.Errorf("proto: MsgGrantFeeAllowance: wiretype end group for non-group")
return fmt.Errorf("proto: MsgGrantAllowance: wiretype end group for non-group")
}
if fieldNum <= 0 {
return fmt.Errorf("proto: MsgGrantFeeAllowance: illegal tag %d (wire type %d)", fieldNum, wire)
return fmt.Errorf("proto: MsgGrantAllowance: illegal tag %d (wire type %d)", fieldNum, wire)
}
switch fieldNum {
case 1:
@ -733,7 +738,7 @@ func (m *MsgGrantFeeAllowance) Unmarshal(dAtA []byte) error {
}
return nil
}
func (m *MsgGrantFeeAllowanceResponse) Unmarshal(dAtA []byte) error {
func (m *MsgGrantAllowanceResponse) Unmarshal(dAtA []byte) error {
l := len(dAtA)
iNdEx := 0
for iNdEx < l {
@ -756,10 +761,10 @@ func (m *MsgGrantFeeAllowanceResponse) Unmarshal(dAtA []byte) error {
fieldNum := int32(wire >> 3)
wireType := int(wire & 0x7)
if wireType == 4 {
return fmt.Errorf("proto: MsgGrantFeeAllowanceResponse: wiretype end group for non-group")
return fmt.Errorf("proto: MsgGrantAllowanceResponse: wiretype end group for non-group")
}
if fieldNum <= 0 {
return fmt.Errorf("proto: MsgGrantFeeAllowanceResponse: illegal tag %d (wire type %d)", fieldNum, wire)
return fmt.Errorf("proto: MsgGrantAllowanceResponse: illegal tag %d (wire type %d)", fieldNum, wire)
}
switch fieldNum {
default:
@ -783,7 +788,7 @@ func (m *MsgGrantFeeAllowanceResponse) Unmarshal(dAtA []byte) error {
}
return nil
}
func (m *MsgRevokeFeeAllowance) Unmarshal(dAtA []byte) error {
func (m *MsgRevokeAllowance) Unmarshal(dAtA []byte) error {
l := len(dAtA)
iNdEx := 0
for iNdEx < l {
@ -806,10 +811,10 @@ func (m *MsgRevokeFeeAllowance) Unmarshal(dAtA []byte) error {
fieldNum := int32(wire >> 3)
wireType := int(wire & 0x7)
if wireType == 4 {
return fmt.Errorf("proto: MsgRevokeFeeAllowance: wiretype end group for non-group")
return fmt.Errorf("proto: MsgRevokeAllowance: wiretype end group for non-group")
}
if fieldNum <= 0 {
return fmt.Errorf("proto: MsgRevokeFeeAllowance: illegal tag %d (wire type %d)", fieldNum, wire)
return fmt.Errorf("proto: MsgRevokeAllowance: illegal tag %d (wire type %d)", fieldNum, wire)
}
switch fieldNum {
case 1:
@ -897,7 +902,7 @@ func (m *MsgRevokeFeeAllowance) Unmarshal(dAtA []byte) error {
}
return nil
}
func (m *MsgRevokeFeeAllowanceResponse) Unmarshal(dAtA []byte) error {
func (m *MsgRevokeAllowanceResponse) Unmarshal(dAtA []byte) error {
l := len(dAtA)
iNdEx := 0
for iNdEx < l {
@ -920,10 +925,10 @@ func (m *MsgRevokeFeeAllowanceResponse) Unmarshal(dAtA []byte) error {
fieldNum := int32(wire >> 3)
wireType := int(wire & 0x7)
if wireType == 4 {
return fmt.Errorf("proto: MsgRevokeFeeAllowanceResponse: wiretype end group for non-group")
return fmt.Errorf("proto: MsgRevokeAllowanceResponse: wiretype end group for non-group")
}
if fieldNum <= 0 {
return fmt.Errorf("proto: MsgRevokeFeeAllowanceResponse: illegal tag %d (wire type %d)", fieldNum, wire)
return fmt.Errorf("proto: MsgRevokeAllowanceResponse: illegal tag %d (wire type %d)", fieldNum, wire)
}
switch fieldNum {
default: