gaia
gaia copied to clipboard
tests: compatibility, e2e, github action
Summary
In gaia repo, there will be three types of tests:
- e2e tests: which will cover hermes relayer tests, new module tests, tx tests.
- github action: test simulation, lint, etc
- compatibility tests: patch releases should be compatible
Testing plan:
-
Part I: set up 3 nodes, two node (on chain 1) of the same minor but different patch versions, the third node (on chain 2) can choose any version. Use Hermes relayer to create connection between chain 1 and 2. Testing the following txs:
- bank send
- liquidity
- create validator
- delegation and redelegation
- withdraw rewards
- submit proposal
- ibc tx and ica tx
-
Part II: create a node to join in live cosmoshub by the gaiad version we want to test, let it sync for 24h.
PLEASE NOTE: The version compatibility test should be before tag the version!
Problem Definition
Proposal
For Admin Use
- [ ] Not duplicate issue
- [ ] Appropriate labels applied
- [ ] Appropriate contributors tagged
- [ ] Contributor assigned/self-assigned
Modules in Gaia with list of gaiad tx <command> commands
- [ ]
liquidityLiquidity transaction subcommands #1633- [ ]
create-poolCreate liquidity pool and deposit coins - [ ]
depositDeposit coins to a liquidity pool - [ ]
swapSwap offer coin with demand coin from the liquidity pool with the given order price - [ ]
withdrawWithdraw pool coin from the specified liquidity pool
- [ ]
- [ ]
authzAuthorization transactions subcommands #1632- [ ]
execexecute tx on behalf of granter account - [ ]
grantGrant authorization to an address - [ ]
revokerevoke authorization
- [ ]
- [x]
vestingVesting transaction subcommands #1631- [x]
create-vesting-accountCreate a new vesting account funded with an allocation of tokens.
- [x]
- [x]
stakingStaking transaction subcommands #1630- [ ]
create-validatorcreate new validator initialized with a self-delegation to it - [x]
delegateDelegate liquid tokens to a validator - [ ]
edit-validatoredit an existing validator account - [x]
redelegateRedelegate illiquid tokens from one validator to another - [ ]
unbondUnbond shares from a validator
- [ ]
- [x]
bankBank transaction subcommands- [x]
sendSend funds from one account to another. Note, the'--from' flag is
- [x]
- [ ]
broadcastBroadcast transactions generated offline- [ ]
broadcast[file_path] [flags]
- [ ]
- [ ]
crisisCrisis transactions subcommands- [ ]
invariant-brokenSubmit proof that an invariant broken to halt the chain
- [ ]
- [ ]
decodeDecode a binary encoded transaction string- [ ]
gaiad tx decode[amino-byte-string] [flags]
- [ ]
- [x]
distributionDistribution transactions subcommands #1678- [x]
fund-community-poolFunds the community pool with the specified amount - [x]
set-withdraw-addrchange the default withdraw address for rewards associated with an address - [x]
withdraw-all-rewardswithdraw all delegations rewards for a delegator - [x]
withdraw-rewardsWithdraw rewards from a given delegation address, and optionally withdraw validator commission if the delegation address given is a validator operator
- [x]
- [ ]
encodeEncode transactions generated offline #1677- [ ]
gaiad tx encode[file] [flags]
- [ ]
- [x]
evidenceEvidence transaction subcommands #1676- [ ]
gaiad tx evidence[flags]
- [ ]
- [x]
feegrantFeegrant transactions subcommands #1675- [x]
grantGrant Fee allowance to an address - [x]
revokerevoke fee-grant
- [x]
- [x]
groupsGroups transactions subcommands #1423- [x]
create-groupCreate a group - [x]
update-group-membersAdd a group member - [x]
update-group-membersRemove a group member - [x]
create-group-policyCreate threshold decision policy - [x]
create-group-policyCreate percentage decision policy - [x]
submit-proposalSubmit MsgSend proposal - [x]
voteVote on proposal - [x]
execExecute proposal - [ ]
leave-groupRemove member from the group - [ ]
update-group-metadataUpdate a group's metadata - [ ]
update-group-policy-adminUpdate a group policy admin - [ ]
update-group-policy-decision-policyUpdate a group policy's decision policy - [ ]
update-group-policy-metadataUpdate a group policy metadata
- [x]
- [x]
govGovernance transactions subcommands #1424- [x]
depositDeposit tokens for an active proposal - [x]
submit-proposalSubmit a proposal along with an initial deposit - [x]
submit-legacy-proposalSubmit legacy proposal- [x]
param-changeSubmit param change proposal for chain - [x]
software-upgradeSubmit an upgrade proposal - [x]
cancel-software-upgradeCancel the current software upgrade proposal - [x]
community-pool-spendSubmit proposal to send tokens from the community pool - [ ]
ibc-upgradeSubmit an IBC upgrade proposal - [ ]
update-clientSubmit an update IBC client proposal
- [x]
- [x]
voteVote for an active proposal, options: yes/no/no_with_veto/abstain - [x]
weighted-voteVote for an active proposal, options: yes/no/no_with_veto/abstain
- [x]
- [ ]
ibcIBC transaction subcommands- [ ]
channelIBC channel transaction subcommands - [ ]
clientIBC client transaction subcommands
- [ ]
- [x]
ibc-transferIBC fungible token transfer transaction subcommands- [x]
transferTransfer a fungible token through IBC
- [x]
- [x]
inter-txInterchain Accounts- [x]
register-accountRegister Account - [x] Normal send bank transfer
- [ ] Vote on a tx with gov
- [x]
- [ ]
multisignGenerate multisig signatures for transactions generated offline- [ ]
gaiad tx multisign[file] [name] [[signature]...] [flags]
- [ ]
- [ ]
multisign-batchAssemble multisig transactions in batch from batch signatures- [ ]
gaiad tx multisign-batch[file] [name] [[signature-file]...] [flags]
- [ ]
- [ ]
signSign a transaction generated offline- [ ]
gaiad tx sign[file] [flags]
- [ ]
- [ ]
sign-batchSign transaction batch files- [ ]
gaiad tx sign-batch[file] [flags]
- [ ]
- [x]
slashingSlashing transaction subcommands #1679- [x]
unjailunjail validator previously jailed for downtime
- [x]
- [ ]
validate-signaturesvalidate transactions signatures- [ ]
gaiad tx validate-signatures[file] [flags]
- [ ]
- [ ] Upgrades
- [ ] upgrade locally with "fresh" genesis file
- [ ] upgrade locally with exported genesis from livehub
- [ ] cosmovisor upgrades
- [ ] gov propose globalfee, query global fee (yaru)
The following tests should be done in order before propose upgrade in livehub:
upgrade locally with "fresh" genesis file -> upgrade locally with exported genesis from livehub -> upgrade in dev testnet -> cut rc -> upgrade in public testnet -> cut final release -> propose in mainnet
@mmulji-ic
e2e tests can be also used to test compatibility, set up two nodes of the same major version with different minor version, and execute the different msg types @okwme created
@yaruwangway hey i remember we were waiting on the IBC team for a test scenario. Is it resolved?
This is not valid anymore.