* Some minor cleanup and reformatting to make things easier to understand
* Update onDelegationSharesModified hook
* Add pending log
* Address PR comments
* Fix linting
* Add shorthand flag to address output on gaiacli keys show
* Update docs and add PENDING
* Update client/keys/show.go
Co-Authored-By: jackzampolin <jack.zampolin@gmail.com>
* pk -> p
* Fix gaiacli config and make it non-interactive only
Closes: #2734
* Update cli tests
* Remove --list, by default and with no args print config
* Small improvements
* Warn user when file doesn't exist
* Fix integration tests
* Add check that account is in genesis and contains enough funds to gentx command
* Fix CLI tests and make them parallel
* Update makefile to take advantage of parallel tests
* Add path seperator back in
* Don
't check error on key delete
* Add debuggin printout for debugging remote test failures
* Update cmd/gaia/init/gentx.go
Co-Authored-By: jackzampolin <jack.zampolin@gmail.com>
* Update cmd/gaia/init/gentx.go
Co-Authored-By: jackzampolin <jack.zampolin@gmail.com>
* Change to bondDenom from the stake section in genesis
* Add PENDING.md
* Push changes
* Fix CI failure
* Address PR comments
* Fix broken gov tests
* Address PR comments
* Address PR comments
* Don't serialize Account Number and Sequence Number in signatures
This was not needed to be included within the tx body, as its in the
state.
* fix lint
* add --force to keys delete for unattended execution
Skip password check when --force is on and delete
keys unconditionally.
Closes: #2961
* Forcibly cleanup keys on fixtures initialization
* Force password to 'yes' when deleting ledger-offline keys
* Improve UX, better docs on removing offline/ledger keys
* Ask for confirmation on offline/ledger keys deletion
* Update PENDING.md
* Add simple period for expensive invariants
* Remove individual module simulations
* Simulate a few more blocks
* Add README explaining reason for shell scripts
* Deduplicate scripts, log exact replication command on failure
* Refactor invariants to take sdk.Context instead of baseapp.BaseApp
* Reference all issues in PENDING.md entry
* Remove no longer used simulation.RandSetup
* Bug fixes
* Address @rigelrozanski comments
* Fix typo
* Fix tag usage in handlers and EndBlocker
* Prepend action tag in baseApp
* Fix LCD
* Remove unnecessary conversion
* Fix invalid consensus pubkey in CLI tests
* Fix tag usage in cli_test
* Shorten bechify in test
* Update docs and PENDING
* Added goimports tool to get_tools. Get_tools now only builds new versions if binaries are missing.
* Added the goimports format command from yutianwu's PR
* goimports install typo fix
Closes#2812
This PR adds the flag --for-zero-height to gaiad export, which runs several alterations to the application state to prepare for restarting a new chain in a consistent fashion.
It also:
* Moves Gaia's export code to cmd/gaia/app/export.go for cleaner separation.
* Fixes an inconsistency where we treated the initChainer as happening at height -1 - it should now happen at height 0, since the first header sent by Tendermint has height 1.
* Runs the runtime invariant checks on start (in initChainer)
* Adds a few auxiliary functions to clear slashing periods
* Removes the Height field from Delegation objects in x/stake, which was not used anywhere
Throughout the codebase the misspelling 'depositer' of the English word
'depositor' has been used. This commit applies a global search and
replace to correct the misspelling.
* gaiad gentx subcommands refactoring
- Replace STDIN/STDOUT redirection in `gaiad gentx` with subcommands
command line options to redirect streams to file since viper does
not handle redirection well.
- Use `BuildCreateValidatorMsg` to build a `MsgCreateValidator` rather
than redirecting to `gaiacli tx stake create-validator`.
- `PrintUnsignedStdTx` now takes an `io.Writer` object.
- Mark `--pubkey`, `--amount` and `--moniker` as required flags
instead of validating them manually.
- Use stake.NewDescription() to make a new Description - ref #2835
* Refresh PENDING.md
* Add ValidateBasic to Tx interface
* Update BaseApp unit tests
* Add missing return in ValidateBasic
* Update ValidateBasic to use IsNotNegative
* Add pending log entry
* Add unit test TestTxValidateBasic
* Fix broken lint regression
* Add sig count check to validation
* Add test case to TestTxValidateBasic
* Move query and tx commands to modules
* Move GetAccountDecoder to prevent import cycle and replace calls to it with one call in WithAccountDecoder
* Add moduleClients interface and implement in all applicable modules
* Use module clients in cli initialization
* Limit total number of signatures per transaction
* Fail if limit is exceeded
* Loop over all sigs and count subkeys
* No need for a type switch, adopt early return
* Test rejection logic
* Mention sigs limit
* Generate random moniker when missing
* Update moniker prefix
* Require moniker instead of generating a random one
* Fix test coverage
* Fix required flag
* Link to issue
* Update slashing import/export
* More slashing.WriteGenesis
* Add test import/export to CI
* Store equality comparison.
* Fix validator bond intra-tx counter
* Set timeslices for unbonding validators
* WriteGenesis => ExportGenesis
* Delete validators from unbonding queue when re-bonded
* Hook for validator deletion, fix staking genesis tests
New genesis workflow:
* `gaiad init` is now used to generate an empty `genesis.json`.
* Genesis accounts need to be populated manually before running
`gaiad collect-gentxs`.
* This should support starfish too, see #2615 for more info.
* Closes: #2596#2615
* Validate validator address and address against respective account ex ante
* Fix local testnet failures
* New genesis tests
* Run make format
* Add --pubkey flag
* gaiad collect-gentxs takes no args
* simulation: Make validator choice use validator set
This also had to change the default seed, since with the previous one it
actually got into a state where there were no validators left bonded, lol.
This also changes Unbond msgs from failing with almost 100% probability to now
only failing with 33% probability.
Thus more of the state machine is getting tested!
Make simulation use a transition matrix for block size
This enables simulating periods of high load, and periods of low to no load.
(low load because future ops will still terminate in that time frame)
Rework the process of loading a genesis.json file to load a starting app state and set of initial transactions to process.
* New function to create genesis account from MsgCreateValidator
* Add arg to PrintUnsignedStdTx() to actually operate in offline mode
* New func processStdTxs()
* Remove gen-tx command
* Cleanup, return validators as they need to be written into genesis.json
* Modify gaiad init to allow auto-create of stdTx
* Remove server/testnet.go
* Don't load node_key.json, which might not be available
* Get the txs through DeliverTx
* Add app.slashingKeeper.AddValidators at the end of genesis
* On InitChain(), Signature's account number must be 0
* Add (tentative?) command to generate {node_key,priv_validator}.json files
* Reintroduce gaiad testnet
* Prompt user for passwords
* Update gaia to work with auth.StdTx
* Remove test_utils, NewTestGaiaAppGenState is now deprecated
* Combine --genesis-format and --generate-only
* Improve sign command's --offline flag documentation
* Moniker must be set
* Call app.slashingKeeper.AddValidators() even if len(txs) == 0
* Refactoring, introduce gaiad init --skip-genesis, code cleanup
* Drop unnecessary workaround to make lcd_tests pass
* Reintroduce gentx
* Simple name changes, GenesisState.Txs -> .GenTxs; OWK -> OverwriteKey; OverwriteKeys -> OverwriteKey
* unbonding redelegation queue
* address some of bez and chris review
* delete old timeslices from queue
* added Rigel's test case
* added end-time to tags
* fixed bug in staking
* removed prints
* Get -> Queue
* called Endblocker in test
* implement validator queue
* Docs and PENDING
* address federicos comments
* unexposed UnbondingToUnbonded
* no copying unbonded val array to memory
Improve memory efficiency of getting store keys
This is done by removing repeated appends, which will create a new
slice if theres insufficient capacity, and instead creating a key
of the correct size, and then copying the data into it.
* Refactor InitializeTestLCD to initialize correctly
* Update InitializeTestLCD API usage in LCD unit tests
* Update pending log
* Update named return variables
* Increase power of validator proposer in LCD tests
This PR begins improving the godocs for the auth module, and begins cleaning
up the Ante handler.
Additionally we previously calculated if the fee was sufficient for the tx
on every single signer. This is now refactored to be more efficient, and have
a better logical flow. No changelog entry as this is new to this release.
* Allow a gaia-cli config file to be created
Closes#1613.
Closes#1275.
Closes#1956.
* Add homedir to Gopkg.toml
* Updates from code review
* Post-rebase fixes
* Update test
* Code review refactor
* Fixes from code review
* Fix import
* Fix broken test
* Fixes from rebase
* Fix formatting
* Allow --from to be a name or an address
Closes#1735.
* Post-rebase fixes
* Updates from code review
* Updates from code review
* Updates from code review
* Fix merge artifacts
* Fix merge conflicts
* Fix integration tests
* Add back GetFromName() check broken during merge
* Code review updates
* Fix failing test
* Updates from code review
* pulling in stuff from fee-distr PR
* revert some gov changes
* fix using cons address, also remove old commented distr code
* doc update
* val comments
* remove GetValidatorByConsPubKey
* Update validator commission fields
* Remove CommissionChangeToday and update to use CommissionChangeTime
* Implement commission as a first class citizen type
* Implement stringer for Comission
* Move commission type and logic to new file
* Add new commission errors
* Add commission to create validator message
* Implement and call UpdateValidatorCommission
* Update godoc for UpdateValidatorCommission
* Add Abs to the decimal type
* Implement new SetValidatorCommission
* Update decimal short godocs
* Move set initial commission logic
* Move initial commission validation to Commission type
* Update initial validator commission logic and unit tests
* Remove commission update time from struct and move to validator
* Update validator create handler tests
* Implement commission logic for CLI
* Fix make lint failure
* Fix make cover failure
* Update edit validator logic to handle new commission rate
* Fix lint and cover
* Update create/edit validator simulation to include commission params
* Update MsgEditValidator godoc
* Update pending log
* Update staking tx docs
* Fix CLI create validator test
* Update variables names for commission strings
* Merge UpdateTime into Commission type
* Update create-validator usage in docs
* Update more docs with examples
* More doc updates
This removes privkeys and addresses from function signatures.
This comes with a 11% performance improvement to the simulator,
as we no longer keep recomputing the pubkeys.
Once we move the transient store clearing to endblock, we can
further raise the size of make test_sim_gaia_fast
concretely, `make test_sim_gaia_fast` went from 16.8 seconds to 13.5 seconds on my system.
In order to guarantee a secure connection between apps and the LCD the
communication must be encrypted - even if clients and server run on the
same local machine, credentials must never be transmitted in clear text.
Upon start up, the server generates a self-signed certificate and a key.
Both are stored as temporary files; removal is guaranteed on exit.
This new behaviour is now enabled by default, though users are provided
with a --insecure flag to switch it off.
This is to facillitate ease of implementing #1406. (Tags for messages
could then be added dynamically)
Ultimately once we make the router support hiearchical routing, (#770)
we can then remove the name field and just the parse info for tags from that.
Until then, we can parse the tag name as
`fmt.Sprintf("%s %s", msg.Type(), msg.Name())`
* Cherry picked commits from prev branch
* Added new keepers for querier functionalities
* Renaming
* Fixed gov errors and messages
* Added Querier to stake and app
* Update delegation keepers
* REST Queriers not working
* Fix marshalling error
* Querier tests working
* Pool and params working
* sdk.NewCoin for test handler
* Refactor and renaming
* Update LCD queries and added more tests for queriers
* use sdk.NewCoin
* Delegator summary query and tests
* Added more tests for keeper
* Update PENDING.md
* Update stake rest query
* Format and replaced panics for sdk.Error
* Refactor and addressed comments from Sunny and Aleks
* Fixed some of the errors produced by addr type change
* Fixed remaining errors
* Updated and fixed lite tests
* JSON Header and consistency on errors
* Increased cov for genesis
* Added comment for maxRetrieve param in keepers
* Comment on DelegationWithoutDec
* Bech32Validator Keepers
* Changed Bech validator
* Updated remaining tests and bech32 validator
* Addressed most of Rigel's comments
* Updated tests and types
* Make codec to be unexported from keeper
* Moved logic to query_utils and updated tests
* Fix linter err and PENDING
* Fix err
* Fix err
* Fixed tests
* Update PENDING description
* Update UpdateBondedValidatorsFull
* Update iterator
* defer iterator.Close()
* delete comment
* Address some of Aleks comments, need to fix tests
* export querier
* Fixed tests
* Address Rigel's comments
* More tests
* return error for GetDelegatorValidator
* Fixed conflicts
* Fix linter warnings
* Address @rigelrozanski comments
* Delete comments
* wire ––> codec
* Remove ripemd160 entirely
We already made this decision awhile ago, and have had tendermint switched
for awhile. I was surprised to find ripemd still used within the storeinfo.
This actually leads me to think the new "byter" API change in the tendermint
PR RFC compliance is better, as it avoids things like this from ever happening.
* Get ripemd160 removed from the gopkg imports
* Change --gas=0 semantic and introduce --gas=simulate
Make --gas flag accept a conventional "simulate" string value in addition
to integers. Passing --gas=simulate would trigger the tx simulation and
set the gas according to the gas estimate returned by the simulation.
Any other integer value passed to --gas would be interpreted as-is and
and set as gas wanted value.
Closes: #2300
* Add test cases with gas=0
* ACK suggestion from @alexanderbez
* s/GasFlagSimulateString/GasFlagSimulate/
* Drop TODO comment on Gas type
* Enrich TODO with ref