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
- [ ]
liquidity
Liquidity transaction subcommands #1633- [ ]
create-pool
Create liquidity pool and deposit coins - [ ]
deposit
Deposit coins to a liquidity pool - [ ]
swap
Swap offer coin with demand coin from the liquidity pool with the given order price - [ ]
withdraw
Withdraw pool coin from the specified liquidity pool
- [ ]
- [ ]
authz
Authorization transactions subcommands #1632- [ ]
exec
execute tx on behalf of granter account - [ ]
grant
Grant authorization to an address - [ ]
revoke
revoke authorization
- [ ]
- [x]
vesting
Vesting transaction subcommands #1631- [x]
create-vesting-account
Create a new vesting account funded with an allocation of tokens.
- [x]
- [x]
staking
Staking transaction subcommands #1630- [ ]
create-validator
create new validator initialized with a self-delegation to it - [x]
delegate
Delegate liquid tokens to a validator - [ ]
edit-validator
edit an existing validator account - [x]
redelegate
Redelegate illiquid tokens from one validator to another - [ ]
unbond
Unbond shares from a validator
- [ ]
- [x]
bank
Bank transaction subcommands- [x]
send
Send funds from one account to another. Note, the'--from' flag is
- [x]
- [ ]
broadcast
Broadcast transactions generated offline- [ ]
broadcast
[file_path] [flags]
- [ ]
- [ ]
crisis
Crisis transactions subcommands- [ ]
invariant-broken
Submit proof that an invariant broken to halt the chain
- [ ]
- [ ]
decode
Decode a binary encoded transaction string- [ ]
gaiad tx decode
[amino-byte-string] [flags]
- [ ]
- [x]
distribution
Distribution transactions subcommands #1678- [x]
fund-community-pool
Funds the community pool with the specified amount - [x]
set-withdraw-addr
change the default withdraw address for rewards associated with an address - [x]
withdraw-all-rewards
withdraw all delegations rewards for a delegator - [x]
withdraw-rewards
Withdraw rewards from a given delegation address, and optionally withdraw validator commission if the delegation address given is a validator operator
- [x]
- [ ]
encode
Encode transactions generated offline #1677- [ ]
gaiad tx encode
[file] [flags]
- [ ]
- [x]
evidence
Evidence transaction subcommands #1676- [ ]
gaiad tx evidence
[flags]
- [ ]
- [x]
feegrant
Feegrant transactions subcommands #1675- [x]
grant
Grant Fee allowance to an address - [x]
revoke
revoke fee-grant
- [x]
- [x]
groups
Groups transactions subcommands #1423- [x]
create-group
Create a group - [x]
update-group-members
Add a group member - [x]
update-group-members
Remove a group member - [x]
create-group-policy
Create threshold decision policy - [x]
create-group-policy
Create percentage decision policy - [x]
submit-proposal
Submit MsgSend proposal - [x]
vote
Vote on proposal - [x]
exec
Execute proposal - [ ]
leave-group
Remove member from the group - [ ]
update-group-metadata
Update a group's metadata - [ ]
update-group-policy-admin
Update a group policy admin - [ ]
update-group-policy-decision-policy
Update a group policy's decision policy - [ ]
update-group-policy-metadata
Update a group policy metadata
- [x]
- [x]
gov
Governance transactions subcommands #1424- [x]
deposit
Deposit tokens for an active proposal - [x]
submit-proposal
Submit a proposal along with an initial deposit - [x]
submit-legacy-proposal
Submit legacy proposal- [x]
param-change
Submit param change proposal for chain - [x]
software-upgrade
Submit an upgrade proposal - [x]
cancel-software-upgrade
Cancel the current software upgrade proposal - [x]
community-pool-spend
Submit proposal to send tokens from the community pool - [ ]
ibc-upgrade
Submit an IBC upgrade proposal - [ ]
update-client
Submit an update IBC client proposal
- [x]
- [x]
vote
Vote for an active proposal, options: yes/no/no_with_veto/abstain - [x]
weighted-vote
Vote for an active proposal, options: yes/no/no_with_veto/abstain
- [x]
- [ ]
ibc
IBC transaction subcommands- [ ]
channel
IBC channel transaction subcommands - [ ]
client
IBC client transaction subcommands
- [ ]
- [x]
ibc-transfer
IBC fungible token transfer transaction subcommands- [x]
transfer
Transfer a fungible token through IBC
- [x]
- [x]
inter-tx
Interchain Accounts- [x]
register-account
Register Account - [x] Normal send bank transfer
- [ ] Vote on a tx with gov
- [x]
- [ ]
multisign
Generate multisig signatures for transactions generated offline- [ ]
gaiad tx multisign
[file] [name] [[signature]...] [flags]
- [ ]
- [ ]
multisign-batch
Assemble multisig transactions in batch from batch signatures- [ ]
gaiad tx multisign-batch
[file] [name] [[signature-file]...] [flags]
- [ ]
- [ ]
sign
Sign a transaction generated offline- [ ]
gaiad tx sign
[file] [flags]
- [ ]
- [ ]
sign-batch
Sign transaction batch files- [ ]
gaiad tx sign-batch
[file] [flags]
- [ ]
- [x]
slashing
Slashing transaction subcommands #1679- [x]
unjail
unjail validator previously jailed for downtime
- [x]
- [ ]
validate-signatures
validate 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.