From 550d27bd97b0a5e8b5a4d8283a8d27d65cc424f9 Mon Sep 17 00:00:00 2001 From: xujiacheng Date: Fri, 14 Sep 2018 16:42:33 +0800 Subject: [PATCH 1/2] IRISHUB-404:fix the cycle import --- Gopkg.lock | 234 +++----------------------- app/app.go | 22 +-- modules/gov/genesis.go | 10 +- modules/gov/keeper.go | 39 ++--- modules/gov/params/errors.go | 12 ++ modules/gov/params/gov_params.go | 21 ++- modules/gov/params/gov_params_test.go | 5 +- modules/gov/procedures.go | 6 - modules/gov/test_common.go | 3 +- modules/gov/wire.go | 3 +- modules/parameter/helper_test.go | 19 +-- modules/parameter/paramMap_test.go | 23 ++- modules/parameter/parameter.go | 2 +- 13 files changed, 104 insertions(+), 295 deletions(-) create mode 100644 modules/gov/params/errors.go diff --git a/Gopkg.lock b/Gopkg.lock index 29c97f705..49cef2c85 100644 --- a/Gopkg.lock +++ b/Gopkg.lock @@ -2,62 +2,47 @@ [[projects]] - digest = "1:e92f5581902c345eb4ceffdcd4a854fb8f73cf436d47d837d1ec98ef1fe0a214" name = "github.com/StackExchange/wmi" packages = ["."] - pruneopts = "UT" revision = "5d049714c4a64225c3c79a7cf7d02f7fb5b96338" version = "1.0.0" [[projects]] - digest = "1:09a7f74eb6bb3c0f14d8926610c87f569c5cff68e978d30e9a3540aeb626fdf0" name = "github.com/bartekn/go-bip39" packages = ["."] - pruneopts = "UT" revision = "a05967ea095d81c8fe4833776774cfaff8e5036c" [[projects]] branch = "master" - digest = "1:d6afaeed1502aa28e80a4ed0981d570ad91b2579193404256ce672ed0a609e0d" name = "github.com/beorn7/perks" packages = ["quantile"] - pruneopts = "UT" revision = "3a771d992973f24aa725d07868b467d1ddfceafb" [[projects]] - digest = "1:1343a2963481a305ca4d051e84bc2abd16b601ee22ed324f8d605de1adb291b0" name = "github.com/bgentry/speakeasy" packages = ["."] - pruneopts = "UT" revision = "4aabc24848ce5fd31929f7d1e4ea74d3709c14cd" version = "v0.1.0" [[projects]] branch = "master" - digest = "1:70f6b224a59b2fa453debffa85c77f71063d8754b90c8c4fbad5794e2c382b0f" name = "github.com/brejski/hid" packages = ["."] - pruneopts = "UT" revision = "06112dcfcc50a7e0e4fd06e17f9791e788fdaafc" [[projects]] branch = "master" - digest = "1:2c00f064ba355903866cbfbf3f7f4c0fe64af6638cc7d1b8bdcf3181bc67f1d8" name = "github.com/btcsuite/btcd" packages = ["btcec"] - pruneopts = "UT" revision = "79e00513b1011888b1e675157ab89f527f901cae" [[projects]] - digest = "1:386de157f7d19259a7f9c81f26ce011223ce0f090353c1152ffdf730d7d10ac2" name = "github.com/btcsuite/btcutil" packages = ["bech32"] - pruneopts = "UT" revision = "d4cc87b860166d00d6b5b9e0d3b3d71d6088d4d4" [[projects]] branch = "irisnet/develop" - digest = "1:30a362be7be5b3b0fe27e206577a77cff95f8cd11a12d1179f93934cccbe5663" name = "github.com/cosmos/cosmos-sdk" packages = [ "baseapp", @@ -104,37 +89,29 @@ "x/stake/client/rest", "x/stake/keeper", "x/stake/tags", - "x/stake/types", + "x/stake/types" ] - pruneopts = "UT" revision = "1d5c081067680987f342d99c1c4087c477ea9b4a" source = "https://github.com/irisnet/cosmos-sdk.git" [[projects]] - digest = "1:ffe9824d294da03b391f44e1ae8281281b4afc1bdaa9588c9097785e3af10cec" name = "github.com/davecgh/go-spew" packages = ["spew"] - pruneopts = "UT" revision = "8991bc29aa16c548c550c7ff78260e27b9ab7c73" version = "v1.1.1" [[projects]] - digest = "1:c7644c73a3d23741fdba8a99b1464e021a224b7e205be497271a8003a15ca41b" name = "github.com/ebuchman/fail-test" packages = ["."] - pruneopts = "UT" revision = "95f809107225be108efcf10a3509e4ea6ceef3c4" [[projects]] - digest = "1:abeb38ade3f32a92943e5be54f55ed6d6e3b6602761d74b4aab4c9dd45c18abd" name = "github.com/fsnotify/fsnotify" packages = ["."] - pruneopts = "UT" revision = "c2828203cd70a50dcccfb2761f8b1f8ceef9a8e9" version = "v1.4.7" [[projects]] - digest = "1:fdf5169073fb0ad6dc12a70c249145e30f4058647bea25f0abd48b6d9f228a11" name = "github.com/go-kit/kit" packages = [ "log", @@ -143,41 +120,33 @@ "metrics", "metrics/discard", "metrics/internal/lv", - "metrics/prometheus", + "metrics/prometheus" ] - pruneopts = "UT" revision = "4dc7be5d2d12881735283bcab7352178e190fc71" version = "v0.6.0" [[projects]] - digest = "1:31a18dae27a29aa074515e43a443abfd2ba6deb6d69309d8d7ce789c45f34659" name = "github.com/go-logfmt/logfmt" packages = ["."] - pruneopts = "UT" revision = "390ab7935ee28ec6b286364bba9b4dd6410cb3d5" version = "v0.3.0" [[projects]] - digest = "1:64a5a67c69b70c2420e607a8545d674a23778ed9c3e80607bfd17b77c6c87f6a" name = "github.com/go-ole/go-ole" packages = [ ".", - "oleutil", + "oleutil" ] - pruneopts = "UT" revision = "a41e3c4b706f6ae8dfbff342b06e40fa4d2d0506" version = "v1.2.1" [[projects]] - digest = "1:586ea76dbd0374d6fb649a91d70d652b7fe0ccffb8910a77468e7702e7901f3d" name = "github.com/go-stack/stack" packages = ["."] - pruneopts = "UT" revision = "2fee6af1a9795aafbe0253a0cfbdf668e1fb8a9a" version = "v1.8.0" [[projects]] - digest = "1:35621fe20f140f05a0c4ef662c26c0ab4ee50bca78aa30fe87d33120bd28165e" name = "github.com/gogo/protobuf" packages = [ "gogoproto", @@ -185,60 +154,48 @@ "proto", "protoc-gen-gogo/descriptor", "sortkeys", - "types", + "types" ] - pruneopts = "UT" revision = "636bf0302bc95575d69441b25a2603156ffdddf1" version = "v1.1.1" [[projects]] - digest = "1:17fe264ee908afc795734e8c4e63db2accabaf57326dbf21763a7d6b86096260" name = "github.com/golang/protobuf" packages = [ "proto", "ptypes", "ptypes/any", "ptypes/duration", - "ptypes/timestamp", + "ptypes/timestamp" ] - pruneopts = "UT" revision = "b4deda0973fb4c70b50d226b1af49f3da59f5265" version = "v1.1.0" [[projects]] branch = "master" - digest = "1:4a0c6bb4805508a6287675fac876be2ac1182539ca8a32468d8128882e9d5009" name = "github.com/golang/snappy" packages = ["."] - pruneopts = "UT" revision = "2e65f85255dbc3072edf28d6b5b8efc472979f5a" [[projects]] - digest = "1:c79fb010be38a59d657c48c6ba1d003a8aa651fa56b579d959d74573b7dff8e1" name = "github.com/gorilla/context" packages = ["."] - pruneopts = "UT" revision = "08b5f424b9271eedf6f9f0ce86cb9396ed337a42" version = "v1.1.1" [[projects]] - digest = "1:e73f5b0152105f18bc131fba127d9949305c8693f8a762588a82a48f61756f5f" name = "github.com/gorilla/mux" packages = ["."] - pruneopts = "UT" revision = "e3702bed27f0d39777b0b37b664b6280e8ef8fbf" version = "v1.6.2" [[projects]] - digest = "1:43dd08a10854b2056e615d1b1d22ac94559d822e1f8b6fcc92c1a1057e85188e" name = "github.com/gorilla/websocket" packages = ["."] - pruneopts = "UT" revision = "ea4d1f681babbce9545c9c5f3d5194a789c89f5b" version = "v1.2.0" [[projects]] - digest = "1:ea40c24cdbacd054a6ae9de03e62c5f252479b96c716375aace5c120d68647c8" name = "github.com/hashicorp/hcl" packages = [ ".", @@ -249,144 +206,112 @@ "hcl/token", "json/parser", "json/scanner", - "json/token", + "json/token" ] - pruneopts = "UT" revision = "8cb6e5b959231cc1119e43259c4a608f9c51a241" version = "v1.0.0" [[projects]] - digest = "1:870d441fe217b8e689d7949fef6e43efbc787e50f200cb1e70dbca9204a1d6be" name = "github.com/inconshreveable/mousetrap" packages = ["."] - pruneopts = "UT" revision = "76626ae9c91c4f2a10f34cad8ce83ea42c93bb75" version = "v1.0" [[projects]] branch = "master" - digest = "1:39b27d1381a30421f9813967a5866fba35dc1d4df43a6eefe3b7a5444cb07214" name = "github.com/jmhodges/levigo" packages = ["."] - pruneopts = "UT" revision = "c42d9e0ca023e2198120196f842701bb4c55d7b9" [[projects]] branch = "master" - digest = "1:a64e323dc06b73892e5bb5d040ced475c4645d456038333883f58934abbf6f72" name = "github.com/kr/logfmt" packages = ["."] - pruneopts = "UT" revision = "b84e30acd515aadc4b783ad4ff83aff3299bdfe0" [[projects]] - digest = "1:c568d7727aa262c32bdf8a3f7db83614f7af0ed661474b24588de635c20024c7" name = "github.com/magiconair/properties" packages = ["."] - pruneopts = "UT" revision = "c2353362d570a7bfa228149c62842019201cfb71" version = "v1.8.0" [[projects]] - digest = "1:d4d17353dbd05cb52a2a52b7fe1771883b682806f68db442b436294926bbfafb" name = "github.com/mattn/go-isatty" packages = ["."] - pruneopts = "UT" revision = "0360b2af4f38e8d38c7fce2a9f4e702702d73a39" version = "v0.0.3" [[projects]] - digest = "1:ff5ebae34cfbf047d505ee150de27e60570e8c394b3b8fdbb720ff6ac71985fc" name = "github.com/matttproud/golang_protobuf_extensions" packages = ["pbutil"] - pruneopts = "UT" revision = "c12348ce28de40eed0136aa2b644d0ee0650e56c" version = "v1.0.1" [[projects]] - digest = "1:645110e089152bd0f4a011a2648fbb0e4df5977be73ca605781157ac297f50c4" name = "github.com/mitchellh/mapstructure" packages = ["."] - pruneopts = "UT" revision = "fa473d140ef3c6adf42d6b391fe76707f1f243c8" version = "v1.0.0" [[projects]] - digest = "1:95741de3af260a92cc5c7f3f3061e85273f5a81b5db20d4bd68da74bd521675e" name = "github.com/pelletier/go-toml" packages = ["."] - pruneopts = "UT" revision = "c01d1270ff3e442a8a57cddc1c92dc1138598194" version = "v1.2.0" [[projects]] - digest = "1:40e195917a951a8bf867cd05de2a46aaf1806c50cf92eebf4c16f78cd196f747" name = "github.com/pkg/errors" packages = ["."] - pruneopts = "UT" revision = "645ef00459ed84a119197bfb8d8205042c6df63d" version = "v0.8.0" [[projects]] - digest = "1:0028cb19b2e4c3112225cd871870f2d9cf49b9b4276531f03438a88e94be86fe" name = "github.com/pmezard/go-difflib" packages = ["difflib"] - pruneopts = "UT" revision = "792786c7400a136282c1664665ae0a8db921c6c2" version = "v1.0.0" [[projects]] - digest = "1:c1a04665f9613e082e1209cf288bf64f4068dcd6c87a64bf1c4ff006ad422ba0" name = "github.com/prometheus/client_golang" packages = [ "prometheus", - "prometheus/promhttp", + "prometheus/promhttp" ] - pruneopts = "UT" revision = "ae27198cdd90bf12cd134ad79d1366a6cf49f632" [[projects]] branch = "master" - digest = "1:2d5cd61daa5565187e1d96bae64dbbc6080dacf741448e9629c64fd93203b0d4" name = "github.com/prometheus/client_model" packages = ["go"] - pruneopts = "UT" revision = "5c3871d89910bfb32f5fcab2aa4b9ec68e65a99f" [[projects]] branch = "master" - digest = "1:63b68062b8968092eb86bedc4e68894bd096ea6b24920faca8b9dcf451f54bb5" name = "github.com/prometheus/common" packages = [ "expfmt", "internal/bitbucket.org/ww/goautoneg", - "model", + "model" ] - pruneopts = "UT" revision = "c7de2306084e37d54b8be01f3541a8464345e9a5" [[projects]] branch = "master" - digest = "1:8c49953a1414305f2ff5465147ee576dd705487c35b15918fcd4efdc0cb7a290" name = "github.com/prometheus/procfs" packages = [ ".", "internal/util", "nfs", - "xfs", + "xfs" ] - pruneopts = "UT" revision = "05ee40e3a273f7245e8777337fc7b46e533a9a92" [[projects]] - digest = "1:c4556a44e350b50a490544d9b06e9fba9c286c21d6c0e47f54f3a9214597298c" name = "github.com/rcrowley/go-metrics" packages = ["."] - pruneopts = "UT" revision = "e2704e165165ec55d062f5919b4b29494e9fa790" [[projects]] - digest = "1:22e4289b3741da96aceecc4d1dcbf682ae167c759d010fd88c63c65c9a2e8c72" name = "github.com/shirou/gopsutil" packages = [ "cpu", @@ -395,85 +320,67 @@ "internal/common", "mem", "net", - "process", + "process" ] - pruneopts = "UT" revision = "8048a2e9c5773235122027dd585cf821b2af1249" version = "v2.18.07" [[projects]] branch = "master" - digest = "1:99c6a6dab47067c9b898e8c8b13d130c6ab4ffbcc4b7cc6236c2cd0b1e344f5b" name = "github.com/shirou/w32" packages = ["."] - pruneopts = "UT" revision = "bb4de0191aa41b5507caa14b0650cdbddcd9280b" [[projects]] - digest = "1:bd1ae00087d17c5a748660b8e89e1043e1e5479d0fea743352cda2f8dd8c4f84" name = "github.com/spf13/afero" packages = [ ".", - "mem", + "mem" ] - pruneopts = "UT" revision = "787d034dfe70e44075ccc060d346146ef53270ad" version = "v1.1.1" [[projects]] - digest = "1:516e71bed754268937f57d4ecb190e01958452336fa73dbac880894164e91c1f" name = "github.com/spf13/cast" packages = ["."] - pruneopts = "UT" revision = "8965335b8c7107321228e3e3702cab9832751bac" version = "v1.2.0" [[projects]] - digest = "1:7ffc0983035bc7e297da3688d9fe19d60a420e9c38bef23f845c53788ed6a05e" name = "github.com/spf13/cobra" packages = ["."] - pruneopts = "UT" revision = "7b2c5ac9fc04fc5efafb60700713d4fa609b777b" version = "v0.0.1" [[projects]] branch = "master" - digest = "1:8a020f916b23ff574845789daee6818daf8d25a4852419aae3f0b12378ba432a" name = "github.com/spf13/jwalterweatherman" packages = ["."] - pruneopts = "UT" revision = "14d3d4c518341bea657dd8a226f5121c0ff8c9f2" [[projects]] - digest = "1:dab83a1bbc7ad3d7a6ba1a1cc1760f25ac38cdf7d96a5cdd55cd915a4f5ceaf9" name = "github.com/spf13/pflag" packages = ["."] - pruneopts = "UT" revision = "9a97c102cda95a86cec2345a6f09f55a939babf5" version = "v1.0.2" [[projects]] - digest = "1:f8e1a678a2571e265f4bf91a3e5e32aa6b1474a55cb0ea849750cc177b664d96" name = "github.com/spf13/viper" packages = ["."] - pruneopts = "UT" revision = "25b30aa063fc18e48662b86996252eabdcf2f0c7" version = "v1.0.0" [[projects]] - digest = "1:7e8d267900c7fa7f35129a2a37596e38ed0f11ca746d6d9ba727980ee138f9f6" name = "github.com/stretchr/testify" packages = [ "assert", - "require", + "require" ] - pruneopts = "UT" revision = "12b6f73e6084dad08a7c6e575284b177ecafbc71" version = "v1.2.1" [[projects]] branch = "master" - digest = "1:f2ffd421680b0a3f7887501b3c6974bcf19217ecd301d0e2c9b681940ec363d5" name = "github.com/syndtr/goleveldb" packages = [ "leveldb", @@ -487,43 +394,35 @@ "leveldb/opt", "leveldb/storage", "leveldb/table", - "leveldb/util", + "leveldb/util" ] - pruneopts = "UT" revision = "ae2bd5eed72d46b28834ec3f60db3a3ebedd8dbd" [[projects]] branch = "master" - digest = "1:087aaa7920e5d0bf79586feb57ce01c35c830396ab4392798112e8aae8c47722" name = "github.com/tendermint/ed25519" packages = [ ".", "edwards25519", - "extra25519", + "extra25519" ] - pruneopts = "UT" revision = "d8387025d2b9d158cf4efb07e7ebf814bcce2057" [[projects]] - digest = "1:e0a2a4be1e20c305badc2b0a7a9ab7fef6da500763bec23ab81df3b5f9eec9ee" name = "github.com/tendermint/go-amino" packages = ["."] - pruneopts = "UT" revision = "a8328986c1608950fa5d3d1c0472cccc4f8fc02c" version = "v0.12.0-rc0" [[projects]] branch = "irisnet/feature_upgrade" - digest = "1:54f4d8af39f33769cd0d9de09141a676283d2948a349c9ae72dc39dfd6a6aae8" name = "github.com/tendermint/iavl" packages = ["."] - pruneopts = "UT" revision = "849c21e8f93ce782cb9f9f64fabcccb5580b4f90" source = "https://github.com/irisnet/iavl.git" [[projects]] branch = "irisnet/develop" - digest = "1:3b9a2a8316e40b16dcd3f5f42e467b049b5d68465a5d8360014d0b3acebd570e" name = "github.com/tendermint/tendermint" packages = [ "abci/client", @@ -583,22 +482,18 @@ "state/txindex/kv", "state/txindex/null", "types", - "version", + "version" ] - pruneopts = "UT" revision = "c7737b350a9453bab6571d8d5f489a590609d6f2" source = "https://github.com/irisnet/tendermint.git" [[projects]] - digest = "1:4dcb0dd65feecb068ce23a234d1a07c7868a1e39f52a6defcae0bb371d03abf6" name = "github.com/zondax/ledger-goclient" packages = ["."] - pruneopts = "UT" revision = "4296ee5701e945f9b3a7dbe51f402e0b9be57259" [[projects]] branch = "master" - digest = "1:27507554c6d4f060d8d700c31c624a43d3a92baa634e178ddc044bdf7d13b44a" name = "golang.org/x/crypto" packages = [ "blowfish", @@ -614,13 +509,11 @@ "pbkdf2", "poly1305", "ripemd160", - "salsa20/salsa", + "salsa20/salsa" ] - pruneopts = "UT" revision = "614d502a4dac94afa3a6ce146bd1736da82514c6" [[projects]] - digest = "1:d36f55a999540d29b6ea3c2ea29d71c76b1d9853fdcd3e5c5cb4836f2ba118f1" name = "golang.org/x/net" packages = [ "context", @@ -630,25 +523,21 @@ "idna", "internal/timeseries", "netutil", - "trace", + "trace" ] - pruneopts = "UT" revision = "292b43bbf7cb8d35ddf40f8d5100ef3837cced3f" [[projects]] branch = "master" - digest = "1:4127b29f1944eff530af85b792ea671e77efbeceffc0a9394f55c8da9798caf0" name = "golang.org/x/sys" packages = [ "cpu", "unix", - "windows", + "windows" ] - pruneopts = "UT" revision = "4910a1d54f876d7b22162a85f4d066d3ee649450" [[projects]] - digest = "1:a2ab62866c75542dd18d2b069fec854577a20211d7c0ea6ae746072a1dccdd18" name = "golang.org/x/text" packages = [ "collate", @@ -664,22 +553,18 @@ "unicode/bidi", "unicode/cldr", "unicode/norm", - "unicode/rangetable", + "unicode/rangetable" ] - pruneopts = "UT" revision = "f21a4dfb5e38f5895301dc265a8def02365cc3d0" version = "v0.3.0" [[projects]] branch = "master" - digest = "1:077c1c599507b3b3e9156d17d36e1e61928ee9b53a5b420f10f28ebd4a0b275c" name = "google.golang.org/genproto" packages = ["googleapis/rpc/status"] - pruneopts = "UT" revision = "c66870c02cf823ceb633bcd05be3c7cda29976f4" [[projects]] - digest = "1:2dab32a43451e320e49608ff4542fdfc653c95dcc35d0065ec9c6c3dd540ed74" name = "google.golang.org/grpc" packages = [ ".", @@ -706,97 +591,20 @@ "stats", "status", "tap", - "transport", + "transport" ] - pruneopts = "UT" revision = "168a6198bcb0ef175f7dacec0b8691fc141dc9b8" version = "v1.13.0" [[projects]] - digest = "1:342378ac4dcb378a5448dd723f0784ae519383532f5e70ade24132c4c8693202" name = "gopkg.in/yaml.v2" packages = ["."] - pruneopts = "UT" revision = "5420a8b6744d3b0345ab293f6fcba19c978f1183" version = "v2.2.1" [solve-meta] analyzer-name = "dep" analyzer-version = 1 - input-imports = [ - "github.com/cosmos/cosmos-sdk/baseapp", - "github.com/cosmos/cosmos-sdk/client", - "github.com/cosmos/cosmos-sdk/client/context", - "github.com/cosmos/cosmos-sdk/client/keys", - "github.com/cosmos/cosmos-sdk/client/rpc", - "github.com/cosmos/cosmos-sdk/client/tx", - "github.com/cosmos/cosmos-sdk/client/utils", - "github.com/cosmos/cosmos-sdk/crypto/keys", - "github.com/cosmos/cosmos-sdk/server", - "github.com/cosmos/cosmos-sdk/server/config", - "github.com/cosmos/cosmos-sdk/store", - "github.com/cosmos/cosmos-sdk/types", - "github.com/cosmos/cosmos-sdk/version", - "github.com/cosmos/cosmos-sdk/wire", - "github.com/cosmos/cosmos-sdk/x/auth", - "github.com/cosmos/cosmos-sdk/x/auth/client/cli", - "github.com/cosmos/cosmos-sdk/x/auth/client/context", - "github.com/cosmos/cosmos-sdk/x/auth/client/rest", - "github.com/cosmos/cosmos-sdk/x/bank", - "github.com/cosmos/cosmos-sdk/x/bank/client", - "github.com/cosmos/cosmos-sdk/x/bank/client/cli", - "github.com/cosmos/cosmos-sdk/x/bank/client/rest", - "github.com/cosmos/cosmos-sdk/x/gov", - "github.com/cosmos/cosmos-sdk/x/gov/client/cli", - "github.com/cosmos/cosmos-sdk/x/gov/client/rest", - "github.com/cosmos/cosmos-sdk/x/gov/tags", - "github.com/cosmos/cosmos-sdk/x/ibc", - "github.com/cosmos/cosmos-sdk/x/ibc/client/cli", - "github.com/cosmos/cosmos-sdk/x/ibc/client/rest", - "github.com/cosmos/cosmos-sdk/x/mock", - "github.com/cosmos/cosmos-sdk/x/mock/simulation", - "github.com/cosmos/cosmos-sdk/x/params", - "github.com/cosmos/cosmos-sdk/x/slashing", - "github.com/cosmos/cosmos-sdk/x/slashing/client/cli", - "github.com/cosmos/cosmos-sdk/x/slashing/client/rest", - "github.com/cosmos/cosmos-sdk/x/stake", - "github.com/cosmos/cosmos-sdk/x/stake/client/cli", - "github.com/cosmos/cosmos-sdk/x/stake/client/rest", - "github.com/cosmos/cosmos-sdk/x/stake/types", - "github.com/go-kit/kit/metrics", - "github.com/go-kit/kit/metrics/prometheus", - "github.com/gorilla/mux", - "github.com/pelletier/go-toml", - "github.com/pkg/errors", - "github.com/prometheus/client_golang/prometheus", - "github.com/prometheus/client_golang/prometheus/promhttp", - "github.com/shirou/gopsutil/cpu", - "github.com/shirou/gopsutil/disk", - "github.com/shirou/gopsutil/mem", - "github.com/shirou/gopsutil/process", - "github.com/spf13/cobra", - "github.com/spf13/pflag", - "github.com/spf13/viper", - "github.com/stretchr/testify/assert", - "github.com/stretchr/testify/require", - "github.com/tendermint/tendermint/abci/server", - "github.com/tendermint/tendermint/abci/types", - "github.com/tendermint/tendermint/blockchain", - "github.com/tendermint/tendermint/consensus", - "github.com/tendermint/tendermint/crypto", - "github.com/tendermint/tendermint/crypto/ed25519", - "github.com/tendermint/tendermint/crypto/tmhash", - "github.com/tendermint/tendermint/libs/cli", - "github.com/tendermint/tendermint/libs/common", - "github.com/tendermint/tendermint/libs/db", - "github.com/tendermint/tendermint/libs/log", - "github.com/tendermint/tendermint/mempool", - "github.com/tendermint/tendermint/node", - "github.com/tendermint/tendermint/rpc/client", - "github.com/tendermint/tendermint/rpc/core/types", - "github.com/tendermint/tendermint/rpc/lib/server", - "github.com/tendermint/tendermint/state", - "github.com/tendermint/tendermint/types", - ] + inputs-digest = "050eea92b57369413abee47f35d53adbb92d4410aed3e18e465683e22738b60c" solver-name = "gps-cdcl" solver-version = 1 diff --git a/app/app.go b/app/app.go index d72209a56..b6f8d575f 100644 --- a/app/app.go +++ b/app/app.go @@ -4,34 +4,33 @@ import ( "encoding/json" "io" "os" - bam "github.com/irisnet/irishub/baseapp" abci "github.com/tendermint/tendermint/abci/types" cmn "github.com/tendermint/tendermint/libs/common" dbm "github.com/tendermint/tendermint/libs/db" "github.com/tendermint/tendermint/libs/log" tmtypes "github.com/tendermint/tendermint/types" - sdk "github.com/cosmos/cosmos-sdk/types" "github.com/cosmos/cosmos-sdk/wire" "github.com/cosmos/cosmos-sdk/x/auth" "github.com/cosmos/cosmos-sdk/x/bank" "github.com/irisnet/irishub/modules/gov" - "github.com/cosmos/cosmos-sdk/x/ibc" + "github.com/irisnet/irishub/modules/gov/params" "github.com/irisnet/irishub/modules/iparams" + "github.com/irisnet/irishub/modules/upgrade" + "github.com/spf13/viper" + "github.com/irisnet/irishub/modules/parameter" + "fmt" "github.com/cosmos/cosmos-sdk/x/slashing" + "strings" + "github.com/cosmos/cosmos-sdk/x/ibc" "github.com/cosmos/cosmos-sdk/x/stake" - "github.com/irisnet/irishub/modules/upgrade" - "errors" - "fmt" "github.com/cosmos/cosmos-sdk/server" - "github.com/spf13/viper" tmcli "github.com/tendermint/tendermint/libs/cli" "github.com/tendermint/tendermint/node" sm "github.com/tendermint/tendermint/state" bc "github.com/tendermint/tendermint/blockchain" - "strings" "github.com/cosmos/cosmos-sdk/x/params" ) @@ -144,6 +143,8 @@ func NewIrisApp(logger log.Logger, db dbm.DB, traceStore io.Writer, baseAppOptio app.SetFeePreprocessHandler(bam.NewFeePreprocessHandler(app.feeManager)) app.MountStoresIAVL(app.keyMain, app.keyAccount, app.keyIBC, app.keyStake, app.keySlashing, app.keyGov, app.keyFeeCollection, app.keyParams, app.keyIparams, app.keyUpgrade) app.SetRunMsg(app.runMsgs) + + var err error if viper.GetBool(FlagReplay) { err = app.LoadVersion(lastHeight, app.keyMain) @@ -155,7 +156,8 @@ func NewIrisApp(logger log.Logger, db dbm.DB, traceStore io.Writer, baseAppOptio } upgrade.RegisterModuleList(app.Router()) - + govparams.DepositProcedureParameter.SetReadWriter(app.paramsKeeper.Setter()) + parameter.RegisterGovParamMapping(&govparams.DepositProcedureParameter) return app } @@ -226,7 +228,7 @@ func (app *IrisApp) initChainer(ctx sdk.Context, req abci.RequestInitChain) abci gov.InitGenesis(ctx, app.govKeeper, gov.GenesisState{ StartingProposalID: 1, - DepositProcedure: gov.DepositProcedure{ + DepositProcedure: govparams.DepositProcedure{ MinDeposit: sdk.Coins{minDeposit}, MaxDepositPeriod: 1440, }, diff --git a/modules/gov/genesis.go b/modules/gov/genesis.go index 826f7e43c..e2e7d274e 100644 --- a/modules/gov/genesis.go +++ b/modules/gov/genesis.go @@ -2,17 +2,19 @@ package gov import ( sdk "github.com/cosmos/cosmos-sdk/types" + "github.com/irisnet/irishub/modules/parameter" + "github.com/irisnet/irishub/modules/gov/params" ) // GenesisState - all staking state that must be provided at genesis type GenesisState struct { StartingProposalID int64 `json:"starting_proposalID"` - DepositProcedure DepositProcedure `json:"deposit_period"` + DepositProcedure govparams.DepositProcedure `json:"deposit_period"` VotingProcedure VotingProcedure `json:"voting_period"` TallyingProcedure TallyingProcedure `json:"tallying_procedure"` } -func NewGenesisState(startingProposalID int64, dp DepositProcedure, vp VotingProcedure, tp TallyingProcedure) GenesisState { +func NewGenesisState(startingProposalID int64, dp govparams.DepositProcedure, vp VotingProcedure, tp TallyingProcedure) GenesisState { return GenesisState{ StartingProposalID: startingProposalID, DepositProcedure: dp, @@ -28,9 +30,11 @@ func InitGenesis(ctx sdk.Context, k Keeper,data GenesisState) { // TODO: Handle this with #870 panic(err) } - k.setDepositProcedure(ctx, data.DepositProcedure) + //k.setDepositProcedure(ctx, data.DepositProcedure) + parameter.InitGenesisParameter(&govparams.DepositProcedureParameter, ctx, data.DepositProcedure) k.setVotingProcedure(ctx, data.VotingProcedure) k.setTallyingProcedure(ctx, data.TallyingProcedure) + } // WriteGenesis - output genesis parameters diff --git a/modules/gov/keeper.go b/modules/gov/keeper.go index b482a19e7..b903b9960 100644 --- a/modules/gov/keeper.go +++ b/modules/gov/keeper.go @@ -5,6 +5,7 @@ import ( "github.com/cosmos/cosmos-sdk/wire" "github.com/cosmos/cosmos-sdk/x/bank" "github.com/irisnet/irishub/modules/iparams" + "github.com/irisnet/irishub/modules/gov/params" "strconv" "strings" ) @@ -211,27 +212,11 @@ func (keeper Keeper) activateVotingPeriod(ctx sdk.Context, proposal Proposal) { // Procedures // Returns the current Deposit Procedure from the global param store -func (keeper Keeper) GetDepositProcedure(ctx sdk.Context) DepositProcedure { - return DepositProcedure{ - MinDeposit: keeper.getDepositProcedureDeposit(ctx), - MaxDepositPeriod: keeper.getDepositProcedureMaxDepositPeriod(ctx), - } +func (keeper Keeper) GetDepositProcedure(ctx sdk.Context) govparams.DepositProcedure { + govparams.DepositProcedureParameter.LoadValue(ctx) + return govparams.DepositProcedureParameter.Value } -func (keeper Keeper) getDepositProcedureMaxDepositPeriod(ctx sdk.Context) (MaxDepositPeriod int64) { - var maxDepositPeriod string - if keeper.ps.Get(ctx, ParamStoreKeyDepositProcedureMaxDepositPeriod, &maxDepositPeriod) == nil { - MaxDepositPeriod, _ = strconv.ParseInt(maxDepositPeriod, 10, 64) - } - return -} - -func (keeper Keeper) getDepositProcedureDeposit(ctx sdk.Context) (Deposit sdk.Coins) { - var data string - keeper.ps.Get(ctx, ParamStoreKeyDepositProcedureDeposit, &data) - Deposit, _ = sdk.ParseCoins(data) - return -} // Returns the current Voting Procedure from the global param store func (keeper Keeper) GetVotingProcedure(ctx sdk.Context) VotingProcedure { @@ -267,14 +252,14 @@ func (keeper Keeper) getTallyingProcedure(ctx sdk.Context, key string) sdk.Rat { } -func (keeper Keeper) setDepositProcedure(ctx sdk.Context, depositProcedure DepositProcedure) { - minDeposit := depositProcedure.MinDeposit.String() - keeper.ps.Set(ctx, ParamStoreKeyDepositProcedureDeposit, &minDeposit) - - maxDepositPeriod := strconv.FormatInt(depositProcedure.MaxDepositPeriod, 10) - keeper.ps.Set(ctx, ParamStoreKeyDepositProcedureMaxDepositPeriod, &maxDepositPeriod) - -} +//func (keeper Keeper) setDepositProcedure(ctx sdk.Context, depositProcedure DepositProcedure) { +// minDeposit := depositProcedure.MinDeposit.String() +// keeper.ps.Set(ctx, ParamStoreKeyDepositProcedureDeposit, &minDeposit) +// +// maxDepositPeriod := strconv.FormatInt(depositProcedure.MaxDepositPeriod, 10) +// keeper.ps.Set (ctx, ParamStoreKeyDepositProcedureMaxDepositPeriod, &maxDepositPeriod) +// +//} func (keeper Keeper) setVotingProcedure(ctx sdk.Context, votingProcedure VotingProcedure) { votingPeriod := strconv.FormatInt(votingProcedure.VotingPeriod, 10) diff --git a/modules/gov/params/errors.go b/modules/gov/params/errors.go new file mode 100644 index 000000000..dc30b27c0 --- /dev/null +++ b/modules/gov/params/errors.go @@ -0,0 +1,12 @@ +package govparams + +import ( + sdk "github.com/cosmos/cosmos-sdk/types" +) +const ( + DefaultCodespace sdk.CodespaceType = 5 + CodeInvalidMinDeposit sdk.CodeType = 100 + CodeInvalidMinDepositDenom sdk.CodeType = 101 + CodeInvalidMinDepositAmount sdk.CodeType = 102 + CodeInvalidDepositPeriod sdk.CodeType = 103 +) diff --git a/modules/gov/params/gov_params.go b/modules/gov/params/gov_params.go index deda1e77e..307cfe10a 100644 --- a/modules/gov/params/gov_params.go +++ b/modules/gov/params/gov_params.go @@ -5,22 +5,27 @@ import ( "fmt" sdk "github.com/cosmos/cosmos-sdk/types" "github.com/cosmos/cosmos-sdk/x/params" - "github.com/irisnet/irishub/modules/gov" ) var DepositProcedureParameter DepositProcedureParam +// Procedure around Deposits for governance +type DepositProcedure struct { + MinDeposit sdk.Coins `json:"min_deposit"` // Minimum deposit for a proposal to enter voting period. + MaxDepositPeriod int64 `json:"max_deposit_period"` // Maximum period for Atom holders to deposit on a proposal. Initial value: 2 months +} + type DepositProcedureParam struct { - Value gov.DepositProcedure + Value DepositProcedure psetter params.Setter pgetter params.Getter } func (param *DepositProcedureParam) InitGenesis(genesisState interface{}) { - if value, ok := genesisState.(gov.DepositProcedure); ok { + if value, ok := genesisState.(DepositProcedure); ok { param.Value = value } else { - param.Value = gov.DepositProcedure{ + param.Value = DepositProcedure{ MinDeposit: sdk.Coins{sdk.NewInt64Coin("iris", 10)}, MaxDepositPeriod: 1440} } @@ -66,19 +71,19 @@ func (param *DepositProcedureParam) Valid(jsonStr string) sdk.Error { if err = json.Unmarshal([]byte(jsonStr), ¶m.Value); err == nil { if param.Value.MinDeposit[0].Denom != "iris" { - return sdk.NewError(gov.DefaultCodespace, gov.CodeInvalidMinDepositDenom, fmt.Sprintf("It should be iris ")) + return sdk.NewError(DefaultCodespace, CodeInvalidMinDepositDenom, fmt.Sprintf("It should be iris ")) } if param.Value.MinDeposit[0].Amount.GT(sdk.NewInt(10)) && param.Value.MinDeposit[0].Amount.LT(sdk.NewInt(20000)) { - return sdk.NewError(gov.DefaultCodespace, gov.CodeInvalidMinDepositAmount, fmt.Sprintf("MinDepositAmount should be larger than 10 and less than 20000")) + return sdk.NewError(DefaultCodespace, CodeInvalidMinDepositAmount, fmt.Sprintf("MinDepositAmount should be larger than 10 and less than 20000")) } if param.Value.MaxDepositPeriod > 20 && param.Value.MaxDepositPeriod < 20000 { - return sdk.NewError(gov.DefaultCodespace, gov.CodeInvalidDepositPeriod, fmt.Sprintf("MaxDepositPeriod should be larger than 20 and less than 20000")) + return sdk.NewError(DefaultCodespace, CodeInvalidDepositPeriod, fmt.Sprintf("MaxDepositPeriod should be larger than 20 and less than 20000")) } return nil } - return sdk.NewError(gov.DefaultCodespace, gov.CodeInvalidMinDeposit, fmt.Sprintf("Json is not valid")) + return sdk.NewError(DefaultCodespace, CodeInvalidMinDeposit, fmt.Sprintf("Json is not valid")) } diff --git a/modules/gov/params/gov_params_test.go b/modules/gov/params/gov_params_test.go index a7e93e95a..e659ff77c 100644 --- a/modules/gov/params/gov_params_test.go +++ b/modules/gov/params/gov_params_test.go @@ -5,7 +5,6 @@ import ( sdk "github.com/cosmos/cosmos-sdk/types" "github.com/cosmos/cosmos-sdk/wire" "github.com/cosmos/cosmos-sdk/x/params" - "github.com/irisnet/irishub/modules/gov" "github.com/stretchr/testify/require" abci "github.com/tendermint/tendermint/abci/types" dbm "github.com/tendermint/tendermint/libs/db" @@ -27,11 +26,11 @@ func TestDepositProcedureParam(t *testing.T) { ctx := defaultContext(skey) paramKeeper := params.NewKeeper(wire.NewCodec(), skey) - p1 := gov.DepositProcedure{ + p1 := DepositProcedure{ MinDeposit: sdk.Coins{sdk.NewInt64Coin("iris", 10)}, MaxDepositPeriod: 1440} - p2 := gov.DepositProcedure{ + p2 := DepositProcedure{ MinDeposit: sdk.Coins{sdk.NewInt64Coin("iris", 30)}, MaxDepositPeriod: 1440} diff --git a/modules/gov/procedures.go b/modules/gov/procedures.go index f46c2149f..7876bffd5 100644 --- a/modules/gov/procedures.go +++ b/modules/gov/procedures.go @@ -4,12 +4,6 @@ import ( sdk "github.com/cosmos/cosmos-sdk/types" ) -// Procedure around Deposits for governance -type DepositProcedure struct { - MinDeposit sdk.Coins `json:"min_deposit"` // Minimum deposit for a proposal to enter voting period. - MaxDepositPeriod int64 `json:"max_deposit_period"` // Maximum period for Atom holders to deposit on a proposal. Initial value: 2 months -} - // Procedure around Tallying votes in governance type TallyingProcedure struct { Threshold sdk.Rat `json:"threshold"` // Minimum propotion of Yes votes for proposal to pass. Initial value: 0.5 diff --git a/modules/gov/test_common.go b/modules/gov/test_common.go index 560f56e35..119378783 100644 --- a/modules/gov/test_common.go +++ b/modules/gov/test_common.go @@ -17,6 +17,7 @@ import ( "github.com/irisnet/irishub/modules/iparams" "github.com/irisnet/irishub/types" "fmt" + "github.com/irisnet/irishub/modules/gov/params" ) // initialize the mock application for this module @@ -74,7 +75,7 @@ func getInitChainer(mapp *mock.App, keeper Keeper, stakeKeeper stake.Keeper) sdk minDeposit,_ := ct.ConvertToMinCoin(fmt.Sprintf("%d%s",10,"iris")) InitGenesis(ctx, keeper, GenesisState{ StartingProposalID: 1, - DepositProcedure: DepositProcedure{ + DepositProcedure: govparams.DepositProcedure{ MinDeposit: sdk.Coins{minDeposit}, MaxDepositPeriod: 1440, }, diff --git a/modules/gov/wire.go b/modules/gov/wire.go index b3cdc96bf..0e55cdfb3 100644 --- a/modules/gov/wire.go +++ b/modules/gov/wire.go @@ -2,6 +2,7 @@ package gov import ( "github.com/cosmos/cosmos-sdk/wire" + "github.com/irisnet/irishub/modules/gov/params" ) // Register concrete types on wire codec @@ -15,7 +16,7 @@ func RegisterWire(cdc *wire.Codec) { cdc.RegisterConcrete(&TextProposal{}, "gov/TextProposal", nil) //////////////////// iris begin /////////////////////////// - cdc.RegisterConcrete(DepositProcedure{},"cosmos-sdk/DepositProcedure",nil) + cdc.RegisterConcrete(govparams.DepositProcedure{},"cosmos-sdk/DepositProcedure",nil) cdc.RegisterConcrete(TallyingProcedure{},"cosmos-sdk/TallyingProcedure",nil) cdc.RegisterConcrete(VotingProcedure{},"cosmos-sdk/VotingProcedure",nil) cdc.RegisterConcrete(&ParameterProposal{}, "gov/ParameterProposal", nil) diff --git a/modules/parameter/helper_test.go b/modules/parameter/helper_test.go index 71bf0d41c..cc8a32445 100644 --- a/modules/parameter/helper_test.go +++ b/modules/parameter/helper_test.go @@ -5,8 +5,7 @@ import ( sdk "github.com/cosmos/cosmos-sdk/types" "github.com/cosmos/cosmos-sdk/wire" "github.com/cosmos/cosmos-sdk/x/params" - "github.com/irisnet/irishub/modules/gov" - govParam "github.com/irisnet/irishub/modules/gov/params" + "github.com/irisnet/irishub/modules/gov/params" "github.com/stretchr/testify/require" abci "github.com/tendermint/tendermint/abci/types" dbm "github.com/tendermint/tendermint/libs/db" @@ -29,23 +28,23 @@ func TestInitGenesisParameter(t *testing.T) { ctx := defaultContext(skey) paramKeeper := params.NewKeeper(wire.NewCodec(), skey) - p1 := gov.DepositProcedure{ + p1 := govparams.DepositProcedure{ MinDeposit: sdk.Coins{sdk.NewInt64Coin("iris", 10)}, MaxDepositPeriod: 1440} - p2 := gov.DepositProcedure{ + p2 := govparams.DepositProcedure{ MinDeposit: sdk.Coins{sdk.NewInt64Coin("iris", 20)}, MaxDepositPeriod: 1440} - govParam.DepositProcedureParameter.SetReadWriter(paramKeeper.Setter()) + govparams.DepositProcedureParameter.SetReadWriter(paramKeeper.Setter()) - InitGenesisParameter(&govParam.DepositProcedureParameter, ctx,nil) + InitGenesisParameter(&govparams.DepositProcedureParameter, ctx,nil) - require.Equal(t, p1, govParam.DepositProcedureParameter.Value) + require.Equal(t, p1, govparams.DepositProcedureParameter.Value) - require.Equal(t, govParam.DepositProcedureParameter.ToJson(), "{\"min_deposit\":[{\"denom\":\"iris\",\"amount\":\"10\"}],\"max_deposit_period\":1440}") + require.Equal(t, govparams.DepositProcedureParameter.ToJson(), "{\"min_deposit\":[{\"denom\":\"iris\",\"amount\":\"10\"}],\"max_deposit_period\":1440}") - InitGenesisParameter(&govParam.DepositProcedureParameter, ctx, p2) + InitGenesisParameter(&govparams.DepositProcedureParameter, ctx, p2) - require.Equal(t, p1, govParam.DepositProcedureParameter.Value) + require.Equal(t, p1, govparams.DepositProcedureParameter.Value) } \ No newline at end of file diff --git a/modules/parameter/paramMap_test.go b/modules/parameter/paramMap_test.go index bc48bd25b..6e9c4e3cc 100644 --- a/modules/parameter/paramMap_test.go +++ b/modules/parameter/paramMap_test.go @@ -4,8 +4,7 @@ import ( sdk "github.com/cosmos/cosmos-sdk/types" "github.com/cosmos/cosmos-sdk/wire" "github.com/cosmos/cosmos-sdk/x/params" - "github.com/irisnet/irishub/modules/gov" - govParam "github.com/irisnet/irishub/modules/gov/params" + "github.com/irisnet/irishub/modules/gov/params" "github.com/stretchr/testify/require" "testing" ) @@ -16,22 +15,22 @@ func TestRegisterParamMapping(t *testing.T) { ctx := defaultContext(skey) paramKeeper := params.NewKeeper(wire.NewCodec(), skey) - p1 := gov.DepositProcedure{ + p1 := govparams.DepositProcedure{ MinDeposit: sdk.Coins{sdk.NewInt64Coin("iris", 10)}, MaxDepositPeriod: 1440} - p2 := gov.DepositProcedure{ + p2 := govparams.DepositProcedure{ MinDeposit: sdk.Coins{sdk.NewInt64Coin("iris", 30)}, MaxDepositPeriod: 1440} - govParam.DepositProcedureParameter.SetReadWriter(paramKeeper.Setter()) - RegisterGovParamMapping(&govParam.DepositProcedureParameter) - InitGenesisParameter(&govParam.DepositProcedureParameter, ctx, nil) + govparams.DepositProcedureParameter.SetReadWriter(paramKeeper.Setter()) + RegisterGovParamMapping(&govparams.DepositProcedureParameter) + InitGenesisParameter(&govparams.DepositProcedureParameter, ctx, nil) - require.Equal(t, paramMapping[govParam.DepositProcedureParameter.GetStoreKey()].ToJson(), "{\"min_deposit\":[{\"denom\":\"iris\",\"amount\":\"10\"}],\"max_deposit_period\":1440}") - require.Equal(t, p1, govParam.DepositProcedureParameter.Value) + require.Equal(t, paramMapping[govparams.DepositProcedureParameter.GetStoreKey()].ToJson(), "{\"min_deposit\":[{\"denom\":\"iris\",\"amount\":\"10\"}],\"max_deposit_period\":1440}") + require.Equal(t, p1, govparams.DepositProcedureParameter.Value) - paramMapping[govParam.DepositProcedureParameter.GetStoreKey()].Update(ctx, "{\"min_deposit\":[{\"denom\":\"iris\",\"amount\":\"30\"}],\"max_deposit_period\":1440}") - govParam.DepositProcedureParameter.LoadValue(ctx) - require.Equal(t, p2, govParam.DepositProcedureParameter.Value) + paramMapping[govparams.DepositProcedureParameter.GetStoreKey()].Update(ctx, "{\"min_deposit\":[{\"denom\":\"iris\",\"amount\":\"30\"}],\"max_deposit_period\":1440}") + govparams.DepositProcedureParameter.LoadValue(ctx) + require.Equal(t, p2, govparams.DepositProcedureParameter.Value) } diff --git a/modules/parameter/parameter.go b/modules/parameter/parameter.go index caf2a1853..586c8e909 100644 --- a/modules/parameter/parameter.go +++ b/modules/parameter/parameter.go @@ -25,7 +25,7 @@ type SignalParameter interface { type GovParameter interface { Parameter - Valid(json string) error + Valid(json string) sdk.Error Update(ctx sdk.Context, json string) From 2fcb0f76ae6c0442921ea3d08c43e672a16142dc Mon Sep 17 00:00:00 2001 From: xujiacheng Date: Fri, 14 Sep 2018 17:41:13 +0800 Subject: [PATCH 2/2] IRISHUB-404:make the code clean --- app/app.go | 52 +++++++++++++++--------------- app/genesis.go | 18 +++++------ modules/gov/errors.go | 2 +- modules/gov/keeper.go | 12 +++---- modules/gov/params/errors.go | 11 ++++--- modules/gov/params/gov_params.go | 6 ++-- modules/gov/test_common.go | 8 ++--- modules/parameter/helper.go | 8 +++++ modules/parameter/helper_test.go | 6 ++-- modules/parameter/paramMap.go | 9 +++--- modules/parameter/paramMap_test.go | 2 +- modules/parameter/parameter.go | 3 +- 12 files changed, 72 insertions(+), 65 deletions(-) diff --git a/app/app.go b/app/app.go index b6f8d575f..050832fa9 100644 --- a/app/app.go +++ b/app/app.go @@ -2,36 +2,36 @@ package app import ( "encoding/json" - "io" - "os" - bam "github.com/irisnet/irishub/baseapp" - abci "github.com/tendermint/tendermint/abci/types" - cmn "github.com/tendermint/tendermint/libs/common" - dbm "github.com/tendermint/tendermint/libs/db" - "github.com/tendermint/tendermint/libs/log" - tmtypes "github.com/tendermint/tendermint/types" + "errors" + "fmt" + "github.com/cosmos/cosmos-sdk/server" sdk "github.com/cosmos/cosmos-sdk/types" "github.com/cosmos/cosmos-sdk/wire" "github.com/cosmos/cosmos-sdk/x/auth" "github.com/cosmos/cosmos-sdk/x/bank" + "github.com/cosmos/cosmos-sdk/x/ibc" + "github.com/cosmos/cosmos-sdk/x/params" + "github.com/cosmos/cosmos-sdk/x/slashing" + "github.com/cosmos/cosmos-sdk/x/stake" + bam "github.com/irisnet/irishub/baseapp" "github.com/irisnet/irishub/modules/gov" "github.com/irisnet/irishub/modules/gov/params" "github.com/irisnet/irishub/modules/iparams" + "github.com/irisnet/irishub/modules/parameter" "github.com/irisnet/irishub/modules/upgrade" "github.com/spf13/viper" - "github.com/irisnet/irishub/modules/parameter" - "fmt" - "github.com/cosmos/cosmos-sdk/x/slashing" - "strings" - "github.com/cosmos/cosmos-sdk/x/ibc" - "github.com/cosmos/cosmos-sdk/x/stake" - "errors" - "github.com/cosmos/cosmos-sdk/server" + abci "github.com/tendermint/tendermint/abci/types" + bc "github.com/tendermint/tendermint/blockchain" tmcli "github.com/tendermint/tendermint/libs/cli" + cmn "github.com/tendermint/tendermint/libs/common" + dbm "github.com/tendermint/tendermint/libs/db" + "github.com/tendermint/tendermint/libs/log" "github.com/tendermint/tendermint/node" sm "github.com/tendermint/tendermint/state" - bc "github.com/tendermint/tendermint/blockchain" - "github.com/cosmos/cosmos-sdk/x/params" + tmtypes "github.com/tendermint/tendermint/types" + "io" + "os" + "strings" ) const ( @@ -71,11 +71,11 @@ type IrisApp struct { slashingKeeper slashing.Keeper paramsKeeper params.Keeper govKeeper gov.Keeper - iparamsKeeper iparams.Keeper + iparamsKeeper iparams.Keeper upgradeKeeper upgrade.Keeper // fee manager - feeManager bam.FeeManager + feeManager bam.FeeManager } func NewIrisApp(logger log.Logger, db dbm.DB, traceStore io.Writer, baseAppOptions ...func(*bam.BaseApp)) *IrisApp { @@ -96,7 +96,7 @@ func NewIrisApp(logger log.Logger, db dbm.DB, traceStore io.Writer, baseAppOptio keyGov: sdk.NewKVStoreKey("gov"), keyFeeCollection: sdk.NewKVStoreKey("fee"), keyParams: sdk.NewKVStoreKey("params"), - keyIparams: sdk.NewKVStoreKey("iparams"), + keyIparams: sdk.NewKVStoreKey("iparams"), keyUpgrade: sdk.NewKVStoreKey("upgrade"), } @@ -113,7 +113,7 @@ func NewIrisApp(logger log.Logger, db dbm.DB, traceStore io.Writer, baseAppOptio ) // add handlers - app.paramsKeeper = params.NewKeeper(cdc,app.keyParams) + app.paramsKeeper = params.NewKeeper(cdc, app.keyParams) app.iparamsKeeper = iparams.NewKeeper(app.cdc, app.keyIparams) app.coinKeeper = bank.NewKeeper(app.accountMapper) app.ibcMapper = ibc.NewMapper(app.cdc, app.keyIBC, app.RegisterCodespace(ibc.DefaultCodespace)) @@ -144,7 +144,6 @@ func NewIrisApp(logger log.Logger, db dbm.DB, traceStore io.Writer, baseAppOptio app.MountStoresIAVL(app.keyMain, app.keyAccount, app.keyIBC, app.keyStake, app.keySlashing, app.keyGov, app.keyFeeCollection, app.keyParams, app.keyIparams, app.keyUpgrade) app.SetRunMsg(app.runMsgs) - var err error if viper.GetBool(FlagReplay) { err = app.LoadVersion(lastHeight, app.keyMain) @@ -156,8 +155,9 @@ func NewIrisApp(logger log.Logger, db dbm.DB, traceStore io.Writer, baseAppOptio } upgrade.RegisterModuleList(app.Router()) - govparams.DepositProcedureParameter.SetReadWriter(app.paramsKeeper.Setter()) + parameter.SetParamReadWriter(app.paramsKeeper.Setter(), &govparams.DepositProcedureParameter) parameter.RegisterGovParamMapping(&govparams.DepositProcedureParameter) + return app } @@ -221,7 +221,7 @@ func (app *IrisApp) initChainer(ctx sdk.Context, req abci.RequestInitChain) abci panic(err) } - minDeposit,err := IrisCt.ConvertToMinCoin(fmt.Sprintf("%d%s",10,denom)) + minDeposit, err := IrisCt.ConvertToMinCoin(fmt.Sprintf("%d%s", 10, denom)) if err != nil { panic(err) } @@ -350,7 +350,7 @@ func (app *IrisApp) replay() int64 { defer func() { stateDB.Close() blockStoreDB.Close() - } () + }() curState := sm.LoadState(stateDB) preState := sm.LoadPreState(stateDB) diff --git a/app/genesis.go b/app/genesis.go index 0bb7b88b1..b4e8fad80 100644 --- a/app/genesis.go +++ b/app/genesis.go @@ -8,15 +8,15 @@ import ( "github.com/tendermint/tendermint/crypto" tmtypes "github.com/tendermint/tendermint/types" + "fmt" "github.com/cosmos/cosmos-sdk/server" "github.com/cosmos/cosmos-sdk/server/config" sdk "github.com/cosmos/cosmos-sdk/types" "github.com/cosmos/cosmos-sdk/wire" "github.com/cosmos/cosmos-sdk/x/auth" "github.com/cosmos/cosmos-sdk/x/stake" - "time" "github.com/irisnet/irishub/types" - "fmt" + "time" ) // State to Unmarshal @@ -54,13 +54,13 @@ func (ga *GenesisAccount) ToAccount() (acc *auth.BaseAccount) { } var ( - flagName = "name" - flagClientHome = "home-client" - flagOWK = "owk" - denom = "iris-atto" - feeAmt = int64(100) - IrisCt = types.NewDefaultCoinType(denom) - freeFermionVal ,_ = IrisCt.ConvertToMinCoin(fmt.Sprintf("%d%s",feeAmt,denom)) + flagName = "name" + flagClientHome = "home-client" + flagOWK = "owk" + denom = "iris-atto" + feeAmt = int64(100) + IrisCt = types.NewDefaultCoinType(denom) + freeFermionVal, _ = IrisCt.ConvertToMinCoin(fmt.Sprintf("%d%s", feeAmt, denom)) ) const defaultUnbondingTime time.Duration = 60 * 10 * time.Second diff --git a/modules/gov/errors.go b/modules/gov/errors.go index a59672b21..9c6ce4cbf 100644 --- a/modules/gov/errors.go +++ b/modules/gov/errors.go @@ -50,7 +50,7 @@ func ErrAddressNotStaked(codespace sdk.CodespaceType, address sdk.AccAddress) sd return sdk.NewError(codespace, CodeAddressNotStaked, fmt.Sprintf("Address %s is not staked and is thus ineligible to vote", address)) } -func ErrInvalidTitle(codespace sdk.CodespaceType, title string) sdk.Error { +func ErrInvalidTitle(codespace sdk.CodespaceType, title string) sdk.Error { return sdk.NewError(codespace, CodeInvalidTitle, fmt.Sprintf("Proposal Title '%s' is not valid", title)) } diff --git a/modules/gov/keeper.go b/modules/gov/keeper.go index b903b9960..fcd4fb088 100644 --- a/modules/gov/keeper.go +++ b/modules/gov/keeper.go @@ -4,15 +4,14 @@ import ( sdk "github.com/cosmos/cosmos-sdk/types" "github.com/cosmos/cosmos-sdk/wire" "github.com/cosmos/cosmos-sdk/x/bank" - "github.com/irisnet/irishub/modules/iparams" "github.com/irisnet/irishub/modules/gov/params" + "github.com/irisnet/irishub/modules/iparams" "strconv" "strings" ) // nolint - // Governance Keeper type Keeper struct { // The reference to the ParamSetter to get and set Global Params @@ -58,12 +57,12 @@ func (keeper Keeper) WireCodec() *wire.Codec { // ===================================================== // Proposals -func (keeper Keeper) NewProposal(ctx sdk.Context, title string, description string, proposalType ProposalKind,params Params) Proposal{ +func (keeper Keeper) NewProposal(ctx sdk.Context, title string, description string, proposalType ProposalKind, params Params) Proposal { switch proposalType { case ProposalTypeText: return keeper.NewTextProposal(ctx, title, description, proposalType) case ProposalTypeParameterChange: - return keeper.NewParametersProposal(ctx, title, description, proposalType,params) + return keeper.NewParametersProposal(ctx, title, description, proposalType, params) case ProposalTypeSoftwareUpgrade: return keeper.NewUpgradeProposal(ctx, title, description, proposalType) } @@ -92,7 +91,7 @@ func (keeper Keeper) NewTextProposal(ctx sdk.Context, title string, description return proposal } -func (keeper Keeper) NewParametersProposal(ctx sdk.Context, title string, description string, proposalType ProposalKind,params Params) Proposal{ +func (keeper Keeper) NewParametersProposal(ctx sdk.Context, title string, description string, proposalType ProposalKind, params Params) Proposal { proposalID, err := keeper.getNewProposalID(ctx) if err != nil { return nil @@ -116,7 +115,7 @@ func (keeper Keeper) NewParametersProposal(ctx sdk.Context, title string, descri return proposal } -func (keeper Keeper) NewUpgradeProposal(ctx sdk.Context, title string, description string, proposalType ProposalKind) Proposal{ +func (keeper Keeper) NewUpgradeProposal(ctx sdk.Context, title string, description string, proposalType ProposalKind) Proposal { proposalID, err := keeper.getNewProposalID(ctx) if err != nil { return nil @@ -217,7 +216,6 @@ func (keeper Keeper) GetDepositProcedure(ctx sdk.Context) govparams.DepositProce return govparams.DepositProcedureParameter.Value } - // Returns the current Voting Procedure from the global param store func (keeper Keeper) GetVotingProcedure(ctx sdk.Context) VotingProcedure { return VotingProcedure{ diff --git a/modules/gov/params/errors.go b/modules/gov/params/errors.go index dc30b27c0..8b47888e8 100644 --- a/modules/gov/params/errors.go +++ b/modules/gov/params/errors.go @@ -3,10 +3,11 @@ package govparams import ( sdk "github.com/cosmos/cosmos-sdk/types" ) + const ( - DefaultCodespace sdk.CodespaceType = 5 - CodeInvalidMinDeposit sdk.CodeType = 100 - CodeInvalidMinDepositDenom sdk.CodeType = 101 - CodeInvalidMinDepositAmount sdk.CodeType = 102 - CodeInvalidDepositPeriod sdk.CodeType = 103 + DefaultCodespace sdk.CodespaceType = 5 + CodeInvalidMinDeposit sdk.CodeType = 100 + CodeInvalidMinDepositDenom sdk.CodeType = 101 + CodeInvalidMinDepositAmount sdk.CodeType = 102 + CodeInvalidDepositPeriod sdk.CodeType = 103 ) diff --git a/modules/gov/params/gov_params.go b/modules/gov/params/gov_params.go index 307cfe10a..aab999250 100644 --- a/modules/gov/params/gov_params.go +++ b/modules/gov/params/gov_params.go @@ -16,9 +16,9 @@ type DepositProcedure struct { } type DepositProcedureParam struct { - Value DepositProcedure - psetter params.Setter - pgetter params.Getter + Value DepositProcedure + psetter params.Setter + pgetter params.Getter } func (param *DepositProcedureParam) InitGenesis(genesisState interface{}) { diff --git a/modules/gov/test_common.go b/modules/gov/test_common.go index 119378783..b026d2291 100644 --- a/modules/gov/test_common.go +++ b/modules/gov/test_common.go @@ -2,22 +2,22 @@ package gov import ( "bytes" + "github.com/stretchr/testify/require" "log" "sort" "testing" - "github.com/stretchr/testify/require" abci "github.com/tendermint/tendermint/abci/types" "github.com/tendermint/tendermint/crypto" + "fmt" sdk "github.com/cosmos/cosmos-sdk/types" "github.com/cosmos/cosmos-sdk/x/bank" "github.com/cosmos/cosmos-sdk/x/mock" "github.com/cosmos/cosmos-sdk/x/stake" + "github.com/irisnet/irishub/modules/gov/params" "github.com/irisnet/irishub/modules/iparams" "github.com/irisnet/irishub/types" - "fmt" - "github.com/irisnet/irishub/modules/gov/params" ) // initialize the mock application for this module @@ -72,7 +72,7 @@ func getInitChainer(mapp *mock.App, keeper Keeper, stakeKeeper stake.Keeper) sdk panic(err) } ct := types.NewDefaultCoinType("iris") - minDeposit,_ := ct.ConvertToMinCoin(fmt.Sprintf("%d%s",10,"iris")) + minDeposit, _ := ct.ConvertToMinCoin(fmt.Sprintf("%d%s", 10, "iris")) InitGenesis(ctx, keeper, GenesisState{ StartingProposalID: 1, DepositProcedure: govparams.DepositProcedure{ diff --git a/modules/parameter/helper.go b/modules/parameter/helper.go index 836b8ba5e..4fe8d8f2a 100644 --- a/modules/parameter/helper.go +++ b/modules/parameter/helper.go @@ -2,6 +2,7 @@ package parameter import ( sdk "github.com/cosmos/cosmos-sdk/types" + "github.com/cosmos/cosmos-sdk/x/params" ) func InitGenesisParameter(p Parameter, ctx sdk.Context, genesisData interface{}) { @@ -14,3 +15,10 @@ func InitGenesisParameter(p Parameter, ctx sdk.Context, genesisData interface{}) } } +func SetParamReadWriter(setter params.Setter, ps ...Parameter) { + for _, p := range ps { + if p != nil { + p.SetReadWriter(setter) + } + } +} diff --git a/modules/parameter/helper_test.go b/modules/parameter/helper_test.go index cc8a32445..02f136a23 100644 --- a/modules/parameter/helper_test.go +++ b/modules/parameter/helper_test.go @@ -36,9 +36,9 @@ func TestInitGenesisParameter(t *testing.T) { MinDeposit: sdk.Coins{sdk.NewInt64Coin("iris", 20)}, MaxDepositPeriod: 1440} - govparams.DepositProcedureParameter.SetReadWriter(paramKeeper.Setter()) + SetParamReadWriter(paramKeeper.Setter(),&govparams.DepositProcedureParameter,&govparams.DepositProcedureParameter) - InitGenesisParameter(&govparams.DepositProcedureParameter, ctx,nil) + InitGenesisParameter(&govparams.DepositProcedureParameter, ctx, nil) require.Equal(t, p1, govparams.DepositProcedureParameter.Value) @@ -47,4 +47,4 @@ func TestInitGenesisParameter(t *testing.T) { InitGenesisParameter(&govparams.DepositProcedureParameter, ctx, p2) require.Equal(t, p1, govparams.DepositProcedureParameter.Value) -} \ No newline at end of file +} diff --git a/modules/parameter/paramMap.go b/modules/parameter/paramMap.go index 577e6e30f..9f0e4a478 100644 --- a/modules/parameter/paramMap.go +++ b/modules/parameter/paramMap.go @@ -2,9 +2,10 @@ package parameter var paramMapping = make(map[string]GovParameter) -func RegisterGovParamMapping(gp GovParameter) { - - if gp != nil { - paramMapping[gp.GetStoreKey()] = gp +func RegisterGovParamMapping(gps ...GovParameter) { + for _, gp := range gps { + if gp != nil { + paramMapping[gp.GetStoreKey()] = gp + } } } diff --git a/modules/parameter/paramMap_test.go b/modules/parameter/paramMap_test.go index 6e9c4e3cc..289fd2a56 100644 --- a/modules/parameter/paramMap_test.go +++ b/modules/parameter/paramMap_test.go @@ -23,7 +23,7 @@ func TestRegisterParamMapping(t *testing.T) { MinDeposit: sdk.Coins{sdk.NewInt64Coin("iris", 30)}, MaxDepositPeriod: 1440} - govparams.DepositProcedureParameter.SetReadWriter(paramKeeper.Setter()) + SetParamReadWriter(paramKeeper.Setter(),&govparams.DepositProcedureParameter, &govparams.DepositProcedureParameter) RegisterGovParamMapping(&govparams.DepositProcedureParameter) InitGenesisParameter(&govparams.DepositProcedureParameter, ctx, nil) diff --git a/modules/parameter/parameter.go b/modules/parameter/parameter.go index 586c8e909..dd6ee45f9 100644 --- a/modules/parameter/parameter.go +++ b/modules/parameter/parameter.go @@ -6,7 +6,6 @@ import ( ) type Parameter interface { - InitGenesis(interface{}) GetStoreKey() string @@ -38,4 +37,4 @@ type GovArrayParameter interface { LoadValueByKey(ctx sdk.Context, key string) bool Insert(ctx sdk.Context, json string) -} \ No newline at end of file +}