Commit Graph

398 Commits

Author SHA1 Message Date
Alexander Bezobchuk 36d1736a08 Refactor Gas/Fee Model (#3258) 2019-01-18 08:45:20 -08:00
Alexander Bezobchuk f2e87ad81f Merge PR #3308: Genesis Vesting Accounts & Simulation
* 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
2019-01-17 17:15:13 +01:00
Alessio Treglia 26cb0a125a Multi-signature workflow support (#3264)
- 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
2019-01-16 09:30:57 -08:00
Alexander Bezobchuk a984a22373 Merge PR #2694: Vesting Account(s) Implementation 2019-01-14 17:11:24 +01:00
frog power 4000 78a21353da Rename stake/ to staking/ (#3280) 2019-01-11 12:08:01 -08:00
Alessio Treglia df567616a9 Upgrade tendermint to 0.28.0-dev0 (#3279) 2019-01-11 09:19:01 -08:00
Alexander Bezobchuk 9eef341df9 Fix runTx Gas Consumption during Tx Aborting (#3244) 2019-01-08 15:56:53 -08:00
Zaki Manian ed2b6bd9a7 Multiple fees in min fees to OR instead of AND (#3239) 2019-01-08 08:21:54 -08:00
frog power 4000 5448824efb
Update x/auth/client/rest/sign.go
Co-Authored-By: alessio <quadrispro@ubuntu.com>
2019-01-02 20:51:11 +00:00
Alessio Treglia d78db91944 Fix tests 2019-01-02 10:53:24 +00:00
Alessio Treglia 11585a4abd Introduce CodeNoSignatures 2019-01-02 10:05:56 +00:00
Alessio Treglia 1ebe1844d2 validate sign tx request's body
Closes: #3176
2018-12-27 14:43:23 +01:00
Alexander Bezobchuk 217a2925dc Auth Module Param Store (#2998) 2018-12-20 11:09:43 -08:00
Federico Kunze f02f7aa5a0 Add fees and memo to REST, updated CLI to receive coins as fees (#3069) 2018-12-19 16:26:33 -08:00
Jack Zampolin 14ebc65daf Merge PR #3119: Move all store keys into constants
* Move all store keys into constants
* Fix lint issue
* Add Pending.md
* QuerierKey -> QuerierRoute
2018-12-19 20:58:30 +01:00
Alessio Treglia 711a22fde6 Merge PR #3121: x/auth: fetch one account after another
* 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
2018-12-18 21:41:54 +01:00
Alessio Treglia 500fa2b694 Make coins denoms case insensitive (#3092) 2018-12-18 11:14:11 -08:00
Alessio Treglia eac7d6939d Merge PR #3127: Don't fallback to any default values for chain id
- 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
2018-12-18 19:40:01 +01:00
Alexander Bezobchuk 56937714b5 Expose necessary ante handler auxiliary functions (#3135) 2018-12-17 15:43:16 -08:00
Artur Albov 0c6d53dc07 Merge PR #2959: Add TxEncoder to client TxBuilder 2018-12-12 22:29:42 +01:00
Jack Zampolin e1f0767ba8
R4R: Move generate_only and simulate to POST body in REST txs (#3060)
* 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
2018-12-10 14:51:53 -08:00
Christopher Goes 243576143e
Merge PR #3072: Catch overflows in gas wanted
* Check for overflow

* Only expect block gas meter on DeliverTx

* ErrGasOverflow in tx.ValidateBasic()

* Update unit test
2018-12-10 21:39:29 +01:00
Alexander Bezobchuk 2ce41760e2 Merge PR #3070: Check for gas overflow in tx validation
* Check for gas overflow in tx validation

* Use bitshifting over math.Pow
2018-12-10 20:24:57 +01:00
Alessio Treglia 24a1670cf0 Run make format 2018-12-10 14:27:25 +00:00
Jae Kwon 40a30b738f
Update gas costs to more reasonable numbers for GoS (#3052) 2018-12-10 02:48:19 -08:00
Alexander Bezobchuk f11a65dee7 Merge PR #3005: Move auth keeper benchmarks to sep. file 2018-12-06 10:49:30 +01:00
Alexander Bezobchuk 5b42e83bc2 Merge PR #2995: Fully verify the signature in `gaiacli tx sign`
* Implement auxiliary methods/functions for just building a tx sig bytes

* Undo auxiliary methods/functions

* Validate signature

* Remove redundant comment

* Add pending log entry

* Minor cleanup

* Update sign cli doc

* Update cli sign offline flag doc

* Update printAndValidateSigs

* Implement TestGaiaCLIValidateSignatures

* Minor cleanup

* Fix linting

* Update x/auth/client/cli/sign.go

Co-Authored-By: alexanderbez <alexanderbez@users.noreply.github.com>

* Minor reformatting
2018-12-06 02:02:04 -05:00
Christopher Goes ba5e87ca6f x/auth module spec / code reconciliation (#2964) 2018-12-05 16:48:08 -08:00
Alexander Bezobchuk bcfd93f544 Merge PR #2950: AnteHandler Cleanup
* 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
2018-12-04 17:42:15 +01:00
Dev Ojha 13e78166ee Merge PR #2977: Don't serialize Account Number and Sequence Number in signatures
* 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
2018-12-03 18:29:50 +01:00
Alessio Treglia 4c36b0fe05 Merge PR #2881: Don't call gaiacli tx sign. Use utils.SignStdTx() instead.
This is to avoid command redirection and reduce the use
of viper's global variables.

Closes: #2875
2018-11-26 12:50:33 +01:00
Sunny Aggarwal b7da2eaa33 Merge PR #2799: Account numbers and sequences to uint64 2018-11-26 12:29:21 +01:00
Alessio Treglia 3e68e44063 Merge PR #2874: gaiad gentx subcommands refactoring
* 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
2018-11-22 00:44:13 +01:00
Alexander Bezobchuk 1ea0e4c457 Merge PR #2863: Transaction ValidateBasic
* 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
2018-11-21 11:16:56 +01:00
Alexander Bezobchuk 41fc538ac7 Add Safety Measures to Coin/Coins (#2797) 2018-11-20 01:22:35 -08:00
Alexander Bezobchuk 6e813ab3a8 Change gas & related fields to unsigned integer type (#2839)
* Change gas & related fields to unsigned integer type
* Implement AddUint64Overflow
2018-11-19 09:13:45 -08:00
Jack Zampolin f525717054
Standardize CLI Exports from Modules (#2840)
* 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
2018-11-19 09:02:34 -08:00
Sunny Aggarwal 8d6b0929fb Codespaces as Strings (#2821) 2018-11-16 09:12:24 -08:00
Alessio Treglia 7b7d45ddd2 Merge PR #2800: Limit total number of signatures per transaction
* 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
2018-11-15 15:30:24 +01:00
Alessio Treglia 70826495b8 Merge PR #2752: Don't hardcode bondable denom 2018-11-12 19:54:18 +01:00
Christopher Goes 94f45311a0 Fix state export/import, add to CI (#2690)
* 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
2018-11-08 16:28:28 -08:00
Jae Kwon 2a3d1f1e87
Fix coins.IsLT() impl (#2686)
* Fix coins.IsLT() impl
* Fix coin.IsLT() impl
* Coins.IsLT -> Coins.IsAllLT etc
2018-11-07 00:14:48 -08:00
Alexander Bezobchuk 50926fffff Update to TM v0.26.0 - Part I (#2679)
* Update to TM v0.26.0
2018-11-04 18:28:38 -08:00
yutianwu b6443e9496 Merge PR #2653: Add benchmark for get and set account 2018-11-02 13:36:52 +01:00
Alessio Treglia dbbf0647f0
Document what --validate-signatures does 2018-10-31 13:50:01 +00:00
Alessio Treglia 6c8791f505
Nest switches 2018-10-31 13:43:20 +00:00
Alessio Treglia 84aef0d106
Apply suggestions from bez 2018-10-31 13:43:20 +00:00
Alessio Treglia 44d2347109
Set success = false when it fails 2018-10-31 13:43:20 +00:00
Alessio Treglia 9e397907be
Rename append, it's go builtin 2018-10-31 13:43:20 +00:00
Alessio Treglia f752525d54
s/--sig-only/--signature-only/ 2018-10-31 13:42:42 +00:00
Alessio Treglia 53f1233f0a
s/--print-sigs/--validate-signatures/ 2018-10-31 13:42:42 +00:00
Alessio Treglia 31c062689d
Validate --name 2018-10-31 13:42:42 +00:00
Alessio Treglia 69a7c06ef7
Find better name for --print-signature-only 2018-10-31 13:42:42 +00:00
Alessio Treglia 62974e627e
Improve online docs 2018-10-31 13:41:26 +00:00
Alessio Treglia 4bf17e82b4
Improve errors reporting 2018-10-31 13:41:26 +00:00
Alessio Treglia 933592d052
Check sanity of signatures and report errors when run with --print-sigs 2018-10-31 13:41:26 +00:00
Alessio Treglia bc583ab1d0
Various sign command improvements
- 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.
2018-10-31 13:41:26 +00:00
Christopher Goes 234262160e 'make format' 2018-10-24 15:37:06 +02:00
HaoyangLiu 9ee9e28439 Merge PR #2462: Add swagger-ui for gov, stake and slashing 2018-10-24 15:19:48 +02:00
Christopher Goes 33c8238392 Merge branch 'develop' into cwgoes/check-supply-in-simulation 2018-10-23 17:54:58 +02:00
Alessio Treglia 6014089fa1
Rename AccountMapper to AccountKeeper
Closes: #2540
2018-10-20 23:22:48 -07:00
Christopher Goes 6c9ad8c031 Add sanity checks 2018-10-19 21:58:05 +02:00
Christopher Goes 22cb6983b7 Merge branch 'develop' into cwgoes/check-supply-in-simulation 2018-10-19 20:36:55 +02:00
Rigel b48d0d5623 Merge PR #2527: Minting 2018-10-19 20:36:00 +02:00
Christopher Goes 375e821e98 Merge branch 'develop' into cwgoes/check-supply-in-simulation 2018-10-19 20:02:48 +02:00
Alessio Treglia 593921d04d Merge PR #2524: Replace GenTx with StdTx
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
2018-10-19 20:00:27 +02:00
Christopher Goes c3d3a7935b Merge branch 'develop' into cwgoes/check-supply-in-simulation 2018-10-19 19:50:54 +02:00
Federico Kunze ad355d6c69 Merge PR #2444: Standardize REST error responses 2018-10-19 18:55:20 +02:00
Christopher Goes 4779359e29 Linter, enable simulated distribution msgs again 2018-10-19 03:21:11 +02:00
Christopher Goes 42ae2671c2 Simulation fixes work-in-progress 2018-10-19 03:08:25 +02:00
rigelrozanski fc9bafb8d3 Merge remote-tracking branch 'origin/develop' into rigel/fee-distribution 2018-10-09 20:19:22 -04:00
HaoyangLiu 1aebe103ba Merge branch 'develop' of https://github.com/cosmos/cosmos-sdk into bianjie/lcd-lite-swagger-ui 2018-10-09 09:21:45 +08:00
rigelrozanski 45f0dd0e3b Merge remote-tracking branch 'origin/develop' into rigel/fee-distribution 2018-10-04 18:33:12 -04:00
Alexander Bezobchuk 2e040dd971 Merge PR #2442: Support removal of accounts in account mapper 2018-10-04 16:20:31 +02:00
HaoyangLiu 8e1bfee6ca Add swagger-ui for key management 2018-10-04 20:36:24 +08:00
HaoyangLiu 9f67e8af20 Merge PR #2215: Add swagger-ui for gaiacli lite-server 2018-10-04 13:00:24 +02:00
HaoyangLiu 9830acc5b9 Add indent option to context and fix a bug in node status command 2018-10-02 23:38:18 +08:00
HaoyangLiu 5d259b1b39 Add post respones process to add json to header and decide whether bring in indent to make response more readable 2018-10-02 23:15:04 +08:00
HaoyangLiu bd274db7a7 Add application/json to response header 2018-10-01 09:07:41 +08:00
HaoyangLiu 019b1d95cf unminify JS files according to cwgoes 2018-09-30 18:50:31 +08:00
HaoyangLiu 6e8b8e47ee Add swagger-ui for ICS0 and ICS20 2018-09-30 11:42:12 +08:00
rigelrozanski 436d2a0178 Merge remote-tracking branch 'origin/develop' into rigel/fee-distribution 2018-09-27 22:48:16 -04:00
rigelrozanski 0436f50c00 ... 2018-09-27 19:54:41 -04:00
Dev Ojha cb86efa054 Merge PR #2376: auth: Don't recalculate mempool fees for every msg signer, misc. cleanup
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.
2018-09-27 02:34:01 +08:00
Alessio Treglia a2caefc8ae Merge PR #2390: CLI subcommands reorganization 2018-09-26 22:00:49 +08:00
Dev Ojha e6a8b2278e Merge PR #2377: auth: Move stdsignmsg to txbuilder, add tests 2018-09-26 21:39:05 +08:00
rigelrozanski 3846894c3a Merge branch 'rigel/new-hooks' into rigel/fee-distribution 2018-09-25 20:09:33 -04:00
rigelrozanski 47e899bb61 Merge remote-tracking branch 'origin/develop' into rigel/fee-distribution 2018-09-25 17:45:48 -04:00
Matthew Slipper 2fb3493ff5 Merge PR #2223: Gaia CLI Config Command
* 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
2018-09-25 17:36:42 -04:00
Alexander Bezobchuk 611e287375 Merge PR #2401: Remove remnants of gocyclo 2018-09-25 13:45:04 -04:00
rigelrozanski 97f7dbc5e6 Merge remote-tracking branch 'origin/develop' into rigel/fee-distribution 2018-09-19 13:25:23 -04:00
Alessio Treglia b74a6a9066 Merge PR #2328: Support min fees-based anti spam strategy 2018-09-19 23:25:52 +08:00
Dev Ojha c6a3928d37 Added a couple of benchmarks (#2353)
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)
2018-09-18 20:00:49 -07:00
rigelrozanski 2eff69a575 Merge remote-tracking branch 'origin/develop' into rigel/fee-distribution 2018-09-17 17:53:42 -04:00
Federico Kunze d195cc15ed Merge PR #2249: Staking Querier pt1
* 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
2018-09-13 17:23:44 -04:00
Dev Ojha 6b55093c75 Merge PR #2324: rename wire to codec
* rename wire to codec

* fix formatting and cli

* fix the docs
2018-09-13 14:17:32 -04:00
rigelrozanski 46db96bdb7 Merge remote-tracking branch 'origin/develop' into rigel/fee-distribution 2018-09-13 02:11:07 -04:00
Alessio Treglia fb0cc0b078 Merge PR #2306: Change --gas=0 semantic and introduce --gas=simulate
* 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
2018-09-11 20:31:30 -04:00
rigelrozanski a153088073 ... 2018-09-11 13:35:47 -04:00
Alessio Treglia 4448d175ad Merge PR #2240: New broadcast command
Implement broadcast command/REST endpoint to submit transactions
generated offline with --generated-only and the sign command.
2018-09-08 17:26:20 +08:00
Dev Ojha 88a2ddeb25 Merge PR #2276: make simulation no longer generate new privkeys 2018-09-08 16:55:49 +08:00
Jae Kwon 2abc90e92b Merge remote-tracking branch 'origin/develop' into alessio/auth-txcontext-to-txbuilder 2018-09-07 10:49:12 -07:00
Jae Kwon a27d83911a bld -> bldr in txbuilder.go 2018-09-07 10:34:44 -07:00
Jae Kwon acd125029d x/auth/client/context -> x/auth/client/txbuilder 2018-09-07 10:04:58 -07:00
Alessio Treglia f5a7f2524f
ACK and incorporate @cwgoes comments 2018-09-07 15:27:06 +01:00
Alessio Treglia 3b6da7af18
TxContext -> TxBuilder 2018-09-07 14:36:21 +01:00
Alessio Treglia e6a8a4df55
Implement command/REST endpoint for offline tx sign off #1953
* 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.
2018-09-07 12:57:50 +01:00
Christopher Goes e410a9e38a
Merge PR #1952: Update IAVL dependency for v0.10.0 2018-09-06 11:18:16 +02:00
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
Alessio Treglia d84885ca49
No need to create a fake slice of signatures nor skip account no./sequence check 2018-08-31 19:09:39 +02:00
Alessio Treglia 1ed76565f2
Remove obsolete comments 2018-08-31 19:04:45 +02:00
Alessio Treglia 122ed3a900
Don't use pointers when you need them not! 2018-08-31 19:04:45 +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
Alessio Treglia 76a16ab288
Modify AnteHandler to take a simulate boolean parameter 2018-08-25 20:12:14 +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 7b8c1c0e80
Merge branch 'develop' into fix-iterator-leak 2018-08-22 16:06:35 +02:00
Dev Ojha 419cf85433 Merge PR #2046: auth: Make gas cost take into account cryptosystem
* 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.
2018-08-21 16:13:34 +02:00
youjing 517682f17c fix Iterator leak, ref to https://github.com/cosmos/cosmos-sdk/issues/2105 2018-08-21 14:54:12 +08: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
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
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
Aditya Sripal ddd4deda7d ignore linter 2018-07-13 11:12:29 -07:00
Aditya Sripal aa3a64d289 Test recover in ante 2018-07-13 10:53:12 -07:00
Aditya Sripal f6d5c85049 Added recover to standard antehandler 2018-07-12 19:38:22 -07:00
Aditya Sripal 4751727351 fmt 2018-07-12 19:06:54 -07:00
Aditya Sripal ade7186ffb minor cleanup 2018-07-12 19:06:05 -07:00
Aditya Sripal fa31165438 Refactor BaseApp without breaking change 2018-07-12 18:32:48 -07: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
Christopher Goes 5a56c3f03d
Merge PR #1575: ready-for-review: sdk.AccAddress natively bech32 2018-07-10 04:18:23 +02:00
Sunny Aggarwal 38aa32c440 removed x/auth/mock 2018-07-09 16:06:40 -07:00
Sunny Aggarwal 896cd333f0 address comments 2018-07-09 16:06:05 -07:00
ValarDragon 2b5ccdbf87 Reduce code complexity in AnteHandler, and GetExternalIP 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 3805c35aff Merge pull request #1582: Simplify auth.StdSignMsg fields, add testcase
* Simplify auth.StdSignMsg

* Add StdSignMsg.Bytes() test
2018-07-06 19:26:22 -04:00
Ismail Khoffi abce54ea60
Merge branch 'develop' into sort_getsignbytes 2018-07-06 01:31:34 +01: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 586ab68b2a
Merge pull request #1490 from cosmos/dev/improve_send_error_msgs
gaiacli: Improve error messages for `send` command
2018-07-05 17:22:16 -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
Ethan Buchman f78f30c67a update for tm v0.22.0. tmlibs->tendermint/libs 2018-07-02 16:34:06 -04:00
ValarDragon 819eedd281 gaiacli: Improve error messages for `send` command
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
2018-06-30 01:32:01 -07: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
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 49f421db19 Merge PR #1332: benchmarks: Add benchmark for block time to bank module
* 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
2018-06-28 00:33:56 +02:00