* Update vesting spec and impl time fields and constructors
* Update genesis to support vesting accounts
* More spec and godoc updates
* Update genesis section in vesting spec
* Fix bank unit tests
* Add test cases to ToAccount in genesis
* Update RegisterCodec to include vesting interface and types
* Fix GetVestedCoins bug where block time is past vesting end time
* Add vesting accounts to simulation
* Update vesting genesis logic to panic on invalid accounts
* Change randomness of vesting accounts in simulation
- New keys add --multisig flag to store multisig keys
locally.
- New multisign command to generate multisig
signatures.
- New sign --multisig flag to enable multisig mode.
- Add multisig transactions support in ante handler.
- gaiad add-genesis-account can now take both account
addresses and key names.
Closes: #3198
* x/auth: fetch one account after another
- Don't read all accounts in one go as signature verification
could fail before last signature is checked.
- TestAnteHandlerFees now checks whether fees were actually
deducted from the account as well as the fee keeper collected
them.
Thanks: @ValarDragon for pointing this out
Closes: #3093
- Remove DefaultChainID(). User needs to suplly chain ID
via either config or flag.
- Mark --chain-id as required by all tx commands.
- Fix gaiacli config values containing underscores.
Underscore '_' character is not automagically translated
into hyphen '-'. Viper values wouldn't be affected.
- Refresh gaiacli config tests
Closes: #810
* Move generate_only and simulate to POST body in REST txs
Closes: #3056
* Run make format
* drop extra else block, outdent its block, and make linter happy
* Update PENDING.md
* Update LCD swagger docs
* Add and use CodeInvalidAccountNumber in ante handler
* Minor cleanup of ante handler
* Add pending log entry
* Spell check and more minor comment restructuring
* Add additional CodeInvalidAccountNumber
* Update validateAccNumAndSequence
* Revert account number error in favor of CodeInternal
* Update pending log
* Fix pending log
* 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
* 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
* 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
- Exit with error if the user is attempting to sign with a key
whose address is not among those who are expected to sign
the transaction.
- Add --print-signature-only to output only the generated
signature.
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
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
These method were surprisingly slow from the profiling.
(Mapper.Get accounted for 2.7% of time taken, GetKey also took an
interestingly large portion of time)
* 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
* 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
* Add sign CLI command to sign transactions generated with the
--generate-only flag.
* Add /sign REST endpoint for Voyager support.
Redirect password prompt to STDERR to avoid messing up cli
commands output. As a rule of thumb, program's output should
always go to STDOUT, whilst errors&diagnostics go to STDERR
as per POSIX's philosophy and specs.
The new CLI flag builds an unsigned transaction and writes it to STDOUT.
Likewise, REST clients can now append generate_only=true to a request's
query arguments list and expect a JSON response carrying the unsigned
transaction.
Closes: #966
Add a simulate only flag '--dry-run' to both CLI tx commands
and RESTful endpoints to trigger the simulation of unsigned
transactions.
* Turning --dry-run on causes the --gas flag to be ignored.
The simulation will return the estimate of the gas required
to actually run the transaction.
* Adjustment is no longer required. It now defaults to 1.0.
* In some test cases accounts retrieved from the state do not
come with a PubKey. In such cases, a fake secp256k1 key is
generated and gas consumption calculated accordingly.
Closes: #2110
* Change --gas=0 semantic in order to enable gas auto estimate.
* REST clients have been modified to simulate the execution of
the tx first to then populate the context with the estimated
gas amount returned by the simulation.
* The simulation returns both an unadjusted gas estimate and an
adjusted one. The adjustment is required to ensure that the
ensuing execution doesn't fail due to state changes that might
have occurred. Gas adjustment can be controlled via the CLI's
--gas-adjustment flag.
* Tiny refactorig of REST endpoints error handling.
Closes: #1246
* auth: Make gas cost take into account cryptosystem
This will make including the multisig easier.
The ratio for ed25519 vs secp256k1 are based on the ratio of their
verification times, using the benchmarks in tendermint/crypto.
* Start upgrade. Currently go test ./... hangs.
* (squash this) Fix staking tests
* wip
* note what changes need to be made to make this work on tm v0.23.0
* Fix addr -> pubkey map
* cleanup code
* Fix slashing test failures except for begin blocker
* fix all slashing tests
* fix lcd tests
* Address PR comments
* add link to changelog.
* (wip) start making addrToPubkey map persisted. Since amino can't handle maps,
we have to change from what this commit is doing.
* Use the correct method of storing a map
* (squash this) address PR comments
* Did you run 'make'?
* remove gaiadebug binary
* Update to tendermint v0.22.6-rc0
This is comprised of updating the crypto imports / API
* (squash this) switch to v0.22.6
If this passes tests, I'll squash this commit and update the PR.
- call MustSortJSON before return JSON bytes to guarantee alphabetic
ordering
- moved SortJSON and MustSortJSON to types package to avoid cyclic
package dep
Now provides better error messages when the account you're sending
from has no money, or it has insufficient funds. (Avoids making
the user interpret ABCI errors)
closes#1489
* tools: Add unparam linter
unparam detects unused parameters in functions, and a parameter to
a function which only ever takes on one value. The latter is an
indication that more tests are required.
There are many nolints in this PR, as I believe that writing tests
to fix alot of these situations is out of scope for this PR / it
will be changed in future commits. There are some nolints for
when we have to comply to normal api's.
* crypto/keys no longer used by x/gov/client/rest/rest.go
Merges the keybase and Ledger code from go-crypto (which is no more) into the SDK
Adds support for Ledger into gaiacli
Cherry-picks updated error handling from #1158
* benchmarks: Add benchmark folder, and single benchmark for block time
* Move benchmark into module
* Fix merge conflict errors
* Fix spelling
* Add instructions to run benchmark
* Update auth_app_test.go
This method is an unneccessary requirement on Tx. Auth casts the Tx
to StdTx, so the memo can be obtained in previous usecases from
StdTx. This also makes it more clear for when something is
implementing StdTx vs Tx.
Resolves#1375
* Started work on multiple msgs, types and x/auth tests pass
* Fix issues in x, examples, and baseapp
* Added baseapp tests for multiple msgs
* Documentation fixes
* Fix baseapp tests with sdk.Int
* Modify test
* Transaction handling is now atomic
* Fix test comment
* Minor doc fixes and code cleanup
* Added baseapp result changes
* Use address in validator update accumulation
* Started work on multiple msgs, types and x/auth tests pass
* Fix issues in x, examples, and baseapp
* Added baseapp tests for multiple msgs
* Documentation fixes
* Fix baseapp tests with sdk.Int
* Modify test
* Transaction handling is now atomic
* Fix test comment
* Minor doc fixes and code cleanup
* Added baseapp result changes
* Use address in validator update accumulation
* Added ante tests for multisigner
* Remove validatorUpdates from tx result
* Better error logs
* Put Memo in StdSignBytes and formatting
* Updated changelog
* in progress
* passes current tests
* added tests and got working
* changelog and docs
* removed prints
* oops
* works!
* issue in test_cli
* number 9 number 9 number 9
* at least it does only the 9 issue now
* hallelujah it works!
* removed print statement
* rebased
* gah