github.com/Finschia/finschia-sdk@v0.48.1/proto/cosmos/vesting/v1beta1/vesting.proto (about)

     1  syntax = "proto3";
     2  package cosmos.vesting.v1beta1;
     3  
     4  import "gogoproto/gogo.proto";
     5  import "cosmos/base/v1beta1/coin.proto";
     6  import "cosmos/auth/v1beta1/auth.proto";
     7  
     8  option go_package = "github.com/Finschia/finschia-sdk/x/auth/vesting/types";
     9  
    10  // BaseVestingAccount implements the VestingAccount interface. It contains all
    11  // the necessary fields needed for any vesting account implementation.
    12  message BaseVestingAccount {
    13    option (gogoproto.goproto_getters)  = false;
    14    option (gogoproto.goproto_stringer) = false;
    15  
    16    cosmos.auth.v1beta1.BaseAccount base_account       = 1 [(gogoproto.embed) = true];
    17    repeated cosmos.base.v1beta1.Coin original_vesting = 2 [
    18      (gogoproto.nullable)     = false,
    19      (gogoproto.castrepeated) = "github.com/Finschia/finschia-sdk/types.Coins",
    20      (gogoproto.moretags)     = "yaml:\"original_vesting\""
    21    ];
    22    repeated cosmos.base.v1beta1.Coin delegated_free = 3 [
    23      (gogoproto.nullable)     = false,
    24      (gogoproto.castrepeated) = "github.com/Finschia/finschia-sdk/types.Coins",
    25      (gogoproto.moretags)     = "yaml:\"delegated_free\""
    26    ];
    27    repeated cosmos.base.v1beta1.Coin delegated_vesting = 4 [
    28      (gogoproto.nullable)     = false,
    29      (gogoproto.castrepeated) = "github.com/Finschia/finschia-sdk/types.Coins",
    30      (gogoproto.moretags)     = "yaml:\"delegated_vesting\""
    31    ];
    32    int64 end_time = 5 [(gogoproto.moretags) = "yaml:\"end_time\""];
    33  }
    34  
    35  // ContinuousVestingAccount implements the VestingAccount interface. It
    36  // continuously vests by unlocking coins linearly with respect to time.
    37  message ContinuousVestingAccount {
    38    option (gogoproto.goproto_getters)  = false;
    39    option (gogoproto.goproto_stringer) = false;
    40  
    41    BaseVestingAccount base_vesting_account = 1 [(gogoproto.embed) = true];
    42    int64              start_time           = 2 [(gogoproto.moretags) = "yaml:\"start_time\""];
    43  }
    44  
    45  // DelayedVestingAccount implements the VestingAccount interface. It vests all
    46  // coins after a specific time, but non prior. In other words, it keeps them
    47  // locked until a specified time.
    48  message DelayedVestingAccount {
    49    option (gogoproto.goproto_getters)  = false;
    50    option (gogoproto.goproto_stringer) = false;
    51  
    52    BaseVestingAccount base_vesting_account = 1 [(gogoproto.embed) = true];
    53  }
    54  
    55  // Period defines a length of time and amount of coins that will vest.
    56  message Period {
    57    option (gogoproto.goproto_stringer) = false;
    58  
    59    int64    length                          = 1;
    60    repeated cosmos.base.v1beta1.Coin amount = 2
    61        [(gogoproto.nullable) = false, (gogoproto.castrepeated) = "github.com/Finschia/finschia-sdk/types.Coins"];
    62  }
    63  
    64  // PeriodicVestingAccount implements the VestingAccount interface. It
    65  // periodically vests by unlocking coins during each specified period.
    66  message PeriodicVestingAccount {
    67    option (gogoproto.goproto_getters)  = false;
    68    option (gogoproto.goproto_stringer) = false;
    69  
    70    BaseVestingAccount base_vesting_account = 1 [(gogoproto.embed) = true];
    71    int64              start_time           = 2 [(gogoproto.moretags) = "yaml:\"start_time\""];
    72    repeated Period vesting_periods = 3 [(gogoproto.moretags) = "yaml:\"vesting_periods\"", (gogoproto.nullable) = false];
    73  }
    74  
    75  // PermanentLockedAccount implements the VestingAccount interface. It does
    76  // not ever release coins, locking them indefinitely. Coins in this account can
    77  // still be used for delegating and for governance votes even while locked.
    78  //
    79  // Since: cosmos-sdk 0.43
    80  message PermanentLockedAccount {
    81    option (gogoproto.goproto_getters)  = false;
    82    option (gogoproto.goproto_stringer) = false;
    83  
    84    BaseVestingAccount base_vesting_account = 1 [(gogoproto.embed) = true];
    85  }