cosmos-sdk/x
Andrey Kuprianov a821fe4a61
Model-based tests for relay functions of ICS-20 token transfer (#8145)
* start on MBT for ICS20: setting and checking bank balances

* add bank struct for subtracting banks

* reconstruct ibc denominations in the bank

* add some static tests with bank changes tracking

* small fixes

* better error handling

* add Jsonatr transform from Apalache conterexample into OnRecvPacket test

* add example Apalache CE and transformed test

* changed apalache-to-recv-test.json to output arrays instead of records

* add datastructures for parsing TLA+ tests

* remove accidentally committed code

* add conversion from TLA+ structs to Go structs

* encode abstract ids into addresses via hashes

* first run of auto-generated MBT tests

* first run of auto-generated MBT tests: fix ports and channels

* fix small inconsistencies

* fix mbt_relay_test by not setting the bank balances in every iteration

* add test for onTimeoutPacket

* add handling of OnRecvAcknowledgement to mbt relay test

* add handling of SendTransfer

* add relay-test.json

* revert manual changes in relay-test.json

* fix handling of denominations for SendTransfer

* setup two test channels A-B, B-C; fix escrow address encoding

* a test for all handlers passing

* generalize denom handling to arbitrary length + failing denom test

* rename test function

* MBT test for unsecrow tokens

* add model-based generated tests

* add model-based tests (prev commit: addded model)

* transformed json tests with jsonatr

* modify mbt_relay_test.go to execute all MBT tests

* cleanup

* move jsonatr transforms into another dir

* add MBT_README.md

Co-authored-by: Federico Kunze <31522760+fedekunze@users.noreply.github.com>
2020-12-11 17:35:44 +00:00
..
auth Use SignModeLegacyAminoJSON when signer is ledger key (#8136) 2020-12-11 13:54:50 +00:00
bank x/auth: atlas manifest (#8140) 2020-12-10 17:02:29 +01:00
capability [docs]: update building modules section to reflect ADR31 (#7702) 2020-11-17 20:41:43 +00:00
crisis fix typo (#8097) 2020-12-07 11:26:09 +00:00
distribution use testutil in test cases (#8130) 2020-12-10 12:56:55 +00:00
evidence Robert/api clientctx (#8107) 2020-12-08 20:17:40 +00:00
genaccounts CLI `migrate` command follow-up: decode & re-encode (#7464) 2020-10-09 19:09:43 +00:00
genutil Recover private validator key (#8099) 2020-12-08 17:22:43 +00:00
gov use testutil in test cases (#8130) 2020-12-10 12:56:55 +00:00
ibc Model-based tests for relay functions of ICS-20 token transfer (#8145) 2020-12-11 17:35:44 +00:00
mint Robert/api clientctx (#8107) 2020-12-08 20:17:40 +00:00
params testutil: new TempFile function, simplify WriteToNewTempFile (#8123) 2020-12-09 18:27:20 +00:00
simulation x/simulation: make signals channel buffered to avoid missing signals (#7952) 2020-11-17 14:27:12 +00:00
slashing Robert/api clientctx (#8107) 2020-12-08 20:17:40 +00:00
staking add page flags for staking validators (#8103) 2020-12-10 12:26:44 +00:00
upgrade Robert/api clientctx (#8107) 2020-12-08 20:17:40 +00:00
README.md

README.md

List of Modules

Here are some production-grade modules that can be used in Cosmos SDK applications, along with their respective documentation:

  • Auth - Authentication of accounts and transactions for Cosmos SDK application.
  • Bank - Token transfer functionalities.
  • Capability - Object capability implementation.
  • Crisis - Halting the blockchain under certain circumstances (e.g. if an invariant is broken).
  • Distribution - Fee distribution, and staking token provision distribution.
  • Evidence - Evidence handling for double signing, misbehaviour, etc.
  • Governance - On-chain proposals and voting.
  • IBC - IBC protocol for transport, authentication adn ordering.
  • IBC Transfer - Cross-chain fungible token transfer implementation through IBC.
  • Mint - Creation of new units of staking token.
  • Params - Globally available parameter store.
  • Slashing - Validator punishment mechanisms.
  • Staking - Proof-of-Stake layer for public blockchains.
  • Upgrade - Software upgrades handling and coordination.

To learn more about the process of building modules, visit the building modules reference documentation.