From 2da81aaebf9a4c7dfe8e758327223df6d0ba6e73 Mon Sep 17 00:00:00 2001 From: Yun Date: Fri, 27 Sep 2019 14:12:26 +0900 Subject: [PATCH 1/7] update to cosmos-v0.37.1 --- .circleci/config.yml | 445 ++++++++---------- Makefile | 18 +- README.md | 2 +- contrib/devtools/Makefile | 31 +- contrib/gitian-build.sh | 2 +- contrib/gitian-descriptors/gitian-darwin.yml | 4 +- contrib/gitian-descriptors/gitian-linux.yml | 4 +- contrib/gitian-descriptors/gitian-windows.yml | 4 +- docs/guide/installation.md | 4 +- go.mod | 13 +- go.sum | 53 +-- sims.mk | 67 +-- 12 files changed, 285 insertions(+), 362 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 27536b668..0e77a7b00 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -1,197 +1,161 @@ -version: 2 +version: 2.1 -defaults: &linux_defaults - working_directory: /go/src/github.com/terra-project/core - docker: - - image: circleci/golang:1.12.7 - environment: - GO111MODULE: 'on' - -############ -# -# Configure macos integration tests - -macos_config: &macos_defaults - macos: - xcode: "10.1.0" - working_directory: $HOME/project/src/github.com/terra-project/core - environment: - GO_VERSION: "1.12.5" - -set_macos_env: &macos_env - run: - name: Set environment - command: | - echo 'export PATH=$PATH:$HOME/go/bin' >> $BASH_ENV - echo 'export GOPATH=$HOME/project' >> $BASH_ENV - echo 'export PATH=$PATH:$HOME/go/bin:$GOPATH/bin' >> $BASH_ENV - echo 'export GO111MODULE=on' - -############ -# -# Configure docs deployment - -# docs_update: &docs_deploy -# working_directory: ~/repo -# docker: -# - image: tendermintdev/jq_curl -# environment: -# AWS_REGION: us-east-1 +executors: + golang: + docker: + - image: circleci/golang:1.13.1 + working_directory: /go/src/github.com/terra-project/core + mac: + macos: + xcode: "10.3.0" + working_directory: /Users/distiller/project/src/github.com/terra-project/core + environment: + GO_VERSION: "1.13.1" +commands: + make: + parameters: + description: + type: string + target: + type: string + steps: + - attach_workspace: + at: /tmp/bin + - restore_cache: + name: "Restore source code cache" + keys: + - go-src-v1-{{ .Revision }} + - checkout + - restore_cache: + name: "Restore go modules cache" + keys: + - go-mod-v1-{{ checksum "go.sum" }} + - run: + name: << parameters.description >> + command: | + export BINDIR=/tmp/bin + make << parameters.target >> + mac-set-env: + steps: + - run: + name: "Set environment" + command: | + echo 'export PATH=$PATH:$HOME/go/bin' >> $BASH_ENV + echo 'export GOPATH=$HOME/project' >> $BASH_ENV + echo 'export PATH=$PATH:$HOME/go/bin:$GOPATH/bin' >> $BASH_ENV + echo 'export GO111MODULE=on' jobs: - setup_dependencies: - <<: *linux_defaults + setup-dependencies: + executor: golang steps: - - run: mkdir -p /tmp/workspace/bin - - run: mkdir -p /tmp/workspace/profiles - checkout - restore_cache: + name: "Restore go modules cache" keys: - go-mod-v1-{{ checksum "go.sum" }} - run: - name: binaries + name: Cache go modules + command: make go-mod-cache + - run: + name: Build + command: make build + - run: + name: "Git garbage collection" + command: git gc + - run: + name: "Build tools binaries" command: | - export PATH=/tmp/workspace/bin:$PATH - make go-mod-cache - make install + make tools - save_cache: + name: "Save go modules cache" key: go-mod-v1-{{ checksum "go.sum" }} paths: - "/go/pkg/mod" + - save_cache: + name: "Save source code cache" + key: go-src-v1-{{ .Revision }} + paths: + - ".git" - run: - name: tools command: | - make tools TOOLS_DESTDIR=/tmp/workspace/bin - cp $GOPATH/bin/runsim /tmp/workspace/bin/ + mkdir -p /tmp/bin + cp -r /go/bin/* /tmp/bin - persist_to_workspace: - root: /tmp/workspace + root: "/tmp/bin" paths: - - bin - - profiles + - "." - integration_tests: - <<: *linux_defaults - parallelism: 1 + test-sim-nondeterminism: + executor: golang steps: - - attach_workspace: - at: /tmp/workspace - - checkout - - restore_cache: - keys: - - go-mod-v1-{{ checksum "go.sum" }} - - run: - name: Test cli - command: | - export BUILDDIR=`pwd`/build - make check-build - - test_sim_terra_nondeterminism: - <<: *linux_defaults - parallelism: 1 + - make: + target: test-sim-nondeterminism + description: "Test Terra non-determinism simulations" + + test-sim-fast: + executor: golang steps: - - attach_workspace: - at: /tmp/workspace - - checkout - - restore_cache: - keys: - - go-mod-v1-{{ checksum "go.sum" }} - - run: - name: Test individual module simulations - command: | - make sim-terra-nondeterminism + - make: + target: test-sim-fast + description: "Test Terra fast simulations" - test_sim_terra_fast: - <<: *linux_defaults - parallelism: 1 + test-sim-import-export: + executor: golang steps: - - attach_workspace: - at: /tmp/workspace - - checkout - - restore_cache: - keys: - - go-mod-v1-{{ checksum "go.sum" }} - - run: - name: Test full Terra simulation - command: | - make sim-terra-fast + - make: + target: test-sim-import-export + description: "Test Terra import/export simulation" - test_sim_terra_import_export: - <<: *linux_defaults - parallelism: 1 + test-sim-after-import: + executor: golang steps: - - attach_workspace: - at: /tmp/workspace - - checkout - - restore_cache: - keys: - - go-mod-v1-{{ checksum "go.sum" }} - - run: - name: Test Terra import/export simulation - command: | - /tmp/workspace/bin/runsim -Jobs 4 -SimAppPkg github.com/terra-project/core/app 50 5 TestTerraImportExport + - make: + target: test-sim-after-import + description: "Test Terra simulation after importing state" - test_sim_terra_simulation_after_import: - <<: *linux_defaults - parallelism: 1 + test-sim-multi-seed-short: + executor: golang steps: - - attach_workspace: - at: /tmp/workspace - - checkout - - restore_cache: - keys: - - go-mod-v1-{{ checksum "go.sum" }} - - run: - name: Test Terra import/export simulation - command: | - /tmp/workspace/bin/runsim -Jobs 4 -SimAppPkg github.com/terra-project/core/app 50 5 TestAppSimulationAfterImport + - make: + target: test-sim-multi-seed-short + description: "Test Terra multi-seed simulation (short-lived)" - test_sim_terra_multi_seed_long: - <<: *linux_defaults - parallelism: 1 + test-sim-multi-seed-long: + executor: golang steps: - - attach_workspace: - at: /tmp/workspace - - checkout - - restore_cache: - keys: - - go-mod-v1-{{ checksum "go.sum" }} - - run: - name: Test multi-seed Terra simulation long - command: | - /tmp/workspace/bin/runsim -Jobs 4 -SimAppPkg github.com/terra-project/core/app 500 50 TestFullAppSimulation + - make: + target: test-sim-multi-seed-long + description: "Test Terra multi-seed simulation (long-lived)" - test_sim_terra_multi_seed: - <<: *linux_defaults - parallelism: 1 + integration-tests: + executor: golang steps: - - attach_workspace: - at: /tmp/workspace - checkout - restore_cache: keys: - go-mod-v1-{{ checksum "go.sum" }} - run: - name: Test multi-seed Terra simulation short + name: Test CLI integration command: | - /tmp/workspace/bin/runsim -Jobs 4 -SimAppPkg github.com/terra-project/core/app 50 10 TestFullAppSimulation + export BUILDDIR=`pwd`/build + make test-build - test_cover: - <<: *linux_defaults + test-cover: + executor: golang parallelism: 4 steps: - - attach_workspace: - at: /tmp/workspace - checkout - - run: mkdir -p /tmp/logs - restore_cache: keys: - go-mod-v1-{{ checksum "go.sum" }} - run: - name: Run tests + name: Run tests with coverage command: | export VERSION="$(git describe --tags --long | sed 's/v\(.*\)/\1/')" export GO111MODULE=on - for pkg in $(go list ./... | grep -v github.com/terra-project/core/cli_test | grep -v '/simulation' | circleci tests split --split-by=timings); do + mkdir -p /tmp/logs /tmp/workspace/profiles + for pkg in $(go list ./... | grep -v '/simulation' | circleci tests split); do id=$(echo "$pkg" | sed 's|[/.]|_|g') go test -mod=readonly -timeout 8m -race -coverprofile=/tmp/workspace/profiles/$id.out -covermode=atomic -tags='ledger test_ledger_mock' "$pkg" | tee "/tmp/logs/$id-$RANDOM.log" done @@ -204,7 +168,7 @@ jobs: release: docker: - - image: circleci/golang:1.12.5 + - image: circleci/golang:1.13.1 steps: - checkout - run: @@ -214,9 +178,8 @@ jobs: export GOSUM=$(sha256sum go.sum | cut -d ' ' -f1) curl -sL https://git.io/goreleaser | bash - upload_coverage: - <<: *linux_defaults - parallelism: 1 + upload-coverage: + executor: golang steps: - attach_workspace: at: /tmp/workspace @@ -235,71 +198,48 @@ jobs: - run: name: filter out DONTCOVER command: | - excludelist="$(find ./ -type f -name '*.go' | xargs grep -l 'DONTCOVER' | xargs realpath --relative-to=$GOPATH/src)" + excludelist="$(find . -type f -name '*.go' | xargs grep -l 'DONTCOVER')" for filename in ${excludelist}; do - echo "Excluding ${filename} ..." - sed -i "\%${filename}:%d" coverage.txt + filename=$(echo $filename | sed 's/^./github.com\/cosmos\/gaia/g') + echo "Excluding ${filename} from coverage report..." + sed -i.bak "/$(echo $filename | sed 's/\//\\\//g')/d" coverage.txt done - run: name: upload command: bash <(curl -s https://codecov.io/bash) -f coverage.txt localnet: - working_directory: /home/circleci/.go_workspace/src/github.com/terra-project/core - machine: - image: circleci/classic:latest - environment: - GOPATH: /home/circleci/.go_workspace/ - GOOS: linux - GOARCH: amd64 - GO_VERSION: "1.12.5" - parallelism: 1 - steps: - - checkout - - run: - name: run localnet and exit on failure - command: | - pushd /tmp - wget https://dl.google.com/go/go$GO_VERSION.linux-amd64.tar.gz - sudo tar -xvf go$GO_VERSION.linux-amd64.tar.gz - sudo rm -rf /usr/local/go - sudo mv go /usr/local - popd - set -x - make tools - make build-linux - make build-docker-terradnode - make localnet-start - ./contrib/localnet-blocks-test.sh 40 5 10 localhost - - # deploy_docs: - # <<: *docs_deploy - # steps: - # - checkout - # - run: - # name: Trigger website build - # command: | - # curl --silent \ - # --show-error \ - # -X POST \ - # --header "Content-Type: application/json" \ - # -d "{\"branch\": \"$CIRCLE_BRANCH\"}" \ - # "https://circleci.com/api/v1.1/project/github/$CIRCLE_PROJECT_USERNAME/$WEBSITE_REPO_NAME/build?circle-token=$TENDERBOT_API_TOKEN" > response.json - - # RESULT=`jq -r '.status' response.json` - # MESSAGE=`jq -r '.message' response.json` - - # if [[ ${RESULT} == "null" ]] || [[ ${RESULT} -ne "200" ]]; then - # echo "CircleCI API call failed: $MESSAGE" - # exit 1 - # else - # echo "Website build started" - # fi + working_directory: /home/circleci/.go_workspace/src/github.com/terra-project/core + machine: + image: circleci/classic:latest + environment: + GOPATH: /home/circleci/.go_workspace/ + GOOS: linux + GOARCH: amd64 + GO_VERSION: "1.13.1" + parallelism: 1 + steps: + - checkout + - run: + name: run localnet and exit on failure + command: | + pushd /tmp + wget https://dl.google.com/go/go$GO_VERSION.linux-amd64.tar.gz + sudo tar -xvf go$GO_VERSION.linux-amd64.tar.gz + sudo rm -rf /usr/local/go + sudo mv go /usr/local + popd + set -x + make tools + make build-linux + make build-docker-terradnode + make localnet-start + ./contrib/localnet-blocks-test.sh 40 5 10 localhost - macos_ci: - <<: *macos_defaults + macos-ci: + executor: mac steps: - - *macos_env + - mac-set-env - run: name: Install go command: | @@ -317,17 +257,17 @@ jobs: make install - run: name: Integration tests - command: + command: | source $BASH_ENV - make check-build + make test-build - run: name: Test full terra simulation command: | source $BASH_ENV - make sim-terra-fast + make test-sim-fast - docker_image: - <<: *linux_defaults + docker-image: + executor: golang steps: - attach_workspace: at: /tmp/workspace @@ -345,12 +285,12 @@ jobs: docker build . else docker build -t tendermint/terra:$TERRAD_VERSION . - # docker login --password-stdin -u $DOCKER_USER <<<$DOCKER_PASS + # docker login --password-stdin -u $DOCKER_USER \<<<$DOCKER_PASS # docker push tendermint/terra:$TERRAD_VERSION fi - docker_tagged: - <<: *linux_defaults + docker-tagged: + executor: golang steps: - attach_workspace: at: /tmp/workspace @@ -359,11 +299,11 @@ jobs: docker_layer_caching: true - run: | docker build -t tendermint/terra:$CIRCLE_TAG . - # docker login --password-stdin -u $DOCKER_USER <<<$DOCKER_PASS + # docker login --password-stdin -u $DOCKER_USER \<<<$DOCKER_PASS # docker push tendermint/terra:$CIRCLE_TAG - reproducible_builds: - <<: *linux_defaults + reproducible-builds: + executor: golang steps: - attach_workspace: at: /tmp/workspace @@ -390,8 +330,8 @@ jobs: # FIXME: The `setup-contract-tests-data` make target is broken as it completely # overrides the .terrad directory. # -# contract_tests: -# <<: *linux_defaults +# contract-tests: +# executor: golang # steps: # - attach_workspace: # at: /tmp/workspace @@ -412,10 +352,10 @@ workflows: version: 2 test-suite: jobs: - - docker_image: + - docker-image: requires: - - setup_dependencies - - docker_tagged: + - setup-dependencies + - docker-tagged: filters: tags: only: @@ -424,65 +364,58 @@ workflows: ignore: - /.*/ requires: - - setup_dependencies - - macos_ci: + - setup-dependencies + - macos-ci: filters: branches: only: - master - develop - # - deploy_docs: - # filters: - # branches: - # only: - # - master - # - develop - - setup_dependencies: + - setup-dependencies: # filters here are needed to enable this job also for tags filters: tags: only: - /^v.*/ - - integration_tests: - requires: - - setup_dependencies - - test_sim_terra_nondeterminism: + - integration-tests: requires: - - setup_dependencies - - test_sim_terra_fast: + - setup-dependencies + - test-sim-nondeterminism: requires: - - setup_dependencies - - test_sim_terra_import_export: + - setup-dependencies + - test-sim-fast: requires: - - setup_dependencies - - test_sim_terra_simulation_after_import: + - setup-dependencies + - test-sim-import-export: requires: - - setup_dependencies - - test_sim_terra_multi_seed: + - setup-dependencies + - test-sim-multi-seed-short: requires: - - setup_dependencies - - test_sim_terra_multi_seed_long: + - setup-dependencies + - test-sim-multi-seed-long: requires: - - setup_dependencies + - setup-dependencies + # These filters ensure that the long sim only runs during release filters: branches: + ignore: /.*/ + tags: only: - - master - - develop - - test_cover: + - /^v.*/ + - test-cover: requires: - - setup_dependencies + - setup-dependencies - localnet - - upload_coverage: + - upload-coverage: requires: - - test_cover - - reproducible_builds: + - test-cover + - reproducible-builds: filters: branches: only: - master requires: - - setup_dependencies -# - contract_tests: + - setup-dependencies +# - contract-tests: # requires: -# - setup_dependencies +# - setup-dependencies diff --git a/Makefile b/Makefile index c49caacb9..41f65f1db 100755 --- a/Makefile +++ b/Makefile @@ -65,7 +65,7 @@ BUILD_FLAGS := -tags "$(build_tags)" -ldflags '$(ldflags)' # The below include contains the tools target. include contrib/devtools/Makefile -all: install lint check +all: install lint test build: go.sum ifeq ($(OS),Windows_NT) @@ -86,7 +86,7 @@ else go build -mod=readonly $(BUILD_FLAGS) -o build/contract_tests ./cmd/contract_tests endif -install: go.sum check-ledger +install: go.sum go install -mod=readonly $(BUILD_FLAGS) ./cmd/terrad go install -mod=readonly $(BUILD_FLAGS) ./cmd/terracli @@ -121,19 +121,19 @@ distclean: clean ### Testing -check: check-unit check-build -check-all: check check-race check-cover +test: test-unit test-build +test-all: test test-race test-cover -check-unit: +test-unit: @VERSION=$(VERSION) go test -mod=readonly -tags='ledger test_ledger_mock' ./... -check-race: +test-race: @VERSION=$(VERSION) go test -mod=readonly -race -tags='ledger test_ledger_mock' ./... -check-cover: +test-cover: @go test -mod=readonly -timeout 30m -race -coverprofile=coverage.txt -covermode=atomic -tags='ledger test_ledger_mock' ./... -check-build: build +test-build: build @go test -mod=readonly -p 4 `go list ./cli_test/...` -tags=cli_test -v @@ -195,5 +195,5 @@ include sims.mk .PHONY: all build-linux install install-debug \ go-mod-cache draw-deps clean build \ setup-transactions setup-contract-tests-data start-terra run-lcd-contract-tests contract-tests \ - check check-all check-build check-cover check-ledger check-unit check-race + test test-all test-build test-cover test-unit test-race diff --git a/README.md b/README.md index 62d432574..df33155aa 100644 --- a/README.md +++ b/README.md @@ -20,7 +20,7 @@ Terra Core builds on [Tendermint](https://github.com/tendermint/tendermint) cons **WARNING**: Terra Core has mostly stabilized, but breaking changes may come regularly. -**Note**: Requires [Go 1.12+](https://golang.org/dl/) +**Note**: Requires [Go 1.13+](https://golang.org/dl/) ## Status diff --git a/contrib/devtools/Makefile b/contrib/devtools/Makefile index 105024837..f96a8ba43 100644 --- a/contrib/devtools/Makefile +++ b/contrib/devtools/Makefile @@ -43,11 +43,8 @@ mkfile_dir := $(shell cd $(shell dirname $(mkfile_path)); pwd) ### TOOLS_DESTDIR ?= $(GOPATH)/bin - -GOLANGCI_LINT = $(TOOLS_DESTDIR)/golangci-lint -GOIMPORTS = $(TOOLS_DESTDIR)/goimports -CLOG = $(TOOLS_DESTDIR)/clog -RUNSIM = $(TOOLS_DESTDIR)/runsim +GOLANGCI_LINT = $(TOOLS_DESTDIR)/golangci-lint +RUNSIM = $(TOOLS_DESTDIR)/runsim all: tools @@ -56,21 +53,23 @@ tools-stamp: $(GOIMPORTS) $(RUNSIM) touch $@ $(GOLANGCI_LINT): $(mkfile_dir)/install-golangci-lint.sh - bash $(mkfile_dir)/install-golangci-lint.sh $(TOOLS_DESTDIR) $(GOLANGCI_LINT_VERSION) $(GOLANGCI_LINT_HASHSUM) - -$(GOIMPORTS): - go get golang.org/x/tools/cmd/goimports@v0.0.0-20190628034336-212fb13d595e - -$(CLOG): - go get github.com/cosmos/tools/cmd/clog/ - + @echo "Installing golangci-lint..." + @bash $(mkfile_dir)/install-golangci-lint.sh $(TOOLS_DESTDIR) $(GOLANGCI_LINT_VERSION) $(GOLANGCI_LINT_HASHSUM) + +# Install the runsim binary with a temporary workaround of entering an outside +# directory as the "go get" command ignores the -mod option and will polute the +# go.{mod, sum} files. +# +# ref: https://github.com/golang/go/issues/30515 $(RUNSIM): - go get github.com/cosmos/tools/cmd/runsim/ + @echo "Installing runsim..." + @(cd /tmp && go get github.com/cosmos/tools/cmd/runsim@v1.0.0) golangci-lint: $(GOLANGCI_LINT) tools-clean: - rm -f $(GOIMPORTS) $(CLOG) $(GOLANGCI_LINT) + rm -f $(GOLANGCI_LINT) + rm -f $(RUNSIM) rm -f tools-stamp -.PHONY: all tools tools-clean +.PHONY: all tools tools-clean \ No newline at end of file diff --git a/contrib/gitian-build.sh b/contrib/gitian-build.sh index de5166cde..4360f4db4 100755 --- a/contrib/gitian-build.sh +++ b/contrib/gitian-build.sh @@ -8,7 +8,7 @@ set -euo pipefail GITIAN_CACHE_DIRNAME='.gitian-builder-cache' -GO_DEBIAN_RELEASE='1.12.7-1' +GO_DEBIAN_RELEASE='1.13.1-1' GO_TARBALL="golang-debian-${GO_DEBIAN_RELEASE}.tar.gz" GO_TARBALL_URL="https://salsa.debian.org/go-team/compiler/golang/-/archive/debian/${GO_DEBIAN_RELEASE}/${GO_TARBALL}" diff --git a/contrib/gitian-descriptors/gitian-darwin.yml b/contrib/gitian-descriptors/gitian-darwin.yml index 126f71cc2..a082f0781 100644 --- a/contrib/gitian-descriptors/gitian-darwin.yml +++ b/contrib/gitian-descriptors/gitian-darwin.yml @@ -23,11 +23,11 @@ remotes: - "url": "https://github.com/cosmos/terra.git" "dir": "terra" files: -- "golang-debian-1.12.7-1.tar.gz" +- "golang-debian-1.13.1-1.tar.gz" script: | set -e -o pipefail - GO_SRC_RELEASE=golang-debian-1.12.7-1 + GO_SRC_RELEASE=golang-debian-1.13.1-1 GO_SRC_TARBALL="${GO_SRC_RELEASE}.tar.gz" # Compile go and configure the environment export TAR_OPTIONS="--mtime="$REFERENCE_DATE\\\ $REFERENCE_TIME"" diff --git a/contrib/gitian-descriptors/gitian-linux.yml b/contrib/gitian-descriptors/gitian-linux.yml index 583d0f843..4649bd15e 100644 --- a/contrib/gitian-descriptors/gitian-linux.yml +++ b/contrib/gitian-descriptors/gitian-linux.yml @@ -23,11 +23,11 @@ remotes: - "url": "https://github.com/cosmos/terra.git" "dir": "terra" files: -- "golang-debian-1.12.7-1.tar.gz" +- "golang-debian-1.13.1-1.tar.gz" script: | set -e -o pipefail - GO_SRC_RELEASE=golang-debian-1.12.7-1 + GO_SRC_RELEASE=golang-debian-1.13.1-1 GO_SRC_TARBALL="${GO_SRC_RELEASE}.tar.gz" # Compile go and configure the environment export TAR_OPTIONS="--mtime="$REFERENCE_DATE\\\ $REFERENCE_TIME"" diff --git a/contrib/gitian-descriptors/gitian-windows.yml b/contrib/gitian-descriptors/gitian-windows.yml index 201a6fe6e..9ba99e595 100644 --- a/contrib/gitian-descriptors/gitian-windows.yml +++ b/contrib/gitian-descriptors/gitian-windows.yml @@ -23,11 +23,11 @@ remotes: - "url": "https://github.com/cosmos/terra.git" "dir": "terra" files: -- "golang-debian-1.12.7-1.tar.gz" +- "golang-debian-1.13.1-1.tar.gz" script: | set -e -o pipefail - GO_SRC_RELEASE=golang-debian-1.12.7-1 + GO_SRC_RELEASE=golang-debian-1.13.1-1 GO_SRC_TARBALL="${GO_SRC_RELEASE}.tar.gz" # Compile go and configure the environment export TAR_OPTIONS="--mtime="$REFERENCE_DATE\\\ $REFERENCE_TIME"" diff --git a/docs/guide/installation.md b/docs/guide/installation.md index a0545bebc..f3289c84c 100644 --- a/docs/guide/installation.md +++ b/docs/guide/installation.md @@ -7,7 +7,7 @@ This guide will explain how to install the `terrad` and `terracli` entrypoints o Install `go` by following the [official docs](https://golang.org/doc/install). {% hint style="info" %} - **Go 1.12+ +** is required for Terra Core. + **Go 1.13+ +** is required for Terra Core. {% endhint %} > _NOTE_: Before installing `terrad` and `terracli` binaries, let's add the golang binaries to your `PATH` variable. Open your `.bash_profile` or `.zshrc` and append `$HOME/go/bin` to your PATH variable \(i.e. `export PATH=$HOME/bin:$HOME/go/bin`\). @@ -38,7 +38,7 @@ terra-money: 0.2.1 git commit: 1fba7308fa226e971964cd6baad9527d4b51d9fc vendor hash: 1aec7edfad9888a967b3e9063e42f66b28f447e6 build tags: netgo ledger -go version go1.12.1 linux/amd64 +go version go1.13.1 linux/amd64 ``` ### Build Tags diff --git a/go.mod b/go.mod index 18ceeaa0e..ceff7b588 100644 --- a/go.mod +++ b/go.mod @@ -1,13 +1,12 @@ module github.com/terra-project/core -go 1.12 +go 1.13 require ( - github.com/cosmos/cosmos-sdk v0.37.0 + github.com/cosmos/cosmos-sdk v0.37.1 github.com/cosmos/go-bip39 v0.0.0-20180819234021-555e2067c45d // indirect - github.com/cosmos/tools/cmd/runsim v1.0.0 // indirect github.com/gorilla/mux v1.7.2 - github.com/otiai10/copy v1.0.1 + github.com/otiai10/copy v1.0.2 github.com/otiai10/curr v0.0.0-20190513014714-f5a3d24e5776 // indirect github.com/pkg/errors v0.8.1 github.com/rakyll/statik v0.1.6 @@ -17,7 +16,7 @@ require ( github.com/spf13/viper v1.3.2 github.com/stretchr/testify v1.4.0 github.com/tendermint/go-amino v0.15.0 - github.com/tendermint/tendermint v0.32.2 - github.com/tendermint/tm-db v0.1.1 - golang.org/x/tools v0.0.0-20190628034336-212fb13d595e // indirect + github.com/tendermint/tendermint v0.32.3 + github.com/tendermint/tm-db v0.2.0 + golang.org/x/net v0.0.0-20190827160401-ba9fcec4b297 // indirect ) diff --git a/go.sum b/go.sum index 0f2dd3047..81413feaf 100644 --- a/go.sum +++ b/go.sum @@ -9,16 +9,12 @@ github.com/aead/siphash v1.0.1/go.mod h1:Nywa3cDsYNNK3gaciGTWPwHt0wlpNV15vwmswBA github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod h1:grANhF5doyWs3UAsr3K4I6qtAmlQcZDesFNEHPZAzj8= -github.com/aws/aws-sdk-go v1.23.17 h1:IGNAvtR7ckMEHhy+ObG9xw6DFqEE4Ual0LYXsVTZSLQ= -github.com/aws/aws-sdk-go v1.23.17/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= github.com/bartekn/go-bip39 v0.0.0-20171116152956-a05967ea095d h1:1aAija9gr0Hyv4KfQcRcwlmFIrhkDmIj2dz5bkg/s/8= github.com/bartekn/go-bip39 v0.0.0-20171116152956-a05967ea095d/go.mod h1:icNx/6QdFblhsEjZehARqbNumymUT/ydwlLojFdv7Sk= github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973 h1:xJ4a3vCFaGF/jqvzLMYoU8P317H5OQ+Via4RmuPwCS0= github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= github.com/bgentry/speakeasy v0.1.0 h1:ByYyxL9InA1OWqxJqqp2A5pYHUrCiAL6K3J+LKSsQkY= github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs= -github.com/bradleyfalzon/ghinstallation v0.1.2 h1:9fdqVadlvEX/EUts5/aIGvx2ujKnGNIMcuCuUrM6s6Q= -github.com/bradleyfalzon/ghinstallation v0.1.2/go.mod h1:VQsLlCoNa54/CNXcc2DuCfNZrZxqQcyPeqKUugF/2h8= github.com/btcsuite/btcd v0.0.0-20190115013929-ed77733ec07d h1:xG8Pj6Y6J760xwETNmMzmlt38QSwz0BLp1cZ09g27uw= github.com/btcsuite/btcd v0.0.0-20190115013929-ed77733ec07d/go.mod h1:d3C0AkH6BRcvO8T0UEPu53cnw4IbV63x1bEjildYhO0= github.com/btcsuite/btclog v0.0.0-20170628155309-84c8d2346e9f/go.mod h1:TdznJufoqS23FtqVCzL0ZqgP5MqXbb4fg/WgDys70nA= @@ -33,8 +29,8 @@ github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDk github.com/coreos/etcd v3.3.10+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= github.com/coreos/go-etcd v2.0.0+incompatible/go.mod h1:Jez6KQU2B/sWsbdaef3ED8NzMklzPG4d5KIOhIy30Tk= github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= -github.com/cosmos/cosmos-sdk v0.37.0 h1:S2I3NDGN2wqfGlY5KqkAHTpfezjhgeqDxrCxhlhd528= -github.com/cosmos/cosmos-sdk v0.37.0/go.mod h1:3b/k/Zd+YDuttSmEJdNkxga1H5EIiDUhSYeErAHQN7A= +github.com/cosmos/cosmos-sdk v0.37.1 h1:mz5W3Au32VIPPtrY65dheVYeVDSFfS3eSSmuIj+cXsI= +github.com/cosmos/cosmos-sdk v0.37.1/go.mod h1:faHZQpT/hgAjTvSq8gsjlUZ7iWOvZvT+6oqIFAiJ02o= github.com/cosmos/go-bip39 v0.0.0-20180618194314-52158e4697b8/go.mod h1:tSxLoYXyBmiFeKpvmq4dzayMdCjCnu8uqmCysIGBT2Y= github.com/cosmos/go-bip39 v0.0.0-20180819234021-555e2067c45d h1:49RLWk1j44Xu4fjHb6JFYmeUnDORVwHNkDxaQ0ctCVU= github.com/cosmos/go-bip39 v0.0.0-20180819234021-555e2067c45d/go.mod h1:tSxLoYXyBmiFeKpvmq4dzayMdCjCnu8uqmCysIGBT2Y= @@ -42,24 +38,20 @@ github.com/cosmos/ledger-cosmos-go v0.10.3 h1:Qhi5yTR5Pg1CaTpd00pxlGwNl4sFRdtK1J github.com/cosmos/ledger-cosmos-go v0.10.3/go.mod h1:J8//BsAGTo3OC/vDLjMRFLW6q0WAaXvHnVc7ZmE8iUY= github.com/cosmos/ledger-go v0.9.2 h1:Nnao/dLwaVTk1Q5U9THldpUMMXU94BOTWPddSmVB6pI= github.com/cosmos/ledger-go v0.9.2/go.mod h1:oZJ2hHAZROdlHiwTg4t7kP+GKIIkBT+o6c9QWFanOyI= -github.com/cosmos/tools/cmd/runsim v1.0.0 h1:xEHe8ieMX7vORhbQBL4mrjtGQ7ZqusHvsDVktv8Xun8= -github.com/cosmos/tools/cmd/runsim v1.0.0/go.mod h1:OkifjSTACSQGtwh7k5Tp/IQe9/ZXqsovqlYzRKxEPKM= -github.com/cosmos/tools/lib/runsimaws v1.0.0 h1:IJt4sXA4Hqqm7KuOxfWduiZS02KMkrQTDt/PPiwmX1o= -github.com/cosmos/tools/lib/runsimaws v1.0.0/go.mod h1:asuuzE1jU1M5jO8QGlgB4kUexLDlxkUwEU5z8NgbkdE= -github.com/cosmos/tools/lib/runsimgh v1.0.0 h1:MoVUp+MT13EHYuNhDpcmnKbYsn9dCAvA6ChVZgtboGA= -github.com/cosmos/tools/lib/runsimgh v1.0.0/go.mod h1:Th32ntR4b9UB7g1MoqmXqZmcbBz01xBjISxRJJpnv1c= -github.com/cosmos/tools/lib/runsimslack v1.0.0 h1:sD6Jw/ezjCNjjk9x0uNotrwyfU0NmojPoLBmadwQgbo= -github.com/cosmos/tools/lib/runsimslack v1.0.0/go.mod h1:y2LWmXsI9mkxa1P6B945Wm2eifbXlDSEzKc2OU3Yqps= github.com/cpuguy83/go-md2man v1.0.10/go.mod h1:SmD6nW6nTyfqj6ABTjUi3V3JVMnlJmwcJI5acqYI6dE= github.com/davecgh/go-spew v0.0.0-20171005155431-ecdeabc65495/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/dgrijalva/jwt-go v3.2.0+incompatible h1:7qlOGliEKZXTDg6OTjfoBKDXWrumCAMpl/TFQ4/5kLM= -github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= github.com/etcd-io/bbolt v1.3.2/go.mod h1:ZF2nL25h33cCyBtcyWeZ2/I3HQOfTP+0PIEvHjkjCrw= github.com/etcd-io/bbolt v1.3.3 h1:gSJmxrs37LgTqR/oyJBWok6k6SvXEUerFTbltIhXkBM= github.com/etcd-io/bbolt v1.3.3/go.mod h1:ZF2nL25h33cCyBtcyWeZ2/I3HQOfTP+0PIEvHjkjCrw= +github.com/facebookgo/ensure v0.0.0-20160127193407-b4ab57deab51 h1:0JZ+dUmQeA8IIVUMzysrX4/AKuQwWhV2dYQuPZdvdSQ= +github.com/facebookgo/ensure v0.0.0-20160127193407-b4ab57deab51/go.mod h1:Yg+htXGokKKdzcwhuNDwVvN+uBxDGXJ7G/VN1d8fa64= +github.com/facebookgo/stack v0.0.0-20160209184415-751773369052 h1:JWuenKqqX8nojtoVVWjGfOF9635RETekkoH6Cc9SX0A= +github.com/facebookgo/stack v0.0.0-20160209184415-751773369052/go.mod h1:UbMTZqLaRiH3MsBH8va0n7s1pQYcu3uTb8G4tygF4Zg= +github.com/facebookgo/subset v0.0.0-20150612182917-8dac2c3c4870 h1:E2s37DuLxFhQDg5gKsWoLBOB0n+ZW8s599zru8FJ2/Y= +github.com/facebookgo/subset v0.0.0-20150612182917-8dac2c3c4870/go.mod h1:5tD+neXqOorC30/tWg0LCSkrqj/AR6gu8yY8/fpw1q0= github.com/fortytw2/leaktest v1.2.0/go.mod h1:jDsjWgpAGjm2CA7WthBh/CdZYEPF31XHquHwclZch5g= github.com/fortytw2/leaktest v1.3.0 h1:u8491cBMTQ8ft8aeV+adlcytMZylmA5nnwwkRZjI8vw= github.com/fortytw2/leaktest v1.3.0/go.mod h1:jDsjWgpAGjm2CA7WthBh/CdZYEPF31XHquHwclZch5g= @@ -87,10 +79,6 @@ github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5y github.com/golang/snappy v0.0.1 h1:Qgr9rKW7uDUkrbSmQeiDsGa8SjGyCOGtuasMWwvp2P4= github.com/golang/snappy v0.0.1/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= -github.com/google/go-github/v27 v27.0.6 h1:oiOZuBmGHvrGM1X9uNUAUlLgp5r1UUO/M/KnbHnLRlQ= -github.com/google/go-github/v27 v27.0.6/go.mod h1:/0Gr8pJ55COkmv+S/yPKCczSkUPIM/LnFyubufRNIS0= -github.com/google/go-querystring v1.0.0 h1:Xkwi/a1rcvNg1PPYe5vI8GbeBY/jrVuDX5ASuANWTrk= -github.com/google/go-querystring v1.0.0/go.mod h1:odCYkC5MyYFN7vkCjXpyrEuKhc/BUO6wN/zVPAxq5ck= github.com/google/gofuzz v0.0.0-20170612174753-24818f796faf/go.mod h1:HP5RmnzzSNb993RKQDq4+1A4ia9nllfqcQFTQJedwGI= github.com/google/gofuzz v1.0.0 h1:A8PeW59pxE9IoFRqBp37U+mSNaQoZ46F1f0f863XSXw= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= @@ -98,8 +86,8 @@ github.com/gorilla/mux v1.7.0/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2z github.com/gorilla/mux v1.7.2 h1:zoNxOV7WjqXptQOVngLmcSQgXmgk4NMz1HibBchjl/I= github.com/gorilla/mux v1.7.2/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs= github.com/gorilla/websocket v1.2.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= -github.com/gorilla/websocket v1.4.0 h1:WDFjx/TMzVgy9VdMMQi2K2Emtwi2QcUQsztZ/zLaH/Q= -github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= +github.com/gorilla/websocket v1.4.1 h1:q7AeDBpnBk8AogcD4DSag/Ukw/KV+YhzLj2bP5HvKCM= +github.com/gorilla/websocket v1.4.1/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4= github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= github.com/hpcloud/tail v1.0.0 h1:nfCOvKYfkgYP8hkirhJocXT2+zOD8yUNjXaWfTlyFKI= @@ -107,8 +95,6 @@ github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpO github.com/inconshreveable/mousetrap v1.0.0 h1:Z8tu5sraLXCXIcARxBp/8cbvlwVa7Z1NHg9XEKhtSvM= github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= github.com/jessevdk/go-flags v0.0.0-20141203071132-1679536dcc89/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= -github.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af h1:pmfjZENx5imkbgOkpRUYLnmbU7UEFbjtDA2hxJ1ichM= -github.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k= github.com/jmhodges/levigo v1.0.0 h1:q5EC36kV79HWeTBWsod3mG11EgStG3qArTKcvlksN1U= github.com/jmhodges/levigo v1.0.0/go.mod h1:Q6Qx+uH3RAqyK4rFQroq9RL7mdkABMcfhEI+nNuzMJQ= github.com/jrick/logrotate v1.0.0/go.mod h1:LNinyqDIJnpAur+b8yyulnQw/wDuN1+BYKlTRt3OuAQ= @@ -131,21 +117,20 @@ github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrk github.com/mitchellh/mapstructure v1.1.2 h1:fmNYVwqnSfB9mZU6OS2O6GsXM+wcskZDuKQzvN1EDeE= github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= -github.com/nlopes/slack v0.6.0 h1:jt0jxVQGhssx1Ib7naAOZEZcGdtIhTzkP0nopK0AsRA= -github.com/nlopes/slack v0.6.0/go.mod h1:JzQ9m3PMAqcpeCam7UaHSuBuupz7CmpjehYMayT6YOk= github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/ginkgo v1.7.0 h1:WSHQ+IS43OoUrWtD1/bbclrwK8TTH5hzp+umCiuxHgs= github.com/onsi/ginkgo v1.7.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/gomega v1.4.3 h1:RE1xgDvH7imwFD45h+u2SgIfERHlS2yNG4DObb5BSKU= github.com/onsi/gomega v1.4.3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= -github.com/otiai10/copy v1.0.1 h1:gtBjD8aq4nychvRZ2CyJvFWAw0aja+VHazDdruZKGZA= -github.com/otiai10/copy v1.0.1/go.mod h1:8bMCJrAqOtN/d9oyh5HR7HhLQMvcGMpGdwRDYsfOCHc= +github.com/otiai10/copy v1.0.2 h1:DDNipYy6RkIkjMwy+AWzgKiNTyj2RUI9yEMeETEpVyc= +github.com/otiai10/copy v1.0.2/go.mod h1:c7RpqBkwMom4bYTSkLSym4VSJz/XtncWRAj/J4PEIMY= github.com/otiai10/curr v0.0.0-20150429015615-9b4961190c95/go.mod h1:9qAhocn7zKJG+0mI8eUu6xqkFDYS2kb2saOteoSB3cE= github.com/otiai10/curr v0.0.0-20190513014714-f5a3d24e5776 h1:o59bHXu8Ejas8Kq6pjoVJQ9/neN66SM8AKh6wI42BBs= github.com/otiai10/curr v0.0.0-20190513014714-f5a3d24e5776/go.mod h1:3HNVkVOU7vZeFXocWuvtcS0XSFLcf2XUSDHkq9t1jU4= -github.com/otiai10/mint v1.2.3/go.mod h1:YnfyPNhBvnY8bW4SGQHCs/aAFhkgySlMZbrF5U0bOVw= github.com/otiai10/mint v1.2.4 h1:DxYL0itZyPaR5Z9HILdxSoHx+gNs6Yx+neOGS3IVUk0= github.com/otiai10/mint v1.2.4/go.mod h1:d+b7n/0R3tdyUYYylALXpWQ/kTN+QobSq/4SRGBkR3M= +github.com/otiai10/mint v1.3.0 h1:Ady6MKVezQwHBkGzLFbrsywyp09Ah7rkmfjV3Bcr5uc= +github.com/otiai10/mint v1.3.0/go.mod h1:F5AjcsTsWUqX+Na9fpHb52P8pcRX2CI6A3ctIT91xUo= github.com/pelletier/go-toml v1.2.0 h1:T5zMGML61Wp+FlcbWjRDT7yAxhJNAiPPLOFECq181zc= github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= @@ -201,6 +186,8 @@ github.com/stretchr/testify v1.3.0 h1:TivCn/peBQ7UY8ooIcPgZFpTNSz0Q2U6UrFlUfqbe0 github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.4.0 h1:2E4SXV/wtOkTonXsotYi4li6zVWxYlZuYNCXe9XRJyk= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= +github.com/stumble/gorocksdb v0.0.3 h1:9UU+QA1pqFYJuf9+5p7z1IqdE5k0mma4UAeu2wmX8kA= +github.com/stumble/gorocksdb v0.0.3/go.mod h1:v6IHdFBXk5DJ1K4FZ0xi+eY737quiiBxYtSWXadLybY= github.com/syndtr/goleveldb v1.0.1-0.20190318030020-c3a204f8e965 h1:1oFLiOyVl+W7bnBzGhf7BbIv9loSFQcieWWYIjLqcAw= github.com/syndtr/goleveldb v1.0.1-0.20190318030020-c3a204f8e965/go.mod h1:9OrXJhf154huy1nPWmuSrkgjPUtUNhA+Zmy+6AESzuA= github.com/tendermint/btcd v0.1.1 h1:0VcxPfflS2zZ3RiOAHkBiFUcPvbtRj5O7zHmcJWHV7s= @@ -213,10 +200,12 @@ github.com/tendermint/go-amino v0.15.0/go.mod h1:TQU0M1i/ImAo+tYpZi73AU3V/dKeCoM github.com/tendermint/iavl v0.12.4 h1:hd1woxUGISKkfUWBA4mmmTwOua6PQZTJM/F0FDrmMV8= github.com/tendermint/iavl v0.12.4/go.mod h1:8LHakzt8/0G3/I8FUU0ReNx98S/EP6eyPJkAUvEXT/o= github.com/tendermint/tendermint v0.32.1/go.mod h1:jmPDAKuNkev9793/ivn/fTBnfpA9mGBww8MPRNPNxnU= -github.com/tendermint/tendermint v0.32.2 h1:FvZWdksfDg/65vKKr5Lgo57keARFnmhrUEXHwyrV1QY= -github.com/tendermint/tendermint v0.32.2/go.mod h1:NwMyx58S8VJ7tEpFKqRVlVWKO9N9zjTHu+Dx96VsnOE= +github.com/tendermint/tendermint v0.32.3 h1:GEnWpGQ795h5oTFNbfBLsY0LW/CW2j6p6HtiYNfxsgg= +github.com/tendermint/tendermint v0.32.3/go.mod h1:ZK2c29jl1QRYznIRyRWRDsmm1yvtPzBRT00x4t1JToY= github.com/tendermint/tm-db v0.1.1 h1:G3Xezy3sOk9+ekhjZ/kjArYIs1SmwV+1OUgNkj7RgV0= github.com/tendermint/tm-db v0.1.1/go.mod h1:0cPKWu2Mou3IlxecH+MEUSYc1Ch537alLe6CpFrKzgw= +github.com/tendermint/tm-db v0.2.0 h1:rJxgdqn6fIiVJZy4zLpY1qVlyD0TU6vhkT4kEf71TQQ= +github.com/tendermint/tm-db v0.2.0/go.mod h1:0cPKWu2Mou3IlxecH+MEUSYc1Ch537alLe6CpFrKzgw= github.com/ugorji/go/codec v0.0.0-20181204163529-d75b2dcb6bc8/go.mod h1:VFNgLljTbGfSG7qAOspJ7OScBnGdDN/yBr0sguwnwf0= github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q= github.com/zondax/hid v0.9.0 h1:eiT3P6vNxAEVxXMw66eZUAAnU2zD33JBkfG/EnfAKl8= @@ -258,8 +247,6 @@ golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGm golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190425150028-36563e24a262/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= -golang.org/x/tools v0.0.0-20190628034336-212fb13d595e h1:ZlQjfVdpDxeqxRfmO30CdqWWzTvgRCj0MxaUVfxEG1k= -golang.org/x/tools v0.0.0-20190628034336-212fb13d595e/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= google.golang.org/genproto v0.0.0-20180831171423-11092d34479b/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= diff --git a/sims.mk b/sims.mk index a479b35ba..67623333c 100644 --- a/sims.mk +++ b/sims.mk @@ -3,60 +3,65 @@ ######################################## ### Simulations +BINDIR ?= $(GOPATH)/bin SIMAPP = github.com/terra-project/core/app -sim-terra-nondeterminism: - @echo "Running nondeterminism test..." +test-sim-nondeterminism: + @echo "Running non-determinism test..." @go test -mod=readonly $(SIMAPP) -run TestAppStateDeterminism -Enabled=true \ - -NumBlocks=100 -BlockSize=200 -Commit=true -v -timeout 24h + -NumBlocks=100 -BlockSize=200 -Commit=true -Period=0 -v -timeout 24h -sim-terra-custom-genesis-fast: +test-sim-custom-genesis-fast: @echo "Running custom genesis simulation..." @echo "By default, ${HOME}/.terrad/config/genesis.json will be used." - @go test -mod=readonly $(SIMAPP) -run TestFullAppSimulation -Genesis=${HOME}/.gaiad/config/genesis.json \ + @go test -mod=readonly $(SIMAPP) -run TestFullAppSimulation -Genesis=${HOME}/.terrad/config/genesis.json \ -Enabled=true -NumBlocks=100 -BlockSize=200 -Commit=true -Seed=99 -Period=5 -v -timeout 24h - -sim-terra-fast: - @echo "Running quick Terra simulation. This may take several minutes..." +test-sim-fast: + @echo "Running quick simulation. This may take several minutes..." @go test -mod=readonly $(SIMAPP) -run TestFullAppSimulation -Enabled=true -NumBlocks=100 -BlockSize=200 -Commit=true -Seed=99 -Period=5 -v -timeout 24h -sim-terra-import-export: runsim - @echo "Running Terra import/export simulation. This may take several minutes..." - $(GOPATH)/bin/runsim -SimAppPkg $(SIMAPP) 25 5 TestAppImportExport -sim-terra-simulation-after-import: runsim - @echo "Running Terra simulation-after-import. This may take several minutes..." - $(GOPATH)/bin/runsim -SimAppPkg $(SIMAPP) 25 5 TestAppSimulationAfterImport +test-sim-import-export: runsim + @echo "Running App import/export simulation. This may take several minutes..." + @$(BINDIR)/runsim -Jobs=4 -SimAppPkg=$(SIMAPP) 25 5 TestAppImportExport + +test-sim-after-import: runsim + @echo "Running App simulation-after-import. This may take several minutes..." + @$(BINDIR)/runsim -Jobs=4 -SimAppPkg=$(SIMAPP) 25 5 TestAppSimulationAfterImport -sim-terra-custom-genesis-multi-seed: runsim +test-sim-custom-genesis-multi-seed: runsim @echo "Running multi-seed custom genesis simulation..." @echo "By default, ${HOME}/.terrad/config/genesis.json will be used." - $(GOPATH)/bin/runsim -g ${HOME}/.terrad/config/genesis.json $(SIMAPP) 400 5 TestFullAppSimulation + @$(BINDIR)/runsim -Jobs=4 -Genesis=${HOME}/.terrad/config/genesis.json 400 5 TestFullAppSimulation + +test-sim-multi-seed-long: runsim + @echo "Running multi-seed application simulation. This may take awhile!" + @$(BINDIR)/runsim -Jobs=4 -SimAppPkg=$(SIMAPP) 500 50 TestFullAppSimulation -sim-terra-multi-seed: runsim - @echo "Running multi-seed Terra simulation. This may take awhile!" - $(GOPATH)/bin/runsim -SimAppPkg $(SIMAPP) 400 5 TestFullAppSimulation +test-sim-multi-seed-short: runsim + @echo "Running multi-seed application simulation. This may take awhile!" + @$(BINDIR)/runsim -Jobs=4 -SimAppPkg=$(SIMAPP) 50 10 TestFullAppSimulation -sim-benchmark-invariants: +test-sim-benchmark-invariants: @echo "Running simulation invariant benchmarks..." - @go test -mod=readonly github.com/terra-project/core/app -benchmem -bench=BenchmarkInvariants -run=^$ \ + @go test -mod=readonly $(SIMAPP) -benchmem -bench=BenchmarkInvariants -run=^$ \ -Enabled=true -NumBlocks=1000 -BlockSize=200 \ -Commit=true -Seed=57 -v -timeout 24h SIM_NUM_BLOCKS ?= 500 SIM_BLOCK_SIZE ?= 200 SIM_COMMIT ?= true -sim-terra-benchmark: - @echo "Running Terra benchmark for numBlocks=$(SIM_NUM_BLOCKS), blockSize=$(SIM_BLOCK_SIZE). This may take awhile!" - @go test -mod=readonly -benchmem -run=^$$ github.com/terra-project/core/app -bench ^BenchmarkFullAppSimulation$$ \ + +test-sim-benchmark: + @echo "Running App benchmark for numBlocks=$(SIM_NUM_BLOCKS), blockSize=$(SIM_BLOCK_SIZE). This may take awhile!" + @go test -mod=readonly -benchmem -run=^$$ $(SIMAPP) -bench ^BenchmarkFullAppSimulation$$ \ -Enabled=true -NumBlocks=$(SIM_NUM_BLOCKS) -BlockSize=$(SIM_BLOCK_SIZE) -Commit=$(SIM_COMMIT) -timeout 24h -sim-terra-profile: - @echo "Running Terra benchmark for numBlocks=$(SIM_NUM_BLOCKS), blockSize=$(SIM_BLOCK_SIZE). This may take awhile!" - @go test -mod=readonly -benchmem -run=^$$ github.com/terra-project/core/app -bench ^BenchmarkFullAppSimulation$$ \ +test-sim-profile: + @echo "Running App benchmark for numBlocks=$(SIM_NUM_BLOCKS), blockSize=$(SIM_BLOCK_SIZE). This may take awhile!" + @go test -mod=readonly -benchmem -run=^$$ $(SIMAPP) -bench ^BenchmarkFullAppSimulation$$ \ -Enabled=true -NumBlocks=$(SIM_NUM_BLOCKS) -BlockSize=$(SIM_BLOCK_SIZE) -Commit=$(SIM_COMMIT) -timeout 24h -cpuprofile cpu.out -memprofile mem.out - -.PHONY: runsim sim-terra-nondeterminism sim-terra-custom-genesis-fast sim-terra-fast sim-terra-import-export \ - sim-terra-simulation-after-import sim-terra-custom-genesis-multi-seed sim-terra-multi-seed \ - sim-benchmark-invariants sim-terra-benchmark sim-terra-profile +.PHONY: runsim test-sim-nondeterminism test-sim-custom-genesis-fast sim-import-export \ + test-sim-simulation-after-import test-sim-custom-genesis-multi-seed test-sim-multi-seed \ + test-sim-benchmark-invariants test-sim-fast test-sim-benchmark test-sim-profile \ No newline at end of file From 81be52397cb56d5f64384cd681fe82d241345b3b Mon Sep 17 00:00:00 2001 From: Yun Date: Fri, 27 Sep 2019 16:29:43 +0900 Subject: [PATCH 2/7] fix oracle genesis export import feature & clear oracle prevote, vote, price when for-zero-height export --- app/export.go | 31 ++++++++++++++ x/market/internal/types/params.go | 2 +- x/oracle/genesis.go | 54 +++++++++++++++++++++--- x/oracle/internal/keeper/keeper.go | 55 ++++++++++++++++++++----- x/oracle/internal/keeper/keeper_test.go | 53 ++++++++++++++++++++++++ x/oracle/internal/types/genesis.go | 39 +++++++++++++----- x/oracle/internal/types/params.go | 2 +- 7 files changed, 208 insertions(+), 28 deletions(-) diff --git a/app/export.go b/app/export.go index 228aaf72a..739e60995 100644 --- a/app/export.go +++ b/app/export.go @@ -10,6 +10,7 @@ import ( "github.com/cosmos/cosmos-sdk/codec" sdk "github.com/cosmos/cosmos-sdk/types" + "github.com/terra-project/core/x/oracle" "github.com/terra-project/core/x/slashing" "github.com/terra-project/core/x/staking" ) @@ -163,4 +164,34 @@ func (app *TerraApp) prepForZeroHeightGenesis(ctx sdk.Context, jailWhiteList []s return false }, ) + + /* Handle oracle state. */ + + // Clear all prevotes + app.oracleKeeper.IteratePrevotes(ctx, func(prevote oracle.PricePrevote) (stop bool) { + app.oracleKeeper.DeletePrevote(ctx, prevote) + + return false + }) + + // Clear all votes + app.oracleKeeper.IterateVotes(ctx, func(vote oracle.PriceVote) (stop bool) { + app.oracleKeeper.DeleteVote(ctx, vote) + return false + }) + + // Clear all prices + app.oracleKeeper.IterateLunaPrices(ctx, func(denom string, price sdk.Dec) bool { + app.oracleKeeper.DeletePrice(ctx, denom) + return false + }) + + // reset start height on voting infos + app.oracleKeeper.IterateVotingInfos( + ctx, func(info oracle.VotingInfo) (stop bool) { + info.StartHeight = 0 + app.oracleKeeper.SetVotingInfo(ctx, info.Address, info) + return false + }, + ) } diff --git a/x/market/internal/types/params.go b/x/market/internal/types/params.go index 26f3e77e0..f15c80911 100644 --- a/x/market/internal/types/params.go +++ b/x/market/internal/types/params.go @@ -70,7 +70,7 @@ func (params *Params) ParamSetPairs() subspace.ParamSetPairs { // implements fmt.Stringer func (params Params) String() string { - return fmt.Sprintf(`Treasury Params: + return fmt.Sprintf(`Market Params: DailyLunaDeltaCap: %s MaxSwapSpread: %s MinSwapSpread: %s diff --git a/x/oracle/genesis.go b/x/oracle/genesis.go index 5b5195795..d796cfa1a 100644 --- a/x/oracle/genesis.go +++ b/x/oracle/genesis.go @@ -7,7 +7,6 @@ import ( // InitGenesis initialize default parameters // and the keeper's address to pubkey map func InitGenesis(ctx sdk.Context, keeper Keeper, data GenesisState) { - for addr, info := range data.VotingInfos { address, err := sdk.ValAddressFromBech32(addr) if err != nil { @@ -26,6 +25,26 @@ func InitGenesis(ctx sdk.Context, keeper Keeper, data GenesisState) { } } + for delegatorBechAddr, delegatee := range data.FeederDelegations { + delegator, err := sdk.ValAddressFromBech32(delegatorBechAddr) + if err != nil { + panic(err) + } + keeper.SetFeedDelegate(ctx, delegator, delegatee) + } + + for _, prevote := range data.PricePrevotes { + keeper.AddPrevote(ctx, prevote) + } + + for _, vote := range data.PriceVotes { + keeper.AddVote(ctx, vote) + } + + for denom, price := range data.Prices { + keeper.SetLunaPrice(ctx, denom, price) + } + keeper.SetParams(ctx, data.Params) } @@ -40,16 +59,41 @@ func ExportGenesis(ctx sdk.Context, keeper Keeper) (data GenesisState) { bechAddr := info.Address.String() votingInfos[bechAddr] = info - localMissedBlocks := []MissedVote{} + localMissedVotes := []MissedVote{} keeper.IterateMissedVoteBitArray(ctx, info.Address, func(index int64, missed bool) (stop bool) { - localMissedBlocks = append(localMissedBlocks, NewMissedVote(index, missed)) + localMissedVotes = append(localMissedVotes, NewMissedVote(index, missed)) return false }) - missedVotes[bechAddr] = localMissedBlocks + missedVotes[bechAddr] = localMissedVotes + + return false + }) + + feederDelegations := make(map[string]sdk.AccAddress) + keeper.IterateFeederDelegations(ctx, func(delegator sdk.ValAddress, delegatee sdk.AccAddress) (stop bool) { + bechAddr := delegator.String() + feederDelegations[bechAddr] = delegatee + return false + }) + + var pricePrevotes []PricePrevote + keeper.IteratePrevotes(ctx, func(prevote PricePrevote) (stop bool) { + pricePrevotes = append(pricePrevotes, prevote) + return false + }) + + var priceVotes []PriceVote + keeper.IterateVotes(ctx, func(vote PriceVote) (stop bool) { + priceVotes = append(priceVotes, vote) + return false + }) + prices := make(map[string]sdk.Dec) + keeper.IterateLunaPrices(ctx, func(denom string, price sdk.Dec) bool { + prices[denom] = price return false }) - return NewGenesisState(params, votingInfos, missedVotes) + return NewGenesisState(params, pricePrevotes, priceVotes, prices, votingInfos, missedVotes, feederDelegations) } diff --git a/x/oracle/internal/keeper/keeper.go b/x/oracle/internal/keeper/keeper.go index 01a34fe01..391bc1a31 100644 --- a/x/oracle/internal/keeper/keeper.go +++ b/x/oracle/internal/keeper/keeper.go @@ -59,7 +59,7 @@ func (k Keeper) Codespace() sdk.CodespaceType { //----------------------------------- // Prevote logic -// Iterate over prevotes in the store +// IteratePrevotes iterates rate over prevotes in the store func (k Keeper) IteratePrevotes(ctx sdk.Context, handler func(prevote types.PricePrevote) (stop bool)) { store := ctx.KVStore(k.storeKey) iter := sdk.KVStorePrefixIterator(store, types.PrevoteKey) @@ -73,7 +73,7 @@ func (k Keeper) IteratePrevotes(ctx sdk.Context, handler func(prevote types.Pric } } -// Iterate over votes in the store +// iteratePrevotesWithPrefix iterates over prevotes in the store with given prefix func (k Keeper) iteratePrevotesWithPrefix(ctx sdk.Context, prefix []byte, handler func(vote types.PricePrevote) (stop bool)) { store := ctx.KVStore(k.storeKey) iter := sdk.KVStorePrefixIterator(store, prefix) @@ -90,7 +90,7 @@ func (k Keeper) iteratePrevotesWithPrefix(ctx sdk.Context, prefix []byte, handle //----------------------------------- // Votes logic -// collectVotes collects all oracle votes for the period, categorized by the votes' denom parameter +// CollectVotes collects all oracle votes for the period, categorized by the votes' denom parameter func (k Keeper) CollectVotes(ctx sdk.Context) (votes map[string]types.PriceBallot) { votes = map[string]types.PriceBallot{} handler := func(vote types.PriceVote) (stop bool) { @@ -102,7 +102,7 @@ func (k Keeper) CollectVotes(ctx sdk.Context) (votes map[string]types.PriceBallo return } -// Iterate over votes in the store +// IterateVotes iterates over votes in the store func (k Keeper) IterateVotes(ctx sdk.Context, handler func(vote types.PriceVote) (stop bool)) { store := ctx.KVStore(k.storeKey) iter := sdk.KVStorePrefixIterator(store, types.VoteKey) @@ -130,7 +130,7 @@ func (k Keeper) iterateVotesWithPrefix(ctx sdk.Context, prefix []byte, handler f } } -// Retrieves a prevote from the store +// GetPrevote retrieves a prevote from the store func (k Keeper) GetPrevote(ctx sdk.Context, denom string, voter sdk.ValAddress) (prevote types.PricePrevote, err sdk.Error) { store := ctx.KVStore(k.storeKey) b := store.Get(types.GetPrevoteKey(denom, voter)) @@ -142,14 +142,14 @@ func (k Keeper) GetPrevote(ctx sdk.Context, denom string, voter sdk.ValAddress) return } -// Add a prevote to the store +// AddPrevote adds a prevote to the store func (k Keeper) AddPrevote(ctx sdk.Context, prevote types.PricePrevote) { store := ctx.KVStore(k.storeKey) bz := k.cdc.MustMarshalBinaryLengthPrefixed(prevote) store.Set(types.GetPrevoteKey(prevote.Denom, prevote.Voter), bz) } -// Delete a prevote from the store +// DeletePrevote deletes a prevote from the store func (k Keeper) DeletePrevote(ctx sdk.Context, prevote types.PricePrevote) { store := ctx.KVStore(k.storeKey) store.Delete(types.GetPrevoteKey(prevote.Denom, prevote.Voter)) @@ -167,14 +167,14 @@ func (k Keeper) getVote(ctx sdk.Context, denom string, voter sdk.ValAddress) (vo return } -// Add a vote to the store +// AddVote adds a vote to the store func (k Keeper) AddVote(ctx sdk.Context, vote types.PriceVote) { store := ctx.KVStore(k.storeKey) bz := k.cdc.MustMarshalBinaryLengthPrefixed(vote) store.Set(types.GetVoteKey(vote.Denom, vote.Voter), bz) } -// Delete a vote from the store +// DeleteVote deletes a vote from the store func (k Keeper) DeleteVote(ctx sdk.Context, vote types.PriceVote) { store := ctx.KVStore(k.storeKey) store.Delete(types.GetVoteKey(vote.Denom, vote.Voter)) @@ -205,13 +205,28 @@ func (k Keeper) SetLunaPrice(ctx sdk.Context, denom string, price sdk.Dec) { store.Set(types.GetPriceKey(denom), bz) } +// IterateLunaPrices iterates over luna prices in the store +func (k Keeper) IterateLunaPrices(ctx sdk.Context, handler func(denom string, price sdk.Dec) (stop bool)) { + store := ctx.KVStore(k.storeKey) + iter := sdk.KVStorePrefixIterator(store, types.PriceKey) + defer iter.Close() + for ; iter.Valid(); iter.Next() { + denom := string(iter.Key()[len(types.PriceKey):]) + var price sdk.Dec + k.cdc.MustUnmarshalBinaryLengthPrefixed(iter.Value(), &price) + if handler(denom, price) { + break + } + } +} + // DeletePrice deletes the consensus exchange rate of Luna denominated in the denom asset from the store. func (k Keeper) DeletePrice(ctx sdk.Context, denom string) { store := ctx.KVStore(k.storeKey) store.Delete(types.GetPriceKey(denom)) } -// Get all active oracle asset denoms from the store +// GetActiveDenoms returns all active oracle asset denoms from the store func (k Keeper) GetActiveDenoms(ctx sdk.Context) (denoms types.DenomList) { denoms = types.DenomList{} @@ -249,6 +264,26 @@ func (k Keeper) SetFeedDelegate(ctx sdk.Context, operator sdk.ValAddress, delega store.Set(types.GetFeederDelegationKey(operator), bz) } +// IterateFeederDelegations iterates over the feeder delegations +// and performs a callback function +func (k Keeper) IterateFeederDelegations(ctx sdk.Context, + handler func(delegator sdk.ValAddress, delegatee sdk.AccAddress) (stop bool)) { + + store := ctx.KVStore(k.storeKey) + iter := sdk.KVStorePrefixIterator(store, types.FeederDelegationKey) + defer iter.Close() + for ; iter.Valid(); iter.Next() { + delegator := sdk.ValAddress(iter.Key()[len(types.FeederDelegationKey):]) + + var delegatee sdk.AccAddress + k.cdc.MustUnmarshalBinaryLengthPrefixed(iter.Value(), &delegatee) + + if handler(delegator, delegatee) { + break + } + } +} + //----------------------------------- // Reward pool logic diff --git a/x/oracle/internal/keeper/keeper_test.go b/x/oracle/internal/keeper/keeper_test.go index 24752e319..0e967cb69 100644 --- a/x/oracle/internal/keeper/keeper_test.go +++ b/x/oracle/internal/keeper/keeper_test.go @@ -178,6 +178,36 @@ func TestPrice(t *testing.T) { require.Error(t, err) } +func TestIterateLunaPrices(t *testing.T) { + input := CreateTestInput(t) + + cnyPrice := sdk.NewDecWithPrec(839, int64(OracleDecPrecision)).MulInt64(core.MicroUnit) + gbpPrice := sdk.NewDecWithPrec(4995, int64(OracleDecPrecision)).MulInt64(core.MicroUnit) + krwPrice := sdk.NewDecWithPrec(2838, int64(OracleDecPrecision)).MulInt64(core.MicroUnit) + lunaPrice := sdk.NewDecWithPrec(3282384, int64(OracleDecPrecision)).MulInt64(core.MicroUnit) + + // Set & get prices + input.OracleKeeper.SetLunaPrice(input.Ctx, core.MicroCNYDenom, cnyPrice) + input.OracleKeeper.SetLunaPrice(input.Ctx, core.MicroGBPDenom, gbpPrice) + input.OracleKeeper.SetLunaPrice(input.Ctx, core.MicroKRWDenom, krwPrice) + input.OracleKeeper.SetLunaPrice(input.Ctx, core.MicroLunaDenom, lunaPrice) + + input.OracleKeeper.IterateLunaPrices(input.Ctx, func(denom string, price sdk.Dec) (stop bool) { + switch denom { + case core.MicroCNYDenom: + require.Equal(t, cnyPrice, price) + case core.MicroGBPDenom: + require.Equal(t, gbpPrice, price) + case core.MicroKRWDenom: + require.Equal(t, krwPrice, price) + case core.MicroLunaDenom: + require.Equal(t, lunaPrice, price) + } + return false + }) + +} + func TestRewardPool(t *testing.T) { input := CreateTestInput(t) @@ -240,6 +270,29 @@ func TestFeederDelegation(t *testing.T) { require.Equal(t, delegate, Addrs[1]) } +func TestIterateFeederDelegations(t *testing.T) { + input := CreateTestInput(t) + + // Test default getters and setters + delegate := input.OracleKeeper.GetFeedDelegate(input.Ctx, ValAddrs[0]) + require.Equal(t, delegate, Addrs[0]) + + input.OracleKeeper.SetFeedDelegate(input.Ctx, ValAddrs[0], Addrs[1]) + + var delegators []sdk.ValAddress + var delegatees []sdk.AccAddress + input.OracleKeeper.IterateFeederDelegations(input.Ctx, func(delegator sdk.ValAddress, delegatee sdk.AccAddress) (stop bool) { + delegators = append(delegators, delegator) + delegatees = append(delegatees, delegatee) + return false + }) + + require.Equal(t, len(delegators), 1) + require.Equal(t, len(delegatees), 1) + require.Equal(t, delegators[0], ValAddrs[0]) + require.Equal(t, delegatees[0], Addrs[1]) +} + func TestVotingInfo(t *testing.T) { input := CreateTestInput(t) diff --git a/x/oracle/internal/types/genesis.go b/x/oracle/internal/types/genesis.go index 36b771109..1365fc5fc 100644 --- a/x/oracle/internal/types/genesis.go +++ b/x/oracle/internal/types/genesis.go @@ -2,28 +2,41 @@ package types import ( "bytes" + + sdk "github.com/cosmos/cosmos-sdk/types" ) // GenesisState - all oracle state that must be provided at genesis type GenesisState struct { - Params Params `json:"params" yaml:"params"` - VotingInfos map[string]VotingInfo `json:"voting_infos" yaml:"voting_infos"` - MissedVotes map[string][]MissedVote `json:"missed_votes" yaml:"missed_votes"` + Params Params `json:"params" yaml:"params"` + VotingInfos map[string]VotingInfo `json:"voting_infos" yaml:"voting_infos"` + MissedVotes map[string][]MissedVote `json:"missed_votes" yaml:"missed_votes"` + FeederDelegations map[string]sdk.AccAddress `json:"feeder_delegations" yaml:"feeder_delegations"` + Prices map[string]sdk.Dec `json:"prices" yaml:"prices"` + PricePrevotes []PricePrevote `json:"price_prevotes" yaml:"price_prevotes"` + PriceVotes []PriceVote `json:"price_votes" yaml:"price_votes"` } // NewGenesisState creates a new GenesisState object func NewGenesisState( - params Params, votingInfo map[string]VotingInfo, MissedVotes map[string][]MissedVote, + params Params, pricePrevotes []PricePrevote, + priceVotes []PriceVote, prices map[string]sdk.Dec, + votingInfo map[string]VotingInfo, missedVotes map[string][]MissedVote, + feederDelegations map[string]sdk.AccAddress, ) GenesisState { return GenesisState{ - Params: params, - VotingInfos: votingInfo, - MissedVotes: MissedVotes, + Params: params, + PricePrevotes: pricePrevotes, + PriceVotes: priceVotes, + Prices: prices, + VotingInfos: votingInfo, + MissedVotes: missedVotes, + FeederDelegations: feederDelegations, } } -// MissedVote +// MissedVote validators missed voting map type MissedVote struct { Index int64 `json:"index" yaml:"index"` Missed bool `json:"missed" yaml:"missed"` @@ -40,9 +53,13 @@ func NewMissedVote(index int64, missed bool) MissedVote { // DefaultGenesisState - default GenesisState used by columbus-2 func DefaultGenesisState() GenesisState { return GenesisState{ - Params: DefaultParams(), - VotingInfos: make(map[string]VotingInfo), - MissedVotes: make(map[string][]MissedVote), + Params: DefaultParams(), + PricePrevotes: []PricePrevote{}, + PriceVotes: []PriceVote{}, + Prices: make(map[string]sdk.Dec), + VotingInfos: make(map[string]VotingInfo), + MissedVotes: make(map[string][]MissedVote), + FeederDelegations: make(map[string]sdk.AccAddress), } } diff --git a/x/oracle/internal/types/params.go b/x/oracle/internal/types/params.go index 3fbddb005..3e6da92de 100644 --- a/x/oracle/internal/types/params.go +++ b/x/oracle/internal/types/params.go @@ -107,7 +107,7 @@ func (params *Params) ParamSetPairs() subspace.ParamSetPairs { // implements fmt.Stringer func (params Params) String() string { - return fmt.Sprintf(`Treasury Params: + return fmt.Sprintf(`Oracle Params: VotePeriod: %d VoteThreshold: %s RewardBand: %s From 7d1ae6e3531d23509f04c8cfd9e07b335f2b5580 Mon Sep 17 00:00:00 2001 From: Yun Date: Fri, 27 Sep 2019 18:00:01 +0900 Subject: [PATCH 3/7] append genesis test --- x/oracle/genesis_test.go | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 x/oracle/genesis_test.go diff --git a/x/oracle/genesis_test.go b/x/oracle/genesis_test.go new file mode 100644 index 000000000..eb7f3e0d3 --- /dev/null +++ b/x/oracle/genesis_test.go @@ -0,0 +1,24 @@ +package oracle + +import ( + "testing" + + "github.com/stretchr/testify/require" + + sdk "github.com/cosmos/cosmos-sdk/types" + "github.com/terra-project/core/x/oracle/internal/keeper" +) + +func TestExportInitGenesis(t *testing.T) { + input := keeper.CreateTestInput(t) + input.OracleKeeper.AddPrevote(input.Ctx, NewPricePrevote("1234", "denom", sdk.ValAddress{}, int64(2))) + input.OracleKeeper.AddVote(input.Ctx, NewPriceVote(sdk.NewDec(1), "denom", sdk.ValAddress{})) + input.OracleKeeper.SetLunaPrice(input.Ctx, "denom", sdk.NewDec(123)) + genesis := ExportGenesis(input.Ctx, input.OracleKeeper) + + newInput := keeper.CreateTestInput(t) + InitGenesis(newInput.Ctx, newInput.OracleKeeper, genesis) + newGenesis := ExportGenesis(newInput.Ctx, newInput.OracleKeeper) + + require.Equal(t, genesis, newGenesis) +} From e87f3014a586093486d3e81cd89ce90da47d87f6 Mon Sep 17 00:00:00 2001 From: Yun Date: Wed, 2 Oct 2019 16:53:16 +0900 Subject: [PATCH 4/7] update cosmos-sdk to v0.37.2 --- go.mod | 6 ++-- go.sum | 86 ++++++++++++++++++++++++++++++++++++++++++++++++++++++---- 2 files changed, 83 insertions(+), 9 deletions(-) diff --git a/go.mod b/go.mod index ceff7b588..9d09b8f50 100644 --- a/go.mod +++ b/go.mod @@ -3,7 +3,7 @@ module github.com/terra-project/core go 1.13 require ( - github.com/cosmos/cosmos-sdk v0.37.1 + github.com/cosmos/cosmos-sdk v0.37.2 github.com/cosmos/go-bip39 v0.0.0-20180819234021-555e2067c45d // indirect github.com/gorilla/mux v1.7.2 github.com/otiai10/copy v1.0.2 @@ -13,10 +13,10 @@ require ( github.com/snikch/goodman v0.0.0-20171125024755-10e37e294daa github.com/spf13/cobra v0.0.5 github.com/spf13/pflag v1.0.3 - github.com/spf13/viper v1.3.2 + github.com/spf13/viper v1.4.0 github.com/stretchr/testify v1.4.0 github.com/tendermint/go-amino v0.15.0 - github.com/tendermint/tendermint v0.32.3 + github.com/tendermint/tendermint v0.32.5 github.com/tendermint/tm-db v0.2.0 golang.org/x/net v0.0.0-20190827160401-ba9fcec4b297 // indirect ) diff --git a/go.sum b/go.sum index 81413feaf..6282b688d 100644 --- a/go.sum +++ b/go.sum @@ -3,8 +3,10 @@ bou.ke/monkey v1.0.1/go.mod h1:FgHuK96Rv2Nlf+0u1OOVDpCMdsWyOFmeeketDHE7LIg= cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= github.com/BurntSushi/toml v0.3.1 h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= +github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= github.com/VividCortex/gohistogram v1.0.0 h1:6+hBz+qvs0JOrrNhhmR7lFxo5sINxBCGXrdtl/UvroE= github.com/VividCortex/gohistogram v1.0.0/go.mod h1:Pf5mBqqDxYaXu3hDrrU+w6nw50o/4+TcAqDqk/vUH7g= +github.com/Workiva/go-datastructures v1.0.50/go.mod h1:Z+F2Rca0qCsVYDS8z7bAGm8f3UkzuWYS/oBZz5a7VVA= github.com/aead/siphash v1.0.1/go.mod h1:Nywa3cDsYNNK3gaciGTWPwHt0wlpNV15vwmswBAUSII= github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= @@ -13,6 +15,8 @@ github.com/bartekn/go-bip39 v0.0.0-20171116152956-a05967ea095d h1:1aAija9gr0Hyv4 github.com/bartekn/go-bip39 v0.0.0-20171116152956-a05967ea095d/go.mod h1:icNx/6QdFblhsEjZehARqbNumymUT/ydwlLojFdv7Sk= github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973 h1:xJ4a3vCFaGF/jqvzLMYoU8P317H5OQ+Via4RmuPwCS0= github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= +github.com/beorn7/perks v1.0.0 h1:HWo1m869IqiPhD389kmkxeTalrjNbbJTC8LXupb+sl0= +github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8= github.com/bgentry/speakeasy v0.1.0 h1:ByYyxL9InA1OWqxJqqp2A5pYHUrCiAL6K3J+LKSsQkY= github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs= github.com/btcsuite/btcd v0.0.0-20190115013929-ed77733ec07d h1:xG8Pj6Y6J760xwETNmMzmlt38QSwz0BLp1cZ09g27uw= @@ -25,12 +29,16 @@ github.com/btcsuite/goleveldb v0.0.0-20160330041536-7834afc9e8cd/go.mod h1:F+uVa github.com/btcsuite/snappy-go v0.0.0-20151229074030-0bdef8d06723/go.mod h1:8woku9dyThutzjeg+3xrA5iCpBRH8XEEg3lh6TiUghc= github.com/btcsuite/websocket v0.0.0-20150119174127-31079b680792/go.mod h1:ghJtEyQwv5/p4Mg4C0fgbePVuGr935/5ddU9Z3TmDRY= github.com/btcsuite/winsvc v1.0.0/go.mod h1:jsenWakMcC0zFBFurPLEAyrnc/teJEM1O46fmI40EZs= +github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc= github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= +github.com/coreos/bbolt v1.3.2/go.mod h1:iRUV2dpdMOn7Bo10OQBFzIJO9kkE559Wcmn+qkEiiKk= github.com/coreos/etcd v3.3.10+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= github.com/coreos/go-etcd v2.0.0+incompatible/go.mod h1:Jez6KQU2B/sWsbdaef3ED8NzMklzPG4d5KIOhIy30Tk= github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= -github.com/cosmos/cosmos-sdk v0.37.1 h1:mz5W3Au32VIPPtrY65dheVYeVDSFfS3eSSmuIj+cXsI= -github.com/cosmos/cosmos-sdk v0.37.1/go.mod h1:faHZQpT/hgAjTvSq8gsjlUZ7iWOvZvT+6oqIFAiJ02o= +github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= +github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= +github.com/cosmos/cosmos-sdk v0.37.2 h1:YWK16OfDitndmrI+xKMKqTq+whRSBG+BP13/qi9x6m0= +github.com/cosmos/cosmos-sdk v0.37.2/go.mod h1:yTjebDSdxdujTXFvdzkceaguAc+909EOPX2tnriSDCw= github.com/cosmos/go-bip39 v0.0.0-20180618194314-52158e4697b8/go.mod h1:tSxLoYXyBmiFeKpvmq4dzayMdCjCnu8uqmCysIGBT2Y= github.com/cosmos/go-bip39 v0.0.0-20180819234021-555e2067c45d h1:49RLWk1j44Xu4fjHb6JFYmeUnDORVwHNkDxaQ0ctCVU= github.com/cosmos/go-bip39 v0.0.0-20180819234021-555e2067c45d/go.mod h1:tSxLoYXyBmiFeKpvmq4dzayMdCjCnu8uqmCysIGBT2Y= @@ -43,6 +51,8 @@ github.com/davecgh/go-spew v0.0.0-20171005155431-ecdeabc65495/go.mod h1:J7Y8YcW2 github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= +github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= github.com/etcd-io/bbolt v1.3.2/go.mod h1:ZF2nL25h33cCyBtcyWeZ2/I3HQOfTP+0PIEvHjkjCrw= github.com/etcd-io/bbolt v1.3.3 h1:gSJmxrs37LgTqR/oyJBWok6k6SvXEUerFTbltIhXkBM= github.com/etcd-io/bbolt v1.3.3/go.mod h1:ZF2nL25h33cCyBtcyWeZ2/I3HQOfTP+0PIEvHjkjCrw= @@ -57,27 +67,37 @@ github.com/fortytw2/leaktest v1.3.0 h1:u8491cBMTQ8ft8aeV+adlcytMZylmA5nnwwkRZjI8 github.com/fortytw2/leaktest v1.3.0/go.mod h1:jDsjWgpAGjm2CA7WthBh/CdZYEPF31XHquHwclZch5g= github.com/fsnotify/fsnotify v1.4.7 h1:IXs+QLmnXW2CcXuY+8Mzv/fWEsPGWxqefPtCP5CnV9I= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= +github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= github.com/go-kit/kit v0.6.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-kit/kit v0.8.0 h1:Wz+5lgoB0kkuqLEc6NVmwRknTKP6dTGbSqvhZtBI/j0= github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= +github.com/go-kit/kit v0.9.0 h1:wDJmvq38kDhkVxi50ni9ykkdUr1PKgqKOoi01fa0Mdk= +github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-logfmt/logfmt v0.3.0 h1:8HUsc87TaSWLKwrnumgC8/YconD2fJQsRJAsWaPg2ic= github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= +github.com/go-logfmt/logfmt v0.4.0 h1:MP4Eh7ZCb31lleYCFuwm0oe4/YGak+5l1vA2NOE80nA= +github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= github.com/go-stack/stack v1.8.0 h1:5SgMzNM5HxrEjV0ww2lTmX6E2Izsfxas4+YHWRs3Lsk= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= github.com/gogo/protobuf v1.2.1 h1:/s5zKNz0uPFCZ5hddgPdo2TK2TVrUNMn0OOX8/aZMTE= github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= +github.com/gogo/protobuf v1.3.0 h1:G8O7TerXerS4F6sx9OV7/nRfJdnXgHZu/S/7F2SN+UE= +github.com/gogo/protobuf v1.3.0/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b h1:VKtxabqXZkF25pY9ekfRL6a582T4P37/31XEstQ5p58= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= +github.com/golang/groupcache v0.0.0-20190129154638-5b532d6fd5ef/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= github.com/golang/mock v1.3.1-0.20190508161146-9fa652df1129 h1:tT8iWCYw4uOem71yYA3htfH+LNopJvcqZQshm56G5L4= github.com/golang/mock v1.3.1-0.20190508161146-9fa652df1129/go.mod h1:sBzyDLLjw3U8JLTeZvSv8jJB+tU5PVekmnlKIyFUx0Y= github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.0/go.mod h1:Qd/q+1AKNOZr9uGQzbzCmRO6sUih6GTPZv6a1/R87v0= +github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.2 h1:6nsPYzhq5kReh6QImI3k5qWzO4PEbvbIW2cwSfR/6xs= github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/snappy v0.0.1 h1:Qgr9rKW7uDUkrbSmQeiDsGa8SjGyCOGtuasMWwvp2P4= github.com/golang/snappy v0.0.1/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= +github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= github.com/google/gofuzz v0.0.0-20170612174753-24818f796faf/go.mod h1:HP5RmnzzSNb993RKQDq4+1A4ia9nllfqcQFTQJedwGI= github.com/google/gofuzz v1.0.0 h1:A8PeW59pxE9IoFRqBp37U+mSNaQoZ46F1f0f863XSXw= @@ -86,8 +106,12 @@ github.com/gorilla/mux v1.7.0/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2z github.com/gorilla/mux v1.7.2 h1:zoNxOV7WjqXptQOVngLmcSQgXmgk4NMz1HibBchjl/I= github.com/gorilla/mux v1.7.2/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs= github.com/gorilla/websocket v1.2.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= +github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= github.com/gorilla/websocket v1.4.1 h1:q7AeDBpnBk8AogcD4DSag/Ukw/KV+YhzLj2bP5HvKCM= github.com/gorilla/websocket v1.4.1/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= +github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= +github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk= +github.com/grpc-ecosystem/grpc-gateway v1.9.0/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4= github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= github.com/hpcloud/tail v1.0.0 h1:nfCOvKYfkgYP8hkirhJocXT2+zOD8yUNjXaWfTlyFKI= @@ -97,18 +121,27 @@ github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANyt github.com/jessevdk/go-flags v0.0.0-20141203071132-1679536dcc89/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= github.com/jmhodges/levigo v1.0.0 h1:q5EC36kV79HWeTBWsod3mG11EgStG3qArTKcvlksN1U= github.com/jmhodges/levigo v1.0.0/go.mod h1:Q6Qx+uH3RAqyK4rFQroq9RL7mdkABMcfhEI+nNuzMJQ= +github.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo= github.com/jrick/logrotate v1.0.0/go.mod h1:LNinyqDIJnpAur+b8yyulnQw/wDuN1+BYKlTRt3OuAQ= github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w= github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q= +github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQLJ+jE2L00= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= github.com/kkdai/bstream v0.0.0-20161212061736-f391b8402d23/go.mod h1:J+Gs4SYgM6CZQHDETBtE9HaSEkGmuNXF86RwHhHUvq4= github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515 h1:T+h1c/A9Gawja4Y9mFVWj2vyii2bbUNDw3kt9VxK2EY= github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= -github.com/libp2p/go-buffer-pool v0.0.1 h1:9Rrn/H46cXjaA2HQ5Y8lyhOS1NhTkZ4yuEs2r3Eechg= -github.com/libp2p/go-buffer-pool v0.0.1/go.mod h1:xtyIz9PMobb13WaxR6Zo1Pd1zXJKYg0a8KiIvDp3TzQ= +github.com/kr/pretty v0.1.0 h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI= +github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= +github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= +github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE= +github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= +github.com/libp2p/go-buffer-pool v0.0.2 h1:QNK2iAFa8gjAe1SPz6mHSMuCcjs+X1wlHzeOSqcmlfs= +github.com/libp2p/go-buffer-pool v0.0.2/go.mod h1:MvaB6xw5vOrDl8rYZGLFdKAuk/hRoRZd1Vi32+RXyFM= github.com/magiconair/properties v1.8.0 h1:LLgXmsheXeRoUOBOjtwPQCWIYqM/LU1ayDtDePerRcY= github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= +github.com/magiconair/properties v1.8.1 h1:ZC2Vc7/ZFkGmsVC9KvOjumD+G5lXy2RtTKyzRKO2BQ4= +github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= github.com/mattn/go-isatty v0.0.6 h1:SrwhHcpV4nWrMGdNcC2kXpMfcBVYGDuTArqyhocJgvA= github.com/mattn/go-isatty v0.0.6/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= github.com/matttproud/golang_protobuf_extensions v1.0.1 h1:4hp9jkHxhMHkqkrB3Ix0jegS5sx/RkqARlsWZ6pIwiU= @@ -117,6 +150,7 @@ github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrk github.com/mitchellh/mapstructure v1.1.2 h1:fmNYVwqnSfB9mZU6OS2O6GsXM+wcskZDuKQzvN1EDeE= github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= +github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U= github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/ginkgo v1.7.0 h1:WSHQ+IS43OoUrWtD1/bbclrwK8TTH5hzp+umCiuxHgs= github.com/onsi/ginkgo v1.7.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= @@ -141,28 +175,41 @@ github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZN github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= github.com/prometheus/client_golang v0.9.2 h1:awm861/B8OKDd2I/6o1dy3ra4BamzKhYOiGItCeZ740= github.com/prometheus/client_golang v0.9.2/go.mod h1:OsXs2jCmiKlQ1lTBmv21f2mNfw4xf/QclQDMrYNZzcM= +github.com/prometheus/client_golang v0.9.3 h1:9iH4JKXLzFbOAdtqv/a+j8aewx2Y8lAjAydhbaScPF8= +github.com/prometheus/client_golang v0.9.3/go.mod h1:/TN21ttK/J9q6uSwhBd54HahCDft0ttaMvbicHlPoso= github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90 h1:S/YWwWx/RA8rT8tKFRuGUZhuA90OyIBpPCXkcbwU8DE= github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/common v0.0.0-20181020173914-7e9e6cabbd39/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro= +github.com/prometheus/common v0.0.0-20181113130724-41aa239b4cce/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro= github.com/prometheus/common v0.0.0-20181126121408-4724e9255275/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro= github.com/prometheus/common v0.2.0 h1:kUZDBDTdBVBYBj5Tmh2NZLlF60mfjA27rM34b+cVwNU= github.com/prometheus/common v0.2.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= +github.com/prometheus/common v0.4.0 h1:7etb9YClo3a6HjLzfl6rIQaU+FDfi0VSX39io3aQ+DM= +github.com/prometheus/common v0.4.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.0-20181204211112-1dc9a6cbc91a/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.0-20190227231451-bbced9601137 h1:3l8oligPtjd4JuM+OZ+U8sjtwFGJs98cdWsqs6QZRWs= github.com/prometheus/procfs v0.0.0-20190227231451-bbced9601137/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= +github.com/prometheus/procfs v0.0.0-20190507164030-5867b95ac084 h1:sofwID9zm4tzrgykg80hfFph1mryUeLRsUfoocVVmRY= +github.com/prometheus/procfs v0.0.0-20190507164030-5867b95ac084/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= +github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU= github.com/rakyll/statik v0.1.5/go.mod h1:OEi9wJV/fMUAGx1eNjq75DKDsJVuEv1U0oYdX6GX8Zs= github.com/rakyll/statik v0.1.6 h1:uICcfUXpgqtw2VopbIncslhAmE5hwc4g20TEyEENBNs= github.com/rakyll/statik v0.1.6/go.mod h1:OEi9wJV/fMUAGx1eNjq75DKDsJVuEv1U0oYdX6GX8Zs= github.com/rcrowley/go-metrics v0.0.0-20180503174638-e2704e165165 h1:nkcn14uNmFEuGCb2mBZbBb24RdNRL08b/wb+xBOYpuk= github.com/rcrowley/go-metrics v0.0.0-20180503174638-e2704e165165/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= +github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= github.com/rs/cors v1.6.0 h1:G9tHG9lebljV9mfp9SNPDL36nCDxmo3zTlAf1YgvzmI= github.com/rs/cors v1.6.0/go.mod h1:gFx+x8UowdsKA9AchylcLynDq+nNFfI8FkUZdN/jGCU= +github.com/rs/cors v1.7.0 h1:+88SsELBHx5r+hZ8TCkggzSstaWNbDvThkVK8H6f9ik= +github.com/rs/cors v1.7.0/go.mod h1:gFx+x8UowdsKA9AchylcLynDq+nNFfI8FkUZdN/jGCU= github.com/russross/blackfriday v1.5.2/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= github.com/snikch/goodman v0.0.0-20171125024755-10e37e294daa h1:YJfZp12Z3AFhSBeXOlv4BO55RMwPn2NoQeDsrdWnBtY= github.com/snikch/goodman v0.0.0-20171125024755-10e37e294daa/go.mod h1:oJyF+mSPHbB5mVY2iO9KV3pTt/QbIkGaO8gQ2WrDbP4= +github.com/soheilhy/cmux v0.1.4/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4kGIyLM= +github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ= github.com/spf13/afero v1.2.1 h1:qgMbHoJbPbw579P+1zVY+6n4nIFuIchaIjzZ/I/Yq8M= github.com/spf13/afero v1.2.1/go.mod h1:9ZxEEn6pIJ8Rxe320qSDBk6AsU0r9pR7Q4OcevTdifk= @@ -179,6 +226,8 @@ github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnIn github.com/spf13/viper v1.0.0/go.mod h1:A8kyI5cUJhb8N+3pkfONlcEcZbueH6nhAm0Fq7SrnBM= github.com/spf13/viper v1.3.2 h1:VUFqw5KcqRf7i70GOzW7N+Q7+gxVBkSSqiXB12+JQ4M= github.com/spf13/viper v1.3.2/go.mod h1:ZiWeW+zYFKm7srdB9IoDzzZXaJaI5eL9QjNiN/DMA2s= +github.com/spf13/viper v1.4.0 h1:yXHLWeravcrgGyFSyCgdYpXQ9dR9c/WED3pg1RhxqEU= +github.com/spf13/viper v1.4.0/go.mod h1:PTJ7Z/lr49W6bUbkmS1V3by4uWynFiR9p7+dSq/yZzE= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= @@ -200,18 +249,25 @@ github.com/tendermint/go-amino v0.15.0/go.mod h1:TQU0M1i/ImAo+tYpZi73AU3V/dKeCoM github.com/tendermint/iavl v0.12.4 h1:hd1woxUGISKkfUWBA4mmmTwOua6PQZTJM/F0FDrmMV8= github.com/tendermint/iavl v0.12.4/go.mod h1:8LHakzt8/0G3/I8FUU0ReNx98S/EP6eyPJkAUvEXT/o= github.com/tendermint/tendermint v0.32.1/go.mod h1:jmPDAKuNkev9793/ivn/fTBnfpA9mGBww8MPRNPNxnU= -github.com/tendermint/tendermint v0.32.3 h1:GEnWpGQ795h5oTFNbfBLsY0LW/CW2j6p6HtiYNfxsgg= -github.com/tendermint/tendermint v0.32.3/go.mod h1:ZK2c29jl1QRYznIRyRWRDsmm1yvtPzBRT00x4t1JToY= +github.com/tendermint/tendermint v0.32.5 h1:2hCLwuzfCKZxXSe/+iMEl+ChJWKJx6g/Wcvq3NMxVN4= +github.com/tendermint/tendermint v0.32.5/go.mod h1:D2+A3pNjY+Po72X0mTfaXorFhiVI8dh/Zg640FGyGtE= github.com/tendermint/tm-db v0.1.1 h1:G3Xezy3sOk9+ekhjZ/kjArYIs1SmwV+1OUgNkj7RgV0= github.com/tendermint/tm-db v0.1.1/go.mod h1:0cPKWu2Mou3IlxecH+MEUSYc1Ch537alLe6CpFrKzgw= github.com/tendermint/tm-db v0.2.0 h1:rJxgdqn6fIiVJZy4zLpY1qVlyD0TU6vhkT4kEf71TQQ= github.com/tendermint/tm-db v0.2.0/go.mod h1:0cPKWu2Mou3IlxecH+MEUSYc1Ch537alLe6CpFrKzgw= +github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= +github.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc= github.com/ugorji/go/codec v0.0.0-20181204163529-d75b2dcb6bc8/go.mod h1:VFNgLljTbGfSG7qAOspJ7OScBnGdDN/yBr0sguwnwf0= +github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU= github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q= github.com/zondax/hid v0.9.0 h1:eiT3P6vNxAEVxXMw66eZUAAnU2zD33JBkfG/EnfAKl8= github.com/zondax/hid v0.9.0/go.mod h1:l5wttcP0jwtdLjqjMMWFVEE7d1zO0jvSPA9OPZxWpEM= +go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= go.etcd.io/bbolt v1.3.3 h1:MUGmc65QhB3pIlaQ5bB4LwqSj6GIonVJXpZiaKNyaKk= go.etcd.io/bbolt v1.3.3/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= +go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= +go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= +go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= golang.org/x/crypto v0.0.0-20170930174604-9419663f5a44/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20181203042331-505ab145d0a9/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= @@ -219,11 +275,15 @@ golang.org/x/crypto v0.0.0-20190228161510-8dd112bcdc25/go.mod h1:djNgcEr1/C05ACk golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20190313024323-a1f597ede03a h1:YX8ljsm6wXlHZO+aRz9Exqr0evNhKRNe5K/gi+zKh4U= golang.org/x/crypto v0.0.0-20190313024323-a1f597ede03a/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181201002055-351d144fa1fc/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20181220203305-927f97764cc3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190522155817-f3200d17e092/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= golang.org/x/net v0.0.0-20190628185345-da137c7871d7 h1:rTIdg5QFRR7XCaK4LCjBiPbx8j4DQRpdYMnGn/bJUEU= golang.org/x/net v0.0.0-20190628185345-da137c7871d7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190827160401-ba9fcec4b297 h1:k7pJ2yAPLPgbskkFdhRCsA77k2fySZ1zf2zCjvQCiIM= @@ -234,8 +294,10 @@ golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181205085412-a5c9d58dba9a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -243,7 +305,10 @@ golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223 h1:DH4skfRX4EBpamg7iV4ZlCpbl golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/text v0.3.0 h1:g61tztE5qeGQ89tm6NTjjM9VPIm088od1l6aSorWRWg= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20181030221726-6c7e314b6563/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190425150028-36563e24a262/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= @@ -253,16 +318,25 @@ google.golang.org/genproto v0.0.0-20180831171423-11092d34479b/go.mod h1:JiN7NxoA google.golang.org/genproto v0.0.0-20181029155118-b69ba1387ce2 h1:67iHsV9djwGdZpdZNbLuQj6FOzCaZe3w+vhLjn5AcFA= google.golang.org/genproto v0.0.0-20181029155118-b69ba1387ce2/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= google.golang.org/grpc v1.13.0/go.mod h1:yo6s7OP7yaDglbqo1J04qKzAhqBH6lvTonzMVmEdcZw= +google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= +google.golang.org/grpc v1.21.0/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= google.golang.org/grpc v1.22.0 h1:J0UbZOIrCAl+fpTOf8YLs4dJo8L/owV4LYVtAXQoPkw= google.golang.org/grpc v1.22.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= +google.golang.org/grpc v1.23.1 h1:q4XQuHFC6I28BKZpo6IYyb3mNO+l7lSOxRuYTCiDfXk= +google.golang.org/grpc v1.23.1/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 h1:qIbj1fsPNlZgppZ+VLlY7N33q108Sa+fhmuc+sWQYwY= +gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/fsnotify.v1 v1.4.7 h1:xOHLXZwVvI9hhs+cLKq5+I5onOuwQLhQwiu63xxlHs4= gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= +gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= +gopkg.in/yaml.v2 v2.0.0-20170812160011-eb3733d160e7/go.mod h1:JAlM8MvJe8wmxCU4Bli9HhUf9+ttbYbLASfIpnQbh74= gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.2 h1:ZCJp+EgiOT7lHqUV2J862kp8Qj64Jo6az82+3Td9dZw= gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= From 64bbfdf25a922934272a84dff48a13f337668cfd Mon Sep 17 00:00:00 2001 From: Yun Date: Fri, 11 Oct 2019 11:40:40 +0900 Subject: [PATCH 5/7] Bump Tendermint version to v0.32.6 to address p2p panic errors. --- go.mod | 2 +- go.sum | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/go.mod b/go.mod index 9d09b8f50..e845d75b2 100644 --- a/go.mod +++ b/go.mod @@ -16,7 +16,7 @@ require ( github.com/spf13/viper v1.4.0 github.com/stretchr/testify v1.4.0 github.com/tendermint/go-amino v0.15.0 - github.com/tendermint/tendermint v0.32.5 + github.com/tendermint/tendermint v0.32.6 github.com/tendermint/tm-db v0.2.0 golang.org/x/net v0.0.0-20190827160401-ba9fcec4b297 // indirect ) diff --git a/go.sum b/go.sum index 6282b688d..197eac934 100644 --- a/go.sum +++ b/go.sum @@ -251,6 +251,8 @@ github.com/tendermint/iavl v0.12.4/go.mod h1:8LHakzt8/0G3/I8FUU0ReNx98S/EP6eyPJk github.com/tendermint/tendermint v0.32.1/go.mod h1:jmPDAKuNkev9793/ivn/fTBnfpA9mGBww8MPRNPNxnU= github.com/tendermint/tendermint v0.32.5 h1:2hCLwuzfCKZxXSe/+iMEl+ChJWKJx6g/Wcvq3NMxVN4= github.com/tendermint/tendermint v0.32.5/go.mod h1:D2+A3pNjY+Po72X0mTfaXorFhiVI8dh/Zg640FGyGtE= +github.com/tendermint/tendermint v0.32.6 h1:HozXi0USWvKrWuEh5ratnJV10ykkTy4nwXUi0UvPVzg= +github.com/tendermint/tendermint v0.32.6/go.mod h1:D2+A3pNjY+Po72X0mTfaXorFhiVI8dh/Zg640FGyGtE= github.com/tendermint/tm-db v0.1.1 h1:G3Xezy3sOk9+ekhjZ/kjArYIs1SmwV+1OUgNkj7RgV0= github.com/tendermint/tm-db v0.1.1/go.mod h1:0cPKWu2Mou3IlxecH+MEUSYc1Ch537alLe6CpFrKzgw= github.com/tendermint/tm-db v0.2.0 h1:rJxgdqn6fIiVJZy4zLpY1qVlyD0TU6vhkT4kEf71TQQ= From 23498babf88b35df14720bd2e4286b5adabfa304 Mon Sep 17 00:00:00 2001 From: Yun Date: Mon, 14 Oct 2019 11:24:18 +0900 Subject: [PATCH 6/7] Bump SDK version to v0.37.3 --- app/sim_test.go | 11 ++++++++++- go.mod | 2 +- go.sum | 15 ++------------- 3 files changed, 13 insertions(+), 15 deletions(-) diff --git a/app/sim_test.go b/app/sim_test.go index c41d37bbe..80fbdb7d8 100644 --- a/app/sim_test.go +++ b/app/sim_test.go @@ -106,7 +106,16 @@ func appStateFn( panic("cannot provide both a genesis file and a params file") case genesisFile != "": - appState, simAccs, chainID = simapp.AppStateFromGenesisFileFn(r, accs, genesisTimestamp) + genesisDoc, accounts := simapp.AppStateFromGenesisFileFn(r) + + if genesisTime == 0 { + // use genesis timestamp if no custom timestamp is provided (i.e no random timestamp) + genesisTimestamp = genesisDoc.GenesisTime + } + + appState = genesisDoc.AppState + chainID = genesisDoc.ChainID + simAccs = accounts case paramsFile != "": appParams := make(simulation.AppParams) diff --git a/go.mod b/go.mod index e845d75b2..c9c6e5a4d 100644 --- a/go.mod +++ b/go.mod @@ -3,7 +3,7 @@ module github.com/terra-project/core go 1.13 require ( - github.com/cosmos/cosmos-sdk v0.37.2 + github.com/cosmos/cosmos-sdk v0.37.3 github.com/cosmos/go-bip39 v0.0.0-20180819234021-555e2067c45d // indirect github.com/gorilla/mux v1.7.2 github.com/otiai10/copy v1.0.2 diff --git a/go.sum b/go.sum index 197eac934..eded7740f 100644 --- a/go.sum +++ b/go.sum @@ -37,8 +37,8 @@ github.com/coreos/go-etcd v2.0.0+incompatible/go.mod h1:Jez6KQU2B/sWsbdaef3ED8Nz github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= -github.com/cosmos/cosmos-sdk v0.37.2 h1:YWK16OfDitndmrI+xKMKqTq+whRSBG+BP13/qi9x6m0= -github.com/cosmos/cosmos-sdk v0.37.2/go.mod h1:yTjebDSdxdujTXFvdzkceaguAc+909EOPX2tnriSDCw= +github.com/cosmos/cosmos-sdk v0.37.3 h1:v4IQIPq3zFB95ibAS7zqsnkZ/8SE3er16Og45EGHggo= +github.com/cosmos/cosmos-sdk v0.37.3/go.mod h1:dAwYeOJ5ybRZg/OdRfiDy8q/cZq/GXQp9ZHAtz0E74I= github.com/cosmos/go-bip39 v0.0.0-20180618194314-52158e4697b8/go.mod h1:tSxLoYXyBmiFeKpvmq4dzayMdCjCnu8uqmCysIGBT2Y= github.com/cosmos/go-bip39 v0.0.0-20180819234021-555e2067c45d h1:49RLWk1j44Xu4fjHb6JFYmeUnDORVwHNkDxaQ0ctCVU= github.com/cosmos/go-bip39 v0.0.0-20180819234021-555e2067c45d/go.mod h1:tSxLoYXyBmiFeKpvmq4dzayMdCjCnu8uqmCysIGBT2Y= @@ -173,8 +173,6 @@ github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINE github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= -github.com/prometheus/client_golang v0.9.2 h1:awm861/B8OKDd2I/6o1dy3ra4BamzKhYOiGItCeZ740= -github.com/prometheus/client_golang v0.9.2/go.mod h1:OsXs2jCmiKlQ1lTBmv21f2mNfw4xf/QclQDMrYNZzcM= github.com/prometheus/client_golang v0.9.3 h1:9iH4JKXLzFbOAdtqv/a+j8aewx2Y8lAjAydhbaScPF8= github.com/prometheus/client_golang v0.9.3/go.mod h1:/TN21ttK/J9q6uSwhBd54HahCDft0ttaMvbicHlPoso= github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= @@ -182,15 +180,9 @@ github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90 h1:S/YWwWx github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/common v0.0.0-20181020173914-7e9e6cabbd39/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro= github.com/prometheus/common v0.0.0-20181113130724-41aa239b4cce/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro= -github.com/prometheus/common v0.0.0-20181126121408-4724e9255275/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro= -github.com/prometheus/common v0.2.0 h1:kUZDBDTdBVBYBj5Tmh2NZLlF60mfjA27rM34b+cVwNU= -github.com/prometheus/common v0.2.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.4.0 h1:7etb9YClo3a6HjLzfl6rIQaU+FDfi0VSX39io3aQ+DM= github.com/prometheus/common v0.4.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= -github.com/prometheus/procfs v0.0.0-20181204211112-1dc9a6cbc91a/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= -github.com/prometheus/procfs v0.0.0-20190227231451-bbced9601137 h1:3l8oligPtjd4JuM+OZ+U8sjtwFGJs98cdWsqs6QZRWs= -github.com/prometheus/procfs v0.0.0-20190227231451-bbced9601137/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.0.0-20190507164030-5867b95ac084 h1:sofwID9zm4tzrgykg80hfFph1mryUeLRsUfoocVVmRY= github.com/prometheus/procfs v0.0.0-20190507164030-5867b95ac084/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU= @@ -249,8 +241,6 @@ github.com/tendermint/go-amino v0.15.0/go.mod h1:TQU0M1i/ImAo+tYpZi73AU3V/dKeCoM github.com/tendermint/iavl v0.12.4 h1:hd1woxUGISKkfUWBA4mmmTwOua6PQZTJM/F0FDrmMV8= github.com/tendermint/iavl v0.12.4/go.mod h1:8LHakzt8/0G3/I8FUU0ReNx98S/EP6eyPJkAUvEXT/o= github.com/tendermint/tendermint v0.32.1/go.mod h1:jmPDAKuNkev9793/ivn/fTBnfpA9mGBww8MPRNPNxnU= -github.com/tendermint/tendermint v0.32.5 h1:2hCLwuzfCKZxXSe/+iMEl+ChJWKJx6g/Wcvq3NMxVN4= -github.com/tendermint/tendermint v0.32.5/go.mod h1:D2+A3pNjY+Po72X0mTfaXorFhiVI8dh/Zg640FGyGtE= github.com/tendermint/tendermint v0.32.6 h1:HozXi0USWvKrWuEh5ratnJV10ykkTy4nwXUi0UvPVzg= github.com/tendermint/tendermint v0.32.6/go.mod h1:D2+A3pNjY+Po72X0mTfaXorFhiVI8dh/Zg640FGyGtE= github.com/tendermint/tm-db v0.1.1 h1:G3Xezy3sOk9+ekhjZ/kjArYIs1SmwV+1OUgNkj7RgV0= @@ -282,7 +272,6 @@ golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHl golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20181201002055-351d144fa1fc/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181220203305-927f97764cc3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190522155817-f3200d17e092/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= From acef9b2dc80ad85d33e7488bfec42a15704b857f Mon Sep 17 00:00:00 2001 From: Yun Date: Wed, 16 Oct 2019 10:59:38 +0900 Subject: [PATCH 7/7] merge --- x/treasury/internal/keeper/keeper.go | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/x/treasury/internal/keeper/keeper.go b/x/treasury/internal/keeper/keeper.go index 5ea72fe36..240094a5f 100644 --- a/x/treasury/internal/keeper/keeper.go +++ b/x/treasury/internal/keeper/keeper.go @@ -143,7 +143,7 @@ func (k Keeper) IterateTaxCap(ctx sdk.Context, handler func(denom string, taxCap // RecordTaxProceeds adds tax proceeds that have been added this epoch func (k Keeper) RecordTaxProceeds(ctx sdk.Context, delta sdk.Coins) { - if delta.Empty() { + if delta.Empty() || delta.IsZero() { return } @@ -156,6 +156,10 @@ func (k Keeper) RecordTaxProceeds(ctx sdk.Context, delta sdk.Coins) { // SetTaxProceeds stores tax proceeds for the given epoch func (k Keeper) SetTaxProceeds(ctx sdk.Context, epoch int64, taxProceeds sdk.Coins) { + if taxProceeds.Empty() || taxProceeds.IsZero() { + return + } + store := ctx.KVStore(k.storeKey) bz := k.cdc.MustMarshalBinaryLengthPrefixed(taxProceeds) store.Set(types.GetTaxProceedsKey(epoch), bz) @@ -188,11 +192,14 @@ func (k Keeper) RecordHistoricalIssuance(ctx sdk.Context) { epoch := core.GetEpoch(ctx) totalCoins := k.supplyKeeper.GetSupply(ctx).GetTotal() k.SetHistoricalIssuance(ctx, epoch, totalCoins) - } // SetHistoricalIssuance stores epoch issuance func (k Keeper) SetHistoricalIssuance(ctx sdk.Context, epoch int64, issuance sdk.Coins) { + if issuance.Empty() || issuance.IsZero() { + return + } + store := ctx.KVStore(k.storeKey) bz := k.cdc.MustMarshalBinaryLengthPrefixed(issuance)