-
Notifications
You must be signed in to change notification settings - Fork 5
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Adam Hanna
committed
Aug 30, 2024
1 parent
21a6030
commit 8630c2f
Showing
47 changed files
with
15,821 additions
and
25 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,50 @@ | ||
syntax = "proto3"; | ||
package atomone.base.v1beta1; | ||
|
||
import "gogoproto/gogo.proto"; | ||
// TODO: port to atomone | ||
import "cosmos_proto/cosmos.proto"; | ||
import "amino/amino.proto"; | ||
|
||
// TODO: port to atomone | ||
option go_package = "github.com/cosmos/cosmos-sdk/types"; | ||
option (gogoproto.goproto_stringer_all) = false; | ||
option (gogoproto.stringer_all) = false; | ||
|
||
// Coin defines a token with a denomination and an amount. | ||
// | ||
// NOTE: The amount field is an Int which implements the custom method | ||
// signatures required by gogoproto. | ||
message Coin { | ||
option (gogoproto.equal) = true; | ||
|
||
string denom = 1; | ||
string amount = 2 [ | ||
(cosmos_proto.scalar) = "atomone.Int", | ||
(gogoproto.customtype) = "Int", | ||
(gogoproto.nullable) = false, | ||
(amino.dont_omitempty) = true | ||
]; | ||
} | ||
|
||
// DecCoin defines a token with a denomination and a decimal amount. | ||
// | ||
// NOTE: The amount field is an Dec which implements the custom method | ||
// signatures required by gogoproto. | ||
message DecCoin { | ||
option (gogoproto.equal) = true; | ||
|
||
string denom = 1; | ||
string amount = 2 | ||
[(cosmos_proto.scalar) = "atomone.Dec", (gogoproto.customtype) = "Dec", (gogoproto.nullable) = false]; | ||
} | ||
|
||
// IntProto defines a Protobuf wrapper around an Int object. | ||
message IntProto { | ||
string int = 1 [(cosmos_proto.scalar) = "atomone.Int", (gogoproto.customtype) = "Int", (gogoproto.nullable) = false]; | ||
} | ||
|
||
// DecProto defines a Protobuf wrapper around a Dec object. | ||
message DecProto { | ||
string dec = 1 [(cosmos_proto.scalar) = "atomone.Dec", (gogoproto.customtype) = "Dec", (gogoproto.nullable) = false]; | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,33 @@ | ||
// Since: cosmos-sdk 0.46 | ||
syntax = "proto3"; | ||
|
||
package atomone.gov.v1; | ||
|
||
import "atomone/gov/v1/gov.proto"; | ||
|
||
option go_package = "github.com/atomone-hub/atomone/x/gov/types/v1"; | ||
|
||
// GenesisState defines the gov module's genesis state. | ||
message GenesisState { | ||
// starting_proposal_id is the ID of the starting proposal. | ||
uint64 starting_proposal_id = 1; | ||
// deposits defines all the deposits present at genesis. | ||
repeated Deposit deposits = 2; | ||
// votes defines all the votes present at genesis. | ||
repeated Vote votes = 3; | ||
// proposals defines all the proposals present at genesis. | ||
repeated Proposal proposals = 4; | ||
// Deprecated: Prefer to use `params` instead. | ||
// deposit_params defines all the paramaters of related to deposit. | ||
DepositParams deposit_params = 5 [deprecated = true]; | ||
// Deprecated: Prefer to use `params` instead. | ||
// voting_params defines all the paramaters of related to voting. | ||
VotingParams voting_params = 6 [deprecated = true]; | ||
// Deprecated: Prefer to use `params` instead. | ||
// tally_params defines all the paramaters of related to tally. | ||
TallyParams tally_params = 7 [deprecated = true]; | ||
// params defines all the paramaters of x/gov module. | ||
// | ||
// Since: cosmos-sdk 0.47 | ||
Params params = 8; | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,230 @@ | ||
// Since: cosmos-sdk 0.46 | ||
syntax = "proto3"; | ||
package atomone.gov.v1; | ||
|
||
import "atomone/base/v1beta1/coin.proto"; | ||
import "gogoproto/gogo.proto"; | ||
import "google/protobuf/timestamp.proto"; | ||
import "google/protobuf/any.proto"; | ||
import "google/protobuf/duration.proto"; | ||
// TODO: port to atomone | ||
import "cosmos_proto/cosmos.proto"; | ||
import "amino/amino.proto"; | ||
|
||
// TODO: port to atomone | ||
option go_package = "github.com/cosmos/cosmos-sdk/x/gov/types/v1"; | ||
|
||
// VoteOption enumerates the valid vote options for a given governance proposal. | ||
enum VoteOption { | ||
// VOTE_OPTION_UNSPECIFIED defines a no-op vote option. | ||
VOTE_OPTION_UNSPECIFIED = 0; | ||
// VOTE_OPTION_YES defines a yes vote option. | ||
VOTE_OPTION_YES = 1; | ||
// VOTE_OPTION_ABSTAIN defines an abstain vote option. | ||
VOTE_OPTION_ABSTAIN = 2; | ||
// VOTE_OPTION_NO defines a no vote option. | ||
VOTE_OPTION_NO = 3; | ||
// VOTE_OPTION_NO_WITH_VETO defines a no with veto vote option. | ||
VOTE_OPTION_NO_WITH_VETO = 4; | ||
} | ||
|
||
// WeightedVoteOption defines a unit of vote for vote split. | ||
message WeightedVoteOption { | ||
// option defines the valid vote options, it must not contain duplicate vote options. | ||
VoteOption option = 1; | ||
|
||
// weight is the vote weight associated with the vote option. | ||
string weight = 2 [(cosmos_proto.scalar) = "atomone.Dec"]; | ||
} | ||
|
||
// Deposit defines an amount deposited by an account address to an active | ||
// proposal. | ||
message Deposit { | ||
// proposal_id defines the unique id of the proposal. | ||
uint64 proposal_id = 1; | ||
|
||
// depositor defines the deposit addresses from the proposals. | ||
string depositor = 2 [(cosmos_proto.scalar) = "atomone.AddressString"]; | ||
|
||
// amount to be deposited by depositor. | ||
repeated atomone.base.v1beta1.Coin amount = 3 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; | ||
} | ||
|
||
// Proposal defines the core field members of a governance proposal. | ||
message Proposal { | ||
// id defines the unique id of the proposal. | ||
uint64 id = 1; | ||
|
||
// messages are the arbitrary messages to be executed if the proposal passes. | ||
repeated google.protobuf.Any messages = 2; | ||
|
||
// status defines the proposal status. | ||
ProposalStatus status = 3; | ||
|
||
// final_tally_result is the final tally result of the proposal. When | ||
// querying a proposal via gRPC, this field is not populated until the | ||
// proposal's voting period has ended. | ||
TallyResult final_tally_result = 4; | ||
|
||
// submit_time is the time of proposal submission. | ||
google.protobuf.Timestamp submit_time = 5 [(gogoproto.stdtime) = true]; | ||
|
||
// deposit_end_time is the end time for deposition. | ||
google.protobuf.Timestamp deposit_end_time = 6 [(gogoproto.stdtime) = true]; | ||
|
||
// total_deposit is the total deposit on the proposal. | ||
repeated atomone.base.v1beta1.Coin total_deposit = 7 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; | ||
|
||
// voting_start_time is the starting time to vote on a proposal. | ||
google.protobuf.Timestamp voting_start_time = 8 [(gogoproto.stdtime) = true]; | ||
|
||
// voting_end_time is the end time of voting on a proposal. | ||
google.protobuf.Timestamp voting_end_time = 9 [(gogoproto.stdtime) = true]; | ||
|
||
// metadata is any arbitrary metadata attached to the proposal. | ||
string metadata = 10; | ||
|
||
// title is the title of the proposal | ||
// | ||
// Since: cosmos-sdk 0.47 | ||
string title = 11; | ||
|
||
// summary is a short summary of the proposal | ||
// | ||
// Since: cosmos-sdk 0.47 | ||
string summary = 12; | ||
|
||
// Proposer is the address of the proposal sumbitter | ||
// | ||
// Since: cosmos-sdk 0.47 | ||
string proposer = 13 [(cosmos_proto.scalar) = "atomone.AddressString"]; | ||
} | ||
|
||
// ProposalStatus enumerates the valid statuses of a proposal. | ||
enum ProposalStatus { | ||
// PROPOSAL_STATUS_UNSPECIFIED defines the default proposal status. | ||
PROPOSAL_STATUS_UNSPECIFIED = 0; | ||
// PROPOSAL_STATUS_DEPOSIT_PERIOD defines a proposal status during the deposit | ||
// period. | ||
PROPOSAL_STATUS_DEPOSIT_PERIOD = 1; | ||
// PROPOSAL_STATUS_VOTING_PERIOD defines a proposal status during the voting | ||
// period. | ||
PROPOSAL_STATUS_VOTING_PERIOD = 2; | ||
// PROPOSAL_STATUS_PASSED defines a proposal status of a proposal that has | ||
// passed. | ||
PROPOSAL_STATUS_PASSED = 3; | ||
// PROPOSAL_STATUS_REJECTED defines a proposal status of a proposal that has | ||
// been rejected. | ||
PROPOSAL_STATUS_REJECTED = 4; | ||
// PROPOSAL_STATUS_FAILED defines a proposal status of a proposal that has | ||
// failed. | ||
PROPOSAL_STATUS_FAILED = 5; | ||
} | ||
|
||
// TallyResult defines a standard tally for a governance proposal. | ||
message TallyResult { | ||
// yes_count is the number of yes votes on a proposal. | ||
string yes_count = 1 [(cosmos_proto.scalar) = "atomone.Int"]; | ||
// abstain_count is the number of abstain votes on a proposal. | ||
string abstain_count = 2 [(cosmos_proto.scalar) = "atomone.Int"]; | ||
// no_count is the number of no votes on a proposal. | ||
string no_count = 3 [(cosmos_proto.scalar) = "atomone.Int"]; | ||
// no_with_veto_count is the number of no with veto votes on a proposal. | ||
string no_with_veto_count = 4 [(cosmos_proto.scalar) = "atomone.Int"]; | ||
} | ||
|
||
// Vote defines a vote on a governance proposal. | ||
// A Vote consists of a proposal ID, the voter, and the vote option. | ||
message Vote { | ||
// proposal_id defines the unique id of the proposal. | ||
uint64 proposal_id = 1; | ||
|
||
// voter is the voter address of the proposal. | ||
string voter = 2 [(cosmos_proto.scalar) = "atomone.AddressString"]; | ||
|
||
reserved 3; | ||
|
||
// options is the weighted vote options. | ||
repeated WeightedVoteOption options = 4; | ||
|
||
// metadata is any arbitrary metadata to attached to the vote. | ||
string metadata = 5; | ||
} | ||
|
||
// DepositParams defines the params for deposits on governance proposals. | ||
message DepositParams { | ||
// Minimum deposit for a proposal to enter voting period. | ||
repeated atomone.base.v1beta1.Coin min_deposit = 1 | ||
[(gogoproto.nullable) = false, (gogoproto.jsontag) = "min_deposit,omitempty"]; | ||
|
||
// Maximum period for Atom holders to deposit on a proposal. Initial value: 2 | ||
// months. | ||
google.protobuf.Duration max_deposit_period = 2 | ||
[(gogoproto.stdduration) = true, (gogoproto.jsontag) = "max_deposit_period,omitempty"]; | ||
} | ||
|
||
// VotingParams defines the params for voting on governance proposals. | ||
message VotingParams { | ||
// Duration of the voting period. | ||
google.protobuf.Duration voting_period = 1 [(gogoproto.stdduration) = true]; | ||
} | ||
|
||
// TallyParams defines the params for tallying votes on governance proposals. | ||
message TallyParams { | ||
// Minimum percentage of total stake needed to vote for a result to be | ||
// considered valid. | ||
string quorum = 1 [(cosmos_proto.scalar) = "atomone.Dec"]; | ||
|
||
// Minimum proportion of Yes votes for proposal to pass. Default value: 0.5. | ||
string threshold = 2 [(cosmos_proto.scalar) = "atomone.Dec"]; | ||
|
||
// Minimum value of Veto votes to Total votes ratio for proposal to be | ||
// vetoed. Default value: 1/3. | ||
string veto_threshold = 3 [(cosmos_proto.scalar) = "atomone.Dec"]; | ||
} | ||
|
||
// Params defines the parameters for the x/gov module. | ||
// | ||
// Since: cosmos-sdk 0.47 | ||
message Params { | ||
// Minimum deposit for a proposal to enter voting period. | ||
repeated atomone.base.v1beta1.Coin min_deposit = 1 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; | ||
|
||
// Maximum period for Atom holders to deposit on a proposal. Initial value: 2 | ||
// months. | ||
google.protobuf.Duration max_deposit_period = 2 [(gogoproto.stdduration) = true]; | ||
|
||
// Duration of the voting period. | ||
google.protobuf.Duration voting_period = 3 [(gogoproto.stdduration) = true]; | ||
|
||
// Minimum percentage of total stake needed to vote for a result to be | ||
// considered valid. | ||
string quorum = 4 [(cosmos_proto.scalar) = "atomone.Dec"]; | ||
|
||
// Minimum proportion of Yes votes for proposal to pass. Default value: 0.5. | ||
string threshold = 5 [(cosmos_proto.scalar) = "atomone.Dec"]; | ||
|
||
// Minimum value of Veto votes to Total votes ratio for proposal to be | ||
// vetoed. Default value: 1/3. | ||
string veto_threshold = 6 [(cosmos_proto.scalar) = "atomone.Dec"]; | ||
|
||
// The ratio representing the proportion of the deposit value that must be paid at proposal submission. | ||
string min_initial_deposit_ratio = 7 [(cosmos_proto.scalar) = "atomone.Dec"]; | ||
|
||
// burn deposits if a proposal does not meet quorum | ||
bool burn_vote_quorum = 13; | ||
|
||
// burn deposits if the proposal does not enter voting period | ||
bool burn_proposal_deposit_prevote = 14; | ||
|
||
// burn deposits if quorum with vote type no_veto is met | ||
bool burn_vote_veto = 15; | ||
|
||
// The ratio representing the proportion of the deposit value minimum that must be met when making a deposit. | ||
// Default value: 0.01. Meaning that for a chain with a min_deposit of 100stake, a deposit of 1stake would be | ||
// required. | ||
// | ||
// Since: cosmos-sdk 0.50 | ||
// NOTE: backported from v50 (https://github.com/cosmos/cosmos-sdk/pull/18146) | ||
string min_deposit_ratio = 16 [(cosmos_proto.scalar) = "atomone.Dec"]; | ||
} |
Oops, something went wrong.