Commit Graph

759 Commits

Author SHA1 Message Date
Alessio Treglia 86395809cb
Implement generate-only option for commands that create txs
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
2018-09-04 02:32:05 +02:00
Jeremiah Andrews 2378e3431c Fix linter errors 2018-09-03 07:58:57 -07:00
Christopher Goes a4f36aa874
Merge pull request #2200 from cosmos/dev/GetValidator_speed_improvement
Improve GetValidator speed
2018-09-03 13:07:09 +02:00
rigelrozanski 2c66ba0bd4 extra comment on cache key usage 2018-09-02 15:42:25 -04:00
Dev Ojha 311c5f8ac6
Merge branch 'develop' into dev/benchmark_simulation 2018-09-01 15:14:46 -07:00
Christopher Goes d214952450
Merge PR #2163: Validator unbonding state 2018-09-01 23:15:03 +02:00
ValarDragon 52775f3329 Make the slashing logger print a string representation of slashFactor
It used to print the decimal number, which has an extra factor of 10**10,
and is thus confusing.
2018-09-01 13:54:47 -07:00
ValarDragon f29fdcafdd Add comments 2018-09-01 13:21:42 -07:00
ValarDragon 3b4caa5dd2 fix lint 2018-09-01 12:59:36 -07:00
ValarDragon a991a2e1c4 Improve GetValidator speed
In simulation, this was shown to cause a 4x speedup. There are no safety
concerns here, as amino encoding is deterministic.
2018-09-01 12:59:36 -07:00
Dev Ojha 5643c0801b Merge branch 'develop' into dev/benchmark_simulation 2018-09-01 12:37:50 -07:00
rigelrozanski f0c13bbfbd resolve merge errors 2018-08-31 21:38:50 -04:00
rigelrozanski a880242895 Merge remote-tracking branch 'origin/develop' into rigel/validator-unbonding 2018-08-31 20:28:48 -04:00
Christopher Goes 1204857694 Merge PR #2122: Implement slashing period
* Update PENDING.md

* SlashingPeriod struct

* Seperate keys.go, constant prefixes

* Make linter happy

* Update Gopkg.lock

* Seek slashing period by infraction height

* Slashing period hooks

* Slashing period unit tests; bugfix

* Add simple hook tests

* Add sdk.ValidatorHooks interface

* No-op hooks

* Real hooks

* Fix iteration direction & duplicate key, update Gaia

* Correctly simulate past validator set signatures

* Tiny rename

* Update dep; 'make format'

* Add quick slashing period functionality test

* Additional unit tests

* Use current validators when selected

* Panic in the right place

* Address @rigelrozanski comments

* Fix linter errors

* Address @melekes suggestion

* Rename hook

* Update for new bech32 types

* 'make format'
2018-08-31 20:01:23 -04:00
Christopher Goes e1981d47e3
Merge PR #2181: Implement a simulate-only CLI flag/field for REST endpoints 2018-08-31 22:35:52 +02:00
Rigel b92ac313ac
Merg PR #2198: Ensure Legacy Validator Delegation Invariants
* Test and allow jailed validator to self-bond

* Implement TestJailedValidatorDelegations

* Restructure TestJailedValidatorDelegations

* Add Delegation to Validator type and update handleMsgUnjail accordingly

* Update ErrMissingSelfDelegation error message

* Update democoin mock validator set impl

* Update pending log

* Add comment to ValidatorSet

* Fix conflicts/errors due to develop merge
2018-08-31 15:21:12 -04:00
Alessio Treglia 122ed3a900
Don't use pointers when you need them not! 2018-08-31 19:04:45 +02:00
Alessio Treglia 1370ca611b
Set GasAdjustment in CLIContext when handling HTTP requests
This is to address @alexanderbez's comments
2018-08-31 19:04:42 +02:00
Alessio Treglia 599923fb99
Introduce simulate mode
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
2018-08-31 19:04:11 +02:00
Rigel ee0434e5a7
Revert "Merge PR #2176: Ensure Legacy Validator Delegation Invariants" (#2197)
This reverts commit df33452490.
2018-08-31 00:55:33 -04:00
Alexander Bezobchuk df33452490 Merge PR #2176: Ensure Legacy Validator Delegation Invariants
* Test and allow jailed validator to self-bond

* Implement TestJailedValidatorDelegations

* Restructure TestJailedValidatorDelegations

* Add Delegation to Validator type and update handleMsgUnjail accordingly

* Update ErrMissingSelfDelegation error message

* Update democoin mock validator set impl

* Update pending log

* Add comment to ValidatorSet
2018-08-31 00:10:51 -04:00
Alexander Bezobchuk 2d92803b9f Merge PR #2040: Refactor Validator Account Types/Bech32 Prefixing
* Add new account bech32 prefixes with godocs

* Restructure spacing of existing account code

* Update account godocs

* More account godoc updates + new tm pub/addr helpers

* Update validator type to use new account types/bech32 prefixes

* Fix account documentation errors

* Update Bech32 prefix for consensus nodes

* Update Bech32 spec doc

* Fix account type tests

* Add missing account consensus functions, clear up godocs, and fix tests

* Add to TestRandBech32PubkeyConsistency check

* Update initialization of validator public keys

* Update query signing info command

* Implement new ConsAddress type with associated unit tests

* [WIP] Update stake and slashing parameters

* Update all calls to MustBech32ifyValPub

* [WIP] Validator operator API updates

* [WIP] Fix and update unit tests

* Fix gov logs (helping to debug failing tests)

* Fix gov tally

* Fix all broken x/ unit tests

* Update gaia app genesis address logic

* Fix linting errors

* Fix broken LCD tests

* Fix broken CLI tests

* Implement command to get validator address and pubkey from key name

* Add support for getting validator key information via REST endpoint

* Update PENDING log

* Update docs

* Revert GaiaGenTx.PubKey bech32 prefix

* Fix broken docs and cli tests

* Update genesis to use correct Bech32 (cons) prefix for pubkeys

* Update docs and unit tests to reflect new cosmos account bech32 prefix

* minor formatting
2018-08-31 00:06:44 -04:00
rigelrozanski d900c583ff melekes comment 2018-08-30 21:16:23 -04:00
ValarDragon 03d2f7331b Remove code duplication 2018-08-30 00:28:15 -07:00
ValarDragon 46bbada4ee simulation: Add benchmarking 2018-08-29 23:02:15 -07:00
rigelrozanski 8d02c3eba0 fix golint 2018-08-29 20:24:35 -04:00
rigelrozanski 6fd8299b1a ... 2018-08-29 18:54:02 -04:00
rigelrozanski 52b249b0cd complete tests 2018-08-29 18:44:40 -04:00
rigelrozanski d1a2fed2bc tests working 2018-08-29 02:28:27 -04:00
rigelrozanski c4d0a00550 Merge remote-tracking branch 'origin/develop' into rigel/validator-unbonding 2018-08-28 20:16:07 -04:00
Matthew Slipper c6d692e27f Merge PR #2172: Use cobra.NoArgs where appropriate
Closes #885.
2018-08-28 12:59:42 -04:00
Christopher Goes 5f347e0d9a
Merge PR #2166: simulation: Allow operations to specify future operations 2018-08-28 14:53:45 +02:00
Christopher Goes 73f90e8f92
Merge PR #2047: Simulate transactions by default to set gas automatically 2018-08-28 13:53:29 +02:00
rigelrozanski 78f98fec16 Merge remote-tracking branch 'origin/develop' into rigel/validator-unbonding 2018-08-27 19:34:03 -04:00
HaoyangLiu 5ed1775681 Merge PR #2148: Change delegation amount from int64 to sdk.Int
* Change delegation amount from int64 to sdk.Int

* Refactor code according to code review

* leave freeFermionVal to int64 in case of overflow
2018-08-27 18:18:18 -04:00
ValarDragon 855222e8c3 simulation: Allow operations to specify future operations
The intent of this is to allow for simulating things like slashing for not
voting on a governance proposal. To test this, you would queue all the validator votes
in future blocks, and keep track of which ones you didn't slash. Then you could add queue a
"check governance slashing operation" after the voting period is over.
2018-08-27 14:27:00 -07:00
rigelrozanski f2d47f9e91 slash contract, cwgoes comment 2018-08-27 14:46:38 -04:00
rigelrozanski 527320c9fc dummy tests 2018-08-27 00:38:31 -04:00
rigelrozanski ec42e66501 fix old tests 2018-08-27 00:20:40 -04:00
ValarDragon 4451755600 simulation: rename TestAndRunTx to Operation, make timestamp randomized 2018-08-26 19:40:53 -07:00
rigelrozanski 86f07d271d unbonding validators, delegtion effects 2018-08-24 21:47:31 -04:00
Alessio Treglia 7e8feec738
Incorporating @cwgoes comments 2018-08-24 15:20:53 +01:00
Alessio Treglia f36f749818
Incorporating @ValarDragon's comments 2018-08-24 10:16:51 +01:00
Alessio Treglia f432c0c383
Simulate transactions before actual execution
* 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
2018-08-24 10:16:51 +01:00
Christopher Goes 879f78cfc0 Rename revoke(d) to jail(ed) 2018-08-22 17:56:13 +02:00
Federico Kunze cfb5acca6e Merge PR #2099: Query staking Pool and Params 2018-08-21 17:32:54 +02:00
Jae Kwon f076794c5a Fix bug introduced during merge 2018-08-20 21:55:23 -07:00
Christopher Goes 800ac2844e validator.Operator, sdk.Dec 2018-08-20 17:10:43 +02:00
Ethan Buchman af73b885e7 Merge branch 'develop' into bucky/merge-master 2018-08-19 16:24:45 -04:00
Alexander Bezobchuk 5794f3c3ce Merge PR #2083: Fix broken invariant of bonded validator power decrease 2018-08-18 13:41:12 +02:00
Alexander Bezobchuk cf03076a0a Merge PR #2047: Fix Invalid Cliff Validator Power Comparison 2018-08-17 17:33:13 +02:00
Christopher Goes b8cfc1e19f
Merge PR #2068: Minor simulation changes 2018-08-17 16:19:33 +02:00
Dev Ojha 8bb79d12ca Fix non-deterministic map iteration in fuzzer (#2069)
* This demonstrates that the state machine is non-deterministic if there
are more than two txs in a block.

* fix non-deterministic map iteration

* (squash this) fix build errors

* (squash this) iterate using range
2018-08-16 23:45:07 +02:00
Alessio Treglia 187bc1972a Merge PR #1950: Validator.Owner -> .Operator
* Rename --address-validator flag to --validator

See #1901

* Update PENDING.md

* Rename Validator.Owner -> Validator.Operator

See #1901
2018-08-16 16:47:59 -04:00
Christopher Goes 3d50567034
Merge PR #1783: Slashing, validator set, and governance simulation 2018-08-16 17:36:15 +02:00
Rigel 422dfa3de9
Merge pr #2051: smol compile bug 2018-08-15 18:35:17 -04:00
Alessio Treglia 4fbaee205f Merge pull request #1997: Handle unmarshalling failures gracefully in x/stake commands
* Handle panic gracefully when unbond begin fails

See #1831

* Handle failure to query delegation gracefully.

Closes #1907

* Update PENDING.md

* Reuse stake's error functions

* New ErrBadValidatorAddr error

UnmarshalValidator() checks the address length first;
it does not make sense to attempt unmarshalling if the
address is wrong.

* New ErrBadDelegationAddr error

* Introduce ErrBad{Redelegation,UnbondingDelegation}Addr custom errors to replace errors.New() calls

* Replace ErrBadUnbondingDelegationAddr with ErrBadDelegationAddr to avoid duplication

Thanks: @melekes for pointing this out

* Use sdk.AddrLen instead of hardcoded address length

* s/triple/tuple/ ## mention PR id in PENDING.md
2018-08-15 15:49:06 -04:00
Alexander Bezobchuk 97ea51a335 Merge pull request #2023: Terminate Update Bonded Validators Iteration Properly 2018-08-15 14:51:19 -04:00
Federico Kunze c9358ec198 R4R: Fix repeated cmds in CLI for staking (v.0.24.0 release) (#2043)
* Cherry picked commits

* Update CHANGELOG.md
2018-08-15 16:59:46 +02:00
Rigel 5fff217e9b Merge PR #2033: staking lcd uses owner address not pubkey address 2018-08-15 15:04:01 +02:00
Rigel d9dc061b4f
Merge pull request #1819: rational -> decimal
* changelog

* ...

* decimal func working

* decimal complete, untested

* fixing tests

* decimal compile errors resolved

* test compile errors

* precision multiplier test

* 1% laptop battery

* fixed TestNewDecFromStr

* equalities working

* fix bankers round chop

* ...

* working, some decimal issues resolved

* fix rounding error

* rounding works

* decimal works

* ...

* deleted rational

* rational conversion working

* revert changelog

* code compiles (not tests)

* went through all NewDec, made sure they were converted from NewRat properly

* test debugging

* all testing bugs besides the json marshalling fixed

* json unmarshal

* lint

* document update

* fix lcd test

* cli test fix

* mostly undo Dece -> Rate

* val comments

* Efficiency improvements

This now caches all of the precision multipliers (as they were all
used in non-mutative functions), and caches the precisionInt calculation.
(Now it just copies the already calculated value)

* Cache another precisionInt() call.

* Improve banker rounding efficiency

* remove defer, make negation in-place.

* chris val comments

* bez comments

* Aditya comments

* ...

* val comments

* rebasing start

* ...

* compiling

* tests pass

* cli fix

* anton, cwgoes, val comments

* val and jae comments

* type

* undo reuse quo
2018-08-14 20:15:02 -04:00
Federico Kunze 63713c9378 Merge pull request #2000: tests for staking lcd
* Added tests for Delegator Validators routes

* Updated tests for undelegations

* Updated Gaia-lite docs

* Updated PENDING.md

* Updated comments

* Deleted more comments

* Add spacing
2018-08-13 18:06:48 -04:00
Dev Ojha b2a4aecc44 Upgrade to tm version 23.0. (#1927)
* 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
2018-08-12 03:33:48 -04:00
Fabian 1479a35e5e Merge PR #1949: Fixed delegations endpoint 2018-08-10 15:41:01 +02:00
Christopher Goes ac26d33547
Merge PR #1858: Fix Cliff Validator Update Bugs 2018-08-09 00:57:59 +02:00
Federico Kunze 1da1115a24 Merge PR #1880: Staking Gaia-lite (ex LCD) refactor 2018-08-08 12:38:39 +02:00
Alexander Bezobchuk 12c2c236c2 Merge PR #1741: CoreContext Refactor 2018-08-06 20:11:30 +02:00
Joon 19b0781e60 Merge PR #1811: NewCoin takes sdk.Int 2018-07-31 02:09:50 +02:00
Rigel c40d5debcc
Merge pull request #1862 from cosmos/dev/speed_up_handleMsgEditValidator
x/stake: Speed up handleMsgEditValidator
2018-07-29 23:21:10 -04:00
ValarDragon 0bb3497356 x/stake: Speed up handleMsgEditValidator
This removes running the power update logic on handleMsgEditValidator,
as its unnecessary.

Closes #1815
2018-07-27 21:42:59 -07:00
Christopher Goes 79aeb2b4b9 Fix genesis bond intra-tx counter bug 2018-07-27 20:01:06 +02:00
Aditya 74e06d8b96 Merge PR #1841: Must specify amount flag
* Removed default value for staking. Must now specify amount flag or it will error
* add to pending and better error msg
2018-07-26 23:41:24 +02:00
rigelrozanski 422eb0374e ... 2018-07-26 13:49:58 -04:00
rigelrozanski 07705444fd do-not-modify in defaults for edit-validator cli 2018-07-26 13:41:34 -04:00
rigelrozanski 58afe9780b Merge remote-tracking branch 'origin/develop' into sunny/fix-do-not-modify 2018-07-26 13:25:51 -04:00
Sunny Aggarwal 29bdd663c2 fixed donotmodify bug 2018-07-25 16:05:43 -07:00
Dev Ojha 5d02a743fb Update to tendermint v0.22.6-rc0 (#1798)
* 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.
2018-07-25 16:43:37 -04:00
Rigel d6cd0d4acc Merge PR #1818: CLI keybase-sig -> identity 2018-07-25 20:43:13 +02:00
Christopher Goes 4b7f6efd87
Merge PR #1805: Downtime slashing off-by-one-block fix
* Avoid slashing & revoking no longer stored or already revoked validators for downtime
* Add testcase
* Update PENDING.md
2018-07-25 04:12:48 +02:00
Rigel 52916f3c25
Merge branch 'develop' into rigel/no-endblock-rat-calcs 2018-07-23 14:59:06 -04:00
Rigel 17eb3eda02 Merge PR #1781: Gov tags cleanup 2018-07-21 03:58:45 +02:00
rigelrozanski 5686d6692a ... 2018-07-20 11:39:29 -04:00
rigelrozanski 9e5a78fc7a less stake endblock processing 2018-07-20 11:35:13 -04:00
rigelrozanski accce5c7d8 lower rounding 2018-07-20 11:24:03 -04:00
rigelrozanski df46339a45 benchmarking 2018-07-19 19:26:40 -04:00
Rigel a054532a89
Merge pull request #1620 from cosmos/cwgoes/a-random-walk-down-proof-of-stake
R4R: Simulation framework, including staking simulation
2018-07-19 18:47:08 -04:00
Rigel d2f70ec8af Merge PR #1748: CLI use --from consistently 2018-07-19 08:53:12 +02:00
Christopher Goes 7e88a50b2a
Merge branch 'develop' into cwgoes/a-random-walk-down-proof-of-stake 2018-07-19 08:49:20 +02:00
Christopher Goes ee29e10068 RandomKey, RandomAmount 2018-07-19 08:48:43 +02:00
Joon aa525418e1 Merge PR #1373: Initialization of POS chain 2018-07-19 08:39:40 +02:00
rigelrozanski 423d0c4a18 Merge remote-tracking branch 'origin/develop' into cwgoes/a-random-walk-down-proof-of-stake 2018-07-19 01:56:42 -04:00
Rigel cfe78027f2 Merge PR #1724: R4R: Add Stake Genesis Intra-Tx Counter
* add revoked to human-readable validator
* changelog
* added failing test
* add intra-tx counter to the genesis validators
* changelog
2018-07-18 22:09:40 +02:00
Hendrik Hofstadt b97ebef85e Fix inflation calculation period check 2018-07-18 13:12:49 +02:00
Christopher Goes 2c0cd73fc5 Remove old randomized pool testing, redundant 2018-07-18 10:00:19 +02:00
Christopher Goes dc14eef639 Clarify 'nop', linter fix 2018-07-18 09:47:55 +02:00
Christopher Goes cea2be6107 Fix loose tokens invariant 2018-07-18 09:42:18 +02:00
Christopher Goes 05ceff5212 Deterministic 'make test_sim' on CircleCI; bank test fix 2018-07-18 09:37:14 +02:00
Christopher Goes ad410c1e2e Linter fixes 2018-07-18 07:50:04 +02:00
Christopher Goes bf83385155 Merge branch 'develop' into cwgoes/a-random-walk-down-proof-of-stake 2018-07-18 07:49:52 +02:00
Christopher Goes 966f26dfb2 Remove print, quickfix 2018-07-18 07:44:40 +02:00
Christopher Goes 6c61577b0b Misc, environment variables 2018-07-18 07:37:38 +02:00
Christopher Goes c61b1aa591 Event stats 2018-07-18 01:27:51 +02:00
Christopher Goes 5918ab18fd Restructure (probably) complete 2018-07-18 01:01:36 +02:00
Christopher Goes 253b82f92a Makefile changes 2018-07-18 00:04:10 +02:00
Sunny Aggarwal d6969c1d22 Merge PR #1697: Proposal Query filter by status 2018-07-17 22:59:06 +02:00
Christopher Goes af206bd0ed Update stake simulation 2018-07-17 20:50:30 +02:00
Christopher Goes 9ad3d62e49 Updates from merge 2018-07-17 02:41:36 +02:00
Christopher Goes 405bb538fc Merge branch 'master' into cwgoes/a-random-walk-down-proof-of-stake 2018-07-14 02:09:41 +02:00
Rigel 3231daa4d8 remove global shares (#1644)
* wip removing pool shares

* remove PoolShares/Tokens entirely

* worked through stake/type compile error

* work through a bunch of keeper errors

* worked through compile errors

* debugging tests

* resolve compilation error

* resolved types errors

* ...

* move inflation to pool type

* ...

* stumped problem

* Calculate newly issued shares, remove unnecessary pool arg from exchange rate calculation

* Rounding changed

* Update x/slashing tests for sdk.Rat BondedTokens

* testing fixes

* resolved test fixes

* cwgoes comments, changelog, lint

* cli bugfixes

* ..

* cli fixed

* spec update

* 'make format'

* cwgoes comments

* Increase test_cover parallelism
2018-07-13 21:46:14 +01:00
Christopher Goes c272db06b8 Delegation bug fixed! 2018-07-13 01:54:07 +02:00
Christopher Goes 9bd09e651d Merge branch 'master' into cwgoes/a-random-walk-down-proof-of-stake 2018-07-13 01:38:56 +02:00
Rigel 2885ac586e Merge PR #1660: Redelegation doesn't subtract from liquid
* fix redelegation subtracting source coins
* changelog
* Add testcases for balance subtraction
* Move changelog entry
2018-07-13 01:38:35 +02:00
Christopher Goes 50d384aa90 Merge branch 'master' into cwgoes/a-random-walk-down-proof-of-stake 2018-07-12 21:30:11 +02:00
Christopher Goes a6cc85ae87
Merge PR #1619: R4R: Clearer staking logic 2018-07-12 19:39:51 +02:00
Christopher Goes f9f326cefb Move files 2018-07-12 00:14:37 +02:00
Christopher Goes 4623923fb8 Add 'test_sim' to CircleCI 2018-07-11 22:44:21 +02:00
Christopher Goes 88364c838e TestMsgBeginUnbonding 2018-07-11 19:51:04 +02:00
Christopher Goes 53138fb36f 'make test_sim', simulation folder 2018-07-11 19:43:25 +02:00
Christopher Goes 0572a2743e Changes from merge 2018-07-11 19:17:09 +02:00
Christopher Goes 5e3cd77554 Merge branch 'master' into cwgoes/a-random-walk-down-proof-of-stake 2018-07-11 19:11:45 +02:00
Christopher Goes 27f157a3e2 CacheContext() 2018-07-11 04:55:57 +02:00
Christopher Goes a3d8b38d47 Add several simulated Msgs 2018-07-11 04:36:12 +02:00
Christopher Goes 940cfa98af Invariants & random Msgs in progress 2018-07-11 02:36:50 +02:00
Aditya b195c556e2 Merge pull request #1600: Friend can create validator and delegate on behalf of genesis validator
* Added msg and handling for surrogate create validator

* changelog and error fix

* fix changelog

* Remove unnecessary msg by combining into CreateValidator

* Refactor

* Appease linter

* Added onbehalfof functionality in client

* fmt

* Added gaia onbehalfof test

* Update test for onbehalfof validator creation

* fix test

* Fix flag error

* Add app test

* fmt

* Fixed signer for onbehalfof createvalidator

* Fix error msg

* Simplify test

* fmt
2018-07-10 20:16:37 -04:00
rigelrozanski 9eeb47517d cwgoes comments 2018-07-10 19:27:39 -04:00
Christopher Goes a33229380b Merge branch 'develop' into cwgoes/a-random-walk-down-proof-of-stake 2018-07-11 01:00:20 +02:00
Christopher Goes 75b4f4104a Merge branch 'develop' into joon/673-am-constructor 2018-07-11 00:57:46 +02:00
rigelrozanski 561eda3fc3 typo 2018-07-10 18:39:52 -04:00
rigelrozanski e8e5e8c600 bez updates 2018-07-10 18:36:57 -04:00
rigelrozanski c21e6a0642 Merge remote-tracking branch 'origin/develop' into rigel/clearer-staking-logic 2018-07-10 14:52:49 -04:00
Christopher Goes 6a119f6934 Work-in-progress staking invariants 2018-07-10 20:46:28 +02:00
rigelrozanski 12932de40f further cleanup, also reorg updateBondedValidators 2018-07-10 10:23:31 -04:00
rigelrozanski 61cbd12976 cleanup logic in updateValidator 2018-07-10 02:38:09 -04:00
Christopher Goes efa003db9a
Merge PR #1612: prevent zero power validators at genesis 2018-07-10 07:43:59 +02:00
Christopher Goes d217954ccb
Merge pull request #1615: Fix unformatted files 2018-07-10 07:29:07 +02:00
Christopher Goes 0ce2732660
Merge branch 'develop' into rigel/genesis-no-zero-power 2018-07-10 07:25:13 +02:00
ValarDragon 985037d2bd Fix unformatted files 2018-07-09 22:08:01 -07:00
rigelrozanski a31404c628 more detailed comments 2018-07-10 00:18:25 -04:00
Rigel b60fcb68d6
Merge branch 'develop' into rigel/genesis-no-zero-power 2018-07-10 00:15:10 -04:00
Rigel f0a6ade1a6
Merge branch 'develop' into rigel/fix-unbond-percent 2018-07-10 00:13:39 -04:00
rigelrozanski 96d660593a fix cli delegations unmarshalling 2018-07-10 00:07:01 -04:00
mossid bc12880394 Merge pull request #1379: Account constructor in AccountMaper
fix

fix democoin

fix tests

pass lint

last fix

apply requests

fix build failing

fix docs
2018-07-09 20:29:14 -07:00
Ethan Buchman 7ba52e8d32
Merge pull request #1609 from cosmos/rigel/two-val-pubkey
prevent create-validator with duplicate pubkey
2018-07-09 23:06:53 -04:00
rigelrozanski 86f68a3e95 prevent zero genesis validators 2018-07-09 22:51:13 -04:00
Christopher Goes 5a56c3f03d
Merge PR #1575: ready-for-review: sdk.AccAddress natively bech32 2018-07-10 04:18:23 +02:00
Sunny Aggarwal 5827bfe269 removed extra structs 2018-07-09 18:59:16 -07:00
Sunny Aggarwal e27b83805a fixed typo 2018-07-09 18:35:10 -07:00
rigelrozanski f8b625b391 Merge pull request #1609: prevent create-validator with duplicate pubkey 2018-07-09 20:51:12 -04:00
ValarDragon 99e91dd276 Add nolints on remaining functions 2018-07-09 16:16:43 -07:00
ValarDragon 17b5370c22 Continue fixing gocyclo errors 2018-07-09 16:08:35 -07:00
Sunny Aggarwal 896cd333f0 address comments 2018-07-09 16:06:05 -07:00
ValarDragon 2a419a3192 add helper to UpdateBondedValidatorsFull 2018-07-09 15:29:16 -07:00
ValarDragon 1433b61a92 Missed a min in slashing 2018-07-09 15:29:16 -07:00
ValarDragon 0c5358c267 Continue reducing code complexity:
* Adds a Min function to Int, and uses that in the slash function
* Adds a getHeight helper function to iavlstore
* Adds a splitPath function to baseapp
* Changes cyclo param from 10 to 11
2018-07-09 15:29:16 -07:00
Sunny Aggarwal 25d976feb4 works? 2018-07-09 01:47:38 -07:00
sunnya97 7ac220beb6 asdf 2018-07-09 00:59:51 -07:00
Sunny Aggarwal 50ed0fa1ae asdf 2018-07-09 00:35:28 -07:00
Christopher Goes 51a50210e9
Merge PR #1565: Validator Cliff Updates 2018-07-07 02:50:54 +02:00
Christopher Goes 3b7fbf66ab assert -> require 2018-07-07 02:37:59 +02:00
rigelrozanski d36dda0267 address cwgoes comments 2018-07-06 20:29:39 -04:00
Christopher Goes 3630cde63e Address PR comments 2018-07-07 02:20:37 +02:00
Christopher Goes dbe7744b14 Simplify test slightly 2018-07-07 02:02:46 +02:00
rigelrozanski 062a683d11 completely fix dem tests 2018-07-06 20:00:33 -04:00
Christopher Goes eafd1e492f Update comments 2018-07-07 01:53:40 +02:00
rigelrozanski 37a5f2fd4c fix count in UpdateBondedValidators to not include revoked validators 2018-07-06 19:53:07 -04:00
Christopher Goes c456daae25 Merge remote-tracking branch 'origin/develop' into cwgoes/zero-power-should-not-be-bonded 2018-07-07 01:49:46 +02:00
Christopher Goes ad3e123c82 Ignore slashes on nonexistent validators; update testcases 2018-07-07 01:49:17 +02:00
rigelrozanski 5d2b6c81ea split out cliff problems to more tests 2018-07-06 18:41:04 -04:00
rigelrozanski 2bf0b842fa Merge remote-tracking branch 'origin/develop' into rigel/a-validator-on-a-cliff 2018-07-06 18:04:49 -04:00
Christopher Goes 723e057d95 Merge pull request #1566: Fix validator power decrease bug
* Demonstrative testcase

* Update when decreasing but still bonded

* Only update when decreasing, not when equal

* Cleanup conditional; changelog

* Clarify comments

* Simplify conditional
2018-07-06 18:00:00 -04:00
rigelrozanski 926a6160c9 rearrage cliff tests to reveal new problem 2018-07-06 03:04:01 -04:00
ValarDragon c708c799fd Add print-response flag 2018-07-05 22:19:50 -07:00
ValarDragon 2197a9598b Merge branch 'dev/add_async_flag' of github.com:cosmos/cosmos-sdk into dev/add_async_flag 2018-07-05 20:19:39 -07:00
ValarDragon 8857b69d02 Use async flag directly from context 2018-07-05 20:15:40 -07:00
Dev Ojha be9ae47b0a
Merge branch 'develop' into dev/add_async_flag 2018-07-05 20:06:52 -07:00
ValarDragon 27a31cae44 add Async to context 2018-07-05 20:05:17 -07:00
Christopher Goes 1f3ab377ae
Merge PR #1570: stake/client: Fix panic on if validator doesn't exist 2018-07-06 04:26:39 +02:00
ValarDragon 6f94dd64c0 cli: Add async flag to all broadcasting txs
closes #1436
2018-07-05 19:15:37 -07:00
ValarDragon 8fc6e68511 stake/client: Fix panic on if validator doesn't exist
Closes #1505
2018-07-05 18:24:02 -07:00
Ismail Khoffi abce54ea60
Merge branch 'develop' into sort_getsignbytes 2018-07-06 01:31:34 +01:00
rigelrozanski 3cef455723 fill in cliff validator test 2018-07-05 20:24:31 -04:00
Liamsi b7f902fba5 sort *all* GetSignBytes:
- call MustSortJSON before return JSON bytes to guarantee alphabetic
ordering

- moved SortJSON and MustSortJSON to types package to avoid cyclic
package dep
2018-07-06 01:12:57 +01:00
Liamsi 0f1ceb073e sort all relevant GetSignBytes:
- call SortJSON before return JSON bytes to guarantee alphabetic
ordering
2018-07-06 00:23:12 +01:00
Ethan Buchman 84ecd1e043
Merge pull request #1339 from forbole/develop
Update testnet readme and use Bech32-encoded delegator address
2018-07-05 16:59:04 -04:00
Christopher Goes e8b841080d Update .Slash() and testcase 2018-07-05 20:21:56 +02:00
Christopher Goes b92f802835 Demonstrate failing testcase 2018-07-05 20:10:05 +02:00
rigelrozanski aed3a87366 address cwgoes comments 2018-07-04 17:07:06 -04:00
rigelrozanski f152b64952 Merge remote-tracking branch 'origin/develop' into rigel/no_keys_in_state_value 2018-07-04 14:29:12 -04:00
rigelrozanski a2f7b582df validators smaller values stored 2018-07-04 01:32:49 -04:00
rigelrozanski 04921b9ebd ubd and red more limited values 2018-07-04 00:29:02 -04:00
Alexander Bezobchuk 0b9e0f2afc Merge PR #1492: Improve Module Test Coverage
* Merge pull request #1492: Improve Module Test Coverage
* Revert renaming of SignCheckDeliver [#1492]
* Remove named fields from stake unit tests & fix comments [#1492]
* update for tmlibs->tendermint/libs
* Remove tmlibs dependency
2018-07-04 06:21:36 +02:00
rigelrozanski 199c1e81eb delegations new key format ported 2018-07-03 23:44:54 -04:00
Rigel cae6b40221
Merge pull request #1467: staking index keys don't hold values
* docs: Explain the expected return type within the store (#1452)

* bug somewhere here

* ...

* ...

* fix appending over key

* keys cleanup

* changelog

* remove some junk

* address bucky comments - rearrange appends

* hard code address length
2018-07-03 19:15:48 -04:00
Christopher Goes 5c939cfab7 Demonstrative testcase, export GetCliffValidator 2018-07-04 00:08:37 +02:00
rigelrozanski ab964da105 marshal/unmarshal delegation 2018-07-03 15:03:35 -04:00
Rigel f50c7be976
Merge branch 'develop' into rigel/stake-spec-compliance 2018-07-03 13:37:59 -04:00
rigelrozanski 4f0c7d8746 address bucky comments - rearrange appends 2018-07-03 13:37:17 -04:00
Ethan Buchman d388036454 Merge PR #1520: various fixes for test_cli
* various fixes for test_cli
* linting
2018-07-03 06:33:53 +02:00
rigelrozanski 271fbb2db3 remove some junk 2018-07-02 21:16:32 -04:00
Rigel 2a2f5db450
Merge branch 'develop' into rigel/stake-spec-compliance 2018-07-02 21:03:46 -04:00
rigelrozanski 6f3b4c1805 keys cleanup 2018-07-02 20:58:22 -04:00
rigelrozanski 96f2d2983b Merge branch 'rigel/stake-spec-compliance' of https://github.com/cosmos/cosmos-sdk into rigel/stake-spec-compliance 2018-07-02 20:08:55 -04:00
Ethan Buchman aa243565ce fix appending over key 2018-07-02 20:09:57 -04:00
rigelrozanski 2355e5ae6e ... 2018-07-02 20:05:52 -04:00
rigelrozanski b3d6a59c61 ... 2018-07-02 18:58:52 -04:00
rigelrozanski ab4661f88b bug somewhere here 2018-07-02 18:16:47 -04:00
Ethan Buchman f78f30c67a update for tm v0.22.0. tmlibs->tendermint/libs 2018-07-02 16:34:06 -04:00
Rigel f1937bc0e7
Merge branch 'develop' into rigel/stake-spec-compliance 2018-07-02 12:06:20 -04:00
Dev Ojha 6a864923fa types: Rename rational.Evaluate to rational.Round (#1487)
* rational.Evaluate -> rational.RoundInt64
	* rational.EvaluateInt -> rational.RoundInt

This done to improve clarity of the code.

Closes #1485
2018-07-02 11:57:33 -04:00
Christopher Goes 3654579ea7
Merge PR #1278: Slashing v2
Implement semifinal Gaia slashing spec (#1263), less #1348, #1378, and #1440 which are TBD.
2018-06-30 05:34:55 +02:00
Dev Ojha 955a0c9af7 Switch asserts to require (#1483)
* meta: Switch the majority of asserts to require

Switch most assert statements to require, to ease debugging.
Closes #1418

* Fix imports
2018-06-30 03:10:15 +02:00
Dev Ojha 097dd8a164 tools: Add unparam linter (#1443)
* 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
2018-06-29 18:22:24 -04:00
Dev Ojha 47e4682d9f Merge PR #1415: x/stake: Limit the size of rationals from user input
* x/stake: Limit the size of rationals from user input

This commit sets the maximum number of decimal points that can be
passed in from messages. This is enforced on the validate basic of
MsgBeginUnbonding and MsgBeginRedelegation. The cli has been
updated to truncate the user input to the specified precision. This
also updates types/rational to return big ints for Num() and Den().

Closes #887

* Switch NewFromDecimal to error instead of truncating
2018-06-29 22:30:12 +02:00
Dev Ojha 94a3ce4c83 docs: Explain the expected return type within the store (#1452) 2018-06-29 13:45:11 -04:00
Christopher Goes 59aadf42aa
Ledger integration (#931)
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
2018-06-29 02:54:47 +02:00
Dev Ojha ac3adff1e8 Merge PR #1438: Tools: Add errcheck linter
This linter ensures that all errors are checked.
This is disabled in the client directories, since its not needed on
those writes
2018-06-29 00:52:10 +02:00
Dev Ojha 3e14868bd6 Merge PR #1429: tools: Add ineffassign linter
* tools: Add ineffassign linter

This errors on assignments that don't actually do anything. i.e.

x, err := myFunc(1)
y, err = myFunc(2)

This will call out that the first function's call error was never
used.

* Fix makefile, add misspell to makefile
2018-06-28 19:12:02 +02:00
Sherry Ma e7797835e2
Merge branch 'develop' into develop 2018-06-28 10:02:52 +08:00
Dev Ojha 6d9f07dfee tools: Add go vet as a linter (#1421)
* tools: add go vet

* tools: Add go vet as a linter
2018-06-27 20:32:06 -04:00
Rigel 50733f5c22
Merge branch 'develop' into develop 2018-06-27 19:22:48 -04:00
Rigel 6f140d7296 Merge PR #1119: Unbonding, Redelegation
* stake/fees spec updates
* staking overview.md revisions, moving files
* docs reorganization
* staking spec state revisions
* transaction stake updates
* complete staking spec update
* WIP adding unbonding/redelegation commands
* added msg types for unbonding, redelegation
* stake sub-package reorg
* working stake reorg
* modify lcd tests to not use hardcoded json strings
* add description update
* index keys
* key managment for unbonding redelegation complete
* update stake errors
* completed handleMsgCompleteUnbonding fn
* updated to use begin/complete unbonding/redelegation
* fix token shares bug
* develop docs into unbonding
* got non-tests compiling after merge develop
* working fixing tests
* PrivlegedKeeper -> PrivilegedKeeper
* tests compile
* fix some tests
* fixing tests
* remove PrivilegedKeeper
* get unbonding bug
* only rpc sig verification failed tests now
* move percent unbonding/redelegation to the CLI and out of handler logic
* remove min unbonding height
* add lcd txs
* add pool sanity checks, fix a buncha tests
* fix ante. set lcd log to debug (#1322)
* redelegation tests, adding query functionality for bonds
* add self-delegations at genesis ref #1165
* PR comments (mostly) addressed
* cleanup, added Query LCD functionality
* test cleanup/fixes
* fix governance test
* SlashValidatorSet -> ValidatorSet
* changelog
* stake lcd fix
* x/auth: fix chainID in ante
* fix lcd test
* fix lint, update lint make command for spelling
* lowercase error string
* don't expose coinkeeper in staking
* remove a few duplicate lines in changelog
* chain_id in stake lcd tests
* added transient redelegation
* 'transient' => 'transitive'
* Re-add nolint instruction
* Fix tiny linter error
2018-06-27 04:00:12 +02:00
Sunny Aggarwal 9ca3a16bb3 Merge PR #1397: Fix spelling changes
* fixed spelling changes
* extra spelling error
2018-06-27 01:58:42 +02:00
7768 4f57a765ad Merge PR 1354: CLI: Show fractional in human-readable format
Fix https://github.com/cosmos/cosmos-sdk/issues/1353

before:
```
Shares: Status Bonded,  Amount: -6508168128760126341/-3308135364330552608
Delegator Shares: -6508168128760126341/-3308135364330552608
```
after:
```
Shares: Status Bonded,  Amount: 2.0000000000
Delegator Shares: 2.0000000000
```
2018-06-26 19:26:12 +02:00
Sherry Ma 1a67dc5d7c
Changed decode delegator address function
In delegation query, the function to decode the address of delegator should be using Bech32 but not Hex
2018-06-22 18:37:15 +08:00
Joon ec6acda6a4 Merge PR #1331: Remove TxBytes from NewContext 2018-06-22 03:03:05 +02:00
Sunny Aggarwal dc2c8f900b Merge PR #1168: Governance MVP 2018-06-22 02:19:14 +02:00
Aditya f049a56376 Merge PR #1266: Multiple messages
* 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
2018-06-22 00:05:25 +02:00
Dev Ojha e2d23040a8 Merge PR #1325: Refactor Complete Setup to not take in a testing parameter
* Refactor Complete Setup to not take in a testing parameter
* Update changelog
2018-06-21 18:55:08 +02:00
Joon 314b5a854d Merge PR #1218: sdk.Int in sdk.Coin
implement Int, Int256, Uint256
pass ci
pass ci
add to changelog, add boundcheck to test
add comments, fix cli_test.go
fix errors
apply requested changes
panics on New*WithDecimal
fix Int.BigInt()
fix stake tests
* Panic on uint division-by-zero
* Set ok=false on NewIntFromString, NewUintFromString failure
* Nuke CircleCI caches
2018-06-15 23:16:45 +02:00
Ethan Buchman 1cac5e7a0f Merge branch 'develop' into rigel/spec-staking 2018-06-14 11:22:29 -07:00
Fabian 42e72956f4 Merge PR #1252: Query node version
introduce non store queries
add version query
update lcd spec
changelog
moved version query into baseapp
2018-06-14 07:49:21 +02:00
rigelrozanski 14c1ff27f3 Merge remote-tracking branch 'origin/develop' into rigel/spec-staking 2018-06-13 20:50:59 -07:00
David Kajpust ec2fedd36c Merge PR #1227: Set all Error strings 1st letters to lowercase. Fixes issue #1154 2018-06-13 21:13:22 +02:00
Rigel 83c1183e25 Merge PR #1233: Inflation now unbonded
working debug fix
add broken test
fix testnet bug
updated provision test
changelog
cwgoes comments
2018-06-13 09:12:57 +02:00
Sunny Aggarwal 161cb474d4 Account Numbers for Replay Protection with Account Pruning (#1077)
* 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
2018-06-12 04:30:54 +02:00
Rigel 1b20adcd22 Merge PR #1191: LCD cleanup / add LCD gas field
* remove global variables from lcd
* added make race, fix lcd race condition
* cleanup
* Five-character changelog update
2018-06-12 03:12:37 +02:00
Rigel fc0e401327
Merge pull request #1153 from davekaj/davekaj/addProvisionTests
Writing more provision tests in tick_test.go (updated for refractor)
2018-06-11 02:10:42 -07:00
Rigel 0b9751ac98
Merge pull request #1170 from cosmos/rigel/test_framework
mock test framework for modules
2018-06-08 13:30:24 -07:00
rigelrozanski 17948ccf04 auth-mock simulate block now commits, stake app_test cleanup 2018-06-08 11:28:07 -07:00
rigelrozanski abab7c2e42 modules test within mock application 2018-06-07 20:55:14 -07:00
Christopher Goes 971e1489b2
Bech32ify msg.GetSignBytes() for x/slashing & x/stake 2018-06-08 01:24:08 +02:00
mossid 04d6ce6898 add revoked prefix to key, add condition in getbypower 2018-06-06 18:25:00 -07:00
David Kajpust 78703f027d fixed small breaking changes from pulling in develop 2018-06-06 15:49:22 -04:00
David Kajpust 33a5e01264 fixed merge conflicts 2018-06-06 14:14:51 -04:00
David Kajpust 5352b65078 Added TestInflationWithRandomOperations 2018-06-06 14:05:51 -04:00
David Kajpust 5aa6c96cb6 added Large Bond test for provisions 2018-06-06 13:11:36 -04:00
Christopher Goes 3fbee11ccc
Merge PR #1142: Export validators to genesis
* Validator export skeleton
* Update export command, add tests, update CHANGELOG
* Rename exportAppState to exportAppStateAndTMValidators
2018-06-06 18:38:13 +02:00
David Kajpust 7cb404d578 created a test to check large unbonds lower bonded ratio 2018-06-06 09:55:34 -04:00
Fabian 5f409ce832 Merge PR #1086: Bech32Cosmos output/input for the LCD
* refactored bech32ization
* updated keys endpoints for bech32
* bech32 for sending and querying
* trying to change output of validator addresses
* fixed validator output
* linted
* fixed merge conflict
* added bech32 to staking endpoints
* removed some logging statements
* added GetAccPubKeyBech32Cosmos
* fixed cli tests
* updated swagger
* merged standard bech32 change
* renamed bech32cosmos to bech32
* bech32ify json output for key add
* readded changelog
* fixed changelog merge issue
* Update CHANGELOG.md
2018-06-06 06:53:04 +02:00
David Kajpust 8d470e5410 TestHourlyInflationRateOfChange() added, checks 11.4 years of inflation 2018-06-05 23:12:28 -04:00