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 }