Conversation
| (".cometbft.libs.bits.BitArray", SERIALIZED),//TODO Revisit | ||
| (".cometbft.types.BlockIDFlag", PRIMITIVE_ENUM), | ||
| (".cometbft.types.Block", SERIALIZED), | ||
| (".cometbft.types.Data", SERIALIZED), | ||
| (".cometbft.types.EvidenceParams", SERIALIZED), | ||
| (".cometbft.types.Evidence.sum", SERIALIZED), | ||
| (".cometbft.types.Evidence.sum", TYPE_TAG), | ||
| (".cometbft.types.EvidenceList", SERIALIZED), | ||
| (".cometbft.types.DuplicateVoteEvidence", SERIALIZED), | ||
| (".cometbft.types.Vote", SERIALIZED), | ||
| (".cometbft.types.BlockID", SERIALIZED), | ||
| (".cometbft.types.PartSetHeader", SERIALIZED), | ||
| (".cometbft.types.LightClientAttackEvidence", SERIALIZED), | ||
| ( | ||
| ".cometbft.types.LightClientAttackEvidence", | ||
| RENAME_ALL_PASCALCASE, | ||
| ), | ||
| (".cometbft.types.LightBlock", SERIALIZED), | ||
| (".cometbft.types.SignedHeader", SERIALIZED), | ||
| (".cometbft.types.Header", SERIALIZED), | ||
| (".cometbft.version.Consensus", SERIALIZED), | ||
| (".cometbft.types.Commit", SERIALIZED), | ||
| (".cometbft.types.CommitSig", SERIALIZED), | ||
| (".cometbft.types.ValidatorSet", SERIALIZED), | ||
| (".cometbft.crypto.PublicKey.sum", SERIALIZED), | ||
| (".cometbft.crypto.PublicKey.sum", TYPE_TAG), | ||
| (".cometbft.abci.ResponseInfo", SERIALIZED), | ||
| (".cometbft.types.CanonicalBlockID", SERIALIZED), | ||
| (".cometbft.types.CanonicalPartSetHeader", SERIALIZED), | ||
| (".cometbft.types.Validator", SERIALIZED), | ||
| (".cometbft.types.CanonicalVote", SERIALIZED), | ||
| (".cometbft.types.BlockMeta", SERIALIZED), | ||
| (".cometbft.types.TxProof", SERIALIZED), | ||
| (".cometbft.crypto.Proof", SERIALIZED), |
There was a problem hiding this comment.
Please ignore these changes: review them in Commit 4
| ( | ||
| ".cometbft.types.EvidenceParams.max_bytes", | ||
| QUOTED_WITH_DEFAULT, | ||
| ), //TODO Revisit | ||
| ( | ||
| ".cometbft.types.EvidenceParams.max_age_num_blocks", | ||
| QUOTED_WITH_DEFAULT, | ||
| ), | ||
| (".cometbft.version.Consensus.block", QUOTED), | ||
| (".cometbft.version.Consensus.app", QUOTED_WITH_DEFAULT), | ||
| (".cometbft.abci.ResponseInfo.data", DEFAULT), | ||
| (".cometbft.abci.ResponseInfo.version", DEFAULT), | ||
| ( | ||
| ".cometbft.abci.ResponseInfo.app_version", | ||
| QUOTED_WITH_DEFAULT, | ||
| ), | ||
| ( | ||
| ".cometbft.abci.ResponseInfo.last_block_height", | ||
| QUOTED_WITH_DEFAULT, | ||
| ), | ||
| (".cometbft.abci.ResponseInfo.last_block_app_hash", DEFAULT), | ||
| ( | ||
| ".cometbft.abci.ResponseInfo.last_block_app_hash", | ||
| BYTES_SKIP_IF_EMPTY, | ||
| ), | ||
| (".cometbft.types.BlockID.hash", HEXSTRING), | ||
| (".cometbft.types.BlockID.part_set_header", RENAME_PARTS), | ||
| ( | ||
| ".cometbft.types.PartSetHeader.total", | ||
| PART_SET_HEADER_TOTAL, | ||
| ), | ||
| (".cometbft.types.PartSetHeader.hash", HEXSTRING), | ||
| (".cometbft.types.Header.height", QUOTED), | ||
| (".cometbft.types.Header.time", OPTIONAL), | ||
| (".cometbft.types.Header.last_commit_hash", HEXSTRING), | ||
| (".cometbft.types.Header.data_hash", HEXSTRING), | ||
| (".cometbft.types.Header.validators_hash", HEXSTRING), | ||
| (".cometbft.types.Header.next_validators_hash", HEXSTRING), | ||
| (".cometbft.types.Header.consensus_hash", HEXSTRING), | ||
| (".cometbft.types.Header.app_hash", HEXSTRING), | ||
| (".cometbft.types.Header.last_results_hash", HEXSTRING), | ||
| (".cometbft.types.Header.evidence_hash", HEXSTRING), | ||
| (".cometbft.types.Header.proposer_address", HEXSTRING), | ||
| (".cometbft.types.Data.txs", NULLABLEVECARRAY), | ||
| (".cometbft.types.EvidenceList.evidence", NULLABLE), | ||
| (".cometbft.types.Commit.height", QUOTED), | ||
| (".cometbft.types.Commit.signatures", NULLABLE), | ||
| (".cometbft.types.CommitSig.validator_address", HEXSTRING), | ||
| (".cometbft.types.CommitSig.timestamp", OPTIONAL), | ||
| (".cometbft.types.CommitSig.signature", BASE64STRING), | ||
| ( | ||
| ".cometbft.types.DuplicateVoteEvidence.total_voting_power", | ||
| RENAME_TOTAL_VOTING_POWER_QUOTED, | ||
| ), | ||
| ( | ||
| ".cometbft.types.DuplicateVoteEvidence.validator_power", | ||
| RENAME_VALIDATOR_POWER_QUOTED, | ||
| ), | ||
| ( | ||
| ".cometbft.types.DuplicateVoteEvidence.timestamp", | ||
| RENAME_TIMESTAMP, | ||
| ), | ||
| ( | ||
| ".cometbft.types.LightClientAttackEvidence.common_height", | ||
| QUOTED, | ||
| ), | ||
| ( | ||
| ".cometbft.types.LightClientAttackEvidence.total_voting_power", | ||
| QUOTED, | ||
| ), | ||
| (".cometbft.types.Vote.height", QUOTED), | ||
| (".cometbft.types.Vote.validator_address", HEXSTRING), | ||
| (".cometbft.types.Vote.signature", BASE64STRING), | ||
| (".cometbft.types.Vote.timestamp", OPTIONAL), | ||
| (".cometbft.types.Validator.address", HEXSTRING), | ||
| ( | ||
| ".cometbft.types.Validator.voting_power", | ||
| ALIAS_POWER_QUOTED, | ||
| ), // https://github.com/tendermint/tendermint/issues/5549 | ||
| ( | ||
| ".cometbft.types.Validator.proposer_priority", | ||
| QUOTED_ALLOW_NULL, | ||
| ), // null occurs in some LightBlock data | ||
| (".cometbft.types.Validator.proposer_priority", DEFAULT), // Default is for /genesis deserialization | ||
| ( | ||
| ".cometbft.types.ValidatorSet.total_voting_power", | ||
| QUOTED_WITH_DEFAULT, | ||
| ), | ||
| ( | ||
| ".cometbft.types.ValidatorSet.total_voting_power", | ||
| SKIP_SERIALIZING, | ||
| ), | ||
| (".cometbft.types.BlockMeta.block_size", QUOTED), | ||
| (".cometbft.types.BlockMeta.num_txs", QUOTED), | ||
| (".cometbft.crypto.PublicKey.sum.ed25519", RENAME_EDPUBKEY), | ||
| ( | ||
| ".cometbft.crypto.PublicKey.sum.secp256k1", | ||
| RENAME_SECPPUBKEY, | ||
| ), | ||
| (".cometbft.crypto.PublicKey.sum.sr25519", RENAME_SRPUBKEY), | ||
| ( | ||
| ".cometbft.types.Evidence.sum.duplicate_vote_evidence", | ||
| RENAME_DUPLICATEVOTE, | ||
| ), | ||
| ( | ||
| ".cometbft.types.Evidence.sum.light_client_attack_evidence", | ||
| RENAME_LIGHTCLIENTATTACK, | ||
| ), | ||
| (".cometbft.types.TxProof.data", BASE64STRING), | ||
| (".cometbft.types.TxProof.root_hash", HEXSTRING), | ||
| (".cometbft.crypto.Proof.index", QUOTED), | ||
| (".cometbft.crypto.Proof.total", QUOTED), | ||
| (".cometbft.crypto.Proof.aunts", VEC_BASE64STRING), | ||
| (".cometbft.crypto.Proof.leaf_hash", BASE64STRING), |
There was a problem hiding this comment.
Please ignore these changes: review them in Commit 4
There was a problem hiding this comment.
Good automation for the module tree.
I don't think we need to namespace the cometbft generated files under module v1_0.
Remember the idea of ADR-107 is to eventually promote the message definitions to *.v1 packages at the proto level. So abci.v1beta4.Request becomes abci.v1.Request and so on. It's better that we generate the root module under proto/cometbft/lib.rs. Further evolution of the protos will add v2 packages alongside if needed, as designed.
I don't see a need to hold on to proto::tendermint, modules either. We're making a switch for cometbft-rs, the legacy generated files will not be used by the rest of the cometbft-rs crates, so they are pretty much dead code. @thanethomson had the idea that the users who need support for tendermint.* protos could still use the tendermint-rs crates as already released, and we can still support those from this current repository in maintenance mode.
| && e.file_name() | ||
| .to_str() | ||
| .map(|name| name.starts_with("tendermint.")) | ||
| .map(|name| name.starts_with(&format!("{project}."))) |
There was a problem hiding this comment.
Performance nit: it would be better if the prefix string was formatted once, not with every invocation of the closure.
| .filter(|e| { | ||
| e.file_type().is_file() | ||
| && e.file_name().to_str().unwrap().starts_with("tendermint.") | ||
| && e.file_name().to_str().unwrap().starts_with(&project_dot) |
|
This is continued in cometbft/cometbft-rs#2 |
This (draft) PR is the first to providing support for CometBFT
v1.0.The PR appears to be massive but the reason is the tons of newly auto-generated code it introduces. For this reason, please don't review it in one shot; rather use the following description of commits:
Note: even if this PR is likely to be ready for review, I decided to leave it a draft PR because we need to discuss whether we should be forking tendermint-rs into cometbft-rs and move this PR there.
.changelog/