From 0ab00c8e871b146fa156b60976ae49e607d8c2bd Mon Sep 17 00:00:00 2001 From: Ethan Buchman Date: Sun, 12 Aug 2018 20:10:40 -0400 Subject: [PATCH 01/23] update go-amino dep --- Gopkg.lock | 60 +++++++++++++++++++++++++++--------------------------- Gopkg.toml | 2 +- 2 files changed, 31 insertions(+), 31 deletions(-) diff --git a/Gopkg.lock b/Gopkg.lock index 8fcb2fb5e..808551308 100644 --- a/Gopkg.lock +++ b/Gopkg.lock @@ -34,11 +34,11 @@ [[projects]] branch = "master" - digest = "1:2c00f064ba355903866cbfbf3f7f4c0fe64af6638cc7d1b8bdcf3181bc67f1d8" + digest = "1:6aabc1566d6351115d561d038da82a4c19b46c3b6e17f4a0a2fa60260663dc79" name = "github.com/btcsuite/btcd" packages = ["btcec"] pruneopts = "UT" - revision = "cf05f92c3f815bbd5091ed6c73eff51f7b1945e8" + revision = "f899737d7f2764dc13e4d01ff00108ec58f766a9" [[projects]] digest = "1:386de157f7d19259a7f9c81f26ce011223ce0f090353c1152ffdf730d7d10ac2" @@ -71,7 +71,7 @@ version = "v1.4.7" [[projects]] - digest = "1:fdf5169073fb0ad6dc12a70c249145e30f4058647bea25f0abd48b6d9f228a11" + digest = "1:fa30c0652956e159cdb97dcb2ef8b8db63ed668c02a5c3a40961c8f0641252fe" name = "github.com/go-kit/kit" packages = [ "log", @@ -103,7 +103,7 @@ version = "v1.7.0" [[projects]] - digest = "1:35621fe20f140f05a0c4ef662c26c0ab4ee50bca78aa30fe87d33120bd28165e" + digest = "1:212285efb97b9ec2e20550d81f0446cb7897e57cbdfd7301b1363ab113d8be45" name = "github.com/gogo/protobuf" packages = [ "gogoproto", @@ -118,7 +118,7 @@ version = "v1.1.1" [[projects]] - digest = "1:17fe264ee908afc795734e8c4e63db2accabaf57326dbf21763a7d6b86096260" + digest = "1:cb22af0ed7c72d495d8be1106233ee553898950f15fd3f5404406d44c2e86888" name = "github.com/golang/protobuf" packages = [ "proto", @@ -165,7 +165,7 @@ [[projects]] branch = "master" - digest = "1:12247a2e99a060cc692f6680e5272c8adf0b8f572e6bce0d7095e624c958a240" + digest = "1:8951fe6e358876736d8fa1f3992624fdbb2dec6bc49401c1381d1ef8abbb544f" name = "github.com/hashicorp/hcl" packages = [ ".", @@ -262,7 +262,7 @@ version = "v1.0.0" [[projects]] - digest = "1:c1a04665f9613e082e1209cf288bf64f4068dcd6c87a64bf1c4ff006ad422ba0" + digest = "1:98225904b7abff96c052b669b25788f18225a36673fba022fb93514bb9a2a64e" name = "github.com/prometheus/client_golang" packages = [ "prometheus", @@ -273,7 +273,7 @@ [[projects]] branch = "master" - digest = "1:2d5cd61daa5565187e1d96bae64dbbc6080dacf741448e9629c64fd93203b0d4" + digest = "1:0f37e09b3e92aaeda5991581311f8dbf38944b36a3edec61cc2d1991f527554a" name = "github.com/prometheus/client_model" packages = ["go"] pruneopts = "UT" @@ -281,7 +281,7 @@ [[projects]] branch = "master" - digest = "1:63b68062b8968092eb86bedc4e68894bd096ea6b24920faca8b9dcf451f54bb5" + digest = "1:dad2e5a2153ee7a6c9ab8fc13673a16ee4fb64434a7da980965a3741b0c981a3" name = "github.com/prometheus/common" packages = [ "expfmt", @@ -293,7 +293,7 @@ [[projects]] branch = "master" - digest = "1:8c49953a1414305f2ff5465147ee576dd705487c35b15918fcd4efdc0cb7a290" + digest = "1:a37c98f4b7a66bb5c539c0539f0915a74ef1c8e0b3b6f45735289d94cae92bfd" name = "github.com/prometheus/procfs" packages = [ ".", @@ -312,7 +312,7 @@ revision = "e2704e165165ec55d062f5919b4b29494e9fa790" [[projects]] - digest = "1:bd1ae00087d17c5a748660b8e89e1043e1e5479d0fea743352cda2f8dd8c4f84" + digest = "1:37ace7f35375adec11634126944bdc45a673415e2fcc07382d03b75ec76ea94c" name = "github.com/spf13/afero" packages = [ ".", @@ -331,7 +331,7 @@ version = "v1.2.0" [[projects]] - digest = "1:7ffc0983035bc7e297da3688d9fe19d60a420e9c38bef23f845c53788ed6a05e" + digest = "1:627ab2f549a6a55c44f46fa24a4307f4d0da81bfc7934ed0473bf38b24051d26" name = "github.com/spf13/cobra" packages = ["."] pruneopts = "UT" @@ -347,12 +347,12 @@ revision = "7c0cea34c8ece3fbeb2b27ab9b59511d360fb394" [[projects]] - digest = "1:9424f440bba8f7508b69414634aef3b2b3a877e522d8a4624692412805407bb7" + digest = "1:dab83a1bbc7ad3d7a6ba1a1cc1760f25ac38cdf7d96a5cdd55cd915a4f5ceaf9" name = "github.com/spf13/pflag" packages = ["."] pruneopts = "UT" - revision = "583c0c0531f06d5278b7d917446061adc344b5cd" - version = "v1.0.1" + revision = "9a97c102cda95a86cec2345a6f09f55a939babf5" + version = "v1.0.2" [[projects]] digest = "1:f8e1a678a2571e265f4bf91a3e5e32aa6b1474a55cb0ea849750cc177b664d96" @@ -363,7 +363,7 @@ version = "v1.0.0" [[projects]] - digest = "1:7e8d267900c7fa7f35129a2a37596e38ed0f11ca746d6d9ba727980ee138f9f6" + digest = "1:73697231b93fb74a73ebd8384b68b9a60c57ea6b13c56d2425414566a72c8e6d" name = "github.com/stretchr/testify" packages = [ "assert", @@ -375,7 +375,7 @@ [[projects]] branch = "master" - digest = "1:b3cfb8d82b1601a846417c3f31c03a7961862cb2c98dcf0959c473843e6d9a2b" + digest = "1:922191411ad8f61bcd8018ac127589bb489712c1d1a0ab2497aca4b16de417d2" name = "github.com/syndtr/goleveldb" packages = [ "leveldb", @@ -396,7 +396,7 @@ [[projects]] branch = "master" - digest = "1:087aaa7920e5d0bf79586feb57ce01c35c830396ab4392798112e8aae8c47722" + digest = "1:203b409c21115233a576f99e8f13d8e07ad82b25500491f7e1cca12588fb3232" name = "github.com/tendermint/ed25519" packages = [ ".", @@ -407,12 +407,12 @@ revision = "d8387025d2b9d158cf4efb07e7ebf814bcce2057" [[projects]] - digest = "1:e9113641c839c21d8eaeb2c907c7276af1eddeed988df8322168c56b7e06e0e1" + digest = "1:e0a2a4be1e20c305badc2b0a7a9ab7fef6da500763bec23ab81df3b5f9eec9ee" name = "github.com/tendermint/go-amino" packages = ["."] pruneopts = "UT" - revision = "2106ca61d91029c931fd54968c2bb02dc96b1412" - version = "0.10.1" + revision = "a8328986c1608950fa5d3d1c0472cccc4f8fc02c" + version = "v0.12.0-rc0" [[projects]] digest = "1:d4a15d404afbf591e8be16fcda7f5ac87948d5c7531f9d909fd84cc730ab16e2" @@ -423,7 +423,7 @@ version = "v0.9.2" [[projects]] - digest = "1:26146cdb2811ce481e72138439b9b1aa17a64d54364f96bb92f97a9ef8ba4f01" + digest = "1:df232b6f3c44554161093af004100f75e564b398ad3ff63ecbc297fe400dcfdb" name = "github.com/tendermint/tendermint" packages = [ "abci/client", @@ -498,7 +498,7 @@ [[projects]] branch = "master" - digest = "1:7a71fffde456d746c52f9cd09c50b034533a3180fb1f6320abb149f2ccc579e5" + digest = "1:3c3c47c1f7587c380afcc1d76385a4a03a2917b9ccc1ac50864d8f87e0264ada" name = "golang.org/x/crypto" packages = [ "blowfish", @@ -517,10 +517,10 @@ "salsa20/salsa", ] pruneopts = "UT" - revision = "f027049dab0ad238e394a753dba2d14753473a04" + revision = "de0752318171da717af4ce24d0a2e8626afaeb11" [[projects]] - digest = "1:d36f55a999540d29b6ea3c2ea29d71c76b1d9853fdcd3e5c5cb4836f2ba118f1" + digest = "1:04dda8391c3e2397daf254ac68003f30141c069b228d06baec8324a5f81dc1e9" name = "golang.org/x/net" packages = [ "context", @@ -537,17 +537,17 @@ [[projects]] branch = "master" - digest = "1:4d64ef38a30b73db6e8e7a2824b7fd356d921e0ee3fdd3248658996821d3b47d" + digest = "1:a97b28c54844d6b9848a840ae83d4d263292e831e8c2a586116fcab5c7cfe5f2" name = "golang.org/x/sys" packages = [ "cpu", "unix", ] pruneopts = "UT" - revision = "acbc56fc7007d2a01796d5bde54f39e3b3e95945" + revision = "98c5dad5d1a0e8a73845ecc8897d0bd56586511d" [[projects]] - digest = "1:a2ab62866c75542dd18d2b069fec854577a20211d7c0ea6ae746072a1dccdd18" + digest = "1:7509ba4347d1f8de6ae9be8818b0cd1abc3deeffe28aeaf4be6d4b6b5178d9ca" name = "golang.org/x/text" packages = [ "collate", @@ -575,10 +575,10 @@ name = "google.golang.org/genproto" packages = ["googleapis/rpc/status"] pruneopts = "UT" - revision = "daca94659cb50e9f37c1b834680f2e46358f10b0" + revision = "383e8b2c3b9e36c4076b235b32537292176bae20" [[projects]] - digest = "1:2dab32a43451e320e49608ff4542fdfc653c95dcc35d0065ec9c6c3dd540ed74" + digest = "1:4515e3030c440845b046354fd5d57671238428b820deebce2e9dabb5cd3c51ac" name = "google.golang.org/grpc" packages = [ ".", diff --git a/Gopkg.toml b/Gopkg.toml index 1c7019ae6..e9343195c 100644 --- a/Gopkg.toml +++ b/Gopkg.toml @@ -49,7 +49,7 @@ [[override]] name = "github.com/tendermint/go-amino" - version = "=0.10.1" + version = "=v0.12.0-rc0" [[override]] name = "github.com/tendermint/iavl" From 59acfe857fb0a0230917e8fe7ddb27e371274b13 Mon Sep 17 00:00:00 2001 From: Ethan Buchman Date: Sun, 12 Aug 2018 20:10:59 -0400 Subject: [PATCH 02/23] WIP: reorg PENDING.md --- PENDING.md | 74 +++++++++++++++++++++++------------------------------- 1 file changed, 31 insertions(+), 43 deletions(-) diff --git a/PENDING.md b/PENDING.md index 4ca3e6df5..1df402d88 100644 --- a/PENDING.md +++ b/PENDING.md @@ -1,43 +1,39 @@ ## v0.24.0 PENDING -^--- PENDING wasn't purged on sdk v0.23.0 release. BREAKING CHANGES -* Update to tendermint v0.23.0. This involves removing crypto.Pubkey, -maintaining a validator address to pubkey map, and using time.Time instead of int64 for time. [SDK PR](https://github.com/cosmos/cosmos-sdk/pull/1927) -## PENDING +* Gaia REST API (`gaiacli advanced rest-server`) + - [x/stake] \#1880 More REST-ful endpoints + - [x/slashing] \#1866 `/slashing/signing_info` takes cosmosvalpub instead of cosmosvaladdr + - use time.Time instead of int64 for time. -BREAKING CHANGES -* API - - \#1880 [x/stake] changed the endpoints to be more REST-ful -* Update to tendermint v0.22.5. This involves changing all of the cryptography imports. [Ref](https://github.com/tendermint/tendermint/pull/1966) -* [baseapp] Msgs are no longer run on CheckTx, removed `ctx.IsCheckTx()` -* [x/gov] CLI flag changed from `proposalID` to `proposal-id` -* [x/stake] Fixed the period check for the inflation calculation -* [x/stake] Inflation doesn't use rationals in calculation (performance boost) -* [x/stake] CLI flags for identity changed from `--keybase-sig` to `--identity`, effects: - * `gaiacli stake create-validator` - * `gaiacli stake edit-validator` -* [baseapp] NewBaseApp constructor now takes sdk.TxDecoder as argument instead of wire.Codec -* [x/auth] Default TxDecoder can be found in `x/auth` rather than baseapp -* \#1606 The following CLI commands have been switched to use `--from` - * `gaiacli stake create-validator --address-validator` - * `gaiacli stake edit-validator --address-validator` - * `gaiacli stake delegate --address-delegator` - * `gaiacli stake unbond begin --address-delegator` - * `gaiacli stake unbond complete --address-delegator` - * `gaiacli stake redelegate begin --address-delegator` - * `gaiacli stake redelegate complete --address-delegator` - * `gaiacli stake unrevoke [validator-address]` - * `gaiacli gov submit-proposal --proposer` - * `gaiacli gov deposit --depositer` - * `gaiacli gov vote --voter` -* [x/gov] Added tags sub-package, changed tags to use dash-case -* [x/gov] Governance parameters are now stored in globalparams store -* [lcd] \#1866 Updated lcd /slashing/signing_info endpoint to take cosmosvalpub instead of cosmosvaladdr -* [types] sdk.NewCoin now takes sdk.Int, sdk.NewInt64Coin takes int64 -* [cli] #1551: Officially removed `--name` from CLI commands -* [cli] Genesis/key creation (`init`) now supports user-provided key passwords +* Gaia CLI (`gaiacli`) + - [x/stake] change `--keybase-sig` to `--identity` + - [x/gov] Change `proposalID` to `proposal-id` + - [x/stake, x/gov] \#1606 Use `--from` instead of adhoc flags like `--address-validator` + and `--proposer` to indicate the sender address. + - \#1551 Remove `--name` completely + - Genesis/key creation (`gaiad init`) now supports user-provided key passwords + +* Gaia + - [x/stake] Inflation doesn't use rationals in calculation (performance boost) + - [x/stake] Persist a map from `addr->pubkey` in the state since BeginBlock + doesn't provide pubkeys. + - [x/gov] Added tags sub-package, changed tags to use dash-case + - [x/gov] Governance parameters are now stored in globalparams store + +* SDK + - [baseapp] Msgs are no longer run on CheckTx, removed `ctx.IsCheckTx()` + - [baseapp] NewBaseApp constructor now takes sdk.TxDecoder as argument instead of wire.Codec + - [types] sdk.NewCoin now takes sdk.Int, sdk.NewInt64Coin takes int64 + - [x/auth] Default TxDecoder can be found in `x/auth` rather than baseapp + +* Tendermint + - v0.22.5 -> [Tendermint PR](https://github.com/tendermint/tendermint/pull/1966) + - change all the cryptography imports. + - v0.23.0 -> [SDK PR](https://github.com/cosmos/cosmos-sdk/pull/1927) + - BeginBlock no longer includes crypto.Pubkey + - use time.Time instead of int64 for time. FEATURES * [lcd] Can now query governance proposals by ProposalStatus @@ -59,10 +55,8 @@ FEATURES IMPROVEMENTS * [baseapp] Allow any alphanumeric character in route -* [cli] Improve error messages for all txs when the account doesn't exist * [tools] Remove `rm -rf vendor/` from `make get_vendor_deps` * [x/auth] Recover ErrorOutOfGas panic in order to set sdk.Result attributes correctly -* [x/stake] Add revoked to human-readable validator * [spec] \#967 Inflation and distribution specs drastically improved * [tests] Add tests to example apps in docs * [x/gov] Votes on a proposal can now be queried @@ -74,9 +68,6 @@ IMPROVEMENTS * [server] \#1930 Transactions indexer indexes all tags by default. BUG FIXES -* \#1666 Add intra-tx counter to the genesis validators -* \#1797 Fix off-by-one error in slashing for downtime -* \#1787 Fixed bug where Tally fails due to revoked/unbonding validator * \#1766 Fixes bad example for keybase identity * \#1804 Fixes gen-tx genesis generation logic temporarily until upstream updates * \#1799 Fix `gaiad export` @@ -90,8 +81,5 @@ BUG FIXES structure `TxContext` in `x/auth/client/context` * Cleaned up documentation and API of what used to be `CoreContext` * Implemented `KeyType` enum for key info -* \#1666 Add intra-tx counter to the genesis validators * [tests] \#1551: Fixed invalid LCD test JSON payload in `doIBCTransfer` -* \#1787 Fixed bug where Tally fails due to revoked/unbonding validator -* \#1787 Fixed bug where Tally fails due to revoked/unbonding validator * [basecoin] Fixes coin transaction failure and account query [discussion](https://forum.cosmos.network/t/unmarshalbinarybare-expected-to-read-prefix-bytes-75fbfab8-since-it-is-registered-concrete-but-got-0a141dfa/664/6) From a56117ee74a1ac5fb32e0cca63486b1617649838 Mon Sep 17 00:00:00 2001 From: Christopher Goes Date: Mon, 13 Aug 2018 15:41:53 +0200 Subject: [PATCH 03/23] Stage onto release/v0.24.0 (#1999) * Set SignedBlocksWindow back to 1000 * Merge PR #1995: upgrading ledger goclient lib * Update version/version.go --- Gopkg.lock | 4 ++-- Gopkg.toml | 2 +- version/version.go | 6 +++--- x/slashing/params.go | 4 ++-- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/Gopkg.lock b/Gopkg.lock index 808551308..1bf3ff1ae 100644 --- a/Gopkg.lock +++ b/Gopkg.lock @@ -490,11 +490,11 @@ version = "v0.23.0" [[projects]] - digest = "1:5bd938386bd1f61a581bf8cd6ff2b7b2f79c542929176db4ceb44965440dae07" + digest = "1:2ea7665579c64cda1873a395de97a2af02df1d06f4cb52128caf57f13249303c" name = "github.com/zondax/ledger-goclient" packages = ["."] pruneopts = "UT" - revision = "39ba4728c137c75718a21f9b4b3280fa31b9139b" + revision = "a05312e1c998ad831b70eea41d009654f7f95985" [[projects]] branch = "master" diff --git a/Gopkg.toml b/Gopkg.toml index e9343195c..a692189e6 100644 --- a/Gopkg.toml +++ b/Gopkg.toml @@ -65,7 +65,7 @@ [[constraint]] name = "github.com/zondax/ledger-goclient" - revision = "39ba4728c137c75718a21f9b4b3280fa31b9139b" + revision = "a05312e1c998ad831b70eea41d009654f7f95985" [prune] go-tests = true diff --git a/version/version.go b/version/version.go index 9b332353b..a2bee9eb2 100644 --- a/version/version.go +++ b/version/version.go @@ -2,10 +2,10 @@ package version const Maj = "0" -const Min = "23" -const Fix = "1" +const Min = "24" +const Fix = "0" -const Version = "0.23.1" +const Version = "0.24.0" // GitCommit set by build flags var GitCommit = "" diff --git a/x/slashing/params.go b/x/slashing/params.go index 9d1bc3960..c004ecc52 100644 --- a/x/slashing/params.go +++ b/x/slashing/params.go @@ -66,8 +66,8 @@ var ( // TODO Temporarily set to five minutes for testnets defaultDoubleSignUnbondDuration int64 = 60 * 5 - // TODO Temporarily set to 100 blocks for testnets - defaultSignedBlocksWindow int64 = 100 + // TODO Temporarily set to 1000 blocks for testnets + defaultSignedBlocksWindow int64 = 1000 // TODO Temporarily set to 10 minutes for testnets defaultDowntimeUnbondDuration int64 = 60 * 10 From 0b2bf8f3a0e02844fb959099a27969186ab6fead Mon Sep 17 00:00:00 2001 From: Christopher Goes Date: Mon, 13 Aug 2018 15:56:40 +0200 Subject: [PATCH 04/23] Set SignedBlocksWindow to 10000 per @zmanian instructions --- x/slashing/params.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/x/slashing/params.go b/x/slashing/params.go index c004ecc52..2d8102bd6 100644 --- a/x/slashing/params.go +++ b/x/slashing/params.go @@ -66,8 +66,8 @@ var ( // TODO Temporarily set to five minutes for testnets defaultDoubleSignUnbondDuration int64 = 60 * 5 - // TODO Temporarily set to 1000 blocks for testnets - defaultSignedBlocksWindow int64 = 1000 + // TODO Temporarily set to 10000 blocks for testnets + defaultSignedBlocksWindow int64 = 10000 // TODO Temporarily set to 10 minutes for testnets defaultDowntimeUnbondDuration int64 = 60 * 10 From d3322052db2d4e78e956ca77b10a971146369191 Mon Sep 17 00:00:00 2001 From: Ethan Buchman Date: Mon, 13 Aug 2018 10:42:47 -0400 Subject: [PATCH 05/23] update pending.md --- PENDING.md | 120 +++++++++++++++++++++++++++++++---------------------- 1 file changed, 71 insertions(+), 49 deletions(-) diff --git a/PENDING.md b/PENDING.md index 1df402d88..f3c89f044 100644 --- a/PENDING.md +++ b/PENDING.md @@ -1,15 +1,22 @@ ## v0.24.0 PENDING +* Gaia REST API (`gaiacli advanced rest-server`) +* Gaia CLI (`gaiacli`) +* Gaia +* SDK +* Tendermint + BREAKING CHANGES * Gaia REST API (`gaiacli advanced rest-server`) - - [x/stake] \#1880 More REST-ful endpoints + - [x/stake] \#1880 More REST-ful endpoints (large refactor) - [x/slashing] \#1866 `/slashing/signing_info` takes cosmosvalpub instead of cosmosvaladdr - use time.Time instead of int64 for time. * Gaia CLI (`gaiacli`) - [x/stake] change `--keybase-sig` to `--identity` - - [x/gov] Change `proposalID` to `proposal-id` + - [x/stake] \#1828 Force user to specify amount on create-validator command by removing default + - [x/gov] Change `--proposalID` to `--proposal-id` - [x/stake, x/gov] \#1606 Use `--from` instead of adhoc flags like `--address-validator` and `--proposer` to indicate the sender address. - \#1551 Remove `--name` completely @@ -19,14 +26,19 @@ BREAKING CHANGES - [x/stake] Inflation doesn't use rationals in calculation (performance boost) - [x/stake] Persist a map from `addr->pubkey` in the state since BeginBlock doesn't provide pubkeys. - - [x/gov] Added tags sub-package, changed tags to use dash-case - - [x/gov] Governance parameters are now stored in globalparams store + - [x/gov] \#1781 Added tags sub-package, changed tags to use dash-case + - [x/gov] \#1688 Governance parameters are now stored in globalparams store + - [x/gov] \#1859 Slash validators who do not vote on a proposal + - [x/gov] \#1914 added TallyResult type that gets stored in Proposal after tallying is finished * SDK - [baseapp] Msgs are no longer run on CheckTx, removed `ctx.IsCheckTx()` - - [baseapp] NewBaseApp constructor now takes sdk.TxDecoder as argument instead of wire.Codec - - [types] sdk.NewCoin now takes sdk.Int, sdk.NewInt64Coin takes int64 + - [baseapp] NewBaseApp constructor takes sdk.TxDecoder as argument instead of wire.Codec + - [types] sdk.NewCoin takes sdk.Int, sdk.NewInt64Coin takes int64 - [x/auth] Default TxDecoder can be found in `x/auth` rather than baseapp + - [client] \#1551: Refactored `CoreContext` to `TxContext` and `QueryContext` + - Removed all tx related fields and logic (building & signing) to separate + structure `TxContext` in `x/auth/client/context` * Tendermint - v0.22.5 -> [Tendermint PR](https://github.com/tendermint/tendermint/pull/1966) @@ -36,50 +48,60 @@ BREAKING CHANGES - use time.Time instead of int64 for time. FEATURES -* [lcd] Can now query governance proposals by ProposalStatus -* [x/mock/simulation] Randomized simulation framework - * Modules specify invariants and operations, preferably in an x/[module]/simulation package - * Modules can test random combinations of their own operations - * Applications can integrate operations and invariants from modules together for an integrated simulation -* [baseapp] Initialize validator set on ResponseInitChain -* [cosmos-sdk-cli] Added support for cosmos-sdk-cli tool under cosmos-sdk/cmd - * This allows SDK users to initialize a new project repository. -* [tests] Remotenet commands for AWS (awsnet) -* [networks] Added ansible scripts to upgrade seed nodes on a network -* [store] Add transient store -* [gov] Add slashing for validators who do not vote on a proposal -* [cli] added `gov query-proposals` command to CLI. Can filter by `depositer`, `voter`, and `status` -* [core] added BaseApp.Seal - ability to seal baseapp parameters once they've been set -* [scripts] added log output monitoring to DataDog using Ansible scripts -* [gov] added TallyResult type that gets added stored in Proposal after tallying is finished + +* Gaia REST API (`gaiacli advanced rest-server`) + - [x/gov] Can now query governance proposals by ProposalStatus + +* Gaia CLI (`gaiacli`) + - [x/gov] added `query-proposals` command. Can filter by `depositer`, `voter`, and `status` + +* Gaia + - [networks] Added ansible scripts to upgrade seed nodes on a network + +* SDK + - [x/mock/simulation] Randomized simulation framework + - Modules specify invariants and operations, preferably in an x/[module]/simulation package + - Modules can test random combinations of their own operations + - Applications can integrate operations and invariants from modules together for an integrated simulation + - [store] \#1481 Add transient store + - [baseapp] Initialize validator set on ResponseInitChain + - [baseapp] added BaseApp.Seal - ability to seal baseapp parameters once they've been set + - [cosmos-sdk-cli] New `cosmos-sdk-cli` tool to quickly initialize a new + SDK-based project + - [scripts] added log output monitoring to DataDog using Ansible scripts IMPROVEMENTS -* [baseapp] Allow any alphanumeric character in route -* [tools] Remove `rm -rf vendor/` from `make get_vendor_deps` -* [x/auth] Recover ErrorOutOfGas panic in order to set sdk.Result attributes correctly -* [spec] \#967 Inflation and distribution specs drastically improved -* [tests] Add tests to example apps in docs -* [x/gov] Votes on a proposal can now be queried -* [x/bank] Unit tests are now table-driven -* [tests] Fixes ansible scripts to work with AWS too -* [tests] \#1806 CLI tests are now behind the build flag 'cli_test', so go test works on a new repo -* [x/gov] Initial governance parameters can now be set in the genesis file -* [x/stake] \#1815 Sped up the processing of `EditValidator` txs. -* [server] \#1930 Transactions indexer indexes all tags by default. + +* Gaia + - [spec] \#967 Inflation and distribution specs drastically improved + - [x/gov] \#1773 Votes on a proposal can now be queried + - [x/gov] Initial governance parameters can now be set in the genesis file + - [x/stake] \#1815 Sped up the processing of `EditValidator` txs. + - [config] \#1930 Transactions indexer indexes all tags by default. + +* SDK + - [baseapp] \#1587 Allow any alphanumeric character in route + - [baseapp] Allow any alphanumeric character in route + - [tools] Remove `rm -rf vendor/` from `make get_vendor_deps` + - [x/auth] Recover ErrorOutOfGas panic in order to set sdk.Result attributes correctly + - [x/bank] Unit tests are now table-driven + - [tests] Add tests to example apps in docs + - [tests] Fixes ansible scripts to work with AWS too + - [tests] \#1806 CLI tests are now behind the build flag 'cli_test', so go test works on a new repo BUG FIXES -* \#1766 Fixes bad example for keybase identity -* \#1804 Fixes gen-tx genesis generation logic temporarily until upstream updates -* \#1799 Fix `gaiad export` -* \#1828 Force user to specify amount on create-validator command by removing default -* \#1839 Fixed bug where intra-tx counter wasn't set correctly for genesis validators -* [staking] [#1858](https://github.com/cosmos/cosmos-sdk/pull/1858) Fixed bug where the cliff validator was not be updated correctly -* [tests] \#1675 Fix non-deterministic `test_cover` -* [client] \#1551: Refactored `CoreContext` - * Renamed `CoreContext` to `QueryContext` - * Removed all tx related fields and logic (building & signing) to separate - structure `TxContext` in `x/auth/client/context` - * Cleaned up documentation and API of what used to be `CoreContext` - * Implemented `KeyType` enum for key info -* [tests] \#1551: Fixed invalid LCD test JSON payload in `doIBCTransfer` -* [basecoin] Fixes coin transaction failure and account query [discussion](https://forum.cosmos.network/t/unmarshalbinarybare-expected-to-read-prefix-bytes-75fbfab8-since-it-is-registered-concrete-but-got-0a141dfa/664/6) + +* Gaia CLI (`gaiacli`) + - \#1766 Fixes bad example for keybase identity + +* Gaia + - \#1804 Fixes gen-tx genesis generation logic temporarily until upstream updates + - \#1799 Fix `gaiad export` + - \#1839 Fixed bug where intra-tx counter wasn't set correctly for genesis validators + - [x/stake] \#1858 Fixed bug where the cliff validator was not updated correctly + - [tests] \#1675 Fix non-deterministic `test_cover` + - [tests] \#1551 Fixed invalid LCD test JSON payload in `doIBCTransfer` + - [basecoin] Fixes coin transaction failure and account query [discussion](https://forum.cosmos.network/t/unmarshalbinarybare-expected-to-read-prefix-bytes-75fbfab8-since-it-is-registered-concrete-but-got-0a141dfa/664/6) + - [x/gov] \#1757 Fix VoteOption conversion to String + + From e64a5538e41e9dee661deb8e88ddd94f1a5faa68 Mon Sep 17 00:00:00 2001 From: Ethan Buchman Date: Mon, 13 Aug 2018 10:47:44 -0400 Subject: [PATCH 06/23] update changelog, reset pending --- CHANGELOG.md | 107 +++++++++++++++++++++++++++++++++++++++++++++++++++ PENDING.md | 88 +++++++++++------------------------------- 2 files changed, 129 insertions(+), 66 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5d8864201..7b6103526 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,112 @@ # Changelog +## 0.24.0 + +*August 13th, 2018* + +BREAKING CHANGES + +* Gaia REST API (`gaiacli advanced rest-server`) + - [x/stake] \#1880 More REST-ful endpoints (large refactor) + - [x/slashing] \#1866 `/slashing/signing_info` takes cosmosvalpub instead of cosmosvaladdr + - use time.Time instead of int64 for time. See Tendermint v0.23.0 + - Signatures are no longer Amino encoded with prefixes (just encoded as raw + bytes) - see Tendermint v0.23.0 + +* Gaia CLI (`gaiacli`) + - [x/stake] change `--keybase-sig` to `--identity` + - [x/stake] \#1828 Force user to specify amount on create-validator command by removing default + - [x/gov] Change `--proposalID` to `--proposal-id` + - [x/stake, x/gov] \#1606 Use `--from` instead of adhoc flags like `--address-validator` + and `--proposer` to indicate the sender address. + - \#1551 Remove `--name` completely + - Genesis/key creation (`gaiad init`) now supports user-provided key passwords + +* Gaia + - [x/stake] Inflation doesn't use rationals in calculation (performance boost) + - [x/stake] Persist a map from `addr->pubkey` in the state since BeginBlock + doesn't provide pubkeys. + - [x/gov] \#1781 Added tags sub-package, changed tags to use dash-case + - [x/gov] \#1688 Governance parameters are now stored in globalparams store + - [x/gov] \#1859 Slash validators who do not vote on a proposal + - [x/gov] \#1914 added TallyResult type that gets stored in Proposal after tallying is finished + +* SDK + - [baseapp] Msgs are no longer run on CheckTx, removed `ctx.IsCheckTx()` + - [baseapp] NewBaseApp constructor takes sdk.TxDecoder as argument instead of wire.Codec + - [types] sdk.NewCoin takes sdk.Int, sdk.NewInt64Coin takes int64 + - [x/auth] Default TxDecoder can be found in `x/auth` rather than baseapp + - [client] \#1551: Refactored `CoreContext` to `TxContext` and `QueryContext` + - Removed all tx related fields and logic (building & signing) to separate + structure `TxContext` in `x/auth/client/context` + +* Tendermint + - v0.22.5 -> See [Tendermint PR](https://github.com/tendermint/tendermint/pull/1966) + - change all the cryptography imports. + - v0.23.0 -> See + [Changelog](https://github.com/tendermint/tendermint/blob/v0.23.0/CHANGELOG.md#0230) + and [SDK PR](https://github.com/cosmos/cosmos-sdk/pull/1927) + - BeginBlock no longer includes crypto.Pubkey + - use time.Time instead of int64 for time. + +FEATURES + +* Gaia REST API (`gaiacli advanced rest-server`) + - [x/gov] Can now query governance proposals by ProposalStatus + +* Gaia CLI (`gaiacli`) + - [x/gov] added `query-proposals` command. Can filter by `depositer`, `voter`, and `status` + +* Gaia + - [networks] Added ansible scripts to upgrade seed nodes on a network + +* SDK + - [x/mock/simulation] Randomized simulation framework + - Modules specify invariants and operations, preferably in an x/[module]/simulation package + - Modules can test random combinations of their own operations + - Applications can integrate operations and invariants from modules together for an integrated simulation + - [store] \#1481 Add transient store + - [baseapp] Initialize validator set on ResponseInitChain + - [baseapp] added BaseApp.Seal - ability to seal baseapp parameters once they've been set + - [cosmos-sdk-cli] New `cosmos-sdk-cli` tool to quickly initialize a new + SDK-based project + - [scripts] added log output monitoring to DataDog using Ansible scripts + +IMPROVEMENTS + +* Gaia + - [spec] \#967 Inflation and distribution specs drastically improved + - [x/gov] \#1773 Votes on a proposal can now be queried + - [x/gov] Initial governance parameters can now be set in the genesis file + - [x/stake] \#1815 Sped up the processing of `EditValidator` txs. + - [config] \#1930 Transactions indexer indexes all tags by default. + +* SDK + - [baseapp] \#1587 Allow any alphanumeric character in route + - [baseapp] Allow any alphanumeric character in route + - [tools] Remove `rm -rf vendor/` from `make get_vendor_deps` + - [x/auth] Recover ErrorOutOfGas panic in order to set sdk.Result attributes correctly + - [x/bank] Unit tests are now table-driven + - [tests] Add tests to example apps in docs + - [tests] Fixes ansible scripts to work with AWS too + - [tests] \#1806 CLI tests are now behind the build flag 'cli_test', so go test works on a new repo + +BUG FIXES + +* Gaia CLI (`gaiacli`) + - \#1766 Fixes bad example for keybase identity + +* Gaia + - \#1804 Fixes gen-tx genesis generation logic temporarily until upstream updates + - \#1799 Fix `gaiad export` + - \#1839 Fixed bug where intra-tx counter wasn't set correctly for genesis validators + - [x/stake] \#1858 Fixed bug where the cliff validator was not updated correctly + - [tests] \#1675 Fix non-deterministic `test_cover` + - [tests] \#1551 Fixed invalid LCD test JSON payload in `doIBCTransfer` + - [basecoin] Fixes coin transaction failure and account query [discussion](https://forum.cosmos.network/t/unmarshalbinarybare-expected-to-read-prefix-bytes-75fbfab8-since-it-is-registered-concrete-but-got-0a141dfa/664/6) + - [x/gov] \#1757 Fix VoteOption conversion to String + + ## 0.23.1 *July 27th, 2018* diff --git a/PENDING.md b/PENDING.md index f3c89f044..5d0e7dba0 100644 --- a/PENDING.md +++ b/PENDING.md @@ -1,107 +1,63 @@ -## v0.24.0 PENDING +## PENDING * Gaia REST API (`gaiacli advanced rest-server`) + * Gaia CLI (`gaiacli`) + * Gaia + * SDK + * Tendermint BREAKING CHANGES * Gaia REST API (`gaiacli advanced rest-server`) - - [x/stake] \#1880 More REST-ful endpoints (large refactor) - - [x/slashing] \#1866 `/slashing/signing_info` takes cosmosvalpub instead of cosmosvaladdr - - use time.Time instead of int64 for time. * Gaia CLI (`gaiacli`) - - [x/stake] change `--keybase-sig` to `--identity` - - [x/stake] \#1828 Force user to specify amount on create-validator command by removing default - - [x/gov] Change `--proposalID` to `--proposal-id` - - [x/stake, x/gov] \#1606 Use `--from` instead of adhoc flags like `--address-validator` - and `--proposer` to indicate the sender address. - - \#1551 Remove `--name` completely - - Genesis/key creation (`gaiad init`) now supports user-provided key passwords * Gaia - - [x/stake] Inflation doesn't use rationals in calculation (performance boost) - - [x/stake] Persist a map from `addr->pubkey` in the state since BeginBlock - doesn't provide pubkeys. - - [x/gov] \#1781 Added tags sub-package, changed tags to use dash-case - - [x/gov] \#1688 Governance parameters are now stored in globalparams store - - [x/gov] \#1859 Slash validators who do not vote on a proposal - - [x/gov] \#1914 added TallyResult type that gets stored in Proposal after tallying is finished - + * SDK - - [baseapp] Msgs are no longer run on CheckTx, removed `ctx.IsCheckTx()` - - [baseapp] NewBaseApp constructor takes sdk.TxDecoder as argument instead of wire.Codec - - [types] sdk.NewCoin takes sdk.Int, sdk.NewInt64Coin takes int64 - - [x/auth] Default TxDecoder can be found in `x/auth` rather than baseapp - - [client] \#1551: Refactored `CoreContext` to `TxContext` and `QueryContext` - - Removed all tx related fields and logic (building & signing) to separate - structure `TxContext` in `x/auth/client/context` * Tendermint - - v0.22.5 -> [Tendermint PR](https://github.com/tendermint/tendermint/pull/1966) - - change all the cryptography imports. - - v0.23.0 -> [SDK PR](https://github.com/cosmos/cosmos-sdk/pull/1927) - - BeginBlock no longer includes crypto.Pubkey - - use time.Time instead of int64 for time. + FEATURES * Gaia REST API (`gaiacli advanced rest-server`) - - [x/gov] Can now query governance proposals by ProposalStatus * Gaia CLI (`gaiacli`) - - [x/gov] added `query-proposals` command. Can filter by `depositer`, `voter`, and `status` * Gaia - - [networks] Added ansible scripts to upgrade seed nodes on a network * SDK - - [x/mock/simulation] Randomized simulation framework - - Modules specify invariants and operations, preferably in an x/[module]/simulation package - - Modules can test random combinations of their own operations - - Applications can integrate operations and invariants from modules together for an integrated simulation - - [store] \#1481 Add transient store - - [baseapp] Initialize validator set on ResponseInitChain - - [baseapp] added BaseApp.Seal - ability to seal baseapp parameters once they've been set - - [cosmos-sdk-cli] New `cosmos-sdk-cli` tool to quickly initialize a new - SDK-based project - - [scripts] added log output monitoring to DataDog using Ansible scripts + +* Tendermint + IMPROVEMENTS +* Gaia REST API (`gaiacli advanced rest-server`) + +* Gaia CLI (`gaiacli`) + * Gaia - - [spec] \#967 Inflation and distribution specs drastically improved - - [x/gov] \#1773 Votes on a proposal can now be queried - - [x/gov] Initial governance parameters can now be set in the genesis file - - [x/stake] \#1815 Sped up the processing of `EditValidator` txs. - - [config] \#1930 Transactions indexer indexes all tags by default. * SDK - - [baseapp] \#1587 Allow any alphanumeric character in route - - [baseapp] Allow any alphanumeric character in route - - [tools] Remove `rm -rf vendor/` from `make get_vendor_deps` - - [x/auth] Recover ErrorOutOfGas panic in order to set sdk.Result attributes correctly - - [x/bank] Unit tests are now table-driven - - [tests] Add tests to example apps in docs - - [tests] Fixes ansible scripts to work with AWS too - - [tests] \#1806 CLI tests are now behind the build flag 'cli_test', so go test works on a new repo + +* Tendermint + BUG FIXES +* Gaia REST API (`gaiacli advanced rest-server`) + * Gaia CLI (`gaiacli`) - - \#1766 Fixes bad example for keybase identity * Gaia - - \#1804 Fixes gen-tx genesis generation logic temporarily until upstream updates - - \#1799 Fix `gaiad export` - - \#1839 Fixed bug where intra-tx counter wasn't set correctly for genesis validators - - [x/stake] \#1858 Fixed bug where the cliff validator was not updated correctly - - [tests] \#1675 Fix non-deterministic `test_cover` - - [tests] \#1551 Fixed invalid LCD test JSON payload in `doIBCTransfer` - - [basecoin] Fixes coin transaction failure and account query [discussion](https://forum.cosmos.network/t/unmarshalbinarybare-expected-to-read-prefix-bytes-75fbfab8-since-it-is-registered-concrete-but-got-0a141dfa/664/6) - - [x/gov] \#1757 Fix VoteOption conversion to String +* SDK + +* Tendermint From 1cb89b958b41f24d9da556eccadea4f0d0c065cb Mon Sep 17 00:00:00 2001 From: Ethan Buchman Date: Mon, 13 Aug 2018 11:14:01 -0400 Subject: [PATCH 07/23] update pending --- PENDING.md | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/PENDING.md b/PENDING.md index 5d0e7dba0..cba76aae6 100644 --- a/PENDING.md +++ b/PENDING.md @@ -1,15 +1,5 @@ ## PENDING -* Gaia REST API (`gaiacli advanced rest-server`) - -* Gaia CLI (`gaiacli`) - -* Gaia - -* SDK - -* Tendermint - BREAKING CHANGES * Gaia REST API (`gaiacli advanced rest-server`) From 61b49d560f473f44f93dd5fdf96b6e39d6de0806 Mon Sep 17 00:00:00 2001 From: Juan Leni Date: Mon, 13 Aug 2018 18:15:55 +0200 Subject: [PATCH 08/23] Merge PR #2003: Update upstream Ledger Go client --- Gopkg.lock | 4 ++-- Gopkg.toml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Gopkg.lock b/Gopkg.lock index 1bf3ff1ae..cc42ac4f4 100644 --- a/Gopkg.lock +++ b/Gopkg.lock @@ -490,11 +490,11 @@ version = "v0.23.0" [[projects]] - digest = "1:2ea7665579c64cda1873a395de97a2af02df1d06f4cb52128caf57f13249303c" + digest = "1:4dcb0dd65feecb068ce23a234d1a07c7868a1e39f52a6defcae0bb371d03abf6" name = "github.com/zondax/ledger-goclient" packages = ["."] pruneopts = "UT" - revision = "a05312e1c998ad831b70eea41d009654f7f95985" + revision = "4296ee5701e945f9b3a7dbe51f402e0b9be57259" [[projects]] branch = "master" diff --git a/Gopkg.toml b/Gopkg.toml index a692189e6..acc3e282a 100644 --- a/Gopkg.toml +++ b/Gopkg.toml @@ -65,7 +65,7 @@ [[constraint]] name = "github.com/zondax/ledger-goclient" - revision = "a05312e1c998ad831b70eea41d009654f7f95985" + revision = "4296ee5701e945f9b3a7dbe51f402e0b9be57259" [prune] go-tests = true From c9cbb0b09458c708a34d2fcbc4d40db19340024c Mon Sep 17 00:00:00 2001 From: Jack Zampolin Date: Mon, 13 Aug 2018 12:41:07 -0700 Subject: [PATCH 09/23] Merge PR #2010: Add RELEASE_TEST_SCRIPT.md --- cmd/gaia/testnets/gaia-5001/adrian.json | 20 - cmd/gaia/testnets/gaia-5001/anton.json | 20 - cmd/gaia/testnets/gaia-5001/aurel.json | 20 - cmd/gaia/testnets/gaia-5001/bucky.json | 20 - cmd/gaia/testnets/gaia-5001/cwgoes.json | 20 - cmd/gaia/testnets/gaia-5001/iris.json | 20 - cmd/gaia/testnets/gaia-5001/lino.json | 20 - cmd/gaia/testnets/gaia-5001/pbostrom.json | 20 - cmd/gaia/testnets/gaia-5001/poldsam.json | 20 - cmd/gaia/testnets/gaia-5001/staked.json | 20 - cmd/gaia/testnets/gaia-5001/zach.json | 20 - cmd/gaia/testnets/gaia-5001/zaki.json | 20 - cmd/gaia/testnets/gaia-6000/genesis.json | 1459 ------ cmd/gaia/testnets/gaia-6001/genesis.json | 1459 ------ cmd/gaia/testnets/gaia-6002/genesis.json | 1459 ------ cmd/gaia/testnets/gaia-7000/genesis.json | 5680 --------------------- cmd/gaia/testnets/gaia-7001/genesis.json | 5628 -------------------- docs/RELEASE_PROCESS.md | 2 +- docs/RELEASE_TEST_SCRIPT.md | 17 + docs/getting-started/create-testnet.md | 27 + docs/sdk/clients.md | 2 +- docs/validators/validator-setup.md | 129 + 22 files changed, 175 insertions(+), 15927 deletions(-) delete mode 100644 cmd/gaia/testnets/gaia-5001/adrian.json delete mode 100644 cmd/gaia/testnets/gaia-5001/anton.json delete mode 100644 cmd/gaia/testnets/gaia-5001/aurel.json delete mode 100644 cmd/gaia/testnets/gaia-5001/bucky.json delete mode 100644 cmd/gaia/testnets/gaia-5001/cwgoes.json delete mode 100644 cmd/gaia/testnets/gaia-5001/iris.json delete mode 100644 cmd/gaia/testnets/gaia-5001/lino.json delete mode 100644 cmd/gaia/testnets/gaia-5001/pbostrom.json delete mode 100644 cmd/gaia/testnets/gaia-5001/poldsam.json delete mode 100644 cmd/gaia/testnets/gaia-5001/staked.json delete mode 100644 cmd/gaia/testnets/gaia-5001/zach.json delete mode 100644 cmd/gaia/testnets/gaia-5001/zaki.json delete mode 100644 cmd/gaia/testnets/gaia-6000/genesis.json delete mode 100644 cmd/gaia/testnets/gaia-6001/genesis.json delete mode 100644 cmd/gaia/testnets/gaia-6002/genesis.json delete mode 100644 cmd/gaia/testnets/gaia-7000/genesis.json delete mode 100644 cmd/gaia/testnets/gaia-7001/genesis.json create mode 100644 docs/RELEASE_TEST_SCRIPT.md create mode 100644 docs/getting-started/create-testnet.md diff --git a/cmd/gaia/testnets/gaia-5001/adrian.json b/cmd/gaia/testnets/gaia-5001/adrian.json deleted file mode 100644 index 7ca99cb1e..000000000 --- a/cmd/gaia/testnets/gaia-5001/adrian.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "node_id": "1ebc5ca705b3ae1c06a0888ff1287ada82149dc3", - "ip": "138.68.77.24", - "validator": { - "pub_key": { - "type": "AC26791624DE60", - "value": "TZTQnfqOsi89SeoXVnIw+tnFJnr4X8qVC0U8AsEmFk4=" - }, - "power": 100, - "name": "adrian" - }, - "app_gen_tx": { - "name": "default", - "address": "D9C12CB5186FE0018179742FD3110EE534C63460", - "pub_key": { - "type": "AC26791624DE60", - "value": "TZTQnfqOsi89SeoXVnIw+tnFJnr4X8qVC0U8AsEmFk4=" - } - } -} diff --git a/cmd/gaia/testnets/gaia-5001/anton.json b/cmd/gaia/testnets/gaia-5001/anton.json deleted file mode 100644 index 701e85887..000000000 --- a/cmd/gaia/testnets/gaia-5001/anton.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "node_id": "c272ae3cff7558db2c6195eea38fd43fd08406dc", - "ip": "206.189.31.178", - "validator": { - "pub_key": { - "type": "AC26791624DE60", - "value": "tJlZJWjOpYvRitYFTWNPTaUtvQVf+hoNjlfI84VPqvI=" - }, - "power": 100, - "name": "anton" - }, - "app_gen_tx": { - "name": "default", - "address": "E766088FD171906289617F60BF0014C46F0F85EC", - "pub_key": { - "type": "AC26791624DE60", - "value": "tJlZJWjOpYvRitYFTWNPTaUtvQVf+hoNjlfI84VPqvI=" - } - } -} diff --git a/cmd/gaia/testnets/gaia-5001/aurel.json b/cmd/gaia/testnets/gaia-5001/aurel.json deleted file mode 100644 index 0c2ea8166..000000000 --- a/cmd/gaia/testnets/gaia-5001/aurel.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "node_id": "aef085c4bfed0c1ffc6705f2e1e3bf85e5164600", - "ip": "45.77.53.208", - "validator": { - "pub_key": { - "type": "AC26791624DE60", - "value": "RpX+xkwnCNw5DpBelscz4//TiODyC9RDiyIuD6NEwx0=" - }, - "power": 100, - "name": "aurel" - }, - "app_gen_tx": { - "name": "aurel", - "address": "10B0899E05A486AE4E5589C39587DF7E9A185872", - "pub_key": { - "type": "AC26791624DE60", - "value": "RpX+xkwnCNw5DpBelscz4//TiODyC9RDiyIuD6NEwx0=" - } - } -} diff --git a/cmd/gaia/testnets/gaia-5001/bucky.json b/cmd/gaia/testnets/gaia-5001/bucky.json deleted file mode 100644 index fc4bb51cd..000000000 --- a/cmd/gaia/testnets/gaia-5001/bucky.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "node_id": "b0dd378c3fbc4c156cd6d302a799f0d2e4227201", - "ip": "159.89.121.174", - "validator": { - "pub_key": { - "type": "AC26791624DE60", - "value": "0aNTDL49987ZNRi3FtJIi0jk93ybHuYg1FjWrfP9H2o=" - }, - "power": 100, - "name": "bucky" - }, - "app_gen_tx": { - "name": "bucky", - "address": "935E48ED79F1006ED135553768E1D9A768747CF6", - "pub_key": { - "type": "AC26791624DE60", - "value": "0aNTDL49987ZNRi3FtJIi0jk93ybHuYg1FjWrfP9H2o=" - } - } -} diff --git a/cmd/gaia/testnets/gaia-5001/cwgoes.json b/cmd/gaia/testnets/gaia-5001/cwgoes.json deleted file mode 100644 index dce7e20c9..000000000 --- a/cmd/gaia/testnets/gaia-5001/cwgoes.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "node_id": "e25603602d8cf8542570ad0e311d50f55f497f85", - "ip": "158.69.63.13", - "validator": { - "pub_key": { - "type": "AC26791624DE60", - "value": "dcmCn+RZTBdwbCa4YqSnw/Va7xQloBw6vF87ItLwdM0=" - }, - "power": 100, - "name": "cwgoes" - }, - "app_gen_tx": { - "name": "cwgoes", - "address": "328FBB8EA315D070DF908982A5F91A3618001D20", - "pub_key": { - "type": "AC26791624DE60", - "value": "dcmCn+RZTBdwbCa4YqSnw/Va7xQloBw6vF87ItLwdM0=" - } - } -} diff --git a/cmd/gaia/testnets/gaia-5001/iris.json b/cmd/gaia/testnets/gaia-5001/iris.json deleted file mode 100644 index 1a1019672..000000000 --- a/cmd/gaia/testnets/gaia-5001/iris.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "node_id": "aabf05a67b2f399807dc602d05bf97b0ed283ac2", - "ip": "116.62.62.39", - "validator": { - "pub_key": { - "type": "AC26791624DE60", - "value": "7SaH/LyM+qdz9ovD/pvqIf2q7LC7tc5v0ZJxsA2CGTw=" - }, - "power": 100, - "name": "iris" - }, - "app_gen_tx": { - "name": "=suyu", - "address": "4B5BE759EB23B0D76C6A60636BD0E3111178794E", - "pub_key": { - "type": "AC26791624DE60", - "value": "7SaH/LyM+qdz9ovD/pvqIf2q7LC7tc5v0ZJxsA2CGTw=" - } - } -} \ No newline at end of file diff --git a/cmd/gaia/testnets/gaia-5001/lino.json b/cmd/gaia/testnets/gaia-5001/lino.json deleted file mode 100644 index 5bc98bb6e..000000000 --- a/cmd/gaia/testnets/gaia-5001/lino.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "node_id": "79466a03e9d4b4648a7dd8cead1fa7121ce76ee3", - "ip": "34.235.130.1", - "validator": { - "pub_key": { - "type": "AC26791624DE60", - "value": "SW12+WpGKUCO9oT2CV0CD5kUclbXjJHV1MjerLWB7Oc=" - }, - "power": 100, - "name": "lino" - }, - "app_gen_tx": { - "name": "lino", - "address": "5A007B81A25AF34B829B79DA508A26E12180BCDB", - "pub_key": { - "type": "AC26791624DE60", - "value": "SW12+WpGKUCO9oT2CV0CD5kUclbXjJHV1MjerLWB7Oc=" - } - } -} diff --git a/cmd/gaia/testnets/gaia-5001/pbostrom.json b/cmd/gaia/testnets/gaia-5001/pbostrom.json deleted file mode 100644 index 59cd46950..000000000 --- a/cmd/gaia/testnets/gaia-5001/pbostrom.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "node_id": "adb290585a2753bf1a520c76802b0dab3dffa895", - "ip": "34.201.21.179", - "validator": { - "pub_key": { - "type": "AC26791624DE60", - "value": "pY7eLF0Ez3yq495kIjag8mD67Q131np/ssagpEvlV2A=" - }, - "power": 100, - "name": "pbostrom" - }, - "app_gen_tx": { - "name": "default", - "address": "109720515B4F8C0858DA3521E448262334534FFD", - "pub_key": { - "type": "AC26791624DE60", - "value": "pY7eLF0Ez3yq495kIjag8mD67Q131np/ssagpEvlV2A=" - } - } -} diff --git a/cmd/gaia/testnets/gaia-5001/poldsam.json b/cmd/gaia/testnets/gaia-5001/poldsam.json deleted file mode 100644 index 8149a9259..000000000 --- a/cmd/gaia/testnets/gaia-5001/poldsam.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "node_id": "678503e6c8f50db7279c7da3cb9b072aac4bc0d5", - "ip": "35.193.188.125", - "validator": { - "pub_key": { - "type": "AC26791624DE60", - "value": "RMwWTZsVdkq1heicNJb2fosy9Fls4NHxAHReiJvHl+8=" - }, - "power": 100, - "name": "polsdam" - }, - "app_gen_tx": { - "name": "poldsam", - "address": "FA929191B04C5DB222AFC6F15C63EF48CCC864C5", - "pub_key": { - "type": "AC26791624DE60", - "value": "RMwWTZsVdkq1heicNJb2fosy9Fls4NHxAHReiJvHl+8=" - } - } -} diff --git a/cmd/gaia/testnets/gaia-5001/staked.json b/cmd/gaia/testnets/gaia-5001/staked.json deleted file mode 100644 index f39cced6b..000000000 --- a/cmd/gaia/testnets/gaia-5001/staked.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "node_id": "3519f05985394107e0b2e285361b7e012adb1113", - "ip": "54.209.118.64", - "validator": { - "pub_key": { - "type": "AC26791624DE60", - "value": "vq0V0BjpmIh6WyNnFpMaO5LyUK2FamkNt65eJYa5AaQ=" - }, - "power": 100, - "name": "staked" - }, - "app_gen_tx": { - "name": "default", - "address": "935E04662697134905706A4CCDB822AC6FC11C2E", - "pub_key": { - "type": "AC26791624DE60", - "value": "vq0V0BjpmIh6WyNnFpMaO5LyUK2FamkNt65eJYa5AaQ=" - } - } -} diff --git a/cmd/gaia/testnets/gaia-5001/zach.json b/cmd/gaia/testnets/gaia-5001/zach.json deleted file mode 100644 index 76a08cc92..000000000 --- a/cmd/gaia/testnets/gaia-5001/zach.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "node_id": "8a2802fb25d352f3e7e277559a4f683780c3ef22", - "ip": "167.99.191.184", - "validator": { - "pub_key": { - "type": "AC26791624DE60", - "value": "NjjEQKUsq8F0gWxl3BoU2Li5n7hEz9H/LX80rfMxVyE=" - }, - "power": 100, - "name": "" - }, - "app_gen_tx": { - "name": "zach", - "address": "9D5723057702E2090405AB5D3B48C45B9ABF4377", - "pub_key": { - "type": "AC26791624DE60", - "value": "NjjEQKUsq8F0gWxl3BoU2Li5n7hEz9H/LX80rfMxVyE=" - } - } -} diff --git a/cmd/gaia/testnets/gaia-5001/zaki.json b/cmd/gaia/testnets/gaia-5001/zaki.json deleted file mode 100644 index 956f2bf8c..000000000 --- a/cmd/gaia/testnets/gaia-5001/zaki.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "node_id": "30b45459e4881680c0ef1750fde136fefa6c3b98", - "ip": "35.184.182.143", - "validator": { - "pub_key": { - "type": "AC26791624DE60", - "value": "CDF/8aD8Lt+ikR3LyCg9c7DwWBA51NH+MUkH7tzxrfY=" - }, - "power": 100, - "name": "zaki" - }, - "app_gen_tx": { - "name": "zaki", - "address": "ECE57661F0CDCF28EED257B72F86240E57F4A612", - "pub_key": { - "type": "AC26791624DE60", - "value": "CDF/8aD8Lt+ikR3LyCg9c7DwWBA51NH+MUkH7tzxrfY=" - } - } -} diff --git a/cmd/gaia/testnets/gaia-6000/genesis.json b/cmd/gaia/testnets/gaia-6000/genesis.json deleted file mode 100644 index aefab9286..000000000 --- a/cmd/gaia/testnets/gaia-6000/genesis.json +++ /dev/null @@ -1,1459 +0,0 @@ -{ - "genesis_time": "2018-05-15T18:29:12.38288148Z", - "chain_id": "gaia-6000", - "consensus_params": { - "block_size_params": { - "max_bytes": 22020096, - "max_txs": 100000, - "max_gas": -1 - }, - "tx_size_params": { - "max_bytes": 10240, - "max_gas": -1 - }, - "block_gossip_params": { - "block_part_size_bytes": 65536 - }, - "evidence_params": { - "max_age": 100000 - } - }, - "validators": [ - { - "pub_key": { - "type": "AC26791624DE60", - "value": "TZTQnfqOsi89SeoXVnIw+tnFJnr4X8qVC0U8AsEmFk4=" - }, - "power": 1000, - "name": "adrian" - }, - { - "pub_key": { - "type": "AC26791624DE60", - "value": "CDF/8aD8Lt+ikR3LyCg9c7DwWBA51NH+MUkH7tzxrfY=" - }, - "power": 1000, - "name": "zaki" - }, - { - "pub_key": { - "type": "AC26791624DE60", - "value": "bIvXwf0qlOy0rO0SY/h8FfsqyW/AMpGL2yUhUNOY7hs=" - }, - "power": 100, - "name": "staked" - }, - { - "pub_key": { - "type": "AC26791624DE60", - "value": "RMwWTZsVdkq1heicNJb2fosy9Fls4NHxAHReiJvHl+8=" - }, - "power": 1000, - "name": "polsdam" - }, - { - "pub_key": { - "type": "AC26791624DE60", - "value": "SW12+WpGKUCO9oT2CV0CD5kUclbXjJHV1MjerLWB7Oc=" - }, - "power": 1000, - "name": "lino" - }, - { - "pub_key": { - "type": "AC26791624DE60", - "value": "NjjEQKUsq8F0gWxl3BoU2Li5n7hEz9H/LX80rfMxVyE=" - }, - "power": 100, - "name": "" - }, - { - "pub_key": { - "type": "AC26791624DE60", - "value": "7SaH/LyM+qdz9ovD/pvqIf2q7LC7tc5v0ZJxsA2CGTw=" - }, - "power": 1000, - "name": "iris" - }, - { - "pub_key": { - "type": "AC26791624DE60", - "value": "pY7eLF0Ez3yq495kIjag8mD67Q131np/ssagpEvlV2A=" - }, - "power": 1000, - "name": "pbostrom" - }, - { - "pub_key": { - "type": "AC26791624DE60", - "value": "RpX+xkwnCNw5DpBelscz4//TiODyC9RDiyIuD6NEwx0=" - }, - "power": 1000, - "name": "aurel" - }, - { - "pub_key": { - "type": "AC26791624DE60", - "value": "0aNTDL49987ZNRi3FtJIi0jk93ybHuYg1FjWrfP9H2o=" - }, - "power": 1000, - "name": "bucky" - }, - { - "pub_key": { - "type": "AC26791624DE60", - "value": "dcmCn+RZTBdwbCa4YqSnw/Va7xQloBw6vF87ItLwdM0=" - }, - "power": 100, - "name": "cwgoes" - }, - { - "pub_key": { - "type": "AC26791624DE60", - "value": "TNPLvN6f6QoSLJqGHzIfbraBoSw3emr9Sk2Us94M4gM=" - }, - "power": 1000, - "name": "bdnet" - }, - { - "pub_key": { - "type": "AC26791624DE60", - "value": "cvGYknYP9XMUzqlXZde7lRpvAp/kZiSRYHg66krJNxQ=" - }, - "power": 1000, - "name": "melea-trust" - }, - { - "pub_key": { - "type": "AC26791624DE60", - "value": "kol7Gj60Fct4X8T1rHLJQ0z/b14UqqSae8h1e37rLL8=" - }, - "power": 1000, - "name": "naruemon" - }, - { - "pub_key": { - "type": "AC26791624DE60", - "value": "rcl+kuM69Un/a7e+fQsQrCEtT1g04tFviOeq2GygSIw=" - }, - "power": 1000, - "name": "idoor" - }, - { - "pub_key": { - "type": "AC26791624DE60", - "value": "S9urD5q7je21qp5vEobiURdWrtJwvqMsfZGQhb8GOBQ=" - }, - "power": 1000, - "name": "ATEAM1" - }, - { - "pub_key": { - "type": "AC26791624DE60", - "value": "vSr94aI+zfF3D8Cr2VtCXPpfgj7t2ck8SlZxRsfn7gk=" - }, - "power": 1000, - "name": "figmatt" - }, - { - "pub_key": { - "type": "AC26791624DE60", - "value": "p5ijoVwp2zmA7RkXXvPl+yqdnlaWMwoV2pYIN8bDyFs=" - }, - "power": 1000, - "name": "jla-bsd" - }, - { - "pub_key": { - "type": "AC26791624DE60", - "value": "KOdWpo4aQFrLxVlkyc66p7m6mBNnPLmGuO4Z4L+CI1Y=" - }, - "power": 1000, - "name": "Gold" - }, - { - "pub_key": { - "type": "AC26791624DE60", - "value": "VfOsmcON77auerRc9zKwOR+CvL0sj1nA45hS2WqX1xE=" - }, - "power": 1000, - "name": "nylira" - }, - { - "pub_key": { - "type": "AC26791624DE60", - "value": "QYONAknaJqx3OKPSKraDrOPkx6xssezYtXVS84nZvZE=" - }, - "power": 1000, - "name": "BKCM" - }, - { - "pub_key": { - "type": "AC26791624DE60", - "value": "PyFJmNrUres3QOkj2BjxplCxrOF+HDFGohi3tRKsToY=" - }, - "power": 1000, - "name": "Dev's Validator" - }, - { - "pub_key": { - "type": "AC26791624DE60", - "value": "s4ER09+WeX10euzGyK7xDW7+myQVXt3Plup8IHUE4nk=" - }, - "power": 1000, - "name": "Staking Facilities" - }, - { - "pub_key": { - "type": "AC26791624DE60", - "value": "OPxj9edXgufNEjYNhZKqLgmYnK4A3nGw3rxaFQrHn24=" - }, - "power": 1000, - "name": "nuevax" - }, - { - "pub_key": { - "type": "AC26791624DE60", - "value": "Hi2rtbdJdQtOe3Kq4OoD/xkWJbIjIsUI9qgLQ6TlhiM=" - }, - "power": 1000, - "name": "vultr.guest" - }, - { - "pub_key": { - "type": "AC26791624DE60", - "value": "ah3JtmBA7gbxSiimPsLqQlV85gpNOUBJMvnxGx8eVlo=" - }, - "power": 1000, - "name": "forebole" - } - ], - "app_hash": "", - "app_state": { - "accounts": [ - { - "address": "04F01D5AF8DD248130BBE1D0780EA219CE479A9B", - "coins": [ - { - "denom": "devToken", - "amount": 1000 - }, - { - "denom": "steak", - "amount": 50 - } - ] - }, - { - "address": "FD8DA5F512A59A30F8698E3CA638D384A68DF977", - "coins": [ - { - "denom": "adrianToken", - "amount": 1000 - }, - { - "denom": "steak", - "amount": 50 - } - ] - }, - { - "address": "109720515B4F8C0858DA3521E448262334534FFD", - "coins": [ - { - "denom": "defaultToken", - "amount": 1000 - }, - { - "denom": "steak", - "amount": 50 - } - ] - }, - { - "address": "10B0899E05A486AE4E5589C39587DF7E9A185872", - "coins": [ - { - "denom": "aurelToken", - "amount": 1000 - }, - { - "denom": "steak", - "amount": 50 - } - ] - }, - { - "address": "328FBB8EA315D070DF908982A5F91A3618001D20", - "coins": [ - { - "denom": "cwgoesToken", - "amount": 1000 - }, - { - "denom": "steak", - "amount": 50 - } - ] - }, - { - "address": "4062DAFB9ACD4D91051B569CD4B19A26524B314B", - "coins": [ - { - "denom": "BKCMToken", - "amount": 1000 - }, - { - "denom": "steak", - "amount": 50 - } - ] - }, - { - "address": "42D76AF31E36EE23CA5366FBB9CE18610CCB9820", - "coins": [ - { - "denom": "BDToken", - "amount": 1000 - }, - { - "denom": "steak", - "amount": 50 - } - ] - }, - { - "address": "4B5BE759EB23B0D76C6A60636BD0E3111178794E", - "coins": [ - { - "denom": "suyuToken", - "amount": 1000 - }, - { - "denom": "steak", - "amount": 50 - } - ] - }, - { - "address": "5A007B81A25AF34B829B79DA508A26E12180BCDB", - "coins": [ - { - "denom": "linoToken", - "amount": 1000 - }, - { - "denom": "steak", - "amount": 50 - } - ] - }, - { - "address": "83C2788B74E1A410A4E62F1040EAE15F4B6EA3F5", - "coins": [ - { - "denom": "stakingToken", - "amount": 1000 - }, - { - "denom": "steak", - "amount": 50 - } - ] - }, - { - "address": "935E04662697134905706A4CCDB822AC6FC11C2E", - "coins": [ - { - "denom": "defaultToken", - "amount": 1000 - }, - { - "denom": "steak", - "amount": 50 - } - ] - }, - { - "address": "935E48ED79F1006ED135553768E1D9A768747CF6", - "coins": [ - { - "denom": "buckyToken", - "amount": 1000 - }, - { - "denom": "steak", - "amount": 50 - } - ] - }, - { - "address": "99FFAEE5BF6040EADA2F26548C4A702619797C9F", - "coins": [ - { - "denom": "kwunyeungToken", - "amount": 1000 - }, - { - "denom": "steak", - "amount": 50 - } - ] - }, - { - "address": "9D5723057702E2090405AB5D3B48C45B9ABF4377", - "coins": [ - { - "denom": "steak", - "amount": 50 - }, - { - "denom": "zachToken", - "amount": 1000 - } - ] - }, - { - "address": "A323EC45243D600204BA3D298E3C20322D08C84C", - "coins": [ - { - "denom": "steak", - "amount": 50 - }, - { - "denom": "nuevaxToken", - "amount": 1000 - } - ] - }, - { - "address": "A9A3DADDC8BFFAD52BA51C8F4F2E9F62709412DC", - "coins": [ - { - "denom": "steak", - "amount": 50 - }, - { - "denom": "dokiaToken", - "amount": 1000 - } - ] - }, - { - "address": "B6834D914FE50F0C743E6A012AB20438CFADFB95", - "coins": [ - { - "denom": "steak", - "amount": 50 - }, - { - "denom": "forboleToken", - "amount": 1000 - } - ] - }, - { - "address": "B75C2C4309475C91E8DE271BC52CBAC408365B83", - "coins": [ - { - "denom": "steak", - "amount": 100 - }, - { - "denom": "pengToken", - "amount": 1000 - } - ] - }, - { - "address": "FD30D5C983FFEDEC069C3DDFCF270E41A556A86E", - "coins": [ - { - "denom": "steak", - "amount": 900 - }, - { - "denom": "faucetToken", - "amount": 10000000 - } - ] - }, - { - "address": "C0D0CA58C50B7B02A841E1B27D9A21D939754AC7", - "coins": [ - { - "denom": "steak", - "amount": 50 - }, - { - "denom": "goldToken", - "amount": 100 - } - ] - }, - { - "address": "C5033FCFB67D7BD7B8546389F125710462D4FB6C", - "coins": [ - { - "denom": "steak", - "amount": 50 - }, - { - "denom": "jlaToken", - "amount": 100 - } - ] - }, - { - "address": "C6CB038C98026D2F17241A3B3166AE7E9488D9AD", - "coins": [ - { - "denom": "steak", - "amount": 50 - }, - { - "denom": "figmattToken", - "amount": 100 - } - ] - }, - { - "address": "D0861E3F22339C507B716102FDD5CA681EDE4F8E", - "coins": [ - { - "denom": "steak", - "amount": 50 - }, - { - "denom": "ATEAM1Token", - "amount": 100 - } - ] - }, - { - "address": "D6545CB14FCA7840A295FB0566C27E4B9D526993", - "coins": [ - { - "denom": "steak", - "amount": 50 - }, - { - "denom": "idoorToken", - "amount": 100 - } - ] - }, - { - "address": "D841E0DACF3994E6A40126F023F6F32F98A5D89E", - "coins": [ - { - "denom": "steak", - "amount": 50 - }, - { - "denom": "naruemonToken", - "amount": 100 - } - ] - }, - { - "address": "ECE57661F0CDCF28EED257B72F86240E57F4A612", - "coins": [ - { - "denom": "steak", - "amount": 50 - }, - { - "denom": "zakiToken", - "amount": 1000 - } - ] - }, - { - "address": "EFE597F7A90D3F3E7599B25259449628E2C4AFAD", - "coins": [ - { - "denom": "steak", - "amount": 50 - }, - { - "denom": "trustToken", - "amount": 1000 - } - ] - }, - { - "address": "FA929191B04C5DB222AFC6F15C63EF48CCC864C5", - "coins": [ - { - "denom": "poldsamToken", - "amount": 1000 - }, - { - "denom": "steak", - "amount": 50 - } - ] - } - ], - "stake": { - "pool": { - "loose_unbonded_tokens": 2350, - "unbonded_tokens": 0, - "unbonding_tokens": 0, - "bonded_tokens": 25200, - "unbonded_shares": "0", - "unbonding_shares": "0", - "bonded_shares": "25200", - "inflation_last_time": 0, - "inflation": "9012837/100000000", - "date_last_commission_reset": 0, - "prev_bonded_shares": "0" - }, - "params": { - "inflation_rate_change": "13/100", - "inflation_max": "1/5", - "inflation_min": "7/100", - "goal_bonded": "67/100", - "max_validators": 100, - "bond_denom": "steak" - }, - "bonds": [ - { - "delegator_addr": "04F01D5AF8DD248130BBE1D0780EA219CE479A9B", - "validator_addr": "04F01D5AF8DD248130BBE1D0780EA219CE479A9B", - "shares": "1000", - "height": 0 - }, - { - "delegator_addr": "109720515B4F8C0858DA3521E448262334534FFD", - "validator_addr": "109720515B4F8C0858DA3521E448262334534FFD", - "shares": "100", - "height": 0 - }, - { - "delegator_addr": "10B0899E05A486AE4E5589C39587DF7E9A185872", - "validator_addr": "10B0899E05A486AE4E5589C39587DF7E9A185872", - "shares": "1000", - "height": 0 - }, - { - "delegator_addr": "328FBB8EA315D070DF908982A5F91A3618001D20", - "validator_addr": "328FBB8EA315D070DF908982A5F91A3618001D20", - "shares": "100", - "height": 0 - }, - { - "delegator_addr": "4062DAFB9ACD4D91051B569CD4B19A26524B314B", - "validator_addr": "4062DAFB9ACD4D91051B569CD4B19A26524B314B", - "shares": "1000", - "height": 0 - }, - { - "delegator_addr": "42D76AF31E36EE23CA5366FBB9CE18610CCB9820", - "validator_addr": "42D76AF31E36EE23CA5366FBB9CE18610CCB9820", - "shares": "1000", - "height": 0 - }, - { - "delegator_addr": "4B5BE759EB23B0D76C6A60636BD0E3111178794E", - "validator_addr": "4B5BE759EB23B0D76C6A60636BD0E3111178794E", - "shares": "1000", - "height": 0 - }, - { - "delegator_addr": "5A007B81A25AF34B829B79DA508A26E12180BCDB", - "validator_addr": "5A007B81A25AF34B829B79DA508A26E12180BCDB", - "shares": "1000", - "height": 0 - }, - { - "delegator_addr": "83C2788B74E1A410A4E62F1040EAE15F4B6EA3F5", - "validator_addr": "83C2788B74E1A410A4E62F1040EAE15F4B6EA3F5", - "shares": "1000", - "height": 0 - }, - { - "delegator_addr": "935E04662697134905706A4CCDB822AC6FC11C2E", - "validator_addr": "935E04662697134905706A4CCDB822AC6FC11C2E", - "shares": "100", - "height": 0 - }, - { - "delegator_addr": "935E48ED79F1006ED135553768E1D9A768747CF6", - "validator_addr": "935E48ED79F1006ED135553768E1D9A768747CF6", - "shares": "1000", - "height": 0 - }, - { - "delegator_addr": "9D5723057702E2090405AB5D3B48C45B9ABF4377", - "validator_addr": "9D5723057702E2090405AB5D3B48C45B9ABF4377", - "shares": "100", - "height": 0 - }, - { - "delegator_addr": "A323EC45243D600204BA3D298E3C20322D08C84C", - "validator_addr": "A323EC45243D600204BA3D298E3C20322D08C84C", - "shares": "1000", - "height": 0 - }, - { - "delegator_addr": "A9A3DADDC8BFFAD52BA51C8F4F2E9F62709412DC", - "validator_addr": "A9A3DADDC8BFFAD52BA51C8F4F2E9F62709412DC", - "shares": "1000", - "height": 0 - }, - { - "delegator_addr": "B6834D914FE50F0C743E6A012AB20438CFADFB95", - "validator_addr": "B6834D914FE50F0C743E6A012AB20438CFADFB95", - "shares": "1000", - "height": 0 - }, - { - "delegator_addr": "B75C2C4309475C91E8DE271BC52CBAC408365B83", - "validator_addr": "B75C2C4309475C91E8DE271BC52CBAC408365B83", - "shares": "1000", - "height": 0 - }, - { - "delegator_addr": "C0D0CA58C50B7B02A841E1B27D9A21D939754AC7", - "validator_addr": "C0D0CA58C50B7B02A841E1B27D9A21D939754AC7", - "shares": "1000", - "height": 0 - }, - { - "delegator_addr": "C5033FCFB67D7BD7B8546389F125710462D4FB6C", - "validator_addr": "C5033FCFB67D7BD7B8546389F125710462D4FB6C", - "shares": "1000", - "height": 0 - }, - { - "delegator_addr": "C6CB038C98026D2F17241A3B3166AE7E9488D9AD", - "validator_addr": "C6CB038C98026D2F17241A3B3166AE7E9488D9AD", - "shares": "1000", - "height": 0 - }, - { - "delegator_addr": "D0861E3F22339C507B716102FDD5CA681EDE4F8E", - "validator_addr": "D0861E3F22339C507B716102FDD5CA681EDE4F8E", - "shares": "1000", - "height": 0 - }, - { - "delegator_addr": "D6545CB14FCA7840A295FB0566C27E4B9D526993", - "validator_addr": "D6545CB14FCA7840A295FB0566C27E4B9D526993", - "shares": "1000", - "height": 0 - }, - { - "delegator_addr": "D841E0DACF3994E6A40126F023F6F32F98A5D89E", - "validator_addr": "D841E0DACF3994E6A40126F023F6F32F98A5D89E", - "shares": "1000", - "height": 0 - }, - { - "delegator_addr": "FD8DA5F512A59A30F8698E3CA638D384A68DF977", - "validator_addr": "FD8DA5F512A59A30F8698E3CA638D384A68DF977", - "shares": "1000", - "height": 0 - }, - { - "delegator_addr": "ECE57661F0CDCF28EED257B72F86240E57F4A612", - "validator_addr": "ECE57661F0CDCF28EED257B72F86240E57F4A612", - "shares": "1000", - "height": 0 - }, - { - "delegator_addr": "EFE597F7A90D3F3E7599B25259449628E2C4AFAD", - "validator_addr": "EFE597F7A90D3F3E7599B25259449628E2C4AFAD", - "shares": "1000", - "height": 0 - }, - { - "delegator_addr": "FA929191B04C5DB222AFC6F15C63EF48CCC864C5", - "validator_addr": "FA929191B04C5DB222AFC6F15C63EF48CCC864C5", - "shares": "1000", - "height": 0 - } - ], - "validators": [ - { - "owner": "04F01D5AF8DD248130BBE1D0780EA219CE479A9B", - "pub_key": { - "type": "AC26791624DE60", - "value": "PyFJmNrUres3QOkj2BjxplCxrOF+HDFGohi3tRKsToY=" - }, - "description": { - "moniker": "Dev's Validator", - "identity": "", - "website": "", - "details": "" - }, - "revoked": false, - "pool_shares": { - "status": 2, - "amount": "1000" - }, - "delegator_shares": "1000", - "bond_height": 0, - "bond_intra_tx_counter": 0, - "commision": "0/1", - "commission_max": "0/1", - "commission_change_rate": "0/1", - "commission_change_rate_today": "0/1", - "prev_bonded_shares": "0/1" - }, - { - "owner": "109720515B4F8C0858DA3521E448262334534FFD", - "pub_key": { - "type": "AC26791624DE60", - "value": "pY7eLF0Ez3yq495kIjag8mD67Q131np/ssagpEvlV2A=" - }, - "description": { - "moniker": "", - "identity": "", - "website": "", - "details": "" - }, - "revoked": false, - "pool_shares": { - "status": 2, - "amount": "100" - }, - "delegator_shares": "100", - "bond_height": 0, - "bond_intra_tx_counter": 0, - "commision": "0/1", - "commission_max": "0/1", - "commission_change_rate": "0/1", - "commission_change_rate_today": "0/1", - "prev_bonded_shares": "0/1" - }, - { - "owner": "10B0899E05A486AE4E5589C39587DF7E9A185872", - "pub_key": { - "type": "AC26791624DE60", - "value": "RpX+xkwnCNw5DpBelscz4//TiODyC9RDiyIuD6NEwx0=" - }, - "description": { - "moniker": "aurel", - "identity": "", - "website": "", - "details": "" - }, - "revoked": false, - "pool_shares": { - "status": 2, - "amount": "1000" - }, - "delegator_shares": "1000", - "bond_height": 0, - "bond_intra_tx_counter": 0, - "commision": "0/1", - "commission_max": "0/1", - "commission_change_rate": "0/1", - "commission_change_rate_today": "0/1", - "prev_bonded_shares": "0/1" - }, - { - "owner": "328FBB8EA315D070DF908982A5F91A3618001D20", - "pub_key": { - "type": "AC26791624DE60", - "value": "dcmCn+RZTBdwbCa4YqSnw/Va7xQloBw6vF87ItLwdM0=" - }, - "description": { - "moniker": "cwgoes", - "identity": "", - "website": "", - "details": "" - }, - "revoked": false, - "pool_shares": { - "status": 2, - "amount": "100" - }, - "delegator_shares": "100", - "bond_height": 0, - "bond_intra_tx_counter": 0, - "commision": "0/1", - "commission_max": "0/1", - "commission_change_rate": "0/1", - "commission_change_rate_today": "0/1", - "prev_bonded_shares": "0/1" - }, - { - "owner": "4062DAFB9ACD4D91051B569CD4B19A26524B314B", - "pub_key": { - "type": "AC26791624DE60", - "value": "QYONAknaJqx3OKPSKraDrOPkx6xssezYtXVS84nZvZE=" - }, - "description": { - "moniker": "BKCM", - "identity": "", - "website": "", - "details": "" - }, - "revoked": false, - "pool_shares": { - "status": 2, - "amount": "1000" - }, - "delegator_shares": "1000", - "bond_height": 0, - "bond_intra_tx_counter": 0, - "commision": "0/1", - "commission_max": "0/1", - "commission_change_rate": "0/1", - "commission_change_rate_today": "0/1", - "prev_bonded_shares": "0/1" - }, - { - "owner": "42D76AF31E36EE23CA5366FBB9CE18610CCB9820", - "pub_key": { - "type": "AC26791624DE60", - "value": "TNPLvN6f6QoSLJqGHzIfbraBoSw3emr9Sk2Us94M4gM=" - }, - "description": { - "moniker": "bdnet", - "identity": "", - "website": "", - "details": "" - }, - "revoked": false, - "pool_shares": { - "status": 2, - "amount": "1000" - }, - "delegator_shares": "1000", - "bond_height": 0, - "bond_intra_tx_counter": 0, - "commision": "0/1", - "commission_max": "0/1", - "commission_change_rate": "0/1", - "commission_change_rate_today": "0/1", - "prev_bonded_shares": "0/1" - }, - { - "owner": "4B5BE759EB23B0D76C6A60636BD0E3111178794E", - "pub_key": { - "type": "AC26791624DE60", - "value": "7SaH/LyM+qdz9ovD/pvqIf2q7LC7tc5v0ZJxsA2CGTw=" - }, - "description": { - "moniker": "suyu", - "identity": "", - "website": "", - "details": "" - }, - "revoked": false, - "pool_shares": { - "status": 2, - "amount": "1000" - }, - "delegator_shares": "1000", - "bond_height": 0, - "bond_intra_tx_counter": 0, - "commision": "0/1", - "commission_max": "0/1", - "commission_change_rate": "0/1", - "commission_change_rate_today": "0/1", - "prev_bonded_shares": "0/1" - }, - { - "owner": "5A007B81A25AF34B829B79DA508A26E12180BCDB", - "pub_key": { - "type": "AC26791624DE60", - "value": "SW12+WpGKUCO9oT2CV0CD5kUclbXjJHV1MjerLWB7Oc=" - }, - "description": { - "moniker": "lino", - "identity": "", - "website": "", - "details": "" - }, - "revoked": false, - "pool_shares": { - "status": 2, - "amount": "1000" - }, - "delegator_shares": "1000", - "bond_height": 0, - "bond_intra_tx_counter": 0, - "commision": "0/1", - "commission_max": "0/1", - "commission_change_rate": "0/1", - "commission_change_rate_today": "0/1", - "prev_bonded_shares": "0/1" - }, - { - "owner": "83C2788B74E1A410A4E62F1040EAE15F4B6EA3F5", - "pub_key": { - "type": "AC26791624DE60", - "value": "s4ER09+WeX10euzGyK7xDW7+myQVXt3Plup8IHUE4nk=" - }, - "description": { - "moniker": "Staking Facilities", - "identity": "", - "website": "", - "details": "" - }, - "revoked": false, - "pool_shares": { - "status": 2, - "amount": "1000" - }, - "delegator_shares": "1000", - "bond_height": 0, - "bond_intra_tx_counter": 0, - "commision": "0/1", - "commission_max": "0/1", - "commission_change_rate": "0/1", - "commission_change_rate_today": "0/1", - "prev_bonded_shares": "0/1" - }, - { - "owner": "935E04662697134905706A4CCDB822AC6FC11C2E", - "pub_key": { - "type": "AC26791624DE60", - "value": "bIvXwf0qlOy0rO0SY/h8FfsqyW/AMpGL2yUhUNOY7hs=" - }, - "description": { - "moniker": "default", - "identity": "", - "website": "", - "details": "" - }, - "revoked": false, - "pool_shares": { - "status": 2, - "amount": "100" - }, - "delegator_shares": "100", - "bond_height": 0, - "bond_intra_tx_counter": 0, - "commision": "0/1", - "commission_max": "0/1", - "commission_change_rate": "0/1", - "commission_change_rate_today": "0/1", - "prev_bonded_shares": "0/1" - }, - { - "owner": "935E48ED79F1006ED135553768E1D9A768747CF6", - "pub_key": { - "type": "AC26791624DE60", - "value": "0aNTDL49987ZNRi3FtJIi0jk93ybHuYg1FjWrfP9H2o=" - }, - "description": { - "moniker": "bucky", - "identity": "", - "website": "", - "details": "" - }, - "revoked": false, - "pool_shares": { - "status": 2, - "amount": "1000" - }, - "delegator_shares": "1000", - "bond_height": 0, - "bond_intra_tx_counter": 0, - "commision": "0/1", - "commission_max": "0/1", - "commission_change_rate": "0/1", - "commission_change_rate_today": "0/1", - "prev_bonded_shares": "0/1" - }, - { - "owner": "9D5723057702E2090405AB5D3B48C45B9ABF4377", - "pub_key": { - "type": "AC26791624DE60", - "value": "NjjEQKUsq8F0gWxl3BoU2Li5n7hEz9H/LX80rfMxVyE=" - }, - "description": { - "moniker": "zach", - "identity": "", - "website": "", - "details": "" - }, - "revoked": false, - "pool_shares": { - "status": 2, - "amount": "100" - }, - "delegator_shares": "1000", - "bond_height": 0, - "bond_intra_tx_counter": 0, - "commision": "0/1", - "commission_max": "0/1", - "commission_change_rate": "0/1", - "commission_change_rate_today": "0/1", - "prev_bonded_shares": "0/1" - }, - { - "owner": "A323EC45243D600204BA3D298E3C20322D08C84C", - "pub_key": { - "type": "AC26791624DE60", - "value": "OPxj9edXgufNEjYNhZKqLgmYnK4A3nGw3rxaFQrHn24=" - }, - "description": { - "moniker": "nuevax", - "identity": "", - "website": "", - "details": "" - }, - "revoked": false, - "pool_shares": { - "status": 2, - "amount": "1000" - }, - "delegator_shares": "1000", - "bond_height": 0, - "bond_intra_tx_counter": 0, - "commision": "0/1", - "commission_max": "0/1", - "commission_change_rate": "0/1", - "commission_change_rate_today": "0/1", - "prev_bonded_shares": "0/1" - }, - { - "owner": "A9A3DADDC8BFFAD52BA51C8F4F2E9F62709412DC", - "pub_key": { - "type": "AC26791624DE60", - "value": "Hi2rtbdJdQtOe3Kq4OoD/xkWJbIjIsUI9qgLQ6TlhiM=" - }, - "description": { - "moniker": "vultr.guest", - "identity": "", - "website": "https://ion.dokia.capital/", - "details": "DokiaValidator" - }, - "revoked": false, - "pool_shares": { - "status": 2, - "amount": "1000" - }, - "delegator_shares": "1000", - "bond_height": 0, - "bond_intra_tx_counter": 0, - "commision": "0/1", - "commission_max": "0/1", - "commission_change_rate": "0/1", - "commission_change_rate_today": "0/1", - "prev_bonded_shares": "0/1" - }, - { - "owner": "B6834D914FE50F0C743E6A012AB20438CFADFB95", - "pub_key": { - "type": "AC26791624DE60", - "value": "ah3JtmBA7gbxSiimPsLqQlV85gpNOUBJMvnxGx8eVlo=" - }, - "description": { - "moniker": "forbole", - "identity": "", - "website": "https://www.forbole.com", - "details": "Recommend. Refer. Reward" - }, - "revoked": false, - "pool_shares": { - "status": 2, - "amount": "1000" - }, - "delegator_shares": "1000", - "bond_height": 0, - "bond_intra_tx_counter": 0, - "commision": "0/1", - "commission_max": "0/1", - "commission_change_rate": "0/1", - "commission_change_rate_today": "0/1", - "prev_bonded_shares": "0/1" - }, - { - "owner": "B75C2C4309475C91E8DE271BC52CBAC408365B83", - "pub_key": { - "type": "AC26791624DE60", - "value": "VfOsmcON77auerRc9zKwOR+CvL0sj1nA45hS2WqX1xE=" - }, - "description": { - "moniker": "nylira", - "identity": "", - "website": "", - "details": "" - }, - "revoked": false, - "pool_shares": { - "status": 2, - "amount": "1000" - }, - "delegator_shares": "1000", - "bond_height": 0, - "bond_intra_tx_counter": 0, - "commision": "0/1", - "commission_max": "0/1", - "commission_change_rate": "0/1", - "commission_change_rate_today": "0/1", - "prev_bonded_shares": "0/1" - }, - { - "owner": "C0D0CA58C50B7B02A841E1B27D9A21D939754AC7", - "pub_key": { - "type": "AC26791624DE60", - "value": "KOdWpo4aQFrLxVlkyc66p7m6mBNnPLmGuO4Z4L+CI1Y=" - }, - "description": { - "moniker": "Gold", - "identity": "", - "website": "", - "details": "" - }, - "revoked": false, - "pool_shares": { - "status": 2, - "amount": "1000" - }, - "delegator_shares": "1000", - "bond_height": 0, - "bond_intra_tx_counter": 0, - "commision": "0/1", - "commission_max": "0/1", - "commission_change_rate": "0/1", - "commission_change_rate_today": "0/1", - "prev_bonded_shares": "0/1" - }, - { - "owner": "C5033FCFB67D7BD7B8546389F125710462D4FB6C", - "pub_key": { - "type": "AC26791624DE60", - "value": "p5ijoVwp2zmA7RkXXvPl+yqdnlaWMwoV2pYIN8bDyFs=" - }, - "description": { - "moniker": "jla-bsd", - "identity": "", - "website": "", - "details": "" - }, - "revoked": false, - "pool_shares": { - "status": 2, - "amount": "1000" - }, - "delegator_shares": "1000", - "bond_height": 0, - "bond_intra_tx_counter": 0, - "commision": "0/1", - "commission_max": "0/1", - "commission_change_rate": "0/1", - "commission_change_rate_today": "0/1", - "prev_bonded_shares": "0/1" - }, - { - "owner": "C6CB038C98026D2F17241A3B3166AE7E9488D9AD", - "pub_key": { - "type": "AC26791624DE60", - "value": "vSr94aI+zfF3D8Cr2VtCXPpfgj7t2ck8SlZxRsfn7gk=" - }, - "description": { - "moniker": "figmatt", - "identity": "", - "website": "", - "details": "" - }, - "revoked": false, - "pool_shares": { - "status": 2, - "amount": "1000" - }, - "delegator_shares": "1000", - "bond_height": 0, - "bond_intra_tx_counter": 0, - "commision": "0/1", - "commission_max": "0/1", - "commission_change_rate": "0/1", - "commission_change_rate_today": "0/1", - "prev_bonded_shares": "0/1" - }, - { - "owner": "D0861E3F22339C507B716102FDD5CA681EDE4F8E", - "pub_key": { - "type": "AC26791624DE60", - "value": "S9urD5q7je21qp5vEobiURdWrtJwvqMsfZGQhb8GOBQ=" - }, - "description": { - "moniker": "ATEAM1", - "identity": "", - "website": "", - "details": "ATEAM1" - }, - "revoked": false, - "pool_shares": { - "status": 2, - "amount": "1000" - }, - "delegator_shares": "1000", - "bond_height": 0, - "bond_intra_tx_counter": 0, - "commision": "0/1", - "commission_max": "0/1", - "commission_change_rate": "0/1", - "commission_change_rate_today": "0/1", - "prev_bonded_shares": "0/1" - }, - { - "owner": "D6545CB14FCA7840A295FB0566C27E4B9D526993", - "pub_key": { - "type": "AC26791624DE60", - "value": "rcl+kuM69Un/a7e+fQsQrCEtT1g04tFviOeq2GygSIw=" - }, - "description": { - "moniker": "idoor", - "identity": "", - "website": "", - "details": "" - }, - "revoked": false, - "pool_shares": { - "status": 2, - "amount": "1000" - }, - "delegator_shares": "1000", - "bond_height": 0, - "bond_intra_tx_counter": 0, - "commision": "0/1", - "commission_max": "0/1", - "commission_change_rate": "0/1", - "commission_change_rate_today": "0/1", - "prev_bonded_shares": "0/1" - }, - { - "owner": "D841E0DACF3994E6A40126F023F6F32F98A5D89E", - "pub_key": { - "type": "AC26791624DE60", - "value": "kol7Gj60Fct4X8T1rHLJQ0z/b14UqqSae8h1e37rLL8=" - }, - "description": { - "moniker": "naruemon", - "identity": "", - "website": "", - "details": "" - }, - "revoked": false, - "pool_shares": { - "status": 2, - "amount": "1000" - }, - "delegator_shares": "1000", - "bond_height": 0, - "bond_intra_tx_counter": 0, - "commision": "0/1", - "commission_max": "0/1", - "commission_change_rate": "0/1", - "commission_change_rate_today": "0/1", - "prev_bonded_shares": "0/1" - }, - { - "owner": "FD8DA5F512A59A30F8698E3CA638D384A68DF977", - "pub_key": { - "type": "AC26791624DE60", - "value": "TZTQnfqOsi89SeoXVnIw+tnFJnr4X8qVC0U8AsEmFk4=" - }, - "description": { - "moniker": "Adrian Brink - Cryptium Labs", - "identity": "", - "website": "https://cryptium.ch", - "details": "" - }, - "revoked": false, - "pool_shares": { - "status": 2, - "amount": "1000" - }, - "delegator_shares": "1000", - "bond_height": 0, - "bond_intra_tx_counter": 0, - "commision": "0/1", - "commission_max": "0/1", - "commission_change_rate": "0/1", - "commission_change_rate_today": "0/1", - "prev_bonded_shares": "0/1" - }, - { - "owner": "ECE57661F0CDCF28EED257B72F86240E57F4A612", - "pub_key": { - "type": "AC26791624DE60", - "value": "CDF/8aD8Lt+ikR3LyCg9c7DwWBA51NH+MUkH7tzxrfY=" - }, - "description": { - "moniker": "zaki", - "identity": "", - "website": "", - "details": "" - }, - "revoked": false, - "pool_shares": { - "status": 2, - "amount": "1000" - }, - "delegator_shares": "1000", - "bond_height": 0, - "bond_intra_tx_counter": 0, - "commision": "0/1", - "commission_max": "0/1", - "commission_change_rate": "0/1", - "commission_change_rate_today": "0/1", - "prev_bonded_shares": "0/1" - }, - { - "owner": "EFE597F7A90D3F3E7599B25259449628E2C4AFAD", - "pub_key": { - "type": "AC26791624DE60", - "value": "cvGYknYP9XMUzqlXZde7lRpvAp/kZiSRYHg66krJNxQ=" - }, - "description": { - "moniker": "trust", - "identity": "", - "website": "http://cosmos-trust.com", - "details": "" - }, - "revoked": false, - "pool_shares": { - "status": 2, - "amount": "1000" - }, - "delegator_shares": "1000", - "bond_height": 0, - "bond_intra_tx_counter": 0, - "commision": "0/1", - "commission_max": "0/1", - "commission_change_rate": "0/1", - "commission_change_rate_today": "0/1", - "prev_bonded_shares": "0/1" - }, - { - "owner": "FA929191B04C5DB222AFC6F15C63EF48CCC864C5", - "pub_key": { - "type": "AC26791624DE60", - "value": "RMwWTZsVdkq1heicNJb2fosy9Fls4NHxAHReiJvHl+8=" - }, - "description": { - "moniker": "proof-of-audit", - "identity": "", - "website": "https://proof-of-audit.com", - "details": "" - }, - "revoked": false, - "pool_shares": { - "status": 2, - "amount": "1000" - }, - "delegator_shares": "1000", - "bond_height": 0, - "bond_intra_tx_counter": 0, - "commision": "0/1", - "commission_max": "0/1", - "commission_change_rate": "0/1", - "commission_change_rate_today": "0/1", - "prev_bonded_shares": "0/1" - } - ] - } - } -} diff --git a/cmd/gaia/testnets/gaia-6001/genesis.json b/cmd/gaia/testnets/gaia-6001/genesis.json deleted file mode 100644 index 512d761be..000000000 --- a/cmd/gaia/testnets/gaia-6001/genesis.json +++ /dev/null @@ -1,1459 +0,0 @@ -{ - "genesis_time": "2018-05-15T18:29:12.38288148Z", - "chain_id": "gaia-6001", - "consensus_params": { - "block_size_params": { - "max_bytes": 22020096, - "max_txs": 100000, - "max_gas": -1 - }, - "tx_size_params": { - "max_bytes": 10240, - "max_gas": -1 - }, - "block_gossip_params": { - "block_part_size_bytes": 65536 - }, - "evidence_params": { - "max_age": 100000 - } - }, - "validators": [ - { - "pub_key": { - "type": "AC26791624DE60", - "value": "TZTQnfqOsi89SeoXVnIw+tnFJnr4X8qVC0U8AsEmFk4=" - }, - "power": 1000, - "name": "adrian" - }, - { - "pub_key": { - "type": "AC26791624DE60", - "value": "CDF/8aD8Lt+ikR3LyCg9c7DwWBA51NH+MUkH7tzxrfY=" - }, - "power": 1000, - "name": "zaki" - }, - { - "pub_key": { - "type": "AC26791624DE60", - "value": "bIvXwf0qlOy0rO0SY/h8FfsqyW/AMpGL2yUhUNOY7hs=" - }, - "power": 100, - "name": "staked" - }, - { - "pub_key": { - "type": "AC26791624DE60", - "value": "RMwWTZsVdkq1heicNJb2fosy9Fls4NHxAHReiJvHl+8=" - }, - "power": 1000, - "name": "polsdam" - }, - { - "pub_key": { - "type": "AC26791624DE60", - "value": "SW12+WpGKUCO9oT2CV0CD5kUclbXjJHV1MjerLWB7Oc=" - }, - "power": 1000, - "name": "lino" - }, - { - "pub_key": { - "type": "AC26791624DE60", - "value": "NjjEQKUsq8F0gWxl3BoU2Li5n7hEz9H/LX80rfMxVyE=" - }, - "power": 100, - "name": "" - }, - { - "pub_key": { - "type": "AC26791624DE60", - "value": "7SaH/LyM+qdz9ovD/pvqIf2q7LC7tc5v0ZJxsA2CGTw=" - }, - "power": 1000, - "name": "iris" - }, - { - "pub_key": { - "type": "AC26791624DE60", - "value": "pY7eLF0Ez3yq495kIjag8mD67Q131np/ssagpEvlV2A=" - }, - "power": 1000, - "name": "pbostrom" - }, - { - "pub_key": { - "type": "AC26791624DE60", - "value": "RpX+xkwnCNw5DpBelscz4//TiODyC9RDiyIuD6NEwx0=" - }, - "power": 1000, - "name": "aurel" - }, - { - "pub_key": { - "type": "AC26791624DE60", - "value": "0aNTDL49987ZNRi3FtJIi0jk93ybHuYg1FjWrfP9H2o=" - }, - "power": 1000, - "name": "bucky" - }, - { - "pub_key": { - "type": "AC26791624DE60", - "value": "dcmCn+RZTBdwbCa4YqSnw/Va7xQloBw6vF87ItLwdM0=" - }, - "power": 100, - "name": "cwgoes" - }, - { - "pub_key": { - "type": "AC26791624DE60", - "value": "TNPLvN6f6QoSLJqGHzIfbraBoSw3emr9Sk2Us94M4gM=" - }, - "power": 1000, - "name": "bdnet" - }, - { - "pub_key": { - "type": "AC26791624DE60", - "value": "cvGYknYP9XMUzqlXZde7lRpvAp/kZiSRYHg66krJNxQ=" - }, - "power": 1000, - "name": "melea-trust" - }, - { - "pub_key": { - "type": "AC26791624DE60", - "value": "kol7Gj60Fct4X8T1rHLJQ0z/b14UqqSae8h1e37rLL8=" - }, - "power": 1000, - "name": "naruemon" - }, - { - "pub_key": { - "type": "AC26791624DE60", - "value": "rcl+kuM69Un/a7e+fQsQrCEtT1g04tFviOeq2GygSIw=" - }, - "power": 1000, - "name": "idoor" - }, - { - "pub_key": { - "type": "AC26791624DE60", - "value": "S9urD5q7je21qp5vEobiURdWrtJwvqMsfZGQhb8GOBQ=" - }, - "power": 1000, - "name": "ATEAM1" - }, - { - "pub_key": { - "type": "AC26791624DE60", - "value": "vSr94aI+zfF3D8Cr2VtCXPpfgj7t2ck8SlZxRsfn7gk=" - }, - "power": 1000, - "name": "figmatt" - }, - { - "pub_key": { - "type": "AC26791624DE60", - "value": "p5ijoVwp2zmA7RkXXvPl+yqdnlaWMwoV2pYIN8bDyFs=" - }, - "power": 1000, - "name": "jla-bsd" - }, - { - "pub_key": { - "type": "AC26791624DE60", - "value": "KOdWpo4aQFrLxVlkyc66p7m6mBNnPLmGuO4Z4L+CI1Y=" - }, - "power": 1000, - "name": "Gold" - }, - { - "pub_key": { - "type": "AC26791624DE60", - "value": "VfOsmcON77auerRc9zKwOR+CvL0sj1nA45hS2WqX1xE=" - }, - "power": 1000, - "name": "nylira" - }, - { - "pub_key": { - "type": "AC26791624DE60", - "value": "QYONAknaJqx3OKPSKraDrOPkx6xssezYtXVS84nZvZE=" - }, - "power": 1000, - "name": "BKCM" - }, - { - "pub_key": { - "type": "AC26791624DE60", - "value": "PyFJmNrUres3QOkj2BjxplCxrOF+HDFGohi3tRKsToY=" - }, - "power": 1000, - "name": "Dev's Validator" - }, - { - "pub_key": { - "type": "AC26791624DE60", - "value": "s4ER09+WeX10euzGyK7xDW7+myQVXt3Plup8IHUE4nk=" - }, - "power": 1000, - "name": "Staking Facilities" - }, - { - "pub_key": { - "type": "AC26791624DE60", - "value": "OPxj9edXgufNEjYNhZKqLgmYnK4A3nGw3rxaFQrHn24=" - }, - "power": 1000, - "name": "nuevax" - }, - { - "pub_key": { - "type": "AC26791624DE60", - "value": "Hi2rtbdJdQtOe3Kq4OoD/xkWJbIjIsUI9qgLQ6TlhiM=" - }, - "power": 1000, - "name": "vultr.guest" - }, - { - "pub_key": { - "type": "AC26791624DE60", - "value": "ah3JtmBA7gbxSiimPsLqQlV85gpNOUBJMvnxGx8eVlo=" - }, - "power": 1000, - "name": "forebole" - } - ], - "app_hash": "", - "app_state": { - "accounts": [ - { - "address": "04F01D5AF8DD248130BBE1D0780EA219CE479A9B", - "coins": [ - { - "denom": "devToken", - "amount": 1000 - }, - { - "denom": "steak", - "amount": 50 - } - ] - }, - { - "address": "FD8DA5F512A59A30F8698E3CA638D384A68DF977", - "coins": [ - { - "denom": "adrianToken", - "amount": 1000 - }, - { - "denom": "steak", - "amount": 50 - } - ] - }, - { - "address": "109720515B4F8C0858DA3521E448262334534FFD", - "coins": [ - { - "denom": "defaultToken", - "amount": 1000 - }, - { - "denom": "steak", - "amount": 50 - } - ] - }, - { - "address": "10B0899E05A486AE4E5589C39587DF7E9A185872", - "coins": [ - { - "denom": "aurelToken", - "amount": 1000 - }, - { - "denom": "steak", - "amount": 50 - } - ] - }, - { - "address": "328FBB8EA315D070DF908982A5F91A3618001D20", - "coins": [ - { - "denom": "cwgoesToken", - "amount": 1000 - }, - { - "denom": "steak", - "amount": 50 - } - ] - }, - { - "address": "4062DAFB9ACD4D91051B569CD4B19A26524B314B", - "coins": [ - { - "denom": "BKCMToken", - "amount": 1000 - }, - { - "denom": "steak", - "amount": 50 - } - ] - }, - { - "address": "42D76AF31E36EE23CA5366FBB9CE18610CCB9820", - "coins": [ - { - "denom": "BDToken", - "amount": 1000 - }, - { - "denom": "steak", - "amount": 50 - } - ] - }, - { - "address": "4B5BE759EB23B0D76C6A60636BD0E3111178794E", - "coins": [ - { - "denom": "suyuToken", - "amount": 1000 - }, - { - "denom": "steak", - "amount": 50 - } - ] - }, - { - "address": "5A007B81A25AF34B829B79DA508A26E12180BCDB", - "coins": [ - { - "denom": "linoToken", - "amount": 1000 - }, - { - "denom": "steak", - "amount": 50 - } - ] - }, - { - "address": "83C2788B74E1A410A4E62F1040EAE15F4B6EA3F5", - "coins": [ - { - "denom": "stakingToken", - "amount": 1000 - }, - { - "denom": "steak", - "amount": 50 - } - ] - }, - { - "address": "935E04662697134905706A4CCDB822AC6FC11C2E", - "coins": [ - { - "denom": "defaultToken", - "amount": 1000 - }, - { - "denom": "steak", - "amount": 50 - } - ] - }, - { - "address": "935E48ED79F1006ED135553768E1D9A768747CF6", - "coins": [ - { - "denom": "buckyToken", - "amount": 1000 - }, - { - "denom": "steak", - "amount": 50 - } - ] - }, - { - "address": "99FFAEE5BF6040EADA2F26548C4A702619797C9F", - "coins": [ - { - "denom": "kwunyeungToken", - "amount": 1000 - }, - { - "denom": "steak", - "amount": 50 - } - ] - }, - { - "address": "9D5723057702E2090405AB5D3B48C45B9ABF4377", - "coins": [ - { - "denom": "steak", - "amount": 50 - }, - { - "denom": "zachToken", - "amount": 1000 - } - ] - }, - { - "address": "A323EC45243D600204BA3D298E3C20322D08C84C", - "coins": [ - { - "denom": "steak", - "amount": 50 - }, - { - "denom": "nuevaxToken", - "amount": 1000 - } - ] - }, - { - "address": "A9A3DADDC8BFFAD52BA51C8F4F2E9F62709412DC", - "coins": [ - { - "denom": "steak", - "amount": 50 - }, - { - "denom": "dokiaToken", - "amount": 1000 - } - ] - }, - { - "address": "B6834D914FE50F0C743E6A012AB20438CFADFB95", - "coins": [ - { - "denom": "steak", - "amount": 50 - }, - { - "denom": "forboleToken", - "amount": 1000 - } - ] - }, - { - "address": "B75C2C4309475C91E8DE271BC52CBAC408365B83", - "coins": [ - { - "denom": "steak", - "amount": 100 - }, - { - "denom": "pengToken", - "amount": 1000 - } - ] - }, - { - "address": "FD30D5C983FFEDEC069C3DDFCF270E41A556A86E", - "coins": [ - { - "denom": "steak", - "amount": 900 - }, - { - "denom": "faucetToken", - "amount": 10000000 - } - ] - }, - { - "address": "C0D0CA58C50B7B02A841E1B27D9A21D939754AC7", - "coins": [ - { - "denom": "steak", - "amount": 50 - }, - { - "denom": "goldToken", - "amount": 100 - } - ] - }, - { - "address": "C5033FCFB67D7BD7B8546389F125710462D4FB6C", - "coins": [ - { - "denom": "steak", - "amount": 50 - }, - { - "denom": "jlaToken", - "amount": 100 - } - ] - }, - { - "address": "C6CB038C98026D2F17241A3B3166AE7E9488D9AD", - "coins": [ - { - "denom": "steak", - "amount": 50 - }, - { - "denom": "figmattToken", - "amount": 100 - } - ] - }, - { - "address": "D0861E3F22339C507B716102FDD5CA681EDE4F8E", - "coins": [ - { - "denom": "steak", - "amount": 50 - }, - { - "denom": "ATEAM1Token", - "amount": 100 - } - ] - }, - { - "address": "D6545CB14FCA7840A295FB0566C27E4B9D526993", - "coins": [ - { - "denom": "steak", - "amount": 50 - }, - { - "denom": "idoorToken", - "amount": 100 - } - ] - }, - { - "address": "D841E0DACF3994E6A40126F023F6F32F98A5D89E", - "coins": [ - { - "denom": "steak", - "amount": 50 - }, - { - "denom": "naruemonToken", - "amount": 100 - } - ] - }, - { - "address": "ECE57661F0CDCF28EED257B72F86240E57F4A612", - "coins": [ - { - "denom": "steak", - "amount": 50 - }, - { - "denom": "zakiToken", - "amount": 1000 - } - ] - }, - { - "address": "EFE597F7A90D3F3E7599B25259449628E2C4AFAD", - "coins": [ - { - "denom": "steak", - "amount": 50 - }, - { - "denom": "trustToken", - "amount": 1000 - } - ] - }, - { - "address": "FA929191B04C5DB222AFC6F15C63EF48CCC864C5", - "coins": [ - { - "denom": "poldsamToken", - "amount": 1000 - }, - { - "denom": "steak", - "amount": 50 - } - ] - } - ], - "stake": { - "pool": { - "loose_unbonded_tokens": 2300, - "unbonded_tokens": 0, - "unbonding_tokens": 0, - "bonded_tokens": 23300, - "unbonded_shares": "0", - "unbonding_shares": "0", - "bonded_shares": "23300", - "inflation_last_time": 0, - "inflation": "9012837/100000000", - "date_last_commission_reset": 0, - "prev_bonded_shares": "0" - }, - "params": { - "inflation_rate_change": "13/100", - "inflation_max": "1/5", - "inflation_min": "7/100", - "goal_bonded": "67/100", - "max_validators": 100, - "bond_denom": "steak" - }, - "bonds": [ - { - "delegator_addr": "04F01D5AF8DD248130BBE1D0780EA219CE479A9B", - "validator_addr": "04F01D5AF8DD248130BBE1D0780EA219CE479A9B", - "shares": "1000", - "height": 0 - }, - { - "delegator_addr": "109720515B4F8C0858DA3521E448262334534FFD", - "validator_addr": "109720515B4F8C0858DA3521E448262334534FFD", - "shares": "1000", - "height": 0 - }, - { - "delegator_addr": "10B0899E05A486AE4E5589C39587DF7E9A185872", - "validator_addr": "10B0899E05A486AE4E5589C39587DF7E9A185872", - "shares": "1000", - "height": 0 - }, - { - "delegator_addr": "328FBB8EA315D070DF908982A5F91A3618001D20", - "validator_addr": "328FBB8EA315D070DF908982A5F91A3618001D20", - "shares": "100", - "height": 0 - }, - { - "delegator_addr": "4062DAFB9ACD4D91051B569CD4B19A26524B314B", - "validator_addr": "4062DAFB9ACD4D91051B569CD4B19A26524B314B", - "shares": "1000", - "height": 0 - }, - { - "delegator_addr": "42D76AF31E36EE23CA5366FBB9CE18610CCB9820", - "validator_addr": "42D76AF31E36EE23CA5366FBB9CE18610CCB9820", - "shares": "1000", - "height": 0 - }, - { - "delegator_addr": "4B5BE759EB23B0D76C6A60636BD0E3111178794E", - "validator_addr": "4B5BE759EB23B0D76C6A60636BD0E3111178794E", - "shares": "1000", - "height": 0 - }, - { - "delegator_addr": "5A007B81A25AF34B829B79DA508A26E12180BCDB", - "validator_addr": "5A007B81A25AF34B829B79DA508A26E12180BCDB", - "shares": "1000", - "height": 0 - }, - { - "delegator_addr": "83C2788B74E1A410A4E62F1040EAE15F4B6EA3F5", - "validator_addr": "83C2788B74E1A410A4E62F1040EAE15F4B6EA3F5", - "shares": "1000", - "height": 0 - }, - { - "delegator_addr": "935E04662697134905706A4CCDB822AC6FC11C2E", - "validator_addr": "935E04662697134905706A4CCDB822AC6FC11C2E", - "shares": "100", - "height": 0 - }, - { - "delegator_addr": "935E48ED79F1006ED135553768E1D9A768747CF6", - "validator_addr": "935E48ED79F1006ED135553768E1D9A768747CF6", - "shares": "1000", - "height": 0 - }, - { - "delegator_addr": "9D5723057702E2090405AB5D3B48C45B9ABF4377", - "validator_addr": "9D5723057702E2090405AB5D3B48C45B9ABF4377", - "shares": "100", - "height": 0 - }, - { - "delegator_addr": "A323EC45243D600204BA3D298E3C20322D08C84C", - "validator_addr": "A323EC45243D600204BA3D298E3C20322D08C84C", - "shares": "1000", - "height": 0 - }, - { - "delegator_addr": "A9A3DADDC8BFFAD52BA51C8F4F2E9F62709412DC", - "validator_addr": "A9A3DADDC8BFFAD52BA51C8F4F2E9F62709412DC", - "shares": "1000", - "height": 0 - }, - { - "delegator_addr": "B6834D914FE50F0C743E6A012AB20438CFADFB95", - "validator_addr": "B6834D914FE50F0C743E6A012AB20438CFADFB95", - "shares": "1000", - "height": 0 - }, - { - "delegator_addr": "B75C2C4309475C91E8DE271BC52CBAC408365B83", - "validator_addr": "B75C2C4309475C91E8DE271BC52CBAC408365B83", - "shares": "1000", - "height": 0 - }, - { - "delegator_addr": "C0D0CA58C50B7B02A841E1B27D9A21D939754AC7", - "validator_addr": "C0D0CA58C50B7B02A841E1B27D9A21D939754AC7", - "shares": "1000", - "height": 0 - }, - { - "delegator_addr": "C5033FCFB67D7BD7B8546389F125710462D4FB6C", - "validator_addr": "C5033FCFB67D7BD7B8546389F125710462D4FB6C", - "shares": "1000", - "height": 0 - }, - { - "delegator_addr": "C6CB038C98026D2F17241A3B3166AE7E9488D9AD", - "validator_addr": "C6CB038C98026D2F17241A3B3166AE7E9488D9AD", - "shares": "1000", - "height": 0 - }, - { - "delegator_addr": "D0861E3F22339C507B716102FDD5CA681EDE4F8E", - "validator_addr": "D0861E3F22339C507B716102FDD5CA681EDE4F8E", - "shares": "1000", - "height": 0 - }, - { - "delegator_addr": "D6545CB14FCA7840A295FB0566C27E4B9D526993", - "validator_addr": "D6545CB14FCA7840A295FB0566C27E4B9D526993", - "shares": "1000", - "height": 0 - }, - { - "delegator_addr": "D841E0DACF3994E6A40126F023F6F32F98A5D89E", - "validator_addr": "D841E0DACF3994E6A40126F023F6F32F98A5D89E", - "shares": "1000", - "height": 0 - }, - { - "delegator_addr": "FD8DA5F512A59A30F8698E3CA638D384A68DF977", - "validator_addr": "FD8DA5F512A59A30F8698E3CA638D384A68DF977", - "shares": "1000", - "height": 0 - }, - { - "delegator_addr": "ECE57661F0CDCF28EED257B72F86240E57F4A612", - "validator_addr": "ECE57661F0CDCF28EED257B72F86240E57F4A612", - "shares": "1000", - "height": 0 - }, - { - "delegator_addr": "EFE597F7A90D3F3E7599B25259449628E2C4AFAD", - "validator_addr": "EFE597F7A90D3F3E7599B25259449628E2C4AFAD", - "shares": "1000", - "height": 0 - }, - { - "delegator_addr": "FA929191B04C5DB222AFC6F15C63EF48CCC864C5", - "validator_addr": "FA929191B04C5DB222AFC6F15C63EF48CCC864C5", - "shares": "1000", - "height": 0 - } - ], - "validators": [ - { - "owner": "04F01D5AF8DD248130BBE1D0780EA219CE479A9B", - "pub_key": { - "type": "AC26791624DE60", - "value": "PyFJmNrUres3QOkj2BjxplCxrOF+HDFGohi3tRKsToY=" - }, - "description": { - "moniker": "Dev's Validator", - "identity": "", - "website": "", - "details": "" - }, - "revoked": false, - "pool_shares": { - "status": 2, - "amount": "1000" - }, - "delegator_shares": "1000", - "bond_height": 0, - "bond_intra_tx_counter": 0, - "commision": "0/1", - "commission_max": "0/1", - "commission_change_rate": "0/1", - "commission_change_rate_today": "0/1", - "prev_bonded_shares": "0/1" - }, - { - "owner": "109720515B4F8C0858DA3521E448262334534FFD", - "pub_key": { - "type": "AC26791624DE60", - "value": "pY7eLF0Ez3yq495kIjag8mD67Q131np/ssagpEvlV2A=" - }, - "description": { - "moniker": "", - "identity": "", - "website": "", - "details": "" - }, - "revoked": false, - "pool_shares": { - "status": 2, - "amount": "1000" - }, - "delegator_shares": "1000", - "bond_height": 0, - "bond_intra_tx_counter": 0, - "commision": "0/1", - "commission_max": "0/1", - "commission_change_rate": "0/1", - "commission_change_rate_today": "0/1", - "prev_bonded_shares": "0/1" - }, - { - "owner": "10B0899E05A486AE4E5589C39587DF7E9A185872", - "pub_key": { - "type": "AC26791624DE60", - "value": "RpX+xkwnCNw5DpBelscz4//TiODyC9RDiyIuD6NEwx0=" - }, - "description": { - "moniker": "aurel", - "identity": "", - "website": "", - "details": "" - }, - "revoked": false, - "pool_shares": { - "status": 2, - "amount": "1000" - }, - "delegator_shares": "1000", - "bond_height": 0, - "bond_intra_tx_counter": 0, - "commision": "0/1", - "commission_max": "0/1", - "commission_change_rate": "0/1", - "commission_change_rate_today": "0/1", - "prev_bonded_shares": "0/1" - }, - { - "owner": "328FBB8EA315D070DF908982A5F91A3618001D20", - "pub_key": { - "type": "AC26791624DE60", - "value": "dcmCn+RZTBdwbCa4YqSnw/Va7xQloBw6vF87ItLwdM0=" - }, - "description": { - "moniker": "cwgoes", - "identity": "", - "website": "", - "details": "" - }, - "revoked": false, - "pool_shares": { - "status": 2, - "amount": "100" - }, - "delegator_shares": "100", - "bond_height": 0, - "bond_intra_tx_counter": 0, - "commision": "0/1", - "commission_max": "0/1", - "commission_change_rate": "0/1", - "commission_change_rate_today": "0/1", - "prev_bonded_shares": "0/1" - }, - { - "owner": "4062DAFB9ACD4D91051B569CD4B19A26524B314B", - "pub_key": { - "type": "AC26791624DE60", - "value": "QYONAknaJqx3OKPSKraDrOPkx6xssezYtXVS84nZvZE=" - }, - "description": { - "moniker": "BKCM", - "identity": "", - "website": "", - "details": "" - }, - "revoked": false, - "pool_shares": { - "status": 2, - "amount": "1000" - }, - "delegator_shares": "1000", - "bond_height": 0, - "bond_intra_tx_counter": 0, - "commision": "0/1", - "commission_max": "0/1", - "commission_change_rate": "0/1", - "commission_change_rate_today": "0/1", - "prev_bonded_shares": "0/1" - }, - { - "owner": "42D76AF31E36EE23CA5366FBB9CE18610CCB9820", - "pub_key": { - "type": "AC26791624DE60", - "value": "TNPLvN6f6QoSLJqGHzIfbraBoSw3emr9Sk2Us94M4gM=" - }, - "description": { - "moniker": "bdnet", - "identity": "", - "website": "", - "details": "" - }, - "revoked": false, - "pool_shares": { - "status": 2, - "amount": "1000" - }, - "delegator_shares": "1000", - "bond_height": 0, - "bond_intra_tx_counter": 0, - "commision": "0/1", - "commission_max": "0/1", - "commission_change_rate": "0/1", - "commission_change_rate_today": "0/1", - "prev_bonded_shares": "0/1" - }, - { - "owner": "4B5BE759EB23B0D76C6A60636BD0E3111178794E", - "pub_key": { - "type": "AC26791624DE60", - "value": "7SaH/LyM+qdz9ovD/pvqIf2q7LC7tc5v0ZJxsA2CGTw=" - }, - "description": { - "moniker": "suyu", - "identity": "", - "website": "", - "details": "" - }, - "revoked": false, - "pool_shares": { - "status": 2, - "amount": "1000" - }, - "delegator_shares": "1000", - "bond_height": 0, - "bond_intra_tx_counter": 0, - "commision": "0/1", - "commission_max": "0/1", - "commission_change_rate": "0/1", - "commission_change_rate_today": "0/1", - "prev_bonded_shares": "0/1" - }, - { - "owner": "5A007B81A25AF34B829B79DA508A26E12180BCDB", - "pub_key": { - "type": "AC26791624DE60", - "value": "SW12+WpGKUCO9oT2CV0CD5kUclbXjJHV1MjerLWB7Oc=" - }, - "description": { - "moniker": "lino", - "identity": "", - "website": "", - "details": "" - }, - "revoked": false, - "pool_shares": { - "status": 2, - "amount": "1000" - }, - "delegator_shares": "1000", - "bond_height": 0, - "bond_intra_tx_counter": 0, - "commision": "0/1", - "commission_max": "0/1", - "commission_change_rate": "0/1", - "commission_change_rate_today": "0/1", - "prev_bonded_shares": "0/1" - }, - { - "owner": "83C2788B74E1A410A4E62F1040EAE15F4B6EA3F5", - "pub_key": { - "type": "AC26791624DE60", - "value": "s4ER09+WeX10euzGyK7xDW7+myQVXt3Plup8IHUE4nk=" - }, - "description": { - "moniker": "Staking Facilities", - "identity": "", - "website": "", - "details": "" - }, - "revoked": false, - "pool_shares": { - "status": 2, - "amount": "1000" - }, - "delegator_shares": "1000", - "bond_height": 0, - "bond_intra_tx_counter": 0, - "commision": "0/1", - "commission_max": "0/1", - "commission_change_rate": "0/1", - "commission_change_rate_today": "0/1", - "prev_bonded_shares": "0/1" - }, - { - "owner": "935E04662697134905706A4CCDB822AC6FC11C2E", - "pub_key": { - "type": "AC26791624DE60", - "value": "bIvXwf0qlOy0rO0SY/h8FfsqyW/AMpGL2yUhUNOY7hs=" - }, - "description": { - "moniker": "default", - "identity": "", - "website": "", - "details": "" - }, - "revoked": false, - "pool_shares": { - "status": 2, - "amount": "100" - }, - "delegator_shares": "100", - "bond_height": 0, - "bond_intra_tx_counter": 0, - "commision": "0/1", - "commission_max": "0/1", - "commission_change_rate": "0/1", - "commission_change_rate_today": "0/1", - "prev_bonded_shares": "0/1" - }, - { - "owner": "935E48ED79F1006ED135553768E1D9A768747CF6", - "pub_key": { - "type": "AC26791624DE60", - "value": "0aNTDL49987ZNRi3FtJIi0jk93ybHuYg1FjWrfP9H2o=" - }, - "description": { - "moniker": "bucky", - "identity": "", - "website": "", - "details": "" - }, - "revoked": false, - "pool_shares": { - "status": 2, - "amount": "1000" - }, - "delegator_shares": "1000", - "bond_height": 0, - "bond_intra_tx_counter": 0, - "commision": "0/1", - "commission_max": "0/1", - "commission_change_rate": "0/1", - "commission_change_rate_today": "0/1", - "prev_bonded_shares": "0/1" - }, - { - "owner": "9D5723057702E2090405AB5D3B48C45B9ABF4377", - "pub_key": { - "type": "AC26791624DE60", - "value": "NjjEQKUsq8F0gWxl3BoU2Li5n7hEz9H/LX80rfMxVyE=" - }, - "description": { - "moniker": "zach", - "identity": "", - "website": "", - "details": "" - }, - "revoked": false, - "pool_shares": { - "status": 2, - "amount": "100" - }, - "delegator_shares": "100", - "bond_height": 0, - "bond_intra_tx_counter": 0, - "commision": "0/1", - "commission_max": "0/1", - "commission_change_rate": "0/1", - "commission_change_rate_today": "0/1", - "prev_bonded_shares": "0/1" - }, - { - "owner": "A323EC45243D600204BA3D298E3C20322D08C84C", - "pub_key": { - "type": "AC26791624DE60", - "value": "OPxj9edXgufNEjYNhZKqLgmYnK4A3nGw3rxaFQrHn24=" - }, - "description": { - "moniker": "nuevax", - "identity": "", - "website": "", - "details": "" - }, - "revoked": false, - "pool_shares": { - "status": 2, - "amount": "1000" - }, - "delegator_shares": "1000", - "bond_height": 0, - "bond_intra_tx_counter": 0, - "commision": "0/1", - "commission_max": "0/1", - "commission_change_rate": "0/1", - "commission_change_rate_today": "0/1", - "prev_bonded_shares": "0/1" - }, - { - "owner": "A9A3DADDC8BFFAD52BA51C8F4F2E9F62709412DC", - "pub_key": { - "type": "AC26791624DE60", - "value": "Hi2rtbdJdQtOe3Kq4OoD/xkWJbIjIsUI9qgLQ6TlhiM=" - }, - "description": { - "moniker": "vultr.guest", - "identity": "", - "website": "https://ion.dokia.capital/", - "details": "DokiaValidator" - }, - "revoked": false, - "pool_shares": { - "status": 2, - "amount": "1000" - }, - "delegator_shares": "1000", - "bond_height": 0, - "bond_intra_tx_counter": 0, - "commision": "0/1", - "commission_max": "0/1", - "commission_change_rate": "0/1", - "commission_change_rate_today": "0/1", - "prev_bonded_shares": "0/1" - }, - { - "owner": "B6834D914FE50F0C743E6A012AB20438CFADFB95", - "pub_key": { - "type": "AC26791624DE60", - "value": "ah3JtmBA7gbxSiimPsLqQlV85gpNOUBJMvnxGx8eVlo=" - }, - "description": { - "moniker": "forbole", - "identity": "", - "website": "https://www.forbole.com", - "details": "Recommend. Refer. Reward" - }, - "revoked": false, - "pool_shares": { - "status": 2, - "amount": "1000" - }, - "delegator_shares": "1000", - "bond_height": 0, - "bond_intra_tx_counter": 0, - "commision": "0/1", - "commission_max": "0/1", - "commission_change_rate": "0/1", - "commission_change_rate_today": "0/1", - "prev_bonded_shares": "0/1" - }, - { - "owner": "B75C2C4309475C91E8DE271BC52CBAC408365B83", - "pub_key": { - "type": "AC26791624DE60", - "value": "VfOsmcON77auerRc9zKwOR+CvL0sj1nA45hS2WqX1xE=" - }, - "description": { - "moniker": "nylira", - "identity": "", - "website": "", - "details": "" - }, - "revoked": false, - "pool_shares": { - "status": 2, - "amount": "1000" - }, - "delegator_shares": "1000", - "bond_height": 0, - "bond_intra_tx_counter": 0, - "commision": "0/1", - "commission_max": "0/1", - "commission_change_rate": "0/1", - "commission_change_rate_today": "0/1", - "prev_bonded_shares": "0/1" - }, - { - "owner": "C0D0CA58C50B7B02A841E1B27D9A21D939754AC7", - "pub_key": { - "type": "AC26791624DE60", - "value": "KOdWpo4aQFrLxVlkyc66p7m6mBNnPLmGuO4Z4L+CI1Y=" - }, - "description": { - "moniker": "Gold", - "identity": "", - "website": "", - "details": "" - }, - "revoked": false, - "pool_shares": { - "status": 2, - "amount": "1000" - }, - "delegator_shares": "1000", - "bond_height": 0, - "bond_intra_tx_counter": 0, - "commision": "0/1", - "commission_max": "0/1", - "commission_change_rate": "0/1", - "commission_change_rate_today": "0/1", - "prev_bonded_shares": "0/1" - }, - { - "owner": "C5033FCFB67D7BD7B8546389F125710462D4FB6C", - "pub_key": { - "type": "AC26791624DE60", - "value": "p5ijoVwp2zmA7RkXXvPl+yqdnlaWMwoV2pYIN8bDyFs=" - }, - "description": { - "moniker": "jla-bsd", - "identity": "", - "website": "", - "details": "" - }, - "revoked": false, - "pool_shares": { - "status": 2, - "amount": "1000" - }, - "delegator_shares": "1000", - "bond_height": 0, - "bond_intra_tx_counter": 0, - "commision": "0/1", - "commission_max": "0/1", - "commission_change_rate": "0/1", - "commission_change_rate_today": "0/1", - "prev_bonded_shares": "0/1" - }, - { - "owner": "C6CB038C98026D2F17241A3B3166AE7E9488D9AD", - "pub_key": { - "type": "AC26791624DE60", - "value": "vSr94aI+zfF3D8Cr2VtCXPpfgj7t2ck8SlZxRsfn7gk=" - }, - "description": { - "moniker": "figmatt", - "identity": "", - "website": "", - "details": "" - }, - "revoked": false, - "pool_shares": { - "status": 2, - "amount": "1000" - }, - "delegator_shares": "1000", - "bond_height": 0, - "bond_intra_tx_counter": 0, - "commision": "0/1", - "commission_max": "0/1", - "commission_change_rate": "0/1", - "commission_change_rate_today": "0/1", - "prev_bonded_shares": "0/1" - }, - { - "owner": "D0861E3F22339C507B716102FDD5CA681EDE4F8E", - "pub_key": { - "type": "AC26791624DE60", - "value": "S9urD5q7je21qp5vEobiURdWrtJwvqMsfZGQhb8GOBQ=" - }, - "description": { - "moniker": "ATEAM1", - "identity": "", - "website": "", - "details": "ATEAM1" - }, - "revoked": false, - "pool_shares": { - "status": 2, - "amount": "1000" - }, - "delegator_shares": "1000", - "bond_height": 0, - "bond_intra_tx_counter": 0, - "commision": "0/1", - "commission_max": "0/1", - "commission_change_rate": "0/1", - "commission_change_rate_today": "0/1", - "prev_bonded_shares": "0/1" - }, - { - "owner": "D6545CB14FCA7840A295FB0566C27E4B9D526993", - "pub_key": { - "type": "AC26791624DE60", - "value": "rcl+kuM69Un/a7e+fQsQrCEtT1g04tFviOeq2GygSIw=" - }, - "description": { - "moniker": "idoor", - "identity": "", - "website": "", - "details": "" - }, - "revoked": false, - "pool_shares": { - "status": 2, - "amount": "1000" - }, - "delegator_shares": "1000", - "bond_height": 0, - "bond_intra_tx_counter": 0, - "commision": "0/1", - "commission_max": "0/1", - "commission_change_rate": "0/1", - "commission_change_rate_today": "0/1", - "prev_bonded_shares": "0/1" - }, - { - "owner": "D841E0DACF3994E6A40126F023F6F32F98A5D89E", - "pub_key": { - "type": "AC26791624DE60", - "value": "kol7Gj60Fct4X8T1rHLJQ0z/b14UqqSae8h1e37rLL8=" - }, - "description": { - "moniker": "naruemon", - "identity": "", - "website": "", - "details": "" - }, - "revoked": false, - "pool_shares": { - "status": 2, - "amount": "1000" - }, - "delegator_shares": "1000", - "bond_height": 0, - "bond_intra_tx_counter": 0, - "commision": "0/1", - "commission_max": "0/1", - "commission_change_rate": "0/1", - "commission_change_rate_today": "0/1", - "prev_bonded_shares": "0/1" - }, - { - "owner": "FD8DA5F512A59A30F8698E3CA638D384A68DF977", - "pub_key": { - "type": "AC26791624DE60", - "value": "TZTQnfqOsi89SeoXVnIw+tnFJnr4X8qVC0U8AsEmFk4=" - }, - "description": { - "moniker": "Adrian Brink - Cryptium Labs", - "identity": "", - "website": "https://cryptium.ch", - "details": "" - }, - "revoked": false, - "pool_shares": { - "status": 2, - "amount": "1000" - }, - "delegator_shares": "1000", - "bond_height": 0, - "bond_intra_tx_counter": 0, - "commision": "0/1", - "commission_max": "0/1", - "commission_change_rate": "0/1", - "commission_change_rate_today": "0/1", - "prev_bonded_shares": "0/1" - }, - { - "owner": "ECE57661F0CDCF28EED257B72F86240E57F4A612", - "pub_key": { - "type": "AC26791624DE60", - "value": "CDF/8aD8Lt+ikR3LyCg9c7DwWBA51NH+MUkH7tzxrfY=" - }, - "description": { - "moniker": "zaki", - "identity": "", - "website": "", - "details": "" - }, - "revoked": false, - "pool_shares": { - "status": 2, - "amount": "1000" - }, - "delegator_shares": "1000", - "bond_height": 0, - "bond_intra_tx_counter": 0, - "commision": "0/1", - "commission_max": "0/1", - "commission_change_rate": "0/1", - "commission_change_rate_today": "0/1", - "prev_bonded_shares": "0/1" - }, - { - "owner": "EFE597F7A90D3F3E7599B25259449628E2C4AFAD", - "pub_key": { - "type": "AC26791624DE60", - "value": "cvGYknYP9XMUzqlXZde7lRpvAp/kZiSRYHg66krJNxQ=" - }, - "description": { - "moniker": "trust", - "identity": "", - "website": "http://cosmos-trust.com", - "details": "" - }, - "revoked": false, - "pool_shares": { - "status": 2, - "amount": "1000" - }, - "delegator_shares": "1000", - "bond_height": 0, - "bond_intra_tx_counter": 0, - "commision": "0/1", - "commission_max": "0/1", - "commission_change_rate": "0/1", - "commission_change_rate_today": "0/1", - "prev_bonded_shares": "0/1" - }, - { - "owner": "FA929191B04C5DB222AFC6F15C63EF48CCC864C5", - "pub_key": { - "type": "AC26791624DE60", - "value": "RMwWTZsVdkq1heicNJb2fosy9Fls4NHxAHReiJvHl+8=" - }, - "description": { - "moniker": "proof-of-audit", - "identity": "", - "website": "https://proof-of-audit.com", - "details": "" - }, - "revoked": false, - "pool_shares": { - "status": 2, - "amount": "1000" - }, - "delegator_shares": "1000", - "bond_height": 0, - "bond_intra_tx_counter": 0, - "commision": "0/1", - "commission_max": "0/1", - "commission_change_rate": "0/1", - "commission_change_rate_today": "0/1", - "prev_bonded_shares": "0/1" - } - ] - } - } -} diff --git a/cmd/gaia/testnets/gaia-6002/genesis.json b/cmd/gaia/testnets/gaia-6002/genesis.json deleted file mode 100644 index 7f53893a8..000000000 --- a/cmd/gaia/testnets/gaia-6002/genesis.json +++ /dev/null @@ -1,1459 +0,0 @@ -{ - "genesis_time": "2018-06-16T18:29:12.38288148Z", - "chain_id": "gaia-6002", - "consensus_params": { - "block_size_params": { - "max_bytes": 22020096, - "max_txs": 100000, - "max_gas": -1 - }, - "tx_size_params": { - "max_bytes": 10240, - "max_gas": -1 - }, - "block_gossip_params": { - "block_part_size_bytes": 65536 - }, - "evidence_params": { - "max_age": 100000 - } - }, - "validators": [ - { - "pub_key": { - "type": "AC26791624DE60", - "value": "TZTQnfqOsi89SeoXVnIw+tnFJnr4X8qVC0U8AsEmFk4=" - }, - "power": 1000, - "name": "adrian" - }, - { - "pub_key": { - "type": "AC26791624DE60", - "value": "CDF/8aD8Lt+ikR3LyCg9c7DwWBA51NH+MUkH7tzxrfY=" - }, - "power": 1000, - "name": "zaki" - }, - { - "pub_key": { - "type": "AC26791624DE60", - "value": "bIvXwf0qlOy0rO0SY/h8FfsqyW/AMpGL2yUhUNOY7hs=" - }, - "power": 100, - "name": "staked" - }, - { - "pub_key": { - "type": "AC26791624DE60", - "value": "RMwWTZsVdkq1heicNJb2fosy9Fls4NHxAHReiJvHl+8=" - }, - "power": 1000, - "name": "polsdam" - }, - { - "pub_key": { - "type": "AC26791624DE60", - "value": "SW12+WpGKUCO9oT2CV0CD5kUclbXjJHV1MjerLWB7Oc=" - }, - "power": 1000, - "name": "lino" - }, - { - "pub_key": { - "type": "AC26791624DE60", - "value": "NjjEQKUsq8F0gWxl3BoU2Li5n7hEz9H/LX80rfMxVyE=" - }, - "power": 100, - "name": "" - }, - { - "pub_key": { - "type": "AC26791624DE60", - "value": "7SaH/LyM+qdz9ovD/pvqIf2q7LC7tc5v0ZJxsA2CGTw=" - }, - "power": 1000, - "name": "iris" - }, - { - "pub_key": { - "type": "AC26791624DE60", - "value": "pY7eLF0Ez3yq495kIjag8mD67Q131np/ssagpEvlV2A=" - }, - "power": 1000, - "name": "pbostrom" - }, - { - "pub_key": { - "type": "AC26791624DE60", - "value": "RpX+xkwnCNw5DpBelscz4//TiODyC9RDiyIuD6NEwx0=" - }, - "power": 1000, - "name": "aurel" - }, - { - "pub_key": { - "type": "AC26791624DE60", - "value": "0aNTDL49987ZNRi3FtJIi0jk93ybHuYg1FjWrfP9H2o=" - }, - "power": 1000, - "name": "bucky" - }, - { - "pub_key": { - "type": "AC26791624DE60", - "value": "dcmCn+RZTBdwbCa4YqSnw/Va7xQloBw6vF87ItLwdM0=" - }, - "power": 100, - "name": "cwgoes" - }, - { - "pub_key": { - "type": "AC26791624DE60", - "value": "TNPLvN6f6QoSLJqGHzIfbraBoSw3emr9Sk2Us94M4gM=" - }, - "power": 1000, - "name": "bdnet" - }, - { - "pub_key": { - "type": "AC26791624DE60", - "value": "cvGYknYP9XMUzqlXZde7lRpvAp/kZiSRYHg66krJNxQ=" - }, - "power": 1000, - "name": "melea-trust" - }, - { - "pub_key": { - "type": "AC26791624DE60", - "value": "kol7Gj60Fct4X8T1rHLJQ0z/b14UqqSae8h1e37rLL8=" - }, - "power": 1000, - "name": "naruemon" - }, - { - "pub_key": { - "type": "AC26791624DE60", - "value": "rcl+kuM69Un/a7e+fQsQrCEtT1g04tFviOeq2GygSIw=" - }, - "power": 1000, - "name": "idoor" - }, - { - "pub_key": { - "type": "AC26791624DE60", - "value": "S9urD5q7je21qp5vEobiURdWrtJwvqMsfZGQhb8GOBQ=" - }, - "power": 1000, - "name": "ATEAM1" - }, - { - "pub_key": { - "type": "AC26791624DE60", - "value": "vSr94aI+zfF3D8Cr2VtCXPpfgj7t2ck8SlZxRsfn7gk=" - }, - "power": 1000, - "name": "figmatt" - }, - { - "pub_key": { - "type": "AC26791624DE60", - "value": "p5ijoVwp2zmA7RkXXvPl+yqdnlaWMwoV2pYIN8bDyFs=" - }, - "power": 1000, - "name": "jla-bsd" - }, - { - "pub_key": { - "type": "AC26791624DE60", - "value": "KOdWpo4aQFrLxVlkyc66p7m6mBNnPLmGuO4Z4L+CI1Y=" - }, - "power": 1000, - "name": "Gold" - }, - { - "pub_key": { - "type": "AC26791624DE60", - "value": "VfOsmcON77auerRc9zKwOR+CvL0sj1nA45hS2WqX1xE=" - }, - "power": 1000, - "name": "nylira" - }, - { - "pub_key": { - "type": "AC26791624DE60", - "value": "QYONAknaJqx3OKPSKraDrOPkx6xssezYtXVS84nZvZE=" - }, - "power": 1000, - "name": "BKCM" - }, - { - "pub_key": { - "type": "AC26791624DE60", - "value": "PyFJmNrUres3QOkj2BjxplCxrOF+HDFGohi3tRKsToY=" - }, - "power": 1000, - "name": "Dev's Validator" - }, - { - "pub_key": { - "type": "AC26791624DE60", - "value": "s4ER09+WeX10euzGyK7xDW7+myQVXt3Plup8IHUE4nk=" - }, - "power": 1000, - "name": "Staking Facilities" - }, - { - "pub_key": { - "type": "AC26791624DE60", - "value": "OPxj9edXgufNEjYNhZKqLgmYnK4A3nGw3rxaFQrHn24=" - }, - "power": 1000, - "name": "nuevax" - }, - { - "pub_key": { - "type": "AC26791624DE60", - "value": "Hi2rtbdJdQtOe3Kq4OoD/xkWJbIjIsUI9qgLQ6TlhiM=" - }, - "power": 1000, - "name": "vultr.guest" - }, - { - "pub_key": { - "type": "AC26791624DE60", - "value": "ah3JtmBA7gbxSiimPsLqQlV85gpNOUBJMvnxGx8eVlo=" - }, - "power": 1000, - "name": "forebole" - } - ], - "app_hash": "", - "app_state": { - "accounts": [ - { - "address": "04F01D5AF8DD248130BBE1D0780EA219CE479A9B", - "coins": [ - { - "denom": "devToken", - "amount": 1000 - }, - { - "denom": "steak", - "amount": 50 - } - ] - }, - { - "address": "FD8DA5F512A59A30F8698E3CA638D384A68DF977", - "coins": [ - { - "denom": "adrianToken", - "amount": 1000 - }, - { - "denom": "steak", - "amount": 50 - } - ] - }, - { - "address": "109720515B4F8C0858DA3521E448262334534FFD", - "coins": [ - { - "denom": "defaultToken", - "amount": 1000 - }, - { - "denom": "steak", - "amount": 50 - } - ] - }, - { - "address": "10B0899E05A486AE4E5589C39587DF7E9A185872", - "coins": [ - { - "denom": "aurelToken", - "amount": 1000 - }, - { - "denom": "steak", - "amount": 50 - } - ] - }, - { - "address": "328FBB8EA315D070DF908982A5F91A3618001D20", - "coins": [ - { - "denom": "cwgoesToken", - "amount": 1000 - }, - { - "denom": "steak", - "amount": 50 - } - ] - }, - { - "address": "4062DAFB9ACD4D91051B569CD4B19A26524B314B", - "coins": [ - { - "denom": "BKCMToken", - "amount": 1000 - }, - { - "denom": "steak", - "amount": 50 - } - ] - }, - { - "address": "42D76AF31E36EE23CA5366FBB9CE18610CCB9820", - "coins": [ - { - "denom": "BDToken", - "amount": 1000 - }, - { - "denom": "steak", - "amount": 50 - } - ] - }, - { - "address": "4B5BE759EB23B0D76C6A60636BD0E3111178794E", - "coins": [ - { - "denom": "suyuToken", - "amount": 1000 - }, - { - "denom": "steak", - "amount": 50 - } - ] - }, - { - "address": "5A007B81A25AF34B829B79DA508A26E12180BCDB", - "coins": [ - { - "denom": "linoToken", - "amount": 1000 - }, - { - "denom": "steak", - "amount": 50 - } - ] - }, - { - "address": "83C2788B74E1A410A4E62F1040EAE15F4B6EA3F5", - "coins": [ - { - "denom": "stakingToken", - "amount": 1000 - }, - { - "denom": "steak", - "amount": 50 - } - ] - }, - { - "address": "935E04662697134905706A4CCDB822AC6FC11C2E", - "coins": [ - { - "denom": "defaultToken", - "amount": 1000 - }, - { - "denom": "steak", - "amount": 50 - } - ] - }, - { - "address": "935E48ED79F1006ED135553768E1D9A768747CF6", - "coins": [ - { - "denom": "buckyToken", - "amount": 1000 - }, - { - "denom": "steak", - "amount": 50 - } - ] - }, - { - "address": "99FFAEE5BF6040EADA2F26548C4A702619797C9F", - "coins": [ - { - "denom": "kwunyeungToken", - "amount": 1000 - }, - { - "denom": "steak", - "amount": 50 - } - ] - }, - { - "address": "9D5723057702E2090405AB5D3B48C45B9ABF4377", - "coins": [ - { - "denom": "steak", - "amount": 50 - }, - { - "denom": "zachToken", - "amount": 1000 - } - ] - }, - { - "address": "A323EC45243D600204BA3D298E3C20322D08C84C", - "coins": [ - { - "denom": "steak", - "amount": 50 - }, - { - "denom": "nuevaxToken", - "amount": 1000 - } - ] - }, - { - "address": "A9A3DADDC8BFFAD52BA51C8F4F2E9F62709412DC", - "coins": [ - { - "denom": "steak", - "amount": 50 - }, - { - "denom": "dokiaToken", - "amount": 1000 - } - ] - }, - { - "address": "B6834D914FE50F0C743E6A012AB20438CFADFB95", - "coins": [ - { - "denom": "steak", - "amount": 50 - }, - { - "denom": "forboleToken", - "amount": 1000 - } - ] - }, - { - "address": "B75C2C4309475C91E8DE271BC52CBAC408365B83", - "coins": [ - { - "denom": "steak", - "amount": 100 - }, - { - "denom": "pengToken", - "amount": 1000 - } - ] - }, - { - "address": "FD30D5C983FFEDEC069C3DDFCF270E41A556A86E", - "coins": [ - { - "denom": "steak", - "amount": 900 - }, - { - "denom": "faucetToken", - "amount": 10000000 - } - ] - }, - { - "address": "C0D0CA58C50B7B02A841E1B27D9A21D939754AC7", - "coins": [ - { - "denom": "steak", - "amount": 50 - }, - { - "denom": "goldToken", - "amount": 100 - } - ] - }, - { - "address": "C5033FCFB67D7BD7B8546389F125710462D4FB6C", - "coins": [ - { - "denom": "steak", - "amount": 50 - }, - { - "denom": "jlaToken", - "amount": 100 - } - ] - }, - { - "address": "C6CB038C98026D2F17241A3B3166AE7E9488D9AD", - "coins": [ - { - "denom": "steak", - "amount": 50 - }, - { - "denom": "figmattToken", - "amount": 100 - } - ] - }, - { - "address": "D0861E3F22339C507B716102FDD5CA681EDE4F8E", - "coins": [ - { - "denom": "steak", - "amount": 50 - }, - { - "denom": "ATEAM1Token", - "amount": 100 - } - ] - }, - { - "address": "D6545CB14FCA7840A295FB0566C27E4B9D526993", - "coins": [ - { - "denom": "steak", - "amount": 50 - }, - { - "denom": "idoorToken", - "amount": 100 - } - ] - }, - { - "address": "D841E0DACF3994E6A40126F023F6F32F98A5D89E", - "coins": [ - { - "denom": "steak", - "amount": 50 - }, - { - "denom": "naruemonToken", - "amount": 100 - } - ] - }, - { - "address": "ECE57661F0CDCF28EED257B72F86240E57F4A612", - "coins": [ - { - "denom": "steak", - "amount": 50 - }, - { - "denom": "zakiToken", - "amount": 1000 - } - ] - }, - { - "address": "EFE597F7A90D3F3E7599B25259449628E2C4AFAD", - "coins": [ - { - "denom": "steak", - "amount": 50 - }, - { - "denom": "trustToken", - "amount": 1000 - } - ] - }, - { - "address": "FA929191B04C5DB222AFC6F15C63EF48CCC864C5", - "coins": [ - { - "denom": "poldsamToken", - "amount": 1000 - }, - { - "denom": "steak", - "amount": 50 - } - ] - } - ], - "stake": { - "pool": { - "loose_unbonded_tokens": 2300, - "unbonded_tokens": 0, - "unbonding_tokens": 0, - "bonded_tokens": 23300, - "unbonded_shares": "0", - "unbonding_shares": "0", - "bonded_shares": "23300", - "inflation_last_time": 0, - "inflation": "9012837/100000000", - "date_last_commission_reset": 0, - "prev_bonded_shares": "0" - }, - "params": { - "inflation_rate_change": "13/100", - "inflation_max": "1/5", - "inflation_min": "7/100", - "goal_bonded": "67/100", - "max_validators": 100, - "bond_denom": "steak" - }, - "bonds": [ - { - "delegator_addr": "04F01D5AF8DD248130BBE1D0780EA219CE479A9B", - "validator_addr": "04F01D5AF8DD248130BBE1D0780EA219CE479A9B", - "shares": "1000", - "height": 0 - }, - { - "delegator_addr": "109720515B4F8C0858DA3521E448262334534FFD", - "validator_addr": "109720515B4F8C0858DA3521E448262334534FFD", - "shares": "1000", - "height": 0 - }, - { - "delegator_addr": "10B0899E05A486AE4E5589C39587DF7E9A185872", - "validator_addr": "10B0899E05A486AE4E5589C39587DF7E9A185872", - "shares": "1000", - "height": 0 - }, - { - "delegator_addr": "328FBB8EA315D070DF908982A5F91A3618001D20", - "validator_addr": "328FBB8EA315D070DF908982A5F91A3618001D20", - "shares": "100", - "height": 0 - }, - { - "delegator_addr": "4062DAFB9ACD4D91051B569CD4B19A26524B314B", - "validator_addr": "4062DAFB9ACD4D91051B569CD4B19A26524B314B", - "shares": "1000", - "height": 0 - }, - { - "delegator_addr": "42D76AF31E36EE23CA5366FBB9CE18610CCB9820", - "validator_addr": "42D76AF31E36EE23CA5366FBB9CE18610CCB9820", - "shares": "1000", - "height": 0 - }, - { - "delegator_addr": "4B5BE759EB23B0D76C6A60636BD0E3111178794E", - "validator_addr": "4B5BE759EB23B0D76C6A60636BD0E3111178794E", - "shares": "1000", - "height": 0 - }, - { - "delegator_addr": "5A007B81A25AF34B829B79DA508A26E12180BCDB", - "validator_addr": "5A007B81A25AF34B829B79DA508A26E12180BCDB", - "shares": "1000", - "height": 0 - }, - { - "delegator_addr": "83C2788B74E1A410A4E62F1040EAE15F4B6EA3F5", - "validator_addr": "83C2788B74E1A410A4E62F1040EAE15F4B6EA3F5", - "shares": "1000", - "height": 0 - }, - { - "delegator_addr": "935E04662697134905706A4CCDB822AC6FC11C2E", - "validator_addr": "935E04662697134905706A4CCDB822AC6FC11C2E", - "shares": "100", - "height": 0 - }, - { - "delegator_addr": "935E48ED79F1006ED135553768E1D9A768747CF6", - "validator_addr": "935E48ED79F1006ED135553768E1D9A768747CF6", - "shares": "1000", - "height": 0 - }, - { - "delegator_addr": "9D5723057702E2090405AB5D3B48C45B9ABF4377", - "validator_addr": "9D5723057702E2090405AB5D3B48C45B9ABF4377", - "shares": "100", - "height": 0 - }, - { - "delegator_addr": "A323EC45243D600204BA3D298E3C20322D08C84C", - "validator_addr": "A323EC45243D600204BA3D298E3C20322D08C84C", - "shares": "1000", - "height": 0 - }, - { - "delegator_addr": "A9A3DADDC8BFFAD52BA51C8F4F2E9F62709412DC", - "validator_addr": "A9A3DADDC8BFFAD52BA51C8F4F2E9F62709412DC", - "shares": "1000", - "height": 0 - }, - { - "delegator_addr": "B6834D914FE50F0C743E6A012AB20438CFADFB95", - "validator_addr": "B6834D914FE50F0C743E6A012AB20438CFADFB95", - "shares": "1000", - "height": 0 - }, - { - "delegator_addr": "B75C2C4309475C91E8DE271BC52CBAC408365B83", - "validator_addr": "B75C2C4309475C91E8DE271BC52CBAC408365B83", - "shares": "1000", - "height": 0 - }, - { - "delegator_addr": "C0D0CA58C50B7B02A841E1B27D9A21D939754AC7", - "validator_addr": "C0D0CA58C50B7B02A841E1B27D9A21D939754AC7", - "shares": "1000", - "height": 0 - }, - { - "delegator_addr": "C5033FCFB67D7BD7B8546389F125710462D4FB6C", - "validator_addr": "C5033FCFB67D7BD7B8546389F125710462D4FB6C", - "shares": "1000", - "height": 0 - }, - { - "delegator_addr": "C6CB038C98026D2F17241A3B3166AE7E9488D9AD", - "validator_addr": "C6CB038C98026D2F17241A3B3166AE7E9488D9AD", - "shares": "1000", - "height": 0 - }, - { - "delegator_addr": "D0861E3F22339C507B716102FDD5CA681EDE4F8E", - "validator_addr": "D0861E3F22339C507B716102FDD5CA681EDE4F8E", - "shares": "1000", - "height": 0 - }, - { - "delegator_addr": "D6545CB14FCA7840A295FB0566C27E4B9D526993", - "validator_addr": "D6545CB14FCA7840A295FB0566C27E4B9D526993", - "shares": "1000", - "height": 0 - }, - { - "delegator_addr": "D841E0DACF3994E6A40126F023F6F32F98A5D89E", - "validator_addr": "D841E0DACF3994E6A40126F023F6F32F98A5D89E", - "shares": "1000", - "height": 0 - }, - { - "delegator_addr": "FD8DA5F512A59A30F8698E3CA638D384A68DF977", - "validator_addr": "FD8DA5F512A59A30F8698E3CA638D384A68DF977", - "shares": "1000", - "height": 0 - }, - { - "delegator_addr": "ECE57661F0CDCF28EED257B72F86240E57F4A612", - "validator_addr": "ECE57661F0CDCF28EED257B72F86240E57F4A612", - "shares": "1000", - "height": 0 - }, - { - "delegator_addr": "EFE597F7A90D3F3E7599B25259449628E2C4AFAD", - "validator_addr": "EFE597F7A90D3F3E7599B25259449628E2C4AFAD", - "shares": "1000", - "height": 0 - }, - { - "delegator_addr": "FA929191B04C5DB222AFC6F15C63EF48CCC864C5", - "validator_addr": "FA929191B04C5DB222AFC6F15C63EF48CCC864C5", - "shares": "1000", - "height": 0 - } - ], - "validators": [ - { - "owner": "04F01D5AF8DD248130BBE1D0780EA219CE479A9B", - "pub_key": { - "type": "AC26791624DE60", - "value": "PyFJmNrUres3QOkj2BjxplCxrOF+HDFGohi3tRKsToY=" - }, - "description": { - "moniker": "Dev's Validator", - "identity": "", - "website": "", - "details": "" - }, - "revoked": false, - "pool_shares": { - "status": 2, - "amount": "1000" - }, - "delegator_shares": "1000", - "bond_height": 0, - "bond_intra_tx_counter": 0, - "commision": "0/1", - "commission_max": "0/1", - "commission_change_rate": "0/1", - "commission_change_rate_today": "0/1", - "prev_bonded_shares": "0/1" - }, - { - "owner": "109720515B4F8C0858DA3521E448262334534FFD", - "pub_key": { - "type": "AC26791624DE60", - "value": "pY7eLF0Ez3yq495kIjag8mD67Q131np/ssagpEvlV2A=" - }, - "description": { - "moniker": "", - "identity": "", - "website": "", - "details": "" - }, - "revoked": false, - "pool_shares": { - "status": 2, - "amount": "1000" - }, - "delegator_shares": "1000", - "bond_height": 0, - "bond_intra_tx_counter": 0, - "commision": "0/1", - "commission_max": "0/1", - "commission_change_rate": "0/1", - "commission_change_rate_today": "0/1", - "prev_bonded_shares": "0/1" - }, - { - "owner": "10B0899E05A486AE4E5589C39587DF7E9A185872", - "pub_key": { - "type": "AC26791624DE60", - "value": "RpX+xkwnCNw5DpBelscz4//TiODyC9RDiyIuD6NEwx0=" - }, - "description": { - "moniker": "aurel", - "identity": "", - "website": "", - "details": "" - }, - "revoked": false, - "pool_shares": { - "status": 2, - "amount": "1000" - }, - "delegator_shares": "1000", - "bond_height": 0, - "bond_intra_tx_counter": 0, - "commision": "0/1", - "commission_max": "0/1", - "commission_change_rate": "0/1", - "commission_change_rate_today": "0/1", - "prev_bonded_shares": "0/1" - }, - { - "owner": "328FBB8EA315D070DF908982A5F91A3618001D20", - "pub_key": { - "type": "AC26791624DE60", - "value": "dcmCn+RZTBdwbCa4YqSnw/Va7xQloBw6vF87ItLwdM0=" - }, - "description": { - "moniker": "cwgoes", - "identity": "", - "website": "", - "details": "" - }, - "revoked": false, - "pool_shares": { - "status": 2, - "amount": "100" - }, - "delegator_shares": "100", - "bond_height": 0, - "bond_intra_tx_counter": 0, - "commision": "0/1", - "commission_max": "0/1", - "commission_change_rate": "0/1", - "commission_change_rate_today": "0/1", - "prev_bonded_shares": "0/1" - }, - { - "owner": "4062DAFB9ACD4D91051B569CD4B19A26524B314B", - "pub_key": { - "type": "AC26791624DE60", - "value": "QYONAknaJqx3OKPSKraDrOPkx6xssezYtXVS84nZvZE=" - }, - "description": { - "moniker": "BKCM", - "identity": "", - "website": "", - "details": "" - }, - "revoked": false, - "pool_shares": { - "status": 2, - "amount": "1000" - }, - "delegator_shares": "1000", - "bond_height": 0, - "bond_intra_tx_counter": 0, - "commision": "0/1", - "commission_max": "0/1", - "commission_change_rate": "0/1", - "commission_change_rate_today": "0/1", - "prev_bonded_shares": "0/1" - }, - { - "owner": "42D76AF31E36EE23CA5366FBB9CE18610CCB9820", - "pub_key": { - "type": "AC26791624DE60", - "value": "TNPLvN6f6QoSLJqGHzIfbraBoSw3emr9Sk2Us94M4gM=" - }, - "description": { - "moniker": "bdnet", - "identity": "", - "website": "", - "details": "" - }, - "revoked": false, - "pool_shares": { - "status": 2, - "amount": "1000" - }, - "delegator_shares": "1000", - "bond_height": 0, - "bond_intra_tx_counter": 0, - "commision": "0/1", - "commission_max": "0/1", - "commission_change_rate": "0/1", - "commission_change_rate_today": "0/1", - "prev_bonded_shares": "0/1" - }, - { - "owner": "4B5BE759EB23B0D76C6A60636BD0E3111178794E", - "pub_key": { - "type": "AC26791624DE60", - "value": "7SaH/LyM+qdz9ovD/pvqIf2q7LC7tc5v0ZJxsA2CGTw=" - }, - "description": { - "moniker": "suyu", - "identity": "", - "website": "", - "details": "" - }, - "revoked": false, - "pool_shares": { - "status": 2, - "amount": "1000" - }, - "delegator_shares": "1000", - "bond_height": 0, - "bond_intra_tx_counter": 0, - "commision": "0/1", - "commission_max": "0/1", - "commission_change_rate": "0/1", - "commission_change_rate_today": "0/1", - "prev_bonded_shares": "0/1" - }, - { - "owner": "5A007B81A25AF34B829B79DA508A26E12180BCDB", - "pub_key": { - "type": "AC26791624DE60", - "value": "SW12+WpGKUCO9oT2CV0CD5kUclbXjJHV1MjerLWB7Oc=" - }, - "description": { - "moniker": "lino", - "identity": "", - "website": "", - "details": "" - }, - "revoked": false, - "pool_shares": { - "status": 2, - "amount": "1000" - }, - "delegator_shares": "1000", - "bond_height": 0, - "bond_intra_tx_counter": 0, - "commision": "0/1", - "commission_max": "0/1", - "commission_change_rate": "0/1", - "commission_change_rate_today": "0/1", - "prev_bonded_shares": "0/1" - }, - { - "owner": "83C2788B74E1A410A4E62F1040EAE15F4B6EA3F5", - "pub_key": { - "type": "AC26791624DE60", - "value": "s4ER09+WeX10euzGyK7xDW7+myQVXt3Plup8IHUE4nk=" - }, - "description": { - "moniker": "Staking Facilities", - "identity": "", - "website": "", - "details": "" - }, - "revoked": false, - "pool_shares": { - "status": 2, - "amount": "1000" - }, - "delegator_shares": "1000", - "bond_height": 0, - "bond_intra_tx_counter": 0, - "commision": "0/1", - "commission_max": "0/1", - "commission_change_rate": "0/1", - "commission_change_rate_today": "0/1", - "prev_bonded_shares": "0/1" - }, - { - "owner": "935E04662697134905706A4CCDB822AC6FC11C2E", - "pub_key": { - "type": "AC26791624DE60", - "value": "bIvXwf0qlOy0rO0SY/h8FfsqyW/AMpGL2yUhUNOY7hs=" - }, - "description": { - "moniker": "default", - "identity": "", - "website": "", - "details": "" - }, - "revoked": false, - "pool_shares": { - "status": 2, - "amount": "100" - }, - "delegator_shares": "100", - "bond_height": 0, - "bond_intra_tx_counter": 0, - "commision": "0/1", - "commission_max": "0/1", - "commission_change_rate": "0/1", - "commission_change_rate_today": "0/1", - "prev_bonded_shares": "0/1" - }, - { - "owner": "935E48ED79F1006ED135553768E1D9A768747CF6", - "pub_key": { - "type": "AC26791624DE60", - "value": "0aNTDL49987ZNRi3FtJIi0jk93ybHuYg1FjWrfP9H2o=" - }, - "description": { - "moniker": "bucky", - "identity": "", - "website": "", - "details": "" - }, - "revoked": false, - "pool_shares": { - "status": 2, - "amount": "1000" - }, - "delegator_shares": "1000", - "bond_height": 0, - "bond_intra_tx_counter": 0, - "commision": "0/1", - "commission_max": "0/1", - "commission_change_rate": "0/1", - "commission_change_rate_today": "0/1", - "prev_bonded_shares": "0/1" - }, - { - "owner": "9D5723057702E2090405AB5D3B48C45B9ABF4377", - "pub_key": { - "type": "AC26791624DE60", - "value": "NjjEQKUsq8F0gWxl3BoU2Li5n7hEz9H/LX80rfMxVyE=" - }, - "description": { - "moniker": "zach", - "identity": "", - "website": "", - "details": "" - }, - "revoked": false, - "pool_shares": { - "status": 2, - "amount": "100" - }, - "delegator_shares": "100", - "bond_height": 0, - "bond_intra_tx_counter": 0, - "commision": "0/1", - "commission_max": "0/1", - "commission_change_rate": "0/1", - "commission_change_rate_today": "0/1", - "prev_bonded_shares": "0/1" - }, - { - "owner": "A323EC45243D600204BA3D298E3C20322D08C84C", - "pub_key": { - "type": "AC26791624DE60", - "value": "OPxj9edXgufNEjYNhZKqLgmYnK4A3nGw3rxaFQrHn24=" - }, - "description": { - "moniker": "nuevax", - "identity": "", - "website": "", - "details": "" - }, - "revoked": false, - "pool_shares": { - "status": 2, - "amount": "1000" - }, - "delegator_shares": "1000", - "bond_height": 0, - "bond_intra_tx_counter": 0, - "commision": "0/1", - "commission_max": "0/1", - "commission_change_rate": "0/1", - "commission_change_rate_today": "0/1", - "prev_bonded_shares": "0/1" - }, - { - "owner": "A9A3DADDC8BFFAD52BA51C8F4F2E9F62709412DC", - "pub_key": { - "type": "AC26791624DE60", - "value": "Hi2rtbdJdQtOe3Kq4OoD/xkWJbIjIsUI9qgLQ6TlhiM=" - }, - "description": { - "moniker": "vultr.guest", - "identity": "", - "website": "https://ion.dokia.capital/", - "details": "DokiaValidator" - }, - "revoked": false, - "pool_shares": { - "status": 2, - "amount": "1000" - }, - "delegator_shares": "1000", - "bond_height": 0, - "bond_intra_tx_counter": 0, - "commision": "0/1", - "commission_max": "0/1", - "commission_change_rate": "0/1", - "commission_change_rate_today": "0/1", - "prev_bonded_shares": "0/1" - }, - { - "owner": "B6834D914FE50F0C743E6A012AB20438CFADFB95", - "pub_key": { - "type": "AC26791624DE60", - "value": "ah3JtmBA7gbxSiimPsLqQlV85gpNOUBJMvnxGx8eVlo=" - }, - "description": { - "moniker": "forbole", - "identity": "", - "website": "https://www.forbole.com", - "details": "Recommend. Refer. Reward" - }, - "revoked": false, - "pool_shares": { - "status": 2, - "amount": "1000" - }, - "delegator_shares": "1000", - "bond_height": 0, - "bond_intra_tx_counter": 0, - "commision": "0/1", - "commission_max": "0/1", - "commission_change_rate": "0/1", - "commission_change_rate_today": "0/1", - "prev_bonded_shares": "0/1" - }, - { - "owner": "B75C2C4309475C91E8DE271BC52CBAC408365B83", - "pub_key": { - "type": "AC26791624DE60", - "value": "VfOsmcON77auerRc9zKwOR+CvL0sj1nA45hS2WqX1xE=" - }, - "description": { - "moniker": "nylira", - "identity": "", - "website": "", - "details": "" - }, - "revoked": false, - "pool_shares": { - "status": 2, - "amount": "1000" - }, - "delegator_shares": "1000", - "bond_height": 0, - "bond_intra_tx_counter": 0, - "commision": "0/1", - "commission_max": "0/1", - "commission_change_rate": "0/1", - "commission_change_rate_today": "0/1", - "prev_bonded_shares": "0/1" - }, - { - "owner": "C0D0CA58C50B7B02A841E1B27D9A21D939754AC7", - "pub_key": { - "type": "AC26791624DE60", - "value": "KOdWpo4aQFrLxVlkyc66p7m6mBNnPLmGuO4Z4L+CI1Y=" - }, - "description": { - "moniker": "Gold", - "identity": "", - "website": "", - "details": "" - }, - "revoked": false, - "pool_shares": { - "status": 2, - "amount": "1000" - }, - "delegator_shares": "1000", - "bond_height": 0, - "bond_intra_tx_counter": 0, - "commision": "0/1", - "commission_max": "0/1", - "commission_change_rate": "0/1", - "commission_change_rate_today": "0/1", - "prev_bonded_shares": "0/1" - }, - { - "owner": "C5033FCFB67D7BD7B8546389F125710462D4FB6C", - "pub_key": { - "type": "AC26791624DE60", - "value": "p5ijoVwp2zmA7RkXXvPl+yqdnlaWMwoV2pYIN8bDyFs=" - }, - "description": { - "moniker": "jla-bsd", - "identity": "", - "website": "", - "details": "" - }, - "revoked": false, - "pool_shares": { - "status": 2, - "amount": "1000" - }, - "delegator_shares": "1000", - "bond_height": 0, - "bond_intra_tx_counter": 0, - "commision": "0/1", - "commission_max": "0/1", - "commission_change_rate": "0/1", - "commission_change_rate_today": "0/1", - "prev_bonded_shares": "0/1" - }, - { - "owner": "C6CB038C98026D2F17241A3B3166AE7E9488D9AD", - "pub_key": { - "type": "AC26791624DE60", - "value": "vSr94aI+zfF3D8Cr2VtCXPpfgj7t2ck8SlZxRsfn7gk=" - }, - "description": { - "moniker": "figmatt", - "identity": "", - "website": "", - "details": "" - }, - "revoked": false, - "pool_shares": { - "status": 2, - "amount": "1000" - }, - "delegator_shares": "1000", - "bond_height": 0, - "bond_intra_tx_counter": 0, - "commision": "0/1", - "commission_max": "0/1", - "commission_change_rate": "0/1", - "commission_change_rate_today": "0/1", - "prev_bonded_shares": "0/1" - }, - { - "owner": "D0861E3F22339C507B716102FDD5CA681EDE4F8E", - "pub_key": { - "type": "AC26791624DE60", - "value": "S9urD5q7je21qp5vEobiURdWrtJwvqMsfZGQhb8GOBQ=" - }, - "description": { - "moniker": "ATEAM1", - "identity": "", - "website": "", - "details": "ATEAM1" - }, - "revoked": false, - "pool_shares": { - "status": 2, - "amount": "1000" - }, - "delegator_shares": "1000", - "bond_height": 0, - "bond_intra_tx_counter": 0, - "commision": "0/1", - "commission_max": "0/1", - "commission_change_rate": "0/1", - "commission_change_rate_today": "0/1", - "prev_bonded_shares": "0/1" - }, - { - "owner": "D6545CB14FCA7840A295FB0566C27E4B9D526993", - "pub_key": { - "type": "AC26791624DE60", - "value": "rcl+kuM69Un/a7e+fQsQrCEtT1g04tFviOeq2GygSIw=" - }, - "description": { - "moniker": "idoor", - "identity": "", - "website": "", - "details": "" - }, - "revoked": false, - "pool_shares": { - "status": 2, - "amount": "1000" - }, - "delegator_shares": "1000", - "bond_height": 0, - "bond_intra_tx_counter": 0, - "commision": "0/1", - "commission_max": "0/1", - "commission_change_rate": "0/1", - "commission_change_rate_today": "0/1", - "prev_bonded_shares": "0/1" - }, - { - "owner": "D841E0DACF3994E6A40126F023F6F32F98A5D89E", - "pub_key": { - "type": "AC26791624DE60", - "value": "kol7Gj60Fct4X8T1rHLJQ0z/b14UqqSae8h1e37rLL8=" - }, - "description": { - "moniker": "naruemon", - "identity": "", - "website": "", - "details": "" - }, - "revoked": false, - "pool_shares": { - "status": 2, - "amount": "1000" - }, - "delegator_shares": "1000", - "bond_height": 0, - "bond_intra_tx_counter": 0, - "commision": "0/1", - "commission_max": "0/1", - "commission_change_rate": "0/1", - "commission_change_rate_today": "0/1", - "prev_bonded_shares": "0/1" - }, - { - "owner": "FD8DA5F512A59A30F8698E3CA638D384A68DF977", - "pub_key": { - "type": "AC26791624DE60", - "value": "TZTQnfqOsi89SeoXVnIw+tnFJnr4X8qVC0U8AsEmFk4=" - }, - "description": { - "moniker": "Adrian Brink - Cryptium Labs", - "identity": "", - "website": "https://cryptium.ch", - "details": "" - }, - "revoked": false, - "pool_shares": { - "status": 2, - "amount": "1000" - }, - "delegator_shares": "1000", - "bond_height": 0, - "bond_intra_tx_counter": 0, - "commision": "0/1", - "commission_max": "0/1", - "commission_change_rate": "0/1", - "commission_change_rate_today": "0/1", - "prev_bonded_shares": "0/1" - }, - { - "owner": "ECE57661F0CDCF28EED257B72F86240E57F4A612", - "pub_key": { - "type": "AC26791624DE60", - "value": "CDF/8aD8Lt+ikR3LyCg9c7DwWBA51NH+MUkH7tzxrfY=" - }, - "description": { - "moniker": "zaki", - "identity": "", - "website": "", - "details": "" - }, - "revoked": false, - "pool_shares": { - "status": 2, - "amount": "1000" - }, - "delegator_shares": "1000", - "bond_height": 0, - "bond_intra_tx_counter": 0, - "commision": "0/1", - "commission_max": "0/1", - "commission_change_rate": "0/1", - "commission_change_rate_today": "0/1", - "prev_bonded_shares": "0/1" - }, - { - "owner": "EFE597F7A90D3F3E7599B25259449628E2C4AFAD", - "pub_key": { - "type": "AC26791624DE60", - "value": "cvGYknYP9XMUzqlXZde7lRpvAp/kZiSRYHg66krJNxQ=" - }, - "description": { - "moniker": "trust", - "identity": "", - "website": "http://cosmos-trust.com", - "details": "" - }, - "revoked": false, - "pool_shares": { - "status": 2, - "amount": "1000" - }, - "delegator_shares": "1000", - "bond_height": 0, - "bond_intra_tx_counter": 0, - "commision": "0/1", - "commission_max": "0/1", - "commission_change_rate": "0/1", - "commission_change_rate_today": "0/1", - "prev_bonded_shares": "0/1" - }, - { - "owner": "FA929191B04C5DB222AFC6F15C63EF48CCC864C5", - "pub_key": { - "type": "AC26791624DE60", - "value": "RMwWTZsVdkq1heicNJb2fosy9Fls4NHxAHReiJvHl+8=" - }, - "description": { - "moniker": "proof-of-audit", - "identity": "", - "website": "https://proof-of-audit.com", - "details": "" - }, - "revoked": false, - "pool_shares": { - "status": 2, - "amount": "1000" - }, - "delegator_shares": "1000", - "bond_height": 0, - "bond_intra_tx_counter": 0, - "commision": "0/1", - "commission_max": "0/1", - "commission_change_rate": "0/1", - "commission_change_rate_today": "0/1", - "prev_bonded_shares": "0/1" - } - ] - } - } -} diff --git a/cmd/gaia/testnets/gaia-7000/genesis.json b/cmd/gaia/testnets/gaia-7000/genesis.json deleted file mode 100644 index 7ada516d4..000000000 --- a/cmd/gaia/testnets/gaia-7000/genesis.json +++ /dev/null @@ -1,5680 +0,0 @@ -{ - "genesis_time": "2018-07-16T19:57:28.971479541Z", - "chain_id": "gaia-7000", - "consensus_params": { - "block_size_params": { - "max_bytes": "22020096", - "max_txs": "10000", - "max_gas": "-1" - }, - "tx_size_params": { - "max_bytes": "10240", - "max_gas": "-1" - }, - "block_gossip_params": { - "block_part_size_bytes": "65536" - }, - "evidence_params": { - "max_age": "100000" - } - }, - "validators": [ - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "MRCeBDANSjH6IsxO0z6tRe+xqoZvIGhdfl1t+SXGUpM=" - }, - "power": "100", - "name": "" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "tOEqjO2t51PEgO9Tv0B7qM0yPmy1n5tMa3Beg0tp3ns=" - }, - "power": "100", - "name": "" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "S8s6fdAQNQ3bN9SNVAsHB/j8uv1CM1roxeLesL+fh4g=" - }, - "power": "100", - "name": "validatorluigi001" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "2JoNf1gavJ1d6XFIumO1Mki5GVMOcg58AioHksU3maE=" - }, - "power": "100", - "name": "" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "2JoNf1gavJ1d6XFIumO1Mki5GVMOcg58AioHksU3maE=" - }, - "power": "100", - "name": "" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "k3YLQYEN2QMP6XITRsBmgb+pNGhJ5Jbg0bzUW977kK0=" - }, - "power": "100", - "name": "" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "EREUrXXl1OJqLQag0P4h6vJ2H+8GEwyNAjgn1XEJU+I=" - }, - "power": "100", - "name": "" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "heNintBalqaJwCOjLb9+mX/cQ1ytMlV7ZroPIlkwZqo=" - }, - "power": "100", - "name": "" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "nb2oRB12DlEQkFn7KSjSVkj5rDoSTsuBFa09+gmNJ7o=" - }, - "power": "100", - "name": "" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "bZSEBDNIOr0xJ/PxaAScJIyG6hqFtryBAMNwghAOTTU=" - }, - "power": "100", - "name": "" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "8K3clCjVU33BTIpUhdahGmu++WxHj4NUE9krCRkk++s=" - }, - "power": "100", - "name": "" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "RBuRRNEzA9RA1Wrdi9PPFQJ29/n/bqN9O2tQv9Gq248=" - }, - "power": "100", - "name": "" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "RwPRoiY5C0covekqbr3VrQwxWGHioUUIf2+TOq8LIC0=" - }, - "power": "100", - "name": "" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "2qtEBT+Tc+SD2wJsdrVMHXrBKfvesxtmtSKDK5fXwA0=" - }, - "power": "100", - "name": "" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "gU5mmVLUSzn/fIEMgiiB4LARRoWlqjUGHr3A4SndWO8=" - }, - "power": "100", - "name": "" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "xlO2cnii42KisAn8OcstC/3XV5+I0FlcSbWuyy5MVA8=" - }, - "power": "100", - "name": "" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "q5ezDn4DcWFPWvMayPJI35nXr//jjF8fGHsuiHjpDcU=" - }, - "power": "100", - "name": "" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "PSqbJOwglJb1yrj3aWebBpXb2ujXcR037s1Cyj2HoW4=" - }, - "power": "100", - "name": "" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "A6GzeXUM3vsXaDAEYMSDgSKkqn9AoUYjs8empH46MGY=" - }, - "power": "100", - "name": "" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "81fx09BivOOxeGL7QisF8aKRZjjcARpiSaCOX9mJfY8=" - }, - "power": "100", - "name": "" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "UjTvuOew2EaooduJBiYmBWeF5ai0yFJG8uio5YXpJgg=" - }, - "power": "1", - "name": "" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "y7p9JSVZBnRxjAI9v5Pxl37hMtyuHf6B4Ghqzm6+ii0=" - }, - "power": "100", - "name": "" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "oG8Q5o+SN4wqMLvlIfVgQPnsQzNEKeH0D/XGM8JlGrY=" - }, - "power": "100", - "name": "" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "PxJbo5FKA6mXtgwclRQVNIjOCQK3Q7WkLQrvM9lYbGI=" - }, - "power": "100", - "name": "" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "Q/UShqqVDOUSNYBrR1G/1X1s+YXEVXEJzeXmYvfYIr0=" - }, - "power": "100", - "name": "" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "uEWWDBwFW+/BpTCvNCLW7AP98hndBukzSbrwCb7sooo=" - }, - "power": "100", - "name": "" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "MZi48DJZOgRbE0ZStR66omv6Ez1Wkjvf2D/41q6Nd0I=" - }, - "power": "100", - "name": "" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "Go9GXHI6SCQo2QKMxkAkgYLhfo3XrVjWLR2nE2AvYyk=" - }, - "power": "100", - "name": "" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "P9RgE4RMQT/aHap2oICpwpgKeBAwxPUwuU9zIffKFNM=" - }, - "power": "100", - "name": "" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "1+EkFYvTDmz4WQRbK+kznRHoaZVLludtkDrMuM6h++E=" - }, - "power": "100", - "name": "" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "QEMDwUVoyJT7MNfOYKa25xU+Lnsz/ciH8rFUri4diLI=" - }, - "power": "100", - "name": "" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "lUMCRAeu47BsOhNvCQTQJQeB68z0/VaElC9j5gDt9y8=" - }, - "power": "100", - "name": "" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "VnAr7ZIjvUXpWmzbkt8skHp0oRNc3V89SfvgaZydwfw=" - }, - "power": "100", - "name": "" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "u4GEbsk9IEF56V1am5dRtAWXz4iFQkO03FVL87BZXIM=" - }, - "power": "100", - "name": "" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "BaaCxmYHKJ6obIzTCdRtjw1cc8d2mUJcMbLWCjf1aLo=" - }, - "power": "100", - "name": "" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "N3K5kDdfcKJurfaa6s2zfKgtYvz1Pagz7VWi9ZfX8yM=" - }, - "power": "100", - "name": "" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "DsTbM0AgHfhSUKvOGkxudDOY3ojYT6bifhpelqHs8+s=" - }, - "power": "100", - "name": "" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "j9be+ddLChInrFz6/820/uYh4WZBzlp61klyJBDy/ZY=" - }, - "power": "100", - "name": "" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "Xi7nIgj4PqVXrpKLfJhcyxyVY1d3HRo72sKKPDmuU78=" - }, - "power": "100", - "name": "" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "2p8s/pRBZPjYWKKMlR7AOXypDzDmPo762iXlKpCwtco=" - }, - "power": "100", - "name": "" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "nsofE1FmSr1TiDR0gfnxfMDQ8o2pC+1NE7Oa9ceztSg=" - }, - "power": "100", - "name": "" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "WvmTBjsCN4ueGpEdySRwsRC5knBRLfY439/e4mG+YAY=" - }, - "power": "100", - "name": "" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "c0i2uKsYBv8fubnI60lZIWA1y4zw1bFgsq5MmWBHKak=" - }, - "power": "100", - "name": "" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "AJR2ex094A1nJEWQsZYjALWsrSl1/huGZ37z2ZsMrpg=" - }, - "power": "100", - "name": "" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "LSDd6ab46sHxwJSrg5YLpsPG2o6EcsZ3rDikpHzMNmI=" - }, - "power": "100", - "name": "" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "dnFjFoTM9sP/RjQkXBK1YpYn3v5W+j0+g/OfUHS4xu8=" - }, - "power": "100", - "name": "" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "L0I4JoDfktbDWe0fCDL/nQlBPkF5mNgqamnM5JKJ1Uc=" - }, - "power": "100", - "name": "" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "dPpZD53AbAMtW6sK+rTnXYe2GGGoSCNWsCtsmArLiIs=" - }, - "power": "100", - "name": "" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "VakMQSPBEuSC9Nwuv8WWhrZVUmH31bUR4+G6pJhkgE8=" - }, - "power": "100", - "name": "" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "KI+kCESWD9cB8se4uxRrFVAI5viyNNUXUyMCc903yQc=" - }, - "power": "100", - "name": "" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "8Qu1LFMt7qlZNmYQWrsXUA80aIx0rrFPPXs2s6NBdU8=" - }, - "power": "100", - "name": "" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "WRsXnLz3gf8o4lYYeCZjAXgPU1cdmOOYPdy7aY63iIA=" - }, - "power": "100", - "name": "" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "R/3f7VruxWpu+2hiHlVpplTwoOou5kfQI1k/6/9H/y8=" - }, - "power": "100", - "name": "" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "HjSC7VkhKih6xMhudlqfaFE8ZZnP8RKJPv4iqR7RhcE=" - }, - "power": "100", - "name": "" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "cLM/HeUFsXlnYnYod695u6NBDS0trMq8sVRdABnF7uc=" - }, - "power": "100", - "name": "" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "Epd2FDKZwDybzT38Z7WB0y2jiLn9/2OLzmY3Zu18l6I=" - }, - "power": "100", - "name": "" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "ENAVynNXVpj/IdYx9kCPKaPs4bWSxRIHNlmS9QiDuZQ=" - }, - "power": "100", - "name": "" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "j2w5BFOnZTrPN4SFpmQyfRomnUwbEbz1A+kr3z1icjo=" - }, - "power": "100", - "name": "" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "I2ILaY31gonxYQhlIk4PFUIN+Pk7+9dDTK1C/s+Vcb0=" - }, - "power": "100", - "name": "" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "3wRufybSUsTMnUeQkP74uJNDRKeM8jBLAS64T0BRfpY=" - }, - "power": "100", - "name": "" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "2gOiMAdnIdND4cA75E7naQdyyIYDAdcjF3uO6OiEZlU=" - }, - "power": "100", - "name": "" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "2S8Y/vnLM3W+MYxNCxcUItIBfdZL/T4A8vRg89n0wLg=" - }, - "power": "100", - "name": "" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "kol7Gj60Fct4X8T1rHLJQ0z/b14UqqSae8h1e37rLL8=" - }, - "power": "100", - "name": "" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "UBTju7UZfXLVPPYb1a8gPZ69BeCv2Fho7YVo2EUbxKc=" - }, - "power": "100", - "name": "" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "0HqB2x6x5HzeozpHatePECw07x1UcDdSz8kQGNznnA8=" - }, - "power": "100", - "name": "" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "H0SIA/BU6Xj8oT5bQkvLpEITN3CqFLbMeBcQ72NZrAE=" - }, - "power": "100", - "name": "" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "Xnh8TL3BbIs9VTUenmnx6r2UAHpGCj3G9FV0mzc+mU4=" - }, - "power": "100", - "name": "" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "X62YB48gO2SsWGnjYxH+aGfLQcjnP+T0hnErdWZ859g=" - }, - "power": "100", - "name": "" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "8pfpbIxBBiu88hpxS3CeRpv7kClEjl8SwVgckDNBGlE=" - }, - "power": "100", - "name": "" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "UuxXNPImsE5Wp+utGfJywZBHuuGE4RmL0CArc6td82w=" - }, - "power": "100", - "name": "" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "Sl3NKLaYEgDaovqTkKVZh2ihRFbSmyVjC63wpv3ecdc=" - }, - "power": "100", - "name": "" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "SYjCs2AlY04xdfJGPD+gyO9NZ/zQ0Lfb/TLrjgOLS68=" - }, - "power": "100", - "name": "" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "oI1+4FoeI/knjsjDyCJtgZPaeyKON8tCTcM9QX0BHa8=" - }, - "power": "100", - "name": "" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "nts1nu73aBgIdSaYye4coIuE1iBNeCuTZZC8LQ37ac8=" - }, - "power": "100", - "name": "" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "NQX4yKpOztKrmgBhGIC5WOALOLOq3LTpbzsN4ZLXGec=" - }, - "power": "100", - "name": "" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "BB4a/Xh5z+dkGCRlF+pSGC3iDOoDrFse/xzQAtmxMF4=" - }, - "power": "100", - "name": "" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "ydjx2ea+PVuChrny6X2dluJwyXta+BsNQRsgHXp8fXw=" - }, - "power": "100", - "name": "" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "pPGLc4NhNaehdoV2antWuyr0GmBVEG1NhD9NiSRrTi0=" - }, - "power": "100", - "name": "" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "VBVHOLnWGptY26J0wqXoZI2Dnu96pccMb08zlsaxPCQ=" - }, - "power": "100", - "name": "" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "aUViYC2znC55sleHfmsIN9hZ45SbYPbDcYA0gVzglsc=" - }, - "power": "100", - "name": "" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "riYrMXBFLavmf4MU/Ly7emDlciVqfB2/zxJoRsBUlfY=" - }, - "power": "100", - "name": "" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "F2wCn9rKafNZsYZwoLGkSQIpr3rk86cjYyuhSjsjRaE=" - }, - "power": "100", - "name": "" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "ugb3W6W7WL9Vc4KiSBWIaowBfpqJlzbfBSfrIqZW06A=" - }, - "power": "100", - "name": "" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "gJDxhwAE6GeGCKQeVaNZ5is7+7MFHXtOG0UsnguKdoA=" - }, - "power": "100", - "name": "" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "b9RSkt+WmMxVHQExQH0IMPpnR9zDAaJwz/mv1gtyRVY=" - }, - "power": "100", - "name": "smartpesa" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "569Sb+Wpo8VFqXRi4cQhlOD9kS8uBgmJ2rntY3GLtzY=" - }, - "power": "100", - "name": "" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "SNwrT1B+A4g6TY7x0QzVrmVbcbl3cHXzXdD1tFHxLNo=" - }, - "power": "100", - "name": "" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "K4kLogLtZxqrYSqRVJfrFm9tUG+Tc3QWXWIewnAgI9w=" - }, - "power": "100", - "name": "" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "TwzOJ4GcN+ZTswub4R8488SrKeWXjY/PaqCF5neXJig=" - }, - "power": "100", - "name": "" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "JXW8iTiWG28E05ZFJIKvCOBwI2RrH/BOBL/MluTZ6+I=" - }, - "power": "100", - "name": "" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "A3zUdVcpj4H+HRZmRW5xixj4dzMgqD7be9GrdXcjdns=" - }, - "power": "100", - "name": "" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "7RhnD9OAZEJ4SV6V3LOZ1gGWubtX25457wCQq+AYYPI=" - }, - "power": "100", - "name": "" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "66j9af4xDJSblMLS+mFbp7d8TaFGu0FOo+0MwEYm2lE=" - }, - "power": "100", - "name": "" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "8DScmobjJQmkN44K2xiZkESM/O9MJK/DqlggnIPLpso=" - }, - "power": "100", - "name": "" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "4JoJuRfaANhdM1x3AWRo1/Cj9DH3VA+fi1SynzknV+w=" - }, - "power": "100", - "name": "" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "cCoFsZzKZ9SQZbHe4NueVObIezP6ts0tRTZ/aN96dig=" - }, - "power": "100", - "name": "" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "Zp4tk/ieqplJF8xMeef9HV8bYpHSY+3hJ2sH7PfCX1I=" - }, - "power": "100", - "name": "" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "jj0Y/Fy8JSJR3g+PHU6Ce0ecYwHGUVJ4bVyR7WwcyLI=" - }, - "power": "100", - "name": "" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "XQDVMXja3kFk5Jb47BsqJmzcDsM4lE9+r+f/J3O5Jms=" - }, - "power": "100", - "name": "" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "oL/QCr7LEOivyTqpGrmwVd1r+hYI2WB5+kSVzpDMxx4=" - }, - "power": "100", - "name": "" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "eeImG09hOPo1W7j7lKepN/Lx6I9GGHqVBVEKmznxACc=" - }, - "power": "100", - "name": "" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "Abws3eXrUFAH8LeZJIcECakPL945TTmFsBlXONOUeII=" - }, - "power": "100", - "name": "" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "PEg/D54SoiKZ+pic0Z0RzZa/vfYNAAf4kzSc5UKXDYk=" - }, - "power": "100", - "name": "" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "omAzuJps8KX3/iOC1LjwkMPMH3c6tjfLXwCNWXRBdWw=" - }, - "power": "100", - "name": "" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "nctikQSpoLRl5kV6KarIS761QvEOZCWw6nvc48xWhic=" - }, - "power": "100", - "name": "" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "NrTRAbZnBqJpW9lRW6LxXxE7EV++y7WiIRV0ifRLovA=" - }, - "power": "100", - "name": "" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "W0rP8sv4Ae/LZOqlBA9evvYARDt79WpFaI26jw/9Tfk=" - }, - "power": "100", - "name": "" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "JdfJDlE46456GWp+AkSZhzlkUQI41f8aX7611oiWUSc=" - }, - "power": "100", - "name": "" - } - ], - "app_hash": "", - "app_state": { - "accounts": [ - { - "address": "cosmosaccaddr1c2dkaym4teqw6jl9jkq8eu8nf4wzn2lgf4ydyt", - "coins": [ - { - "denom": "faucetToken", - "amount": "1000000" - }, - { - "denom": "steak", - "amount": "10000000" - } - ] - }, - { - "address": "cosmosaccaddr157mg9hnhchfrqvk3enrvmvj29yhmlwf759xrgw", - "coins": [ - { - "denom": "jlandrewsToken", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr193vn0gk3nsmjkxwz78gce8e8mkmagmvulpg5jt", - "coins": [ - { - "denom": "jackToken", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr16rcrnftjyl2mctz78825ng8tx5ss22jf6jcp9l", - "coins": [ - { - "denom": "luigi001Token", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr1shuqhpl273t96yg6nnqvyfeewj3ew3mdcwvcnu", - "coins": [ - { - "denom": "irisToken", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr1shuqhpl273t96yg6nnqvyfeewj3ew3mdcwvcnu", - "coins": [ - { - "denom": "irisToken", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr1syhzpjwx6vv3erv2myq7txrjhrp95hrhgcl242", - "coins": [ - { - "denom": "TropicalMongoXToken", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr1uga4nuresex5u8ajjh2pcr39l0s9hszdkp843j", - "coins": [ - { - "denom": "wingmanToken", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr12wnqvqg79s9jqrul0lva3h72rfmewm7jprrcp5", - "coins": [ - { - "denom": "Nemea7000Token", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr1lq0mvtgnwe8mp0096un0v8ztcsj8ad92t2cwrq", - "coins": [ - { - "denom": "infinite-castingToken", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr14e774gfzt5l9ka766ehfgu6n5hgy9f3sehzyv8", - "coins": [ - { - "denom": "cwgoesToken", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr164jntjfk9zs8x29mc27qansfwvjqs60gj6ermu", - "coins": [ - { - "denom": "lunamintToken", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr1qkc3tghc3fms7eye7vtu0g0370epr4jkje2ne7", - "coins": [ - { - "denom": "skoed-validator-7000Token", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr18m09d56pg5p2660de4sjfezpd8ud6jfghndfnt", - "coins": [ - { - "denom": "starfishToken", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr1k9pqxd8fxqlk52uwfxnlsexqj6xnmw5swhss45", - "coins": [ - { - "denom": "jjangg96Token", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr13q937pwglh24knwa2v23ml0kkpl9vwzjmfmj3q", - "coins": [ - { - "denom": "iaspirationiToken", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr1xvt4e7xd0j9dwv2w83g50tpcltsl90h5dfnz6h", - "coins": [ - { - "denom": "21e800Token", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr1nnyel6v0kx8zmfh9edmre3ua4dt9306cfxsxgd", - "coins": [ - { - "denom": "spptest1Token", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr13cds7hwqyq9ja2hsv4sg7glq9arlk43gcl3cek", - "coins": [ - { - "denom": "windmillToken", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr1y2z20pwqu5qpclque3pqkguruvheum2djtzjw3", - "coins": [ - { - "denom": "pbostrom/Mythos-1Token", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr1anuuffusmq5ng3rhlndhnacy45et30jqygtn67", - "coins": [ - { - "denom": "BarytToken", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr1wk0t6na230vxhf6ddresw2c40k5y3ayrww0s2m", - "coins": [ - { - "denom": "P2P.ORG ValidatorToken", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr12pn4p6r5wjpsep9kn655ng7fh59yez7t0rahru", - "coins": [ - { - "denom": "oleary-labsToken", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr15rrxdflhq4744qt9m5ysstq3zpykhacf908eez", - "coins": [ - { - "denom": "wancloudsentryToken", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr17rqsh3fw6rehnwzarz90jkqtt5fupmh50gy556", - "coins": [ - { - "denom": "space4Token", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr1g4q87u438qdh2c8ue4dzdr9ldrqrs77ptm9c70", - "coins": [ - { - "denom": "colony-finderToken", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr1dq7jt3pn7mrce2twac907jue7hjd0p0rgt3qnq", - "coins": [ - { - "denom": "sparkpool-validator-02Token", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr1gg6natrtt5lf02xwr06ujcczvavl54wgljuaut", - "coins": [ - { - "denom": "mining-shipToken", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr1zds6r7jyxyxcpf05r5yyyy3u8q2rvj9kkc6vcv", - "coins": [ - { - "denom": "StakedToken", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr1l0qw5znfd6e8pshpjvyghjjzyr4l6ymla080lt", - "coins": [ - { - "denom": "nyliraToken", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr1rxxcpkmsngd0azkh3n2467m66ls4rwq52yuv27", - "coins": [ - { - "denom": "liangpingToken", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr1jsch8k385shvse6j5dfx20483qym5uhq76xpjf", - "coins": [ - { - "denom": "SVNode01Token", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr19uhnhct0p45ek6qxp3cjjrjtz4pacwcsgzvpuj", - "coins": [ - { - "denom": "vhxnode1Token", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr1gghhdtx2sceafvgg8dry5sqrvc8srxghm4qqsy", - "coins": [ - { - "denom": "gregToken", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr1cyayv35tv47t829mel6jm0vqzmrdhf3jq87tqg", - "coins": [ - { - "denom": "bucksterToken", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr126ayk3hse5zvk9gxfmpsjr9565ef72pv9g20yx", - "coins": [ - { - "denom": "grass-fedToken", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr1fskmzyt2hr8usr3s65dq3rfur3fy6g2hjp23tm", - "coins": [ - { - "denom": "ATEAM1Token", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr1lhjta6nt0lewj05m8444tuyhalkrffgpm7njpp", - "coins": [ - { - "denom": "BFF-Validator-7000Token", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr1pm0gx3lk46gf8vyj5my9w5tk06cuq66ll77ugj", - "coins": [ - { - "denom": "redbricks7000Token", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr15w2rengajq9js8hu57kjw88dly5vy7gsqedn0n", - "coins": [ - { - "denom": "kittyfishToken", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr10505nl7yftsme9jk2glhjhta7w0475uva87paj", - "coins": [ - { - "denom": "ForboleToken", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr18z3pnjgdtt337z8g5drfts7r3fm6n9a0896h0r", - "coins": [ - { - "denom": "coinoneToken", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr1vmdgku2g0n5p2ef995r4fugu99ze9e5me9kh4d", - "coins": [ - { - "denom": "bmen-companyToken", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr1j2frwt2vq2xer7f060wpsu3y3f63uys2w9lx2e", - "coins": [ - { - "denom": "2400bpsToken", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr1whxd48da3r56n8eecym8zg0c6xmf35fn2myart", - "coins": [ - { - "denom": "devToken", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr1jkmn6asju47zuuzrf8rjt7sllaj5cx4kueyv8p", - "coins": [ - { - "denom": "w1m3lToken", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr120skmenn2a0ra8y6zassrxvnfc5rlme8rqarvs", - "coins": [ - { - "denom": "aetherToken", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr1jtt6al0acr8h0uvq489rt9zx9lnau7rlcu30pt", - "coins": [ - { - "denom": "JColToken", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr135dz5hdtvk3z8vl0zyy5l223kjanv0gudu4905", - "coins": [ - { - "denom": "SaiKrishnaToken", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr182ujqw3r8p5fffjqkf0rxzj29pg5q96nxd2khq", - "coins": [ - { - "denom": "UmbrellaToken", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr1qrc3ed8tnz6vc24ftmnht8efs5ufhjmrjkds4x", - "coins": [ - { - "denom": "@MarceldeveloperToken", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr1swydkj5u3jd4jwe7uygu4479zgs4qg6v4ds3c9", - "coins": [ - { - "denom": "stereo-watcherToken", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr1l9jt8xgejkcm4sulhwj8c83ftprz5p9lyq4605", - "coins": [ - { - "denom": "cosmosToken", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr128ty3kzhcepjacu4q0xjgq60qa3zz8na3jl793", - "coins": [ - { - "denom": "stake.zoneToken", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr1e3qm8jd9357zhdemwnaafmf0wy3f4yqmd307c2", - "coins": [ - { - "denom": "firstblock.ioToken", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr18wfz5vj26y079surms5sm6avjtezzspfvqs6g4", - "coins": [ - { - "denom": "shensiToken", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr1vrc7zpg5teawwuzkfh6t7c6sy353sukhlarxpa", - "coins": [ - { - "denom": "figmentToken", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr1umaajfgap5ef6yxvk5706kwk8j08l7wh6h9fp2", - "coins": [ - { - "denom": "iqlusionToken", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr1670l5up6e5fddvlc027yvvlvedrzyx0mmsl622", - "coins": [ - { - "denom": "cosmosthecatToken", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr1wx33m9dvglryga0saey0pr99ja0klhcfrwaw7l", - "coins": [ - { - "denom": "snaticoToken", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr15u9ve7fz8fqaf7r2u3p4f9ru4ze47pau5cxgcg", - "coins": [ - { - "denom": "mpaxeNodeToken", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr1h4q0xkdg30cl9vw0u8ejm0rs337dszy98gnd4a", - "coins": [ - { - "denom": "joltz-secureware.ioToken", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr12zpkulxv7kn59sgf0tpf24qhqzxsvf3gamkl7g", - "coins": [ - { - "denom": "mwnode1Token", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr1g6sc5t9t68vmcj3alk7dfqr54tvastpxac28k6", - "coins": [ - { - "denom": "VNode01Token", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr1jck6gp4mqy33sk6a0fr5c8maq53hf4245v3mgg", - "coins": [ - { - "denom": "7768Token", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr1jh3grawl62juvx5p8fz5xsy9hpw8w3mngqafe4", - "coins": [ - { - "denom": "block3.communityToken", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr17nlusdvrk34fq65jemy3umfjfwaxfzv4asyl60", - "coins": [ - { - "denom": "4455Token", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr18u2sqnuetfnkugp59e9pgyv2dpuvkkxmmsc7m8", - "coins": [ - { - "denom": "dooroomeeToken", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr1xdp4pls4ryvchq2n8v0cpmtwsprvyh8wvg563q", - "coins": [ - { - "denom": "sheiudToken", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr1pmntq5en2rgtr5rzr4e304efrve4lr43z32y5s", - "coins": [ - { - "denom": "Staking Facilities ValidatorToken", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr197p65z7ge5g55r68thvw4l5e43gnm70jhu5g75", - "coins": [ - { - "denom": "ritter-rammToken", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr15klp8pypkd8htppzt6pguej57yyvp5p442khcu", - "coins": [ - { - "denom": "meteor-discoverToken", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr1jsvgewy7h62v3q43m0l347wlcwyhd4un5q8aa3", - "coins": [ - { - "denom": "COSMODROMEToken", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr192yhf7f7f9304cy6cu6np3r8a3m9yqzqfeu9je", - "coins": [ - { - "denom": "broadleaf7000Token", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr1pag7xgpl8njlaksvp2ur5un3htg85vcrxcp5rs", - "coins": [ - { - "denom": "ravenclubToken", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr1p56gv748xfd74qek5e637vhcr6tyjd9ukqfecc", - "coins": [ - { - "denom": "dokia-capitalToken", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr1kwftgznylzerft2ksgkzvvfn5rfpy4nk2ye8na", - "coins": [ - { - "denom": "chainflow08Token", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr1rj74vaqm0xkxl5cjjam63mayh4x6at3m379ulv", - "coins": [ - { - "denom": "MiaToken", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr1zpx36km7tk5cksyzxgvcp6g552p3uhwx84r53q", - "coins": [ - { - "denom": "sikka.techToken", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr1gq0qecxs8xdaarrqxxazwavwxm7qz5jzs5anvt", - "coins": [ - { - "denom": "certus.oneToken", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr1cypmdvszcd9kd3jenmqxd03cpceql8rtuvxftp", - "coins": [ - { - "denom": "Gold2Token", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr1klslzz2n2nqvdaa6gwflwpka7gc60vvmh3k450", - "coins": [ - { - "denom": "idoor7000Token", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr1qkllv8f6qakkw3hk9dqvytys090lk6twsyv8vf", - "coins": [ - { - "denom": "ironforkToken", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr1wf9nug554ugpw4t0wnlppxc6crl2n02qr8v3cd", - "coins": [ - { - "denom": "sunny-mintorToken", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr1t3afuz2kt99jz4pe5k4vjvkdmldn2x0lqzv83w", - "coins": [ - { - "denom": "BlissDynamicsToken", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr14zfph0h8rexsca6gg6jkwqup3sgl6mwj6eu4e6", - "coins": [ - { - "denom": "smartpesaToken", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr1998p0xkdwvul952ydavnx88tmwkhlfa0vhrngj", - "coins": [ - { - "denom": "ianstreamToken", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr1jw554408yw2h438q200jyuqgln76xh4ax0q4s0", - "coins": [ - { - "denom": "TruNodeToken", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr1mwmcpq5nhaen8zyy86mrrept2gmp0z5peapkhu", - "coins": [ - { - "denom": "abcinToken", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr1emaa7mwgpnpmc7yptm728ytp9quamsvu9rk4hp", - "coins": [ - { - "denom": "kochacolajToken", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr1tq0zwzyc88l2enrlhtzw0he8rm24xfd5s9aeer", - "coins": [ - { - "denom": "D2R-validator-7000Token", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr1n9qsfp3x09rhhxptzrgmdlucqhg2ce95fm3fw8", - "coins": [ - { - "denom": "juelianshanaToken", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr1sqec04r28jfevkzfkdj4ql2qzr2zwrmg78qzj8", - "coins": [ - { - "denom": "lambda-mixerToken", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr1hfygmryre7r8m9pfqmc85y7kw7ejphmp59k2x8", - "coins": [ - { - "denom": "bkcmToken", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr1jvh448tvk368k4md83ys7auledclek0vfpckz2", - "coins": [ - { - "denom": "ramihanToken", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr1fhfcs5npydv8s96wrk9p5ychctslu92t4n5qd4", - "coins": [ - { - "denom": "davinchcodeToken", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr1eg88jsn38mrael6cqu7d2u8j6dynya7fv2p2tl", - "coins": [ - { - "denom": "DoriToken", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr1ukcuqpqw3eq505wkqd2adgn8ugewxr6jtakngs", - "coins": [ - { - "denom": "daefreecaToken", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr1na3wr7ujdp3qdej6l5y0k4znzrkaz77t2yjaqf", - "coins": [ - { - "denom": "nuevaxToken", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr1xupfqk73y7rmc6qdgv7rtjy8wsngvt2g2t59t3", - "coins": [ - { - "denom": "inschain_validatorToken", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr17gvlvfpsfl6hffn5u2hahk22un4ynpykc44tat", - "coins": [ - { - "denom": "gruberxToken", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr1yfseqtj5sjhzz2q2ym09jym4h4nc4yevae0jp2", - "coins": [ - { - "denom": "meleatrustToken", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr1yd0rklq45zg89fywr89ccutlcwp9kehhh0z03k", - "coins": [ - { - "denom": "Cosmodator-7000Token", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr1arlpxs2ftf5hgetqxxkvd7mqdc28mmaqclyv4y", - "coins": [ - { - "denom": "bharvestToken", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr12ceualfg92x7du73mtcv0zya4nxvq3tl2m52uz", - "coins": [ - { - "denom": "cryptiumToken", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr1wxf0ck9h2e8p2wmecxtep6cefhexsp4kzc8fxy", - "coins": [ - { - "denom": "finalityToken", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr1pzlud6lg8w9phcwetc5aqp24eflshtv4xlxthf", - "coins": [ - { - "denom": "coscloudToken", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr10qp8kqwm2cuql0hw2az5mngpmw5xm9ee32exlp", - "coins": [ - { - "denom": "xiaochinaToken", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr14dwnmm6n7tjdpeylpwsdsatdl0umm75dfkqcpa", - "coins": [ - { - "denom": "gazua1Token", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - } - ], - "stake": { - "pool": { - "loose_tokens": "16200", - "bonded_tokens": "0", - "inflation_last_time": "0", - "inflation": "7/100", - "date_last_commission_reset": "0", - "prev_bonded_shares": "0" - }, - "params": { - "inflation_rate_change": "13/100", - "inflation_max": "1/5", - "inflation_min": "7/100", - "goal_bonded": "67/100", - "unbonding_time": "86400", - "max_validators": 100, - "bond_denom": "steak" - }, - "validators": [ - { - "owner": "cosmosaccaddr157mg9hnhchfrqvk3enrvmvj29yhmlwf759xrgw", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "MRCeBDANSjH6IsxO0z6tRe+xqoZvIGhdfl1t+SXGUpM=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "jlandrews", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr193vn0gk3nsmjkxwz78gce8e8mkmagmvulpg5jt", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "tOEqjO2t51PEgO9Tv0B7qM0yPmy1n5tMa3Beg0tp3ns=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "jack", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr16rcrnftjyl2mctz78825ng8tx5ss22jf6jcp9l", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "S8s6fdAQNQ3bN9SNVAsHB/j8uv1CM1roxeLesL+fh4g=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "luigi001", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr1shuqhpl273t96yg6nnqvyfeewj3ew3mdcwvcnu", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "2JoNf1gavJ1d6XFIumO1Mki5GVMOcg58AioHksU3maE=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "iris", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr1shuqhpl273t96yg6nnqvyfeewj3ew3mdcwvcnu", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "2JoNf1gavJ1d6XFIumO1Mki5GVMOcg58AioHksU3maE=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "iris", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr1syhzpjwx6vv3erv2myq7txrjhrp95hrhgcl242", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "k3YLQYEN2QMP6XITRsBmgb+pNGhJ5Jbg0bzUW977kK0=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "TropicalMongoX", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr1uga4nuresex5u8ajjh2pcr39l0s9hszdkp843j", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "EREUrXXl1OJqLQag0P4h6vJ2H+8GEwyNAjgn1XEJU+I=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "wingman", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr12wnqvqg79s9jqrul0lva3h72rfmewm7jprrcp5", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "heNintBalqaJwCOjLb9+mX/cQ1ytMlV7ZroPIlkwZqo=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "Nemea7000", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr1lq0mvtgnwe8mp0096un0v8ztcsj8ad92t2cwrq", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "nb2oRB12DlEQkFn7KSjSVkj5rDoSTsuBFa09+gmNJ7o=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "infinite-casting", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr14e774gfzt5l9ka766ehfgu6n5hgy9f3sehzyv8", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "bZSEBDNIOr0xJ/PxaAScJIyG6hqFtryBAMNwghAOTTU=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "cwgoes", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr164jntjfk9zs8x29mc27qansfwvjqs60gj6ermu", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "8K3clCjVU33BTIpUhdahGmu++WxHj4NUE9krCRkk++s=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "lunamint", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr1qkc3tghc3fms7eye7vtu0g0370epr4jkje2ne7", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "RBuRRNEzA9RA1Wrdi9PPFQJ29/n/bqN9O2tQv9Gq248=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "skoed-validator-7000", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr18m09d56pg5p2660de4sjfezpd8ud6jfghndfnt", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "RwPRoiY5C0covekqbr3VrQwxWGHioUUIf2+TOq8LIC0=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "starfish", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr1k9pqxd8fxqlk52uwfxnlsexqj6xnmw5swhss45", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "2qtEBT+Tc+SD2wJsdrVMHXrBKfvesxtmtSKDK5fXwA0=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "jjangg96", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr13q937pwglh24knwa2v23ml0kkpl9vwzjmfmj3q", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "gU5mmVLUSzn/fIEMgiiB4LARRoWlqjUGHr3A4SndWO8=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "iaspirationi", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr1xvt4e7xd0j9dwv2w83g50tpcltsl90h5dfnz6h", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "xlO2cnii42KisAn8OcstC/3XV5+I0FlcSbWuyy5MVA8=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "21e800", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr1nnyel6v0kx8zmfh9edmre3ua4dt9306cfxsxgd", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "q5ezDn4DcWFPWvMayPJI35nXr//jjF8fGHsuiHjpDcU=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "spptest1", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr13cds7hwqyq9ja2hsv4sg7glq9arlk43gcl3cek", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "PSqbJOwglJb1yrj3aWebBpXb2ujXcR037s1Cyj2HoW4=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "windmill", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr1y2z20pwqu5qpclque3pqkguruvheum2djtzjw3", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "A6GzeXUM3vsXaDAEYMSDgSKkqn9AoUYjs8empH46MGY=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "pbostrom/Mythos-1", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr1anuuffusmq5ng3rhlndhnacy45et30jqygtn67", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "81fx09BivOOxeGL7QisF8aKRZjjcARpiSaCOX9mJfY8=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "Baryt", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr1wk0t6na230vxhf6ddresw2c40k5y3ayrww0s2m", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "UjTvuOew2EaooduJBiYmBWeF5ai0yFJG8uio5YXpJgg=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "P2P.ORG Validator", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr12pn4p6r5wjpsep9kn655ng7fh59yez7t0rahru", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "y7p9JSVZBnRxjAI9v5Pxl37hMtyuHf6B4Ghqzm6+ii0=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "oleary-labs", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr15rrxdflhq4744qt9m5ysstq3zpykhacf908eez", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "oG8Q5o+SN4wqMLvlIfVgQPnsQzNEKeH0D/XGM8JlGrY=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "wancloudsentry", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr17rqsh3fw6rehnwzarz90jkqtt5fupmh50gy556", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "PxJbo5FKA6mXtgwclRQVNIjOCQK3Q7WkLQrvM9lYbGI=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "space4", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr1g4q87u438qdh2c8ue4dzdr9ldrqrs77ptm9c70", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "Q/UShqqVDOUSNYBrR1G/1X1s+YXEVXEJzeXmYvfYIr0=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "colony-finder", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr1dq7jt3pn7mrce2twac907jue7hjd0p0rgt3qnq", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "uEWWDBwFW+/BpTCvNCLW7AP98hndBukzSbrwCb7sooo=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "sparkpool-validator-02", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr1gg6natrtt5lf02xwr06ujcczvavl54wgljuaut", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "MZi48DJZOgRbE0ZStR66omv6Ez1Wkjvf2D/41q6Nd0I=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "mining-ship", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr1zds6r7jyxyxcpf05r5yyyy3u8q2rvj9kkc6vcv", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "Go9GXHI6SCQo2QKMxkAkgYLhfo3XrVjWLR2nE2AvYyk=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "Staked", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr1l0qw5znfd6e8pshpjvyghjjzyr4l6ymla080lt", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "P9RgE4RMQT/aHap2oICpwpgKeBAwxPUwuU9zIffKFNM=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "nylira", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr1rxxcpkmsngd0azkh3n2467m66ls4rwq52yuv27", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "1+EkFYvTDmz4WQRbK+kznRHoaZVLludtkDrMuM6h++E=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "liangping", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr1jsch8k385shvse6j5dfx20483qym5uhq76xpjf", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "QEMDwUVoyJT7MNfOYKa25xU+Lnsz/ciH8rFUri4diLI=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "SVNode01", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr19uhnhct0p45ek6qxp3cjjrjtz4pacwcsgzvpuj", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "lUMCRAeu47BsOhNvCQTQJQeB68z0/VaElC9j5gDt9y8=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "vhxnode1", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr1gghhdtx2sceafvgg8dry5sqrvc8srxghm4qqsy", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "VnAr7ZIjvUXpWmzbkt8skHp0oRNc3V89SfvgaZydwfw=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "greg", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr1cyayv35tv47t829mel6jm0vqzmrdhf3jq87tqg", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "u4GEbsk9IEF56V1am5dRtAWXz4iFQkO03FVL87BZXIM=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "buckster", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr126ayk3hse5zvk9gxfmpsjr9565ef72pv9g20yx", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "BaaCxmYHKJ6obIzTCdRtjw1cc8d2mUJcMbLWCjf1aLo=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "grass-fed", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr1fskmzyt2hr8usr3s65dq3rfur3fy6g2hjp23tm", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "N3K5kDdfcKJurfaa6s2zfKgtYvz1Pagz7VWi9ZfX8yM=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "ATEAM1", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr1lhjta6nt0lewj05m8444tuyhalkrffgpm7njpp", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "DsTbM0AgHfhSUKvOGkxudDOY3ojYT6bifhpelqHs8+s=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "BFF-Validator-7000", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr1pm0gx3lk46gf8vyj5my9w5tk06cuq66ll77ugj", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "j9be+ddLChInrFz6/820/uYh4WZBzlp61klyJBDy/ZY=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "redbricks7000", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr15w2rengajq9js8hu57kjw88dly5vy7gsqedn0n", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "Xi7nIgj4PqVXrpKLfJhcyxyVY1d3HRo72sKKPDmuU78=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "kittyfish", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr10505nl7yftsme9jk2glhjhta7w0475uva87paj", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "2p8s/pRBZPjYWKKMlR7AOXypDzDmPo762iXlKpCwtco=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "Forbole", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr18z3pnjgdtt337z8g5drfts7r3fm6n9a0896h0r", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "nsofE1FmSr1TiDR0gfnxfMDQ8o2pC+1NE7Oa9ceztSg=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "coinone", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr1vmdgku2g0n5p2ef995r4fugu99ze9e5me9kh4d", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "WvmTBjsCN4ueGpEdySRwsRC5knBRLfY439/e4mG+YAY=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "bmen-company", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr1j2frwt2vq2xer7f060wpsu3y3f63uys2w9lx2e", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "c0i2uKsYBv8fubnI60lZIWA1y4zw1bFgsq5MmWBHKak=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "2400bps", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr1whxd48da3r56n8eecym8zg0c6xmf35fn2myart", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "AJR2ex094A1nJEWQsZYjALWsrSl1/huGZ37z2ZsMrpg=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "dev", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr1jkmn6asju47zuuzrf8rjt7sllaj5cx4kueyv8p", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "LSDd6ab46sHxwJSrg5YLpsPG2o6EcsZ3rDikpHzMNmI=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "w1m3l", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr120skmenn2a0ra8y6zassrxvnfc5rlme8rqarvs", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "dnFjFoTM9sP/RjQkXBK1YpYn3v5W+j0+g/OfUHS4xu8=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "aether", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr1jtt6al0acr8h0uvq489rt9zx9lnau7rlcu30pt", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "L0I4JoDfktbDWe0fCDL/nQlBPkF5mNgqamnM5JKJ1Uc=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "JCol", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr135dz5hdtvk3z8vl0zyy5l223kjanv0gudu4905", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "dPpZD53AbAMtW6sK+rTnXYe2GGGoSCNWsCtsmArLiIs=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "SaiKrishna", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr182ujqw3r8p5fffjqkf0rxzj29pg5q96nxd2khq", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "VakMQSPBEuSC9Nwuv8WWhrZVUmH31bUR4+G6pJhkgE8=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "Umbrella", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr1qrc3ed8tnz6vc24ftmnht8efs5ufhjmrjkds4x", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "KI+kCESWD9cB8se4uxRrFVAI5viyNNUXUyMCc903yQc=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "@Marceldeveloper", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr1swydkj5u3jd4jwe7uygu4479zgs4qg6v4ds3c9", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "8Qu1LFMt7qlZNmYQWrsXUA80aIx0rrFPPXs2s6NBdU8=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "stereo-watcher", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr1l9jt8xgejkcm4sulhwj8c83ftprz5p9lyq4605", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "WRsXnLz3gf8o4lYYeCZjAXgPU1cdmOOYPdy7aY63iIA=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "cosmos", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr128ty3kzhcepjacu4q0xjgq60qa3zz8na3jl793", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "R/3f7VruxWpu+2hiHlVpplTwoOou5kfQI1k/6/9H/y8=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "stake.zone", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr1e3qm8jd9357zhdemwnaafmf0wy3f4yqmd307c2", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "HjSC7VkhKih6xMhudlqfaFE8ZZnP8RKJPv4iqR7RhcE=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "firstblock.io", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr18wfz5vj26y079surms5sm6avjtezzspfvqs6g4", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "cLM/HeUFsXlnYnYod695u6NBDS0trMq8sVRdABnF7uc=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "shensi", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr1vrc7zpg5teawwuzkfh6t7c6sy353sukhlarxpa", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "Epd2FDKZwDybzT38Z7WB0y2jiLn9/2OLzmY3Zu18l6I=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "figment", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr1umaajfgap5ef6yxvk5706kwk8j08l7wh6h9fp2", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "ENAVynNXVpj/IdYx9kCPKaPs4bWSxRIHNlmS9QiDuZQ=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "iqlusion", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr1670l5up6e5fddvlc027yvvlvedrzyx0mmsl622", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "j2w5BFOnZTrPN4SFpmQyfRomnUwbEbz1A+kr3z1icjo=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "cosmosthecat", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr1wx33m9dvglryga0saey0pr99ja0klhcfrwaw7l", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "I2ILaY31gonxYQhlIk4PFUIN+Pk7+9dDTK1C/s+Vcb0=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "snatico", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr15u9ve7fz8fqaf7r2u3p4f9ru4ze47pau5cxgcg", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "3wRufybSUsTMnUeQkP74uJNDRKeM8jBLAS64T0BRfpY=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "mpaxeNode", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr1h4q0xkdg30cl9vw0u8ejm0rs337dszy98gnd4a", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "2gOiMAdnIdND4cA75E7naQdyyIYDAdcjF3uO6OiEZlU=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "joltz-secureware.io", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr12zpkulxv7kn59sgf0tpf24qhqzxsvf3gamkl7g", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "2S8Y/vnLM3W+MYxNCxcUItIBfdZL/T4A8vRg89n0wLg=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "mwnode1", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr1g6sc5t9t68vmcj3alk7dfqr54tvastpxac28k6", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "kol7Gj60Fct4X8T1rHLJQ0z/b14UqqSae8h1e37rLL8=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "VNode01", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr1jck6gp4mqy33sk6a0fr5c8maq53hf4245v3mgg", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "UBTju7UZfXLVPPYb1a8gPZ69BeCv2Fho7YVo2EUbxKc=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "7768", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr1jh3grawl62juvx5p8fz5xsy9hpw8w3mngqafe4", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "0HqB2x6x5HzeozpHatePECw07x1UcDdSz8kQGNznnA8=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "block3.community", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr17nlusdvrk34fq65jemy3umfjfwaxfzv4asyl60", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "H0SIA/BU6Xj8oT5bQkvLpEITN3CqFLbMeBcQ72NZrAE=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "4455", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr18u2sqnuetfnkugp59e9pgyv2dpuvkkxmmsc7m8", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "Xnh8TL3BbIs9VTUenmnx6r2UAHpGCj3G9FV0mzc+mU4=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "dooroomee", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr1xdp4pls4ryvchq2n8v0cpmtwsprvyh8wvg563q", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "X62YB48gO2SsWGnjYxH+aGfLQcjnP+T0hnErdWZ859g=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "sheiud", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr1pmntq5en2rgtr5rzr4e304efrve4lr43z32y5s", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "8pfpbIxBBiu88hpxS3CeRpv7kClEjl8SwVgckDNBGlE=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "Staking Facilities Validator", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr197p65z7ge5g55r68thvw4l5e43gnm70jhu5g75", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "UuxXNPImsE5Wp+utGfJywZBHuuGE4RmL0CArc6td82w=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "ritter-ramm", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr15klp8pypkd8htppzt6pguej57yyvp5p442khcu", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "Sl3NKLaYEgDaovqTkKVZh2ihRFbSmyVjC63wpv3ecdc=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "meteor-discover", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr1jsvgewy7h62v3q43m0l347wlcwyhd4un5q8aa3", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "SYjCs2AlY04xdfJGPD+gyO9NZ/zQ0Lfb/TLrjgOLS68=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "COSMODROME", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr192yhf7f7f9304cy6cu6np3r8a3m9yqzqfeu9je", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "oI1+4FoeI/knjsjDyCJtgZPaeyKON8tCTcM9QX0BHa8=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "broadleaf7000", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr1pag7xgpl8njlaksvp2ur5un3htg85vcrxcp5rs", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "nts1nu73aBgIdSaYye4coIuE1iBNeCuTZZC8LQ37ac8=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "ravenclub", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr1p56gv748xfd74qek5e637vhcr6tyjd9ukqfecc", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "NQX4yKpOztKrmgBhGIC5WOALOLOq3LTpbzsN4ZLXGec=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "dokia-capital", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr1kwftgznylzerft2ksgkzvvfn5rfpy4nk2ye8na", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "BB4a/Xh5z+dkGCRlF+pSGC3iDOoDrFse/xzQAtmxMF4=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "chainflow08", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr1rj74vaqm0xkxl5cjjam63mayh4x6at3m379ulv", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "ydjx2ea+PVuChrny6X2dluJwyXta+BsNQRsgHXp8fXw=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "Mia", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr1zpx36km7tk5cksyzxgvcp6g552p3uhwx84r53q", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "pPGLc4NhNaehdoV2antWuyr0GmBVEG1NhD9NiSRrTi0=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "sikka.tech", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr1gq0qecxs8xdaarrqxxazwavwxm7qz5jzs5anvt", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "VBVHOLnWGptY26J0wqXoZI2Dnu96pccMb08zlsaxPCQ=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "certus.one", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr1cypmdvszcd9kd3jenmqxd03cpceql8rtuvxftp", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "aUViYC2znC55sleHfmsIN9hZ45SbYPbDcYA0gVzglsc=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "Gold2", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr1klslzz2n2nqvdaa6gwflwpka7gc60vvmh3k450", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "riYrMXBFLavmf4MU/Ly7emDlciVqfB2/zxJoRsBUlfY=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "idoor7000", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr1qkllv8f6qakkw3hk9dqvytys090lk6twsyv8vf", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "F2wCn9rKafNZsYZwoLGkSQIpr3rk86cjYyuhSjsjRaE=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "ironfork", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr1wf9nug554ugpw4t0wnlppxc6crl2n02qr8v3cd", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "ugb3W6W7WL9Vc4KiSBWIaowBfpqJlzbfBSfrIqZW06A=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "sunny-mintor", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr1t3afuz2kt99jz4pe5k4vjvkdmldn2x0lqzv83w", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "gJDxhwAE6GeGCKQeVaNZ5is7+7MFHXtOG0UsnguKdoA=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "BlissDynamics", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr14zfph0h8rexsca6gg6jkwqup3sgl6mwj6eu4e6", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "b9RSkt+WmMxVHQExQH0IMPpnR9zDAaJwz/mv1gtyRVY=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "smartpesa", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr1998p0xkdwvul952ydavnx88tmwkhlfa0vhrngj", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "569Sb+Wpo8VFqXRi4cQhlOD9kS8uBgmJ2rntY3GLtzY=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "ianstream", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr1jw554408yw2h438q200jyuqgln76xh4ax0q4s0", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "SNwrT1B+A4g6TY7x0QzVrmVbcbl3cHXzXdD1tFHxLNo=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "TruNode", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr1mwmcpq5nhaen8zyy86mrrept2gmp0z5peapkhu", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "K4kLogLtZxqrYSqRVJfrFm9tUG+Tc3QWXWIewnAgI9w=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "abcin", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr1emaa7mwgpnpmc7yptm728ytp9quamsvu9rk4hp", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "TwzOJ4GcN+ZTswub4R8488SrKeWXjY/PaqCF5neXJig=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "kochacolaj", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr1tq0zwzyc88l2enrlhtzw0he8rm24xfd5s9aeer", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "JXW8iTiWG28E05ZFJIKvCOBwI2RrH/BOBL/MluTZ6+I=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "D2R-validator-7000", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr1n9qsfp3x09rhhxptzrgmdlucqhg2ce95fm3fw8", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "A3zUdVcpj4H+HRZmRW5xixj4dzMgqD7be9GrdXcjdns=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "juelianshana", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr1sqec04r28jfevkzfkdj4ql2qzr2zwrmg78qzj8", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "7RhnD9OAZEJ4SV6V3LOZ1gGWubtX25457wCQq+AYYPI=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "lambda-mixer", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr1hfygmryre7r8m9pfqmc85y7kw7ejphmp59k2x8", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "66j9af4xDJSblMLS+mFbp7d8TaFGu0FOo+0MwEYm2lE=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "bkcm", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr1jvh448tvk368k4md83ys7auledclek0vfpckz2", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "8DScmobjJQmkN44K2xiZkESM/O9MJK/DqlggnIPLpso=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "ramihan", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr1fhfcs5npydv8s96wrk9p5ychctslu92t4n5qd4", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "4JoJuRfaANhdM1x3AWRo1/Cj9DH3VA+fi1SynzknV+w=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "davinchcode", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr1eg88jsn38mrael6cqu7d2u8j6dynya7fv2p2tl", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "cCoFsZzKZ9SQZbHe4NueVObIezP6ts0tRTZ/aN96dig=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "Dori", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr1ukcuqpqw3eq505wkqd2adgn8ugewxr6jtakngs", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "Zp4tk/ieqplJF8xMeef9HV8bYpHSY+3hJ2sH7PfCX1I=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "daefreeca", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr1na3wr7ujdp3qdej6l5y0k4znzrkaz77t2yjaqf", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "jj0Y/Fy8JSJR3g+PHU6Ce0ecYwHGUVJ4bVyR7WwcyLI=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "nuevax", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr1xupfqk73y7rmc6qdgv7rtjy8wsngvt2g2t59t3", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "XQDVMXja3kFk5Jb47BsqJmzcDsM4lE9+r+f/J3O5Jms=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "inschain_validator", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr17gvlvfpsfl6hffn5u2hahk22un4ynpykc44tat", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "oL/QCr7LEOivyTqpGrmwVd1r+hYI2WB5+kSVzpDMxx4=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "gruberx", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr1yfseqtj5sjhzz2q2ym09jym4h4nc4yevae0jp2", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "eeImG09hOPo1W7j7lKepN/Lx6I9GGHqVBVEKmznxACc=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "meleatrust", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr1yd0rklq45zg89fywr89ccutlcwp9kehhh0z03k", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "Abws3eXrUFAH8LeZJIcECakPL945TTmFsBlXONOUeII=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "Cosmodator-7000", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr1arlpxs2ftf5hgetqxxkvd7mqdc28mmaqclyv4y", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "PEg/D54SoiKZ+pic0Z0RzZa/vfYNAAf4kzSc5UKXDYk=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "bharvest", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr12ceualfg92x7du73mtcv0zya4nxvq3tl2m52uz", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "omAzuJps8KX3/iOC1LjwkMPMH3c6tjfLXwCNWXRBdWw=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "Adrian Brink - Cryptium Labs", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr1wxf0ck9h2e8p2wmecxtep6cefhexsp4kzc8fxy", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "nctikQSpoLRl5kV6KarIS761QvEOZCWw6nvc48xWhic=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "finality", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr1pzlud6lg8w9phcwetc5aqp24eflshtv4xlxthf", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "NrTRAbZnBqJpW9lRW6LxXxE7EV++y7WiIRV0ifRLovA=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "coscloud", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr10qp8kqwm2cuql0hw2az5mngpmw5xm9ee32exlp", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "W0rP8sv4Ae/LZOqlBA9evvYARDt79WpFaI26jw/9Tfk=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "xiaochina", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr14dwnmm6n7tjdpeylpwsdsatdl0umm75dfkqcpa", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "JdfJDlE46456GWp+AkSZhzlkUQI41f8aX7611oiWUSc=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "gazua1", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - } - ], - "bonds": [ - { - "delegator_addr": "cosmosaccaddr157mg9hnhchfrqvk3enrvmvj29yhmlwf759xrgw", - "validator_addr": "cosmosaccaddr157mg9hnhchfrqvk3enrvmvj29yhmlwf759xrgw", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr193vn0gk3nsmjkxwz78gce8e8mkmagmvulpg5jt", - "validator_addr": "cosmosaccaddr193vn0gk3nsmjkxwz78gce8e8mkmagmvulpg5jt", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr16rcrnftjyl2mctz78825ng8tx5ss22jf6jcp9l", - "validator_addr": "cosmosaccaddr16rcrnftjyl2mctz78825ng8tx5ss22jf6jcp9l", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr1shuqhpl273t96yg6nnqvyfeewj3ew3mdcwvcnu", - "validator_addr": "cosmosaccaddr1shuqhpl273t96yg6nnqvyfeewj3ew3mdcwvcnu", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr1shuqhpl273t96yg6nnqvyfeewj3ew3mdcwvcnu", - "validator_addr": "cosmosaccaddr1shuqhpl273t96yg6nnqvyfeewj3ew3mdcwvcnu", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr1syhzpjwx6vv3erv2myq7txrjhrp95hrhgcl242", - "validator_addr": "cosmosaccaddr1syhzpjwx6vv3erv2myq7txrjhrp95hrhgcl242", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr1uga4nuresex5u8ajjh2pcr39l0s9hszdkp843j", - "validator_addr": "cosmosaccaddr1uga4nuresex5u8ajjh2pcr39l0s9hszdkp843j", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr12wnqvqg79s9jqrul0lva3h72rfmewm7jprrcp5", - "validator_addr": "cosmosaccaddr12wnqvqg79s9jqrul0lva3h72rfmewm7jprrcp5", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr1lq0mvtgnwe8mp0096un0v8ztcsj8ad92t2cwrq", - "validator_addr": "cosmosaccaddr1lq0mvtgnwe8mp0096un0v8ztcsj8ad92t2cwrq", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr14e774gfzt5l9ka766ehfgu6n5hgy9f3sehzyv8", - "validator_addr": "cosmosaccaddr14e774gfzt5l9ka766ehfgu6n5hgy9f3sehzyv8", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr164jntjfk9zs8x29mc27qansfwvjqs60gj6ermu", - "validator_addr": "cosmosaccaddr164jntjfk9zs8x29mc27qansfwvjqs60gj6ermu", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr1qkc3tghc3fms7eye7vtu0g0370epr4jkje2ne7", - "validator_addr": "cosmosaccaddr1qkc3tghc3fms7eye7vtu0g0370epr4jkje2ne7", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr18m09d56pg5p2660de4sjfezpd8ud6jfghndfnt", - "validator_addr": "cosmosaccaddr18m09d56pg5p2660de4sjfezpd8ud6jfghndfnt", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr1k9pqxd8fxqlk52uwfxnlsexqj6xnmw5swhss45", - "validator_addr": "cosmosaccaddr1k9pqxd8fxqlk52uwfxnlsexqj6xnmw5swhss45", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr13q937pwglh24knwa2v23ml0kkpl9vwzjmfmj3q", - "validator_addr": "cosmosaccaddr13q937pwglh24knwa2v23ml0kkpl9vwzjmfmj3q", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr1xvt4e7xd0j9dwv2w83g50tpcltsl90h5dfnz6h", - "validator_addr": "cosmosaccaddr1xvt4e7xd0j9dwv2w83g50tpcltsl90h5dfnz6h", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr1nnyel6v0kx8zmfh9edmre3ua4dt9306cfxsxgd", - "validator_addr": "cosmosaccaddr1nnyel6v0kx8zmfh9edmre3ua4dt9306cfxsxgd", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr13cds7hwqyq9ja2hsv4sg7glq9arlk43gcl3cek", - "validator_addr": "cosmosaccaddr13cds7hwqyq9ja2hsv4sg7glq9arlk43gcl3cek", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr1y2z20pwqu5qpclque3pqkguruvheum2djtzjw3", - "validator_addr": "cosmosaccaddr1y2z20pwqu5qpclque3pqkguruvheum2djtzjw3", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr1anuuffusmq5ng3rhlndhnacy45et30jqygtn67", - "validator_addr": "cosmosaccaddr1anuuffusmq5ng3rhlndhnacy45et30jqygtn67", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr1wk0t6na230vxhf6ddresw2c40k5y3ayrww0s2m", - "validator_addr": "cosmosaccaddr1wk0t6na230vxhf6ddresw2c40k5y3ayrww0s2m", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr12pn4p6r5wjpsep9kn655ng7fh59yez7t0rahru", - "validator_addr": "cosmosaccaddr12pn4p6r5wjpsep9kn655ng7fh59yez7t0rahru", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr15rrxdflhq4744qt9m5ysstq3zpykhacf908eez", - "validator_addr": "cosmosaccaddr15rrxdflhq4744qt9m5ysstq3zpykhacf908eez", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr17rqsh3fw6rehnwzarz90jkqtt5fupmh50gy556", - "validator_addr": "cosmosaccaddr17rqsh3fw6rehnwzarz90jkqtt5fupmh50gy556", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr1g4q87u438qdh2c8ue4dzdr9ldrqrs77ptm9c70", - "validator_addr": "cosmosaccaddr1g4q87u438qdh2c8ue4dzdr9ldrqrs77ptm9c70", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr1dq7jt3pn7mrce2twac907jue7hjd0p0rgt3qnq", - "validator_addr": "cosmosaccaddr1dq7jt3pn7mrce2twac907jue7hjd0p0rgt3qnq", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr1gg6natrtt5lf02xwr06ujcczvavl54wgljuaut", - "validator_addr": "cosmosaccaddr1gg6natrtt5lf02xwr06ujcczvavl54wgljuaut", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr1zds6r7jyxyxcpf05r5yyyy3u8q2rvj9kkc6vcv", - "validator_addr": "cosmosaccaddr1zds6r7jyxyxcpf05r5yyyy3u8q2rvj9kkc6vcv", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr1l0qw5znfd6e8pshpjvyghjjzyr4l6ymla080lt", - "validator_addr": "cosmosaccaddr1l0qw5znfd6e8pshpjvyghjjzyr4l6ymla080lt", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr1rxxcpkmsngd0azkh3n2467m66ls4rwq52yuv27", - "validator_addr": "cosmosaccaddr1rxxcpkmsngd0azkh3n2467m66ls4rwq52yuv27", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr1jsch8k385shvse6j5dfx20483qym5uhq76xpjf", - "validator_addr": "cosmosaccaddr1jsch8k385shvse6j5dfx20483qym5uhq76xpjf", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr19uhnhct0p45ek6qxp3cjjrjtz4pacwcsgzvpuj", - "validator_addr": "cosmosaccaddr19uhnhct0p45ek6qxp3cjjrjtz4pacwcsgzvpuj", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr1gghhdtx2sceafvgg8dry5sqrvc8srxghm4qqsy", - "validator_addr": "cosmosaccaddr1gghhdtx2sceafvgg8dry5sqrvc8srxghm4qqsy", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr1cyayv35tv47t829mel6jm0vqzmrdhf3jq87tqg", - "validator_addr": "cosmosaccaddr1cyayv35tv47t829mel6jm0vqzmrdhf3jq87tqg", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr126ayk3hse5zvk9gxfmpsjr9565ef72pv9g20yx", - "validator_addr": "cosmosaccaddr126ayk3hse5zvk9gxfmpsjr9565ef72pv9g20yx", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr1fskmzyt2hr8usr3s65dq3rfur3fy6g2hjp23tm", - "validator_addr": "cosmosaccaddr1fskmzyt2hr8usr3s65dq3rfur3fy6g2hjp23tm", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr1lhjta6nt0lewj05m8444tuyhalkrffgpm7njpp", - "validator_addr": "cosmosaccaddr1lhjta6nt0lewj05m8444tuyhalkrffgpm7njpp", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr1pm0gx3lk46gf8vyj5my9w5tk06cuq66ll77ugj", - "validator_addr": "cosmosaccaddr1pm0gx3lk46gf8vyj5my9w5tk06cuq66ll77ugj", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr15w2rengajq9js8hu57kjw88dly5vy7gsqedn0n", - "validator_addr": "cosmosaccaddr15w2rengajq9js8hu57kjw88dly5vy7gsqedn0n", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr10505nl7yftsme9jk2glhjhta7w0475uva87paj", - "validator_addr": "cosmosaccaddr10505nl7yftsme9jk2glhjhta7w0475uva87paj", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr18z3pnjgdtt337z8g5drfts7r3fm6n9a0896h0r", - "validator_addr": "cosmosaccaddr18z3pnjgdtt337z8g5drfts7r3fm6n9a0896h0r", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr1vmdgku2g0n5p2ef995r4fugu99ze9e5me9kh4d", - "validator_addr": "cosmosaccaddr1vmdgku2g0n5p2ef995r4fugu99ze9e5me9kh4d", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr1j2frwt2vq2xer7f060wpsu3y3f63uys2w9lx2e", - "validator_addr": "cosmosaccaddr1j2frwt2vq2xer7f060wpsu3y3f63uys2w9lx2e", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr1whxd48da3r56n8eecym8zg0c6xmf35fn2myart", - "validator_addr": "cosmosaccaddr1whxd48da3r56n8eecym8zg0c6xmf35fn2myart", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr1jkmn6asju47zuuzrf8rjt7sllaj5cx4kueyv8p", - "validator_addr": "cosmosaccaddr1jkmn6asju47zuuzrf8rjt7sllaj5cx4kueyv8p", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr120skmenn2a0ra8y6zassrxvnfc5rlme8rqarvs", - "validator_addr": "cosmosaccaddr120skmenn2a0ra8y6zassrxvnfc5rlme8rqarvs", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr1jtt6al0acr8h0uvq489rt9zx9lnau7rlcu30pt", - "validator_addr": "cosmosaccaddr1jtt6al0acr8h0uvq489rt9zx9lnau7rlcu30pt", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr135dz5hdtvk3z8vl0zyy5l223kjanv0gudu4905", - "validator_addr": "cosmosaccaddr135dz5hdtvk3z8vl0zyy5l223kjanv0gudu4905", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr182ujqw3r8p5fffjqkf0rxzj29pg5q96nxd2khq", - "validator_addr": "cosmosaccaddr182ujqw3r8p5fffjqkf0rxzj29pg5q96nxd2khq", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr1qrc3ed8tnz6vc24ftmnht8efs5ufhjmrjkds4x", - "validator_addr": "cosmosaccaddr1qrc3ed8tnz6vc24ftmnht8efs5ufhjmrjkds4x", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr1swydkj5u3jd4jwe7uygu4479zgs4qg6v4ds3c9", - "validator_addr": "cosmosaccaddr1swydkj5u3jd4jwe7uygu4479zgs4qg6v4ds3c9", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr1l9jt8xgejkcm4sulhwj8c83ftprz5p9lyq4605", - "validator_addr": "cosmosaccaddr1l9jt8xgejkcm4sulhwj8c83ftprz5p9lyq4605", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr128ty3kzhcepjacu4q0xjgq60qa3zz8na3jl793", - "validator_addr": "cosmosaccaddr128ty3kzhcepjacu4q0xjgq60qa3zz8na3jl793", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr1e3qm8jd9357zhdemwnaafmf0wy3f4yqmd307c2", - "validator_addr": "cosmosaccaddr1e3qm8jd9357zhdemwnaafmf0wy3f4yqmd307c2", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr18wfz5vj26y079surms5sm6avjtezzspfvqs6g4", - "validator_addr": "cosmosaccaddr18wfz5vj26y079surms5sm6avjtezzspfvqs6g4", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr1vrc7zpg5teawwuzkfh6t7c6sy353sukhlarxpa", - "validator_addr": "cosmosaccaddr1vrc7zpg5teawwuzkfh6t7c6sy353sukhlarxpa", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr1umaajfgap5ef6yxvk5706kwk8j08l7wh6h9fp2", - "validator_addr": "cosmosaccaddr1umaajfgap5ef6yxvk5706kwk8j08l7wh6h9fp2", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr1670l5up6e5fddvlc027yvvlvedrzyx0mmsl622", - "validator_addr": "cosmosaccaddr1670l5up6e5fddvlc027yvvlvedrzyx0mmsl622", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr1wx33m9dvglryga0saey0pr99ja0klhcfrwaw7l", - "validator_addr": "cosmosaccaddr1wx33m9dvglryga0saey0pr99ja0klhcfrwaw7l", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr15u9ve7fz8fqaf7r2u3p4f9ru4ze47pau5cxgcg", - "validator_addr": "cosmosaccaddr15u9ve7fz8fqaf7r2u3p4f9ru4ze47pau5cxgcg", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr1h4q0xkdg30cl9vw0u8ejm0rs337dszy98gnd4a", - "validator_addr": "cosmosaccaddr1h4q0xkdg30cl9vw0u8ejm0rs337dszy98gnd4a", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr12zpkulxv7kn59sgf0tpf24qhqzxsvf3gamkl7g", - "validator_addr": "cosmosaccaddr12zpkulxv7kn59sgf0tpf24qhqzxsvf3gamkl7g", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr1g6sc5t9t68vmcj3alk7dfqr54tvastpxac28k6", - "validator_addr": "cosmosaccaddr1g6sc5t9t68vmcj3alk7dfqr54tvastpxac28k6", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr1jck6gp4mqy33sk6a0fr5c8maq53hf4245v3mgg", - "validator_addr": "cosmosaccaddr1jck6gp4mqy33sk6a0fr5c8maq53hf4245v3mgg", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr1jh3grawl62juvx5p8fz5xsy9hpw8w3mngqafe4", - "validator_addr": "cosmosaccaddr1jh3grawl62juvx5p8fz5xsy9hpw8w3mngqafe4", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr17nlusdvrk34fq65jemy3umfjfwaxfzv4asyl60", - "validator_addr": "cosmosaccaddr17nlusdvrk34fq65jemy3umfjfwaxfzv4asyl60", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr18u2sqnuetfnkugp59e9pgyv2dpuvkkxmmsc7m8", - "validator_addr": "cosmosaccaddr18u2sqnuetfnkugp59e9pgyv2dpuvkkxmmsc7m8", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr1xdp4pls4ryvchq2n8v0cpmtwsprvyh8wvg563q", - "validator_addr": "cosmosaccaddr1xdp4pls4ryvchq2n8v0cpmtwsprvyh8wvg563q", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr1pmntq5en2rgtr5rzr4e304efrve4lr43z32y5s", - "validator_addr": "cosmosaccaddr1pmntq5en2rgtr5rzr4e304efrve4lr43z32y5s", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr197p65z7ge5g55r68thvw4l5e43gnm70jhu5g75", - "validator_addr": "cosmosaccaddr197p65z7ge5g55r68thvw4l5e43gnm70jhu5g75", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr15klp8pypkd8htppzt6pguej57yyvp5p442khcu", - "validator_addr": "cosmosaccaddr15klp8pypkd8htppzt6pguej57yyvp5p442khcu", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr1jsvgewy7h62v3q43m0l347wlcwyhd4un5q8aa3", - "validator_addr": "cosmosaccaddr1jsvgewy7h62v3q43m0l347wlcwyhd4un5q8aa3", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr192yhf7f7f9304cy6cu6np3r8a3m9yqzqfeu9je", - "validator_addr": "cosmosaccaddr192yhf7f7f9304cy6cu6np3r8a3m9yqzqfeu9je", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr1pag7xgpl8njlaksvp2ur5un3htg85vcrxcp5rs", - "validator_addr": "cosmosaccaddr1pag7xgpl8njlaksvp2ur5un3htg85vcrxcp5rs", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr1p56gv748xfd74qek5e637vhcr6tyjd9ukqfecc", - "validator_addr": "cosmosaccaddr1p56gv748xfd74qek5e637vhcr6tyjd9ukqfecc", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr1kwftgznylzerft2ksgkzvvfn5rfpy4nk2ye8na", - "validator_addr": "cosmosaccaddr1kwftgznylzerft2ksgkzvvfn5rfpy4nk2ye8na", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr1rj74vaqm0xkxl5cjjam63mayh4x6at3m379ulv", - "validator_addr": "cosmosaccaddr1rj74vaqm0xkxl5cjjam63mayh4x6at3m379ulv", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr1zpx36km7tk5cksyzxgvcp6g552p3uhwx84r53q", - "validator_addr": "cosmosaccaddr1zpx36km7tk5cksyzxgvcp6g552p3uhwx84r53q", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr1gq0qecxs8xdaarrqxxazwavwxm7qz5jzs5anvt", - "validator_addr": "cosmosaccaddr1gq0qecxs8xdaarrqxxazwavwxm7qz5jzs5anvt", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr1cypmdvszcd9kd3jenmqxd03cpceql8rtuvxftp", - "validator_addr": "cosmosaccaddr1cypmdvszcd9kd3jenmqxd03cpceql8rtuvxftp", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr1klslzz2n2nqvdaa6gwflwpka7gc60vvmh3k450", - "validator_addr": "cosmosaccaddr1klslzz2n2nqvdaa6gwflwpka7gc60vvmh3k450", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr1qkllv8f6qakkw3hk9dqvytys090lk6twsyv8vf", - "validator_addr": "cosmosaccaddr1qkllv8f6qakkw3hk9dqvytys090lk6twsyv8vf", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr1wf9nug554ugpw4t0wnlppxc6crl2n02qr8v3cd", - "validator_addr": "cosmosaccaddr1wf9nug554ugpw4t0wnlppxc6crl2n02qr8v3cd", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr1t3afuz2kt99jz4pe5k4vjvkdmldn2x0lqzv83w", - "validator_addr": "cosmosaccaddr1t3afuz2kt99jz4pe5k4vjvkdmldn2x0lqzv83w", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr14zfph0h8rexsca6gg6jkwqup3sgl6mwj6eu4e6", - "validator_addr": "cosmosaccaddr14zfph0h8rexsca6gg6jkwqup3sgl6mwj6eu4e6", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr1998p0xkdwvul952ydavnx88tmwkhlfa0vhrngj", - "validator_addr": "cosmosaccaddr1998p0xkdwvul952ydavnx88tmwkhlfa0vhrngj", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr1jw554408yw2h438q200jyuqgln76xh4ax0q4s0", - "validator_addr": "cosmosaccaddr1jw554408yw2h438q200jyuqgln76xh4ax0q4s0", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr1mwmcpq5nhaen8zyy86mrrept2gmp0z5peapkhu", - "validator_addr": "cosmosaccaddr1mwmcpq5nhaen8zyy86mrrept2gmp0z5peapkhu", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr1emaa7mwgpnpmc7yptm728ytp9quamsvu9rk4hp", - "validator_addr": "cosmosaccaddr1emaa7mwgpnpmc7yptm728ytp9quamsvu9rk4hp", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr1tq0zwzyc88l2enrlhtzw0he8rm24xfd5s9aeer", - "validator_addr": "cosmosaccaddr1tq0zwzyc88l2enrlhtzw0he8rm24xfd5s9aeer", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr1n9qsfp3x09rhhxptzrgmdlucqhg2ce95fm3fw8", - "validator_addr": "cosmosaccaddr1n9qsfp3x09rhhxptzrgmdlucqhg2ce95fm3fw8", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr1sqec04r28jfevkzfkdj4ql2qzr2zwrmg78qzj8", - "validator_addr": "cosmosaccaddr1sqec04r28jfevkzfkdj4ql2qzr2zwrmg78qzj8", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr1hfygmryre7r8m9pfqmc85y7kw7ejphmp59k2x8", - "validator_addr": "cosmosaccaddr1hfygmryre7r8m9pfqmc85y7kw7ejphmp59k2x8", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr1jvh448tvk368k4md83ys7auledclek0vfpckz2", - "validator_addr": "cosmosaccaddr1jvh448tvk368k4md83ys7auledclek0vfpckz2", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr1fhfcs5npydv8s96wrk9p5ychctslu92t4n5qd4", - "validator_addr": "cosmosaccaddr1fhfcs5npydv8s96wrk9p5ychctslu92t4n5qd4", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr1eg88jsn38mrael6cqu7d2u8j6dynya7fv2p2tl", - "validator_addr": "cosmosaccaddr1eg88jsn38mrael6cqu7d2u8j6dynya7fv2p2tl", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr1ukcuqpqw3eq505wkqd2adgn8ugewxr6jtakngs", - "validator_addr": "cosmosaccaddr1ukcuqpqw3eq505wkqd2adgn8ugewxr6jtakngs", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr1na3wr7ujdp3qdej6l5y0k4znzrkaz77t2yjaqf", - "validator_addr": "cosmosaccaddr1na3wr7ujdp3qdej6l5y0k4znzrkaz77t2yjaqf", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr1xupfqk73y7rmc6qdgv7rtjy8wsngvt2g2t59t3", - "validator_addr": "cosmosaccaddr1xupfqk73y7rmc6qdgv7rtjy8wsngvt2g2t59t3", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr17gvlvfpsfl6hffn5u2hahk22un4ynpykc44tat", - "validator_addr": "cosmosaccaddr17gvlvfpsfl6hffn5u2hahk22un4ynpykc44tat", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr1yfseqtj5sjhzz2q2ym09jym4h4nc4yevae0jp2", - "validator_addr": "cosmosaccaddr1yfseqtj5sjhzz2q2ym09jym4h4nc4yevae0jp2", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr1yd0rklq45zg89fywr89ccutlcwp9kehhh0z03k", - "validator_addr": "cosmosaccaddr1yd0rklq45zg89fywr89ccutlcwp9kehhh0z03k", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr1arlpxs2ftf5hgetqxxkvd7mqdc28mmaqclyv4y", - "validator_addr": "cosmosaccaddr1arlpxs2ftf5hgetqxxkvd7mqdc28mmaqclyv4y", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr12ceualfg92x7du73mtcv0zya4nxvq3tl2m52uz", - "validator_addr": "cosmosaccaddr12ceualfg92x7du73mtcv0zya4nxvq3tl2m52uz", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr1wxf0ck9h2e8p2wmecxtep6cefhexsp4kzc8fxy", - "validator_addr": "cosmosaccaddr1wxf0ck9h2e8p2wmecxtep6cefhexsp4kzc8fxy", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr1pzlud6lg8w9phcwetc5aqp24eflshtv4xlxthf", - "validator_addr": "cosmosaccaddr1pzlud6lg8w9phcwetc5aqp24eflshtv4xlxthf", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr10qp8kqwm2cuql0hw2az5mngpmw5xm9ee32exlp", - "validator_addr": "cosmosaccaddr10qp8kqwm2cuql0hw2az5mngpmw5xm9ee32exlp", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr14dwnmm6n7tjdpeylpwsdsatdl0umm75dfkqcpa", - "validator_addr": "cosmosaccaddr14dwnmm6n7tjdpeylpwsdsatdl0umm75dfkqcpa", - "shares": "100", - "height": "0" - } - ] - } - } -} \ No newline at end of file diff --git a/cmd/gaia/testnets/gaia-7001/genesis.json b/cmd/gaia/testnets/gaia-7001/genesis.json deleted file mode 100644 index 48db5a4ed..000000000 --- a/cmd/gaia/testnets/gaia-7001/genesis.json +++ /dev/null @@ -1,5628 +0,0 @@ -{ - "genesis_time": "2018-07-17T07:19:26.795692941Z", - "chain_id": "gaia-7001", - "consensus_params": { - "block_size_params": { - "max_bytes": "22020096", - "max_txs": "10000", - "max_gas": "-1" - }, - "tx_size_params": { - "max_bytes": "10240", - "max_gas": "-1" - }, - "block_gossip_params": { - "block_part_size_bytes": "65536" - }, - "evidence_params": { - "max_age": "100000" - } - }, - "validators": [ - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "MRCeBDANSjH6IsxO0z6tRe+xqoZvIGhdfl1t+SXGUpM=" - }, - "power": "100", - "name": "" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "tOEqjO2t51PEgO9Tv0B7qM0yPmy1n5tMa3Beg0tp3ns=" - }, - "power": "100", - "name": "" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "S8s6fdAQNQ3bN9SNVAsHB/j8uv1CM1roxeLesL+fh4g=" - }, - "power": "100", - "name": "validatorluigi001" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "2JoNf1gavJ1d6XFIumO1Mki5GVMOcg58AioHksU3maE=" - }, - "power": "100", - "name": "" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "k3YLQYEN2QMP6XITRsBmgb+pNGhJ5Jbg0bzUW977kK0=" - }, - "power": "100", - "name": "" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "EREUrXXl1OJqLQag0P4h6vJ2H+8GEwyNAjgn1XEJU+I=" - }, - "power": "100", - "name": "" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "heNintBalqaJwCOjLb9+mX/cQ1ytMlV7ZroPIlkwZqo=" - }, - "power": "100", - "name": "" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "nb2oRB12DlEQkFn7KSjSVkj5rDoSTsuBFa09+gmNJ7o=" - }, - "power": "100", - "name": "" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "bZSEBDNIOr0xJ/PxaAScJIyG6hqFtryBAMNwghAOTTU=" - }, - "power": "100", - "name": "" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "8K3clCjVU33BTIpUhdahGmu++WxHj4NUE9krCRkk++s=" - }, - "power": "100", - "name": "" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "RBuRRNEzA9RA1Wrdi9PPFQJ29/n/bqN9O2tQv9Gq248=" - }, - "power": "100", - "name": "" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "RwPRoiY5C0covekqbr3VrQwxWGHioUUIf2+TOq8LIC0=" - }, - "power": "100", - "name": "" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "2qtEBT+Tc+SD2wJsdrVMHXrBKfvesxtmtSKDK5fXwA0=" - }, - "power": "100", - "name": "" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "gU5mmVLUSzn/fIEMgiiB4LARRoWlqjUGHr3A4SndWO8=" - }, - "power": "100", - "name": "" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "xlO2cnii42KisAn8OcstC/3XV5+I0FlcSbWuyy5MVA8=" - }, - "power": "100", - "name": "" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "q5ezDn4DcWFPWvMayPJI35nXr//jjF8fGHsuiHjpDcU=" - }, - "power": "100", - "name": "" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "PSqbJOwglJb1yrj3aWebBpXb2ujXcR037s1Cyj2HoW4=" - }, - "power": "100", - "name": "" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "A6GzeXUM3vsXaDAEYMSDgSKkqn9AoUYjs8empH46MGY=" - }, - "power": "100", - "name": "" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "81fx09BivOOxeGL7QisF8aKRZjjcARpiSaCOX9mJfY8=" - }, - "power": "100", - "name": "" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "UjTvuOew2EaooduJBiYmBWeF5ai0yFJG8uio5YXpJgg=" - }, - "power": "1", - "name": "" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "y7p9JSVZBnRxjAI9v5Pxl37hMtyuHf6B4Ghqzm6+ii0=" - }, - "power": "100", - "name": "" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "oG8Q5o+SN4wqMLvlIfVgQPnsQzNEKeH0D/XGM8JlGrY=" - }, - "power": "100", - "name": "" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "PxJbo5FKA6mXtgwclRQVNIjOCQK3Q7WkLQrvM9lYbGI=" - }, - "power": "100", - "name": "" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "Q/UShqqVDOUSNYBrR1G/1X1s+YXEVXEJzeXmYvfYIr0=" - }, - "power": "100", - "name": "" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "uEWWDBwFW+/BpTCvNCLW7AP98hndBukzSbrwCb7sooo=" - }, - "power": "100", - "name": "" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "MZi48DJZOgRbE0ZStR66omv6Ez1Wkjvf2D/41q6Nd0I=" - }, - "power": "100", - "name": "" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "Go9GXHI6SCQo2QKMxkAkgYLhfo3XrVjWLR2nE2AvYyk=" - }, - "power": "100", - "name": "" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "P9RgE4RMQT/aHap2oICpwpgKeBAwxPUwuU9zIffKFNM=" - }, - "power": "100", - "name": "" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "1+EkFYvTDmz4WQRbK+kznRHoaZVLludtkDrMuM6h++E=" - }, - "power": "100", - "name": "" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "QEMDwUVoyJT7MNfOYKa25xU+Lnsz/ciH8rFUri4diLI=" - }, - "power": "100", - "name": "" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "lUMCRAeu47BsOhNvCQTQJQeB68z0/VaElC9j5gDt9y8=" - }, - "power": "100", - "name": "" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "VnAr7ZIjvUXpWmzbkt8skHp0oRNc3V89SfvgaZydwfw=" - }, - "power": "100", - "name": "" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "u4GEbsk9IEF56V1am5dRtAWXz4iFQkO03FVL87BZXIM=" - }, - "power": "100", - "name": "" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "BaaCxmYHKJ6obIzTCdRtjw1cc8d2mUJcMbLWCjf1aLo=" - }, - "power": "100", - "name": "" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "N3K5kDdfcKJurfaa6s2zfKgtYvz1Pagz7VWi9ZfX8yM=" - }, - "power": "100", - "name": "" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "DsTbM0AgHfhSUKvOGkxudDOY3ojYT6bifhpelqHs8+s=" - }, - "power": "100", - "name": "" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "j9be+ddLChInrFz6/820/uYh4WZBzlp61klyJBDy/ZY=" - }, - "power": "100", - "name": "" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "Xi7nIgj4PqVXrpKLfJhcyxyVY1d3HRo72sKKPDmuU78=" - }, - "power": "100", - "name": "" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "2p8s/pRBZPjYWKKMlR7AOXypDzDmPo762iXlKpCwtco=" - }, - "power": "100", - "name": "" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "nsofE1FmSr1TiDR0gfnxfMDQ8o2pC+1NE7Oa9ceztSg=" - }, - "power": "100", - "name": "" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "WvmTBjsCN4ueGpEdySRwsRC5knBRLfY439/e4mG+YAY=" - }, - "power": "100", - "name": "" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "c0i2uKsYBv8fubnI60lZIWA1y4zw1bFgsq5MmWBHKak=" - }, - "power": "100", - "name": "" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "AJR2ex094A1nJEWQsZYjALWsrSl1/huGZ37z2ZsMrpg=" - }, - "power": "100", - "name": "" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "LSDd6ab46sHxwJSrg5YLpsPG2o6EcsZ3rDikpHzMNmI=" - }, - "power": "100", - "name": "" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "dnFjFoTM9sP/RjQkXBK1YpYn3v5W+j0+g/OfUHS4xu8=" - }, - "power": "100", - "name": "" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "L0I4JoDfktbDWe0fCDL/nQlBPkF5mNgqamnM5JKJ1Uc=" - }, - "power": "100", - "name": "" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "dPpZD53AbAMtW6sK+rTnXYe2GGGoSCNWsCtsmArLiIs=" - }, - "power": "100", - "name": "" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "VakMQSPBEuSC9Nwuv8WWhrZVUmH31bUR4+G6pJhkgE8=" - }, - "power": "100", - "name": "" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "KI+kCESWD9cB8se4uxRrFVAI5viyNNUXUyMCc903yQc=" - }, - "power": "100", - "name": "" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "8Qu1LFMt7qlZNmYQWrsXUA80aIx0rrFPPXs2s6NBdU8=" - }, - "power": "100", - "name": "" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "WRsXnLz3gf8o4lYYeCZjAXgPU1cdmOOYPdy7aY63iIA=" - }, - "power": "100", - "name": "" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "R/3f7VruxWpu+2hiHlVpplTwoOou5kfQI1k/6/9H/y8=" - }, - "power": "100", - "name": "" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "HjSC7VkhKih6xMhudlqfaFE8ZZnP8RKJPv4iqR7RhcE=" - }, - "power": "100", - "name": "" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "cLM/HeUFsXlnYnYod695u6NBDS0trMq8sVRdABnF7uc=" - }, - "power": "100", - "name": "" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "Epd2FDKZwDybzT38Z7WB0y2jiLn9/2OLzmY3Zu18l6I=" - }, - "power": "100", - "name": "" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "ENAVynNXVpj/IdYx9kCPKaPs4bWSxRIHNlmS9QiDuZQ=" - }, - "power": "100", - "name": "" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "j2w5BFOnZTrPN4SFpmQyfRomnUwbEbz1A+kr3z1icjo=" - }, - "power": "100", - "name": "" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "I2ILaY31gonxYQhlIk4PFUIN+Pk7+9dDTK1C/s+Vcb0=" - }, - "power": "100", - "name": "" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "3wRufybSUsTMnUeQkP74uJNDRKeM8jBLAS64T0BRfpY=" - }, - "power": "100", - "name": "" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "2gOiMAdnIdND4cA75E7naQdyyIYDAdcjF3uO6OiEZlU=" - }, - "power": "100", - "name": "" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "2S8Y/vnLM3W+MYxNCxcUItIBfdZL/T4A8vRg89n0wLg=" - }, - "power": "100", - "name": "" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "kol7Gj60Fct4X8T1rHLJQ0z/b14UqqSae8h1e37rLL8=" - }, - "power": "100", - "name": "" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "UBTju7UZfXLVPPYb1a8gPZ69BeCv2Fho7YVo2EUbxKc=" - }, - "power": "100", - "name": "" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "0HqB2x6x5HzeozpHatePECw07x1UcDdSz8kQGNznnA8=" - }, - "power": "100", - "name": "" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "H0SIA/BU6Xj8oT5bQkvLpEITN3CqFLbMeBcQ72NZrAE=" - }, - "power": "100", - "name": "" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "Xnh8TL3BbIs9VTUenmnx6r2UAHpGCj3G9FV0mzc+mU4=" - }, - "power": "100", - "name": "" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "X62YB48gO2SsWGnjYxH+aGfLQcjnP+T0hnErdWZ859g=" - }, - "power": "100", - "name": "" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "8pfpbIxBBiu88hpxS3CeRpv7kClEjl8SwVgckDNBGlE=" - }, - "power": "100", - "name": "" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "UuxXNPImsE5Wp+utGfJywZBHuuGE4RmL0CArc6td82w=" - }, - "power": "100", - "name": "" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "Sl3NKLaYEgDaovqTkKVZh2ihRFbSmyVjC63wpv3ecdc=" - }, - "power": "100", - "name": "" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "SYjCs2AlY04xdfJGPD+gyO9NZ/zQ0Lfb/TLrjgOLS68=" - }, - "power": "100", - "name": "" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "oI1+4FoeI/knjsjDyCJtgZPaeyKON8tCTcM9QX0BHa8=" - }, - "power": "100", - "name": "" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "nts1nu73aBgIdSaYye4coIuE1iBNeCuTZZC8LQ37ac8=" - }, - "power": "100", - "name": "" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "NQX4yKpOztKrmgBhGIC5WOALOLOq3LTpbzsN4ZLXGec=" - }, - "power": "100", - "name": "" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "BB4a/Xh5z+dkGCRlF+pSGC3iDOoDrFse/xzQAtmxMF4=" - }, - "power": "100", - "name": "" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "ydjx2ea+PVuChrny6X2dluJwyXta+BsNQRsgHXp8fXw=" - }, - "power": "100", - "name": "" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "pPGLc4NhNaehdoV2antWuyr0GmBVEG1NhD9NiSRrTi0=" - }, - "power": "100", - "name": "" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "VBVHOLnWGptY26J0wqXoZI2Dnu96pccMb08zlsaxPCQ=" - }, - "power": "100", - "name": "" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "aUViYC2znC55sleHfmsIN9hZ45SbYPbDcYA0gVzglsc=" - }, - "power": "100", - "name": "" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "riYrMXBFLavmf4MU/Ly7emDlciVqfB2/zxJoRsBUlfY=" - }, - "power": "100", - "name": "" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "F2wCn9rKafNZsYZwoLGkSQIpr3rk86cjYyuhSjsjRaE=" - }, - "power": "100", - "name": "" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "ugb3W6W7WL9Vc4KiSBWIaowBfpqJlzbfBSfrIqZW06A=" - }, - "power": "100", - "name": "" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "gJDxhwAE6GeGCKQeVaNZ5is7+7MFHXtOG0UsnguKdoA=" - }, - "power": "100", - "name": "" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "b9RSkt+WmMxVHQExQH0IMPpnR9zDAaJwz/mv1gtyRVY=" - }, - "power": "100", - "name": "smartpesa" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "569Sb+Wpo8VFqXRi4cQhlOD9kS8uBgmJ2rntY3GLtzY=" - }, - "power": "100", - "name": "" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "SNwrT1B+A4g6TY7x0QzVrmVbcbl3cHXzXdD1tFHxLNo=" - }, - "power": "100", - "name": "" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "K4kLogLtZxqrYSqRVJfrFm9tUG+Tc3QWXWIewnAgI9w=" - }, - "power": "100", - "name": "" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "TwzOJ4GcN+ZTswub4R8488SrKeWXjY/PaqCF5neXJig=" - }, - "power": "100", - "name": "" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "JXW8iTiWG28E05ZFJIKvCOBwI2RrH/BOBL/MluTZ6+I=" - }, - "power": "100", - "name": "" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "A3zUdVcpj4H+HRZmRW5xixj4dzMgqD7be9GrdXcjdns=" - }, - "power": "100", - "name": "" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "7RhnD9OAZEJ4SV6V3LOZ1gGWubtX25457wCQq+AYYPI=" - }, - "power": "100", - "name": "" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "66j9af4xDJSblMLS+mFbp7d8TaFGu0FOo+0MwEYm2lE=" - }, - "power": "100", - "name": "" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "8DScmobjJQmkN44K2xiZkESM/O9MJK/DqlggnIPLpso=" - }, - "power": "100", - "name": "" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "4JoJuRfaANhdM1x3AWRo1/Cj9DH3VA+fi1SynzknV+w=" - }, - "power": "100", - "name": "" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "cCoFsZzKZ9SQZbHe4NueVObIezP6ts0tRTZ/aN96dig=" - }, - "power": "100", - "name": "" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "Zp4tk/ieqplJF8xMeef9HV8bYpHSY+3hJ2sH7PfCX1I=" - }, - "power": "100", - "name": "" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "jj0Y/Fy8JSJR3g+PHU6Ce0ecYwHGUVJ4bVyR7WwcyLI=" - }, - "power": "100", - "name": "" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "XQDVMXja3kFk5Jb47BsqJmzcDsM4lE9+r+f/J3O5Jms=" - }, - "power": "100", - "name": "" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "oL/QCr7LEOivyTqpGrmwVd1r+hYI2WB5+kSVzpDMxx4=" - }, - "power": "100", - "name": "" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "eeImG09hOPo1W7j7lKepN/Lx6I9GGHqVBVEKmznxACc=" - }, - "power": "100", - "name": "" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "Abws3eXrUFAH8LeZJIcECakPL945TTmFsBlXONOUeII=" - }, - "power": "100", - "name": "" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "PEg/D54SoiKZ+pic0Z0RzZa/vfYNAAf4kzSc5UKXDYk=" - }, - "power": "100", - "name": "" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "omAzuJps8KX3/iOC1LjwkMPMH3c6tjfLXwCNWXRBdWw=" - }, - "power": "100", - "name": "" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "nctikQSpoLRl5kV6KarIS761QvEOZCWw6nvc48xWhic=" - }, - "power": "100", - "name": "" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "NrTRAbZnBqJpW9lRW6LxXxE7EV++y7WiIRV0ifRLovA=" - }, - "power": "100", - "name": "" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "W0rP8sv4Ae/LZOqlBA9evvYARDt79WpFaI26jw/9Tfk=" - }, - "power": "100", - "name": "" - }, - { - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "JdfJDlE46456GWp+AkSZhzlkUQI41f8aX7611oiWUSc=" - }, - "power": "100", - "name": "" - } - ], - "app_hash": "", - "app_state": { - "accounts": [ - { - "address": "cosmosaccaddr1c2dkaym4teqw6jl9jkq8eu8nf4wzn2lgf4ydyt", - "coins": [ - { - "denom": "faucetToken", - "amount": "10000000" - }, - { - "denom": "steak", - "amount": "10000000" - } - ] - }, - { - "address": "cosmosaccaddr157mg9hnhchfrqvk3enrvmvj29yhmlwf759xrgw", - "coins": [ - { - "denom": "jlandrewsToken", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr193vn0gk3nsmjkxwz78gce8e8mkmagmvulpg5jt", - "coins": [ - { - "denom": "jackToken", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr16rcrnftjyl2mctz78825ng8tx5ss22jf6jcp9l", - "coins": [ - { - "denom": "luigi001Token", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr1shuqhpl273t96yg6nnqvyfeewj3ew3mdcwvcnu", - "coins": [ - { - "denom": "irisToken", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr1syhzpjwx6vv3erv2myq7txrjhrp95hrhgcl242", - "coins": [ - { - "denom": "TropicalMongoXToken", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr1uga4nuresex5u8ajjh2pcr39l0s9hszdkp843j", - "coins": [ - { - "denom": "wingmanToken", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr12wnqvqg79s9jqrul0lva3h72rfmewm7jprrcp5", - "coins": [ - { - "denom": "Nemea7000Token", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr1lq0mvtgnwe8mp0096un0v8ztcsj8ad92t2cwrq", - "coins": [ - { - "denom": "infinite-castingToken", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr14e774gfzt5l9ka766ehfgu6n5hgy9f3sehzyv8", - "coins": [ - { - "denom": "cwgoesToken", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr164jntjfk9zs8x29mc27qansfwvjqs60gj6ermu", - "coins": [ - { - "denom": "lunamintToken", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr1qkc3tghc3fms7eye7vtu0g0370epr4jkje2ne7", - "coins": [ - { - "denom": "skoed-validator-7000Token", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr18m09d56pg5p2660de4sjfezpd8ud6jfghndfnt", - "coins": [ - { - "denom": "starfishToken", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr1k9pqxd8fxqlk52uwfxnlsexqj6xnmw5swhss45", - "coins": [ - { - "denom": "jjangg96Token", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr13q937pwglh24knwa2v23ml0kkpl9vwzjmfmj3q", - "coins": [ - { - "denom": "iaspirationiToken", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr1xvt4e7xd0j9dwv2w83g50tpcltsl90h5dfnz6h", - "coins": [ - { - "denom": "21e800Token", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr1nnyel6v0kx8zmfh9edmre3ua4dt9306cfxsxgd", - "coins": [ - { - "denom": "spptest1Token", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr13cds7hwqyq9ja2hsv4sg7glq9arlk43gcl3cek", - "coins": [ - { - "denom": "windmillToken", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr1y2z20pwqu5qpclque3pqkguruvheum2djtzjw3", - "coins": [ - { - "denom": "pbostrom/Mythos-1Token", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr1anuuffusmq5ng3rhlndhnacy45et30jqygtn67", - "coins": [ - { - "denom": "BarytToken", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr1wk0t6na230vxhf6ddresw2c40k5y3ayrww0s2m", - "coins": [ - { - "denom": "P2P.ORG ValidatorToken", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr12pn4p6r5wjpsep9kn655ng7fh59yez7t0rahru", - "coins": [ - { - "denom": "oleary-labsToken", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr15rrxdflhq4744qt9m5ysstq3zpykhacf908eez", - "coins": [ - { - "denom": "wancloudsentryToken", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr17rqsh3fw6rehnwzarz90jkqtt5fupmh50gy556", - "coins": [ - { - "denom": "space4Token", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr1g4q87u438qdh2c8ue4dzdr9ldrqrs77ptm9c70", - "coins": [ - { - "denom": "colony-finderToken", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr1dq7jt3pn7mrce2twac907jue7hjd0p0rgt3qnq", - "coins": [ - { - "denom": "sparkpool-validator-02Token", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr1gg6natrtt5lf02xwr06ujcczvavl54wgljuaut", - "coins": [ - { - "denom": "mining-shipToken", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr1zds6r7jyxyxcpf05r5yyyy3u8q2rvj9kkc6vcv", - "coins": [ - { - "denom": "StakedToken", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr1l0qw5znfd6e8pshpjvyghjjzyr4l6ymla080lt", - "coins": [ - { - "denom": "nyliraToken", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr1rxxcpkmsngd0azkh3n2467m66ls4rwq52yuv27", - "coins": [ - { - "denom": "liangpingToken", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr1jsch8k385shvse6j5dfx20483qym5uhq76xpjf", - "coins": [ - { - "denom": "SVNode01Token", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr19uhnhct0p45ek6qxp3cjjrjtz4pacwcsgzvpuj", - "coins": [ - { - "denom": "vhxnode1Token", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr1gghhdtx2sceafvgg8dry5sqrvc8srxghm4qqsy", - "coins": [ - { - "denom": "gregToken", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr1cyayv35tv47t829mel6jm0vqzmrdhf3jq87tqg", - "coins": [ - { - "denom": "bucksterToken", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr126ayk3hse5zvk9gxfmpsjr9565ef72pv9g20yx", - "coins": [ - { - "denom": "grass-fedToken", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr1fskmzyt2hr8usr3s65dq3rfur3fy6g2hjp23tm", - "coins": [ - { - "denom": "ATEAM1Token", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr1lhjta6nt0lewj05m8444tuyhalkrffgpm7njpp", - "coins": [ - { - "denom": "BFF-Validator-7000Token", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr1pm0gx3lk46gf8vyj5my9w5tk06cuq66ll77ugj", - "coins": [ - { - "denom": "redbricks7000Token", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr15w2rengajq9js8hu57kjw88dly5vy7gsqedn0n", - "coins": [ - { - "denom": "kittyfishToken", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr10505nl7yftsme9jk2glhjhta7w0475uva87paj", - "coins": [ - { - "denom": "ForboleToken", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr18z3pnjgdtt337z8g5drfts7r3fm6n9a0896h0r", - "coins": [ - { - "denom": "coinoneToken", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr1vmdgku2g0n5p2ef995r4fugu99ze9e5me9kh4d", - "coins": [ - { - "denom": "bmen-companyToken", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr1j2frwt2vq2xer7f060wpsu3y3f63uys2w9lx2e", - "coins": [ - { - "denom": "2400bpsToken", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr1whxd48da3r56n8eecym8zg0c6xmf35fn2myart", - "coins": [ - { - "denom": "devToken", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr1jkmn6asju47zuuzrf8rjt7sllaj5cx4kueyv8p", - "coins": [ - { - "denom": "w1m3lToken", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr120skmenn2a0ra8y6zassrxvnfc5rlme8rqarvs", - "coins": [ - { - "denom": "aetherToken", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr1jtt6al0acr8h0uvq489rt9zx9lnau7rlcu30pt", - "coins": [ - { - "denom": "JColToken", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr135dz5hdtvk3z8vl0zyy5l223kjanv0gudu4905", - "coins": [ - { - "denom": "SaiKrishnaToken", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr182ujqw3r8p5fffjqkf0rxzj29pg5q96nxd2khq", - "coins": [ - { - "denom": "UmbrellaToken", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr1qrc3ed8tnz6vc24ftmnht8efs5ufhjmrjkds4x", - "coins": [ - { - "denom": "@MarceldeveloperToken", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr1swydkj5u3jd4jwe7uygu4479zgs4qg6v4ds3c9", - "coins": [ - { - "denom": "stereo-watcherToken", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr1l9jt8xgejkcm4sulhwj8c83ftprz5p9lyq4605", - "coins": [ - { - "denom": "cosmosToken", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr128ty3kzhcepjacu4q0xjgq60qa3zz8na3jl793", - "coins": [ - { - "denom": "stake.zoneToken", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr1e3qm8jd9357zhdemwnaafmf0wy3f4yqmd307c2", - "coins": [ - { - "denom": "firstblock.ioToken", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr18wfz5vj26y079surms5sm6avjtezzspfvqs6g4", - "coins": [ - { - "denom": "shensiToken", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr1vrc7zpg5teawwuzkfh6t7c6sy353sukhlarxpa", - "coins": [ - { - "denom": "figmentToken", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr1umaajfgap5ef6yxvk5706kwk8j08l7wh6h9fp2", - "coins": [ - { - "denom": "iqlusionToken", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr1670l5up6e5fddvlc027yvvlvedrzyx0mmsl622", - "coins": [ - { - "denom": "cosmosthecatToken", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr1wx33m9dvglryga0saey0pr99ja0klhcfrwaw7l", - "coins": [ - { - "denom": "snaticoToken", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr15u9ve7fz8fqaf7r2u3p4f9ru4ze47pau5cxgcg", - "coins": [ - { - "denom": "mpaxeNodeToken", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr1h4q0xkdg30cl9vw0u8ejm0rs337dszy98gnd4a", - "coins": [ - { - "denom": "joltz-secureware.ioToken", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr12zpkulxv7kn59sgf0tpf24qhqzxsvf3gamkl7g", - "coins": [ - { - "denom": "mwnode1Token", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr1g6sc5t9t68vmcj3alk7dfqr54tvastpxac28k6", - "coins": [ - { - "denom": "VNode01Token", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr1jck6gp4mqy33sk6a0fr5c8maq53hf4245v3mgg", - "coins": [ - { - "denom": "7768Token", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr1jh3grawl62juvx5p8fz5xsy9hpw8w3mngqafe4", - "coins": [ - { - "denom": "block3.communityToken", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr17nlusdvrk34fq65jemy3umfjfwaxfzv4asyl60", - "coins": [ - { - "denom": "4455Token", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr18u2sqnuetfnkugp59e9pgyv2dpuvkkxmmsc7m8", - "coins": [ - { - "denom": "dooroomeeToken", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr1xdp4pls4ryvchq2n8v0cpmtwsprvyh8wvg563q", - "coins": [ - { - "denom": "sheiudToken", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr1pmntq5en2rgtr5rzr4e304efrve4lr43z32y5s", - "coins": [ - { - "denom": "Staking Facilities ValidatorToken", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr197p65z7ge5g55r68thvw4l5e43gnm70jhu5g75", - "coins": [ - { - "denom": "ritter-rammToken", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr15klp8pypkd8htppzt6pguej57yyvp5p442khcu", - "coins": [ - { - "denom": "meteor-discoverToken", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr1jsvgewy7h62v3q43m0l347wlcwyhd4un5q8aa3", - "coins": [ - { - "denom": "COSMODROMEToken", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr192yhf7f7f9304cy6cu6np3r8a3m9yqzqfeu9je", - "coins": [ - { - "denom": "broadleaf7000Token", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr1pag7xgpl8njlaksvp2ur5un3htg85vcrxcp5rs", - "coins": [ - { - "denom": "ravenclubToken", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr1p56gv748xfd74qek5e637vhcr6tyjd9ukqfecc", - "coins": [ - { - "denom": "dokia-capitalToken", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr1kwftgznylzerft2ksgkzvvfn5rfpy4nk2ye8na", - "coins": [ - { - "denom": "chainflow08Token", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr1rj74vaqm0xkxl5cjjam63mayh4x6at3m379ulv", - "coins": [ - { - "denom": "MiaToken", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr1zpx36km7tk5cksyzxgvcp6g552p3uhwx84r53q", - "coins": [ - { - "denom": "sikka.techToken", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr1gq0qecxs8xdaarrqxxazwavwxm7qz5jzs5anvt", - "coins": [ - { - "denom": "certus.oneToken", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr1cypmdvszcd9kd3jenmqxd03cpceql8rtuvxftp", - "coins": [ - { - "denom": "Gold2Token", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr1klslzz2n2nqvdaa6gwflwpka7gc60vvmh3k450", - "coins": [ - { - "denom": "idoor7000Token", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr1qkllv8f6qakkw3hk9dqvytys090lk6twsyv8vf", - "coins": [ - { - "denom": "ironforkToken", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr1wf9nug554ugpw4t0wnlppxc6crl2n02qr8v3cd", - "coins": [ - { - "denom": "sunny-mintorToken", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr1t3afuz2kt99jz4pe5k4vjvkdmldn2x0lqzv83w", - "coins": [ - { - "denom": "BlissDynamicsToken", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr14zfph0h8rexsca6gg6jkwqup3sgl6mwj6eu4e6", - "coins": [ - { - "denom": "smartpesaToken", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr1998p0xkdwvul952ydavnx88tmwkhlfa0vhrngj", - "coins": [ - { - "denom": "ianstreamToken", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr1jw554408yw2h438q200jyuqgln76xh4ax0q4s0", - "coins": [ - { - "denom": "TruNodeToken", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr1mwmcpq5nhaen8zyy86mrrept2gmp0z5peapkhu", - "coins": [ - { - "denom": "abcinToken", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr1emaa7mwgpnpmc7yptm728ytp9quamsvu9rk4hp", - "coins": [ - { - "denom": "kochacolajToken", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr1tq0zwzyc88l2enrlhtzw0he8rm24xfd5s9aeer", - "coins": [ - { - "denom": "D2R-validator-7000Token", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr1n9qsfp3x09rhhxptzrgmdlucqhg2ce95fm3fw8", - "coins": [ - { - "denom": "juelianshanaToken", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr1sqec04r28jfevkzfkdj4ql2qzr2zwrmg78qzj8", - "coins": [ - { - "denom": "lambda-mixerToken", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr1hfygmryre7r8m9pfqmc85y7kw7ejphmp59k2x8", - "coins": [ - { - "denom": "bkcmToken", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr1jvh448tvk368k4md83ys7auledclek0vfpckz2", - "coins": [ - { - "denom": "ramihanToken", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr1fhfcs5npydv8s96wrk9p5ychctslu92t4n5qd4", - "coins": [ - { - "denom": "davinchcodeToken", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr1eg88jsn38mrael6cqu7d2u8j6dynya7fv2p2tl", - "coins": [ - { - "denom": "DoriToken", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr1ukcuqpqw3eq505wkqd2adgn8ugewxr6jtakngs", - "coins": [ - { - "denom": "daefreecaToken", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr1na3wr7ujdp3qdej6l5y0k4znzrkaz77t2yjaqf", - "coins": [ - { - "denom": "nuevaxToken", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr1xupfqk73y7rmc6qdgv7rtjy8wsngvt2g2t59t3", - "coins": [ - { - "denom": "inschain_validatorToken", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr17gvlvfpsfl6hffn5u2hahk22un4ynpykc44tat", - "coins": [ - { - "denom": "gruberxToken", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr1yfseqtj5sjhzz2q2ym09jym4h4nc4yevae0jp2", - "coins": [ - { - "denom": "meleatrustToken", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr1yd0rklq45zg89fywr89ccutlcwp9kehhh0z03k", - "coins": [ - { - "denom": "Cosmodator-7000Token", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr1arlpxs2ftf5hgetqxxkvd7mqdc28mmaqclyv4y", - "coins": [ - { - "denom": "bharvestToken", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr12ceualfg92x7du73mtcv0zya4nxvq3tl2m52uz", - "coins": [ - { - "denom": "cryptiumToken", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr1wxf0ck9h2e8p2wmecxtep6cefhexsp4kzc8fxy", - "coins": [ - { - "denom": "finalityToken", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr1pzlud6lg8w9phcwetc5aqp24eflshtv4xlxthf", - "coins": [ - { - "denom": "coscloudToken", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr10qp8kqwm2cuql0hw2az5mngpmw5xm9ee32exlp", - "coins": [ - { - "denom": "xiaochinaToken", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - }, - { - "address": "cosmosaccaddr14dwnmm6n7tjdpeylpwsdsatdl0umm75dfkqcpa", - "coins": [ - { - "denom": "gazua1Token", - "amount": "1000" - }, - { - "denom": "steak", - "amount": "50" - } - ] - } - ], - "stake": { - "pool": { - "loose_tokens": "16050", - "bonded_tokens": "0", - "inflation_last_time": "0", - "inflation": "7/100", - "date_last_commission_reset": "0", - "prev_bonded_shares": "0" - }, - "params": { - "inflation_rate_change": "13/100", - "inflation_max": "1/5", - "inflation_min": "7/100", - "goal_bonded": "67/100", - "unbonding_time": "86400", - "max_validators": 128, - "bond_denom": "steak" - }, - "validators": [ - { - "owner": "cosmosaccaddr157mg9hnhchfrqvk3enrvmvj29yhmlwf759xrgw", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "MRCeBDANSjH6IsxO0z6tRe+xqoZvIGhdfl1t+SXGUpM=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "jlandrews", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr193vn0gk3nsmjkxwz78gce8e8mkmagmvulpg5jt", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "tOEqjO2t51PEgO9Tv0B7qM0yPmy1n5tMa3Beg0tp3ns=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "jack", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr16rcrnftjyl2mctz78825ng8tx5ss22jf6jcp9l", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "S8s6fdAQNQ3bN9SNVAsHB/j8uv1CM1roxeLesL+fh4g=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "luigi001", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr1shuqhpl273t96yg6nnqvyfeewj3ew3mdcwvcnu", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "2JoNf1gavJ1d6XFIumO1Mki5GVMOcg58AioHksU3maE=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "iris", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr1syhzpjwx6vv3erv2myq7txrjhrp95hrhgcl242", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "k3YLQYEN2QMP6XITRsBmgb+pNGhJ5Jbg0bzUW977kK0=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "TropicalMongoX", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr1uga4nuresex5u8ajjh2pcr39l0s9hszdkp843j", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "EREUrXXl1OJqLQag0P4h6vJ2H+8GEwyNAjgn1XEJU+I=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "wingman", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr12wnqvqg79s9jqrul0lva3h72rfmewm7jprrcp5", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "heNintBalqaJwCOjLb9+mX/cQ1ytMlV7ZroPIlkwZqo=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "Nemea7000", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr1lq0mvtgnwe8mp0096un0v8ztcsj8ad92t2cwrq", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "nb2oRB12DlEQkFn7KSjSVkj5rDoSTsuBFa09+gmNJ7o=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "infinite-casting", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr14e774gfzt5l9ka766ehfgu6n5hgy9f3sehzyv8", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "bZSEBDNIOr0xJ/PxaAScJIyG6hqFtryBAMNwghAOTTU=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "cwgoes", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr164jntjfk9zs8x29mc27qansfwvjqs60gj6ermu", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "8K3clCjVU33BTIpUhdahGmu++WxHj4NUE9krCRkk++s=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "lunamint", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr1qkc3tghc3fms7eye7vtu0g0370epr4jkje2ne7", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "RBuRRNEzA9RA1Wrdi9PPFQJ29/n/bqN9O2tQv9Gq248=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "skoed-validator-7000", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr18m09d56pg5p2660de4sjfezpd8ud6jfghndfnt", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "RwPRoiY5C0covekqbr3VrQwxWGHioUUIf2+TOq8LIC0=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "starfish", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr1k9pqxd8fxqlk52uwfxnlsexqj6xnmw5swhss45", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "2qtEBT+Tc+SD2wJsdrVMHXrBKfvesxtmtSKDK5fXwA0=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "jjangg96", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr13q937pwglh24knwa2v23ml0kkpl9vwzjmfmj3q", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "gU5mmVLUSzn/fIEMgiiB4LARRoWlqjUGHr3A4SndWO8=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "iaspirationi", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr1xvt4e7xd0j9dwv2w83g50tpcltsl90h5dfnz6h", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "xlO2cnii42KisAn8OcstC/3XV5+I0FlcSbWuyy5MVA8=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "21e800", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr1nnyel6v0kx8zmfh9edmre3ua4dt9306cfxsxgd", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "q5ezDn4DcWFPWvMayPJI35nXr//jjF8fGHsuiHjpDcU=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "spptest1", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr13cds7hwqyq9ja2hsv4sg7glq9arlk43gcl3cek", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "PSqbJOwglJb1yrj3aWebBpXb2ujXcR037s1Cyj2HoW4=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "windmill", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr1y2z20pwqu5qpclque3pqkguruvheum2djtzjw3", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "A6GzeXUM3vsXaDAEYMSDgSKkqn9AoUYjs8empH46MGY=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "pbostrom/Mythos-1", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr1anuuffusmq5ng3rhlndhnacy45et30jqygtn67", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "81fx09BivOOxeGL7QisF8aKRZjjcARpiSaCOX9mJfY8=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "Baryt", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr1wk0t6na230vxhf6ddresw2c40k5y3ayrww0s2m", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "UjTvuOew2EaooduJBiYmBWeF5ai0yFJG8uio5YXpJgg=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "P2P.ORG Validator", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr12pn4p6r5wjpsep9kn655ng7fh59yez7t0rahru", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "y7p9JSVZBnRxjAI9v5Pxl37hMtyuHf6B4Ghqzm6+ii0=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "oleary-labs", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr15rrxdflhq4744qt9m5ysstq3zpykhacf908eez", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "oG8Q5o+SN4wqMLvlIfVgQPnsQzNEKeH0D/XGM8JlGrY=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "wancloudsentry", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr17rqsh3fw6rehnwzarz90jkqtt5fupmh50gy556", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "PxJbo5FKA6mXtgwclRQVNIjOCQK3Q7WkLQrvM9lYbGI=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "space4", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr1g4q87u438qdh2c8ue4dzdr9ldrqrs77ptm9c70", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "Q/UShqqVDOUSNYBrR1G/1X1s+YXEVXEJzeXmYvfYIr0=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "colony-finder", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr1dq7jt3pn7mrce2twac907jue7hjd0p0rgt3qnq", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "uEWWDBwFW+/BpTCvNCLW7AP98hndBukzSbrwCb7sooo=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "sparkpool-validator-02", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr1gg6natrtt5lf02xwr06ujcczvavl54wgljuaut", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "MZi48DJZOgRbE0ZStR66omv6Ez1Wkjvf2D/41q6Nd0I=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "mining-ship", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr1zds6r7jyxyxcpf05r5yyyy3u8q2rvj9kkc6vcv", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "Go9GXHI6SCQo2QKMxkAkgYLhfo3XrVjWLR2nE2AvYyk=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "Staked", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr1l0qw5znfd6e8pshpjvyghjjzyr4l6ymla080lt", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "P9RgE4RMQT/aHap2oICpwpgKeBAwxPUwuU9zIffKFNM=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "nylira", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr1rxxcpkmsngd0azkh3n2467m66ls4rwq52yuv27", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "1+EkFYvTDmz4WQRbK+kznRHoaZVLludtkDrMuM6h++E=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "liangping", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr1jsch8k385shvse6j5dfx20483qym5uhq76xpjf", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "QEMDwUVoyJT7MNfOYKa25xU+Lnsz/ciH8rFUri4diLI=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "SVNode01", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr19uhnhct0p45ek6qxp3cjjrjtz4pacwcsgzvpuj", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "lUMCRAeu47BsOhNvCQTQJQeB68z0/VaElC9j5gDt9y8=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "vhxnode1", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr1gghhdtx2sceafvgg8dry5sqrvc8srxghm4qqsy", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "VnAr7ZIjvUXpWmzbkt8skHp0oRNc3V89SfvgaZydwfw=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "greg", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr1cyayv35tv47t829mel6jm0vqzmrdhf3jq87tqg", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "u4GEbsk9IEF56V1am5dRtAWXz4iFQkO03FVL87BZXIM=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "buckster", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr126ayk3hse5zvk9gxfmpsjr9565ef72pv9g20yx", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "BaaCxmYHKJ6obIzTCdRtjw1cc8d2mUJcMbLWCjf1aLo=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "grass-fed", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr1fskmzyt2hr8usr3s65dq3rfur3fy6g2hjp23tm", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "N3K5kDdfcKJurfaa6s2zfKgtYvz1Pagz7VWi9ZfX8yM=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "ATEAM1", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr1lhjta6nt0lewj05m8444tuyhalkrffgpm7njpp", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "DsTbM0AgHfhSUKvOGkxudDOY3ojYT6bifhpelqHs8+s=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "BFF-Validator-7000", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr1pm0gx3lk46gf8vyj5my9w5tk06cuq66ll77ugj", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "j9be+ddLChInrFz6/820/uYh4WZBzlp61klyJBDy/ZY=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "redbricks7000", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr15w2rengajq9js8hu57kjw88dly5vy7gsqedn0n", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "Xi7nIgj4PqVXrpKLfJhcyxyVY1d3HRo72sKKPDmuU78=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "kittyfish", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr10505nl7yftsme9jk2glhjhta7w0475uva87paj", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "2p8s/pRBZPjYWKKMlR7AOXypDzDmPo762iXlKpCwtco=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "Forbole", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr18z3pnjgdtt337z8g5drfts7r3fm6n9a0896h0r", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "nsofE1FmSr1TiDR0gfnxfMDQ8o2pC+1NE7Oa9ceztSg=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "coinone", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr1vmdgku2g0n5p2ef995r4fugu99ze9e5me9kh4d", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "WvmTBjsCN4ueGpEdySRwsRC5knBRLfY439/e4mG+YAY=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "bmen-company", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr1j2frwt2vq2xer7f060wpsu3y3f63uys2w9lx2e", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "c0i2uKsYBv8fubnI60lZIWA1y4zw1bFgsq5MmWBHKak=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "2400bps", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr1whxd48da3r56n8eecym8zg0c6xmf35fn2myart", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "AJR2ex094A1nJEWQsZYjALWsrSl1/huGZ37z2ZsMrpg=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "dev", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr1jkmn6asju47zuuzrf8rjt7sllaj5cx4kueyv8p", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "LSDd6ab46sHxwJSrg5YLpsPG2o6EcsZ3rDikpHzMNmI=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "w1m3l", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr120skmenn2a0ra8y6zassrxvnfc5rlme8rqarvs", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "dnFjFoTM9sP/RjQkXBK1YpYn3v5W+j0+g/OfUHS4xu8=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "aether", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr1jtt6al0acr8h0uvq489rt9zx9lnau7rlcu30pt", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "L0I4JoDfktbDWe0fCDL/nQlBPkF5mNgqamnM5JKJ1Uc=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "JCol", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr135dz5hdtvk3z8vl0zyy5l223kjanv0gudu4905", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "dPpZD53AbAMtW6sK+rTnXYe2GGGoSCNWsCtsmArLiIs=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "SaiKrishna", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr182ujqw3r8p5fffjqkf0rxzj29pg5q96nxd2khq", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "VakMQSPBEuSC9Nwuv8WWhrZVUmH31bUR4+G6pJhkgE8=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "Umbrella", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr1qrc3ed8tnz6vc24ftmnht8efs5ufhjmrjkds4x", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "KI+kCESWD9cB8se4uxRrFVAI5viyNNUXUyMCc903yQc=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "@Marceldeveloper", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr1swydkj5u3jd4jwe7uygu4479zgs4qg6v4ds3c9", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "8Qu1LFMt7qlZNmYQWrsXUA80aIx0rrFPPXs2s6NBdU8=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "stereo-watcher", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr1l9jt8xgejkcm4sulhwj8c83ftprz5p9lyq4605", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "WRsXnLz3gf8o4lYYeCZjAXgPU1cdmOOYPdy7aY63iIA=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "cosmos", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr128ty3kzhcepjacu4q0xjgq60qa3zz8na3jl793", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "R/3f7VruxWpu+2hiHlVpplTwoOou5kfQI1k/6/9H/y8=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "stake.zone", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr1e3qm8jd9357zhdemwnaafmf0wy3f4yqmd307c2", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "HjSC7VkhKih6xMhudlqfaFE8ZZnP8RKJPv4iqR7RhcE=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "firstblock.io", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr18wfz5vj26y079surms5sm6avjtezzspfvqs6g4", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "cLM/HeUFsXlnYnYod695u6NBDS0trMq8sVRdABnF7uc=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "shensi", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr1vrc7zpg5teawwuzkfh6t7c6sy353sukhlarxpa", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "Epd2FDKZwDybzT38Z7WB0y2jiLn9/2OLzmY3Zu18l6I=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "figment", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr1umaajfgap5ef6yxvk5706kwk8j08l7wh6h9fp2", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "ENAVynNXVpj/IdYx9kCPKaPs4bWSxRIHNlmS9QiDuZQ=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "iqlusion", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr1670l5up6e5fddvlc027yvvlvedrzyx0mmsl622", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "j2w5BFOnZTrPN4SFpmQyfRomnUwbEbz1A+kr3z1icjo=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "cosmosthecat", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr1wx33m9dvglryga0saey0pr99ja0klhcfrwaw7l", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "I2ILaY31gonxYQhlIk4PFUIN+Pk7+9dDTK1C/s+Vcb0=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "snatico", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr15u9ve7fz8fqaf7r2u3p4f9ru4ze47pau5cxgcg", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "3wRufybSUsTMnUeQkP74uJNDRKeM8jBLAS64T0BRfpY=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "mpaxeNode", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr1h4q0xkdg30cl9vw0u8ejm0rs337dszy98gnd4a", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "2gOiMAdnIdND4cA75E7naQdyyIYDAdcjF3uO6OiEZlU=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "joltz-secureware.io", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr12zpkulxv7kn59sgf0tpf24qhqzxsvf3gamkl7g", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "2S8Y/vnLM3W+MYxNCxcUItIBfdZL/T4A8vRg89n0wLg=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "mwnode1", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr1g6sc5t9t68vmcj3alk7dfqr54tvastpxac28k6", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "kol7Gj60Fct4X8T1rHLJQ0z/b14UqqSae8h1e37rLL8=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "VNode01", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr1jck6gp4mqy33sk6a0fr5c8maq53hf4245v3mgg", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "UBTju7UZfXLVPPYb1a8gPZ69BeCv2Fho7YVo2EUbxKc=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "7768", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr1jh3grawl62juvx5p8fz5xsy9hpw8w3mngqafe4", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "0HqB2x6x5HzeozpHatePECw07x1UcDdSz8kQGNznnA8=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "block3.community", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr17nlusdvrk34fq65jemy3umfjfwaxfzv4asyl60", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "H0SIA/BU6Xj8oT5bQkvLpEITN3CqFLbMeBcQ72NZrAE=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "4455", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr18u2sqnuetfnkugp59e9pgyv2dpuvkkxmmsc7m8", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "Xnh8TL3BbIs9VTUenmnx6r2UAHpGCj3G9FV0mzc+mU4=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "dooroomee", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr1xdp4pls4ryvchq2n8v0cpmtwsprvyh8wvg563q", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "X62YB48gO2SsWGnjYxH+aGfLQcjnP+T0hnErdWZ859g=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "sheiud", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr1pmntq5en2rgtr5rzr4e304efrve4lr43z32y5s", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "8pfpbIxBBiu88hpxS3CeRpv7kClEjl8SwVgckDNBGlE=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "Staking Facilities Validator", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr197p65z7ge5g55r68thvw4l5e43gnm70jhu5g75", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "UuxXNPImsE5Wp+utGfJywZBHuuGE4RmL0CArc6td82w=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "ritter-ramm", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr15klp8pypkd8htppzt6pguej57yyvp5p442khcu", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "Sl3NKLaYEgDaovqTkKVZh2ihRFbSmyVjC63wpv3ecdc=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "meteor-discover", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr1jsvgewy7h62v3q43m0l347wlcwyhd4un5q8aa3", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "SYjCs2AlY04xdfJGPD+gyO9NZ/zQ0Lfb/TLrjgOLS68=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "COSMODROME", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr192yhf7f7f9304cy6cu6np3r8a3m9yqzqfeu9je", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "oI1+4FoeI/knjsjDyCJtgZPaeyKON8tCTcM9QX0BHa8=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "broadleaf7000", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr1pag7xgpl8njlaksvp2ur5un3htg85vcrxcp5rs", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "nts1nu73aBgIdSaYye4coIuE1iBNeCuTZZC8LQ37ac8=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "ravenclub", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr1p56gv748xfd74qek5e637vhcr6tyjd9ukqfecc", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "NQX4yKpOztKrmgBhGIC5WOALOLOq3LTpbzsN4ZLXGec=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "dokia-capital", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr1kwftgznylzerft2ksgkzvvfn5rfpy4nk2ye8na", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "BB4a/Xh5z+dkGCRlF+pSGC3iDOoDrFse/xzQAtmxMF4=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "chainflow08", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr1rj74vaqm0xkxl5cjjam63mayh4x6at3m379ulv", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "ydjx2ea+PVuChrny6X2dluJwyXta+BsNQRsgHXp8fXw=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "Mia", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr1zpx36km7tk5cksyzxgvcp6g552p3uhwx84r53q", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "pPGLc4NhNaehdoV2antWuyr0GmBVEG1NhD9NiSRrTi0=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "sikka.tech", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr1gq0qecxs8xdaarrqxxazwavwxm7qz5jzs5anvt", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "VBVHOLnWGptY26J0wqXoZI2Dnu96pccMb08zlsaxPCQ=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "certus.one", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr1cypmdvszcd9kd3jenmqxd03cpceql8rtuvxftp", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "aUViYC2znC55sleHfmsIN9hZ45SbYPbDcYA0gVzglsc=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "Gold2", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr1klslzz2n2nqvdaa6gwflwpka7gc60vvmh3k450", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "riYrMXBFLavmf4MU/Ly7emDlciVqfB2/zxJoRsBUlfY=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "idoor7000", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr1qkllv8f6qakkw3hk9dqvytys090lk6twsyv8vf", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "F2wCn9rKafNZsYZwoLGkSQIpr3rk86cjYyuhSjsjRaE=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "ironfork", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr1wf9nug554ugpw4t0wnlppxc6crl2n02qr8v3cd", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "ugb3W6W7WL9Vc4KiSBWIaowBfpqJlzbfBSfrIqZW06A=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "sunny-mintor", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr1t3afuz2kt99jz4pe5k4vjvkdmldn2x0lqzv83w", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "gJDxhwAE6GeGCKQeVaNZ5is7+7MFHXtOG0UsnguKdoA=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "BlissDynamics", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr14zfph0h8rexsca6gg6jkwqup3sgl6mwj6eu4e6", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "b9RSkt+WmMxVHQExQH0IMPpnR9zDAaJwz/mv1gtyRVY=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "smartpesa", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr1998p0xkdwvul952ydavnx88tmwkhlfa0vhrngj", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "569Sb+Wpo8VFqXRi4cQhlOD9kS8uBgmJ2rntY3GLtzY=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "ianstream", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr1jw554408yw2h438q200jyuqgln76xh4ax0q4s0", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "SNwrT1B+A4g6TY7x0QzVrmVbcbl3cHXzXdD1tFHxLNo=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "TruNode", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr1mwmcpq5nhaen8zyy86mrrept2gmp0z5peapkhu", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "K4kLogLtZxqrYSqRVJfrFm9tUG+Tc3QWXWIewnAgI9w=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "abcin", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr1emaa7mwgpnpmc7yptm728ytp9quamsvu9rk4hp", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "TwzOJ4GcN+ZTswub4R8488SrKeWXjY/PaqCF5neXJig=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "kochacolaj", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr1tq0zwzyc88l2enrlhtzw0he8rm24xfd5s9aeer", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "JXW8iTiWG28E05ZFJIKvCOBwI2RrH/BOBL/MluTZ6+I=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "D2R-validator-7000", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr1n9qsfp3x09rhhxptzrgmdlucqhg2ce95fm3fw8", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "A3zUdVcpj4H+HRZmRW5xixj4dzMgqD7be9GrdXcjdns=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "juelianshana", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr1sqec04r28jfevkzfkdj4ql2qzr2zwrmg78qzj8", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "7RhnD9OAZEJ4SV6V3LOZ1gGWubtX25457wCQq+AYYPI=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "lambda-mixer", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr1hfygmryre7r8m9pfqmc85y7kw7ejphmp59k2x8", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "66j9af4xDJSblMLS+mFbp7d8TaFGu0FOo+0MwEYm2lE=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "bkcm", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr1jvh448tvk368k4md83ys7auledclek0vfpckz2", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "8DScmobjJQmkN44K2xiZkESM/O9MJK/DqlggnIPLpso=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "ramihan", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr1fhfcs5npydv8s96wrk9p5ychctslu92t4n5qd4", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "4JoJuRfaANhdM1x3AWRo1/Cj9DH3VA+fi1SynzknV+w=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "davinchcode", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr1eg88jsn38mrael6cqu7d2u8j6dynya7fv2p2tl", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "cCoFsZzKZ9SQZbHe4NueVObIezP6ts0tRTZ/aN96dig=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "Dori", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr1ukcuqpqw3eq505wkqd2adgn8ugewxr6jtakngs", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "Zp4tk/ieqplJF8xMeef9HV8bYpHSY+3hJ2sH7PfCX1I=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "daefreeca", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr1na3wr7ujdp3qdej6l5y0k4znzrkaz77t2yjaqf", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "jj0Y/Fy8JSJR3g+PHU6Ce0ecYwHGUVJ4bVyR7WwcyLI=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "nuevax", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr1xupfqk73y7rmc6qdgv7rtjy8wsngvt2g2t59t3", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "XQDVMXja3kFk5Jb47BsqJmzcDsM4lE9+r+f/J3O5Jms=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "inschain_validator", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr17gvlvfpsfl6hffn5u2hahk22un4ynpykc44tat", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "oL/QCr7LEOivyTqpGrmwVd1r+hYI2WB5+kSVzpDMxx4=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "gruberx", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr1yfseqtj5sjhzz2q2ym09jym4h4nc4yevae0jp2", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "eeImG09hOPo1W7j7lKepN/Lx6I9GGHqVBVEKmznxACc=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "meleatrust", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr1yd0rklq45zg89fywr89ccutlcwp9kehhh0z03k", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "Abws3eXrUFAH8LeZJIcECakPL945TTmFsBlXONOUeII=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "Cosmodator-7000", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr1arlpxs2ftf5hgetqxxkvd7mqdc28mmaqclyv4y", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "PEg/D54SoiKZ+pic0Z0RzZa/vfYNAAf4kzSc5UKXDYk=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "bharvest", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr12ceualfg92x7du73mtcv0zya4nxvq3tl2m52uz", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "omAzuJps8KX3/iOC1LjwkMPMH3c6tjfLXwCNWXRBdWw=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "Adrian Brink - Cryptium Labs", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr1wxf0ck9h2e8p2wmecxtep6cefhexsp4kzc8fxy", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "nctikQSpoLRl5kV6KarIS761QvEOZCWw6nvc48xWhic=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "finality", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr1pzlud6lg8w9phcwetc5aqp24eflshtv4xlxthf", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "NrTRAbZnBqJpW9lRW6LxXxE7EV++y7WiIRV0ifRLovA=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "coscloud", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr10qp8kqwm2cuql0hw2az5mngpmw5xm9ee32exlp", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "W0rP8sv4Ae/LZOqlBA9evvYARDt79WpFaI26jw/9Tfk=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "xiaochina", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - }, - { - "owner": "cosmosaccaddr14dwnmm6n7tjdpeylpwsdsatdl0umm75dfkqcpa", - "pub_key": { - "type": "tendermint/PubKeyEd25519", - "value": "JdfJDlE46456GWp+AkSZhzlkUQI41f8aX7611oiWUSc=" - }, - "revoked": false, - "status": 0, - "tokens": "100", - "delegator_shares": "100", - "description": { - "moniker": "gazua1", - "identity": "", - "website": "", - "details": "" - }, - "bond_height": "0", - "bond_intra_tx_counter": 0, - "proposer_reward_pool": [], - "commission": "0", - "commission_max": "0", - "commission_change_rate": "0", - "commission_change_today": "0", - "prev_bonded_tokens": "0" - } - ], - "bonds": [ - { - "delegator_addr": "cosmosaccaddr157mg9hnhchfrqvk3enrvmvj29yhmlwf759xrgw", - "validator_addr": "cosmosaccaddr157mg9hnhchfrqvk3enrvmvj29yhmlwf759xrgw", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr193vn0gk3nsmjkxwz78gce8e8mkmagmvulpg5jt", - "validator_addr": "cosmosaccaddr193vn0gk3nsmjkxwz78gce8e8mkmagmvulpg5jt", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr16rcrnftjyl2mctz78825ng8tx5ss22jf6jcp9l", - "validator_addr": "cosmosaccaddr16rcrnftjyl2mctz78825ng8tx5ss22jf6jcp9l", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr1shuqhpl273t96yg6nnqvyfeewj3ew3mdcwvcnu", - "validator_addr": "cosmosaccaddr1shuqhpl273t96yg6nnqvyfeewj3ew3mdcwvcnu", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr1syhzpjwx6vv3erv2myq7txrjhrp95hrhgcl242", - "validator_addr": "cosmosaccaddr1syhzpjwx6vv3erv2myq7txrjhrp95hrhgcl242", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr1uga4nuresex5u8ajjh2pcr39l0s9hszdkp843j", - "validator_addr": "cosmosaccaddr1uga4nuresex5u8ajjh2pcr39l0s9hszdkp843j", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr12wnqvqg79s9jqrul0lva3h72rfmewm7jprrcp5", - "validator_addr": "cosmosaccaddr12wnqvqg79s9jqrul0lva3h72rfmewm7jprrcp5", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr1lq0mvtgnwe8mp0096un0v8ztcsj8ad92t2cwrq", - "validator_addr": "cosmosaccaddr1lq0mvtgnwe8mp0096un0v8ztcsj8ad92t2cwrq", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr14e774gfzt5l9ka766ehfgu6n5hgy9f3sehzyv8", - "validator_addr": "cosmosaccaddr14e774gfzt5l9ka766ehfgu6n5hgy9f3sehzyv8", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr164jntjfk9zs8x29mc27qansfwvjqs60gj6ermu", - "validator_addr": "cosmosaccaddr164jntjfk9zs8x29mc27qansfwvjqs60gj6ermu", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr1qkc3tghc3fms7eye7vtu0g0370epr4jkje2ne7", - "validator_addr": "cosmosaccaddr1qkc3tghc3fms7eye7vtu0g0370epr4jkje2ne7", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr18m09d56pg5p2660de4sjfezpd8ud6jfghndfnt", - "validator_addr": "cosmosaccaddr18m09d56pg5p2660de4sjfezpd8ud6jfghndfnt", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr1k9pqxd8fxqlk52uwfxnlsexqj6xnmw5swhss45", - "validator_addr": "cosmosaccaddr1k9pqxd8fxqlk52uwfxnlsexqj6xnmw5swhss45", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr13q937pwglh24knwa2v23ml0kkpl9vwzjmfmj3q", - "validator_addr": "cosmosaccaddr13q937pwglh24knwa2v23ml0kkpl9vwzjmfmj3q", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr1xvt4e7xd0j9dwv2w83g50tpcltsl90h5dfnz6h", - "validator_addr": "cosmosaccaddr1xvt4e7xd0j9dwv2w83g50tpcltsl90h5dfnz6h", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr1nnyel6v0kx8zmfh9edmre3ua4dt9306cfxsxgd", - "validator_addr": "cosmosaccaddr1nnyel6v0kx8zmfh9edmre3ua4dt9306cfxsxgd", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr13cds7hwqyq9ja2hsv4sg7glq9arlk43gcl3cek", - "validator_addr": "cosmosaccaddr13cds7hwqyq9ja2hsv4sg7glq9arlk43gcl3cek", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr1y2z20pwqu5qpclque3pqkguruvheum2djtzjw3", - "validator_addr": "cosmosaccaddr1y2z20pwqu5qpclque3pqkguruvheum2djtzjw3", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr1anuuffusmq5ng3rhlndhnacy45et30jqygtn67", - "validator_addr": "cosmosaccaddr1anuuffusmq5ng3rhlndhnacy45et30jqygtn67", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr1wk0t6na230vxhf6ddresw2c40k5y3ayrww0s2m", - "validator_addr": "cosmosaccaddr1wk0t6na230vxhf6ddresw2c40k5y3ayrww0s2m", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr12pn4p6r5wjpsep9kn655ng7fh59yez7t0rahru", - "validator_addr": "cosmosaccaddr12pn4p6r5wjpsep9kn655ng7fh59yez7t0rahru", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr15rrxdflhq4744qt9m5ysstq3zpykhacf908eez", - "validator_addr": "cosmosaccaddr15rrxdflhq4744qt9m5ysstq3zpykhacf908eez", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr17rqsh3fw6rehnwzarz90jkqtt5fupmh50gy556", - "validator_addr": "cosmosaccaddr17rqsh3fw6rehnwzarz90jkqtt5fupmh50gy556", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr1g4q87u438qdh2c8ue4dzdr9ldrqrs77ptm9c70", - "validator_addr": "cosmosaccaddr1g4q87u438qdh2c8ue4dzdr9ldrqrs77ptm9c70", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr1dq7jt3pn7mrce2twac907jue7hjd0p0rgt3qnq", - "validator_addr": "cosmosaccaddr1dq7jt3pn7mrce2twac907jue7hjd0p0rgt3qnq", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr1gg6natrtt5lf02xwr06ujcczvavl54wgljuaut", - "validator_addr": "cosmosaccaddr1gg6natrtt5lf02xwr06ujcczvavl54wgljuaut", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr1zds6r7jyxyxcpf05r5yyyy3u8q2rvj9kkc6vcv", - "validator_addr": "cosmosaccaddr1zds6r7jyxyxcpf05r5yyyy3u8q2rvj9kkc6vcv", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr1l0qw5znfd6e8pshpjvyghjjzyr4l6ymla080lt", - "validator_addr": "cosmosaccaddr1l0qw5znfd6e8pshpjvyghjjzyr4l6ymla080lt", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr1rxxcpkmsngd0azkh3n2467m66ls4rwq52yuv27", - "validator_addr": "cosmosaccaddr1rxxcpkmsngd0azkh3n2467m66ls4rwq52yuv27", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr1jsch8k385shvse6j5dfx20483qym5uhq76xpjf", - "validator_addr": "cosmosaccaddr1jsch8k385shvse6j5dfx20483qym5uhq76xpjf", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr19uhnhct0p45ek6qxp3cjjrjtz4pacwcsgzvpuj", - "validator_addr": "cosmosaccaddr19uhnhct0p45ek6qxp3cjjrjtz4pacwcsgzvpuj", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr1gghhdtx2sceafvgg8dry5sqrvc8srxghm4qqsy", - "validator_addr": "cosmosaccaddr1gghhdtx2sceafvgg8dry5sqrvc8srxghm4qqsy", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr1cyayv35tv47t829mel6jm0vqzmrdhf3jq87tqg", - "validator_addr": "cosmosaccaddr1cyayv35tv47t829mel6jm0vqzmrdhf3jq87tqg", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr126ayk3hse5zvk9gxfmpsjr9565ef72pv9g20yx", - "validator_addr": "cosmosaccaddr126ayk3hse5zvk9gxfmpsjr9565ef72pv9g20yx", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr1fskmzyt2hr8usr3s65dq3rfur3fy6g2hjp23tm", - "validator_addr": "cosmosaccaddr1fskmzyt2hr8usr3s65dq3rfur3fy6g2hjp23tm", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr1lhjta6nt0lewj05m8444tuyhalkrffgpm7njpp", - "validator_addr": "cosmosaccaddr1lhjta6nt0lewj05m8444tuyhalkrffgpm7njpp", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr1pm0gx3lk46gf8vyj5my9w5tk06cuq66ll77ugj", - "validator_addr": "cosmosaccaddr1pm0gx3lk46gf8vyj5my9w5tk06cuq66ll77ugj", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr15w2rengajq9js8hu57kjw88dly5vy7gsqedn0n", - "validator_addr": "cosmosaccaddr15w2rengajq9js8hu57kjw88dly5vy7gsqedn0n", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr10505nl7yftsme9jk2glhjhta7w0475uva87paj", - "validator_addr": "cosmosaccaddr10505nl7yftsme9jk2glhjhta7w0475uva87paj", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr18z3pnjgdtt337z8g5drfts7r3fm6n9a0896h0r", - "validator_addr": "cosmosaccaddr18z3pnjgdtt337z8g5drfts7r3fm6n9a0896h0r", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr1vmdgku2g0n5p2ef995r4fugu99ze9e5me9kh4d", - "validator_addr": "cosmosaccaddr1vmdgku2g0n5p2ef995r4fugu99ze9e5me9kh4d", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr1j2frwt2vq2xer7f060wpsu3y3f63uys2w9lx2e", - "validator_addr": "cosmosaccaddr1j2frwt2vq2xer7f060wpsu3y3f63uys2w9lx2e", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr1whxd48da3r56n8eecym8zg0c6xmf35fn2myart", - "validator_addr": "cosmosaccaddr1whxd48da3r56n8eecym8zg0c6xmf35fn2myart", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr1jkmn6asju47zuuzrf8rjt7sllaj5cx4kueyv8p", - "validator_addr": "cosmosaccaddr1jkmn6asju47zuuzrf8rjt7sllaj5cx4kueyv8p", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr120skmenn2a0ra8y6zassrxvnfc5rlme8rqarvs", - "validator_addr": "cosmosaccaddr120skmenn2a0ra8y6zassrxvnfc5rlme8rqarvs", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr1jtt6al0acr8h0uvq489rt9zx9lnau7rlcu30pt", - "validator_addr": "cosmosaccaddr1jtt6al0acr8h0uvq489rt9zx9lnau7rlcu30pt", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr135dz5hdtvk3z8vl0zyy5l223kjanv0gudu4905", - "validator_addr": "cosmosaccaddr135dz5hdtvk3z8vl0zyy5l223kjanv0gudu4905", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr182ujqw3r8p5fffjqkf0rxzj29pg5q96nxd2khq", - "validator_addr": "cosmosaccaddr182ujqw3r8p5fffjqkf0rxzj29pg5q96nxd2khq", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr1qrc3ed8tnz6vc24ftmnht8efs5ufhjmrjkds4x", - "validator_addr": "cosmosaccaddr1qrc3ed8tnz6vc24ftmnht8efs5ufhjmrjkds4x", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr1swydkj5u3jd4jwe7uygu4479zgs4qg6v4ds3c9", - "validator_addr": "cosmosaccaddr1swydkj5u3jd4jwe7uygu4479zgs4qg6v4ds3c9", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr1l9jt8xgejkcm4sulhwj8c83ftprz5p9lyq4605", - "validator_addr": "cosmosaccaddr1l9jt8xgejkcm4sulhwj8c83ftprz5p9lyq4605", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr128ty3kzhcepjacu4q0xjgq60qa3zz8na3jl793", - "validator_addr": "cosmosaccaddr128ty3kzhcepjacu4q0xjgq60qa3zz8na3jl793", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr1e3qm8jd9357zhdemwnaafmf0wy3f4yqmd307c2", - "validator_addr": "cosmosaccaddr1e3qm8jd9357zhdemwnaafmf0wy3f4yqmd307c2", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr18wfz5vj26y079surms5sm6avjtezzspfvqs6g4", - "validator_addr": "cosmosaccaddr18wfz5vj26y079surms5sm6avjtezzspfvqs6g4", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr1vrc7zpg5teawwuzkfh6t7c6sy353sukhlarxpa", - "validator_addr": "cosmosaccaddr1vrc7zpg5teawwuzkfh6t7c6sy353sukhlarxpa", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr1umaajfgap5ef6yxvk5706kwk8j08l7wh6h9fp2", - "validator_addr": "cosmosaccaddr1umaajfgap5ef6yxvk5706kwk8j08l7wh6h9fp2", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr1670l5up6e5fddvlc027yvvlvedrzyx0mmsl622", - "validator_addr": "cosmosaccaddr1670l5up6e5fddvlc027yvvlvedrzyx0mmsl622", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr1wx33m9dvglryga0saey0pr99ja0klhcfrwaw7l", - "validator_addr": "cosmosaccaddr1wx33m9dvglryga0saey0pr99ja0klhcfrwaw7l", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr15u9ve7fz8fqaf7r2u3p4f9ru4ze47pau5cxgcg", - "validator_addr": "cosmosaccaddr15u9ve7fz8fqaf7r2u3p4f9ru4ze47pau5cxgcg", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr1h4q0xkdg30cl9vw0u8ejm0rs337dszy98gnd4a", - "validator_addr": "cosmosaccaddr1h4q0xkdg30cl9vw0u8ejm0rs337dszy98gnd4a", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr12zpkulxv7kn59sgf0tpf24qhqzxsvf3gamkl7g", - "validator_addr": "cosmosaccaddr12zpkulxv7kn59sgf0tpf24qhqzxsvf3gamkl7g", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr1g6sc5t9t68vmcj3alk7dfqr54tvastpxac28k6", - "validator_addr": "cosmosaccaddr1g6sc5t9t68vmcj3alk7dfqr54tvastpxac28k6", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr1jck6gp4mqy33sk6a0fr5c8maq53hf4245v3mgg", - "validator_addr": "cosmosaccaddr1jck6gp4mqy33sk6a0fr5c8maq53hf4245v3mgg", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr1jh3grawl62juvx5p8fz5xsy9hpw8w3mngqafe4", - "validator_addr": "cosmosaccaddr1jh3grawl62juvx5p8fz5xsy9hpw8w3mngqafe4", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr17nlusdvrk34fq65jemy3umfjfwaxfzv4asyl60", - "validator_addr": "cosmosaccaddr17nlusdvrk34fq65jemy3umfjfwaxfzv4asyl60", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr18u2sqnuetfnkugp59e9pgyv2dpuvkkxmmsc7m8", - "validator_addr": "cosmosaccaddr18u2sqnuetfnkugp59e9pgyv2dpuvkkxmmsc7m8", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr1xdp4pls4ryvchq2n8v0cpmtwsprvyh8wvg563q", - "validator_addr": "cosmosaccaddr1xdp4pls4ryvchq2n8v0cpmtwsprvyh8wvg563q", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr1pmntq5en2rgtr5rzr4e304efrve4lr43z32y5s", - "validator_addr": "cosmosaccaddr1pmntq5en2rgtr5rzr4e304efrve4lr43z32y5s", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr197p65z7ge5g55r68thvw4l5e43gnm70jhu5g75", - "validator_addr": "cosmosaccaddr197p65z7ge5g55r68thvw4l5e43gnm70jhu5g75", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr15klp8pypkd8htppzt6pguej57yyvp5p442khcu", - "validator_addr": "cosmosaccaddr15klp8pypkd8htppzt6pguej57yyvp5p442khcu", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr1jsvgewy7h62v3q43m0l347wlcwyhd4un5q8aa3", - "validator_addr": "cosmosaccaddr1jsvgewy7h62v3q43m0l347wlcwyhd4un5q8aa3", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr192yhf7f7f9304cy6cu6np3r8a3m9yqzqfeu9je", - "validator_addr": "cosmosaccaddr192yhf7f7f9304cy6cu6np3r8a3m9yqzqfeu9je", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr1pag7xgpl8njlaksvp2ur5un3htg85vcrxcp5rs", - "validator_addr": "cosmosaccaddr1pag7xgpl8njlaksvp2ur5un3htg85vcrxcp5rs", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr1p56gv748xfd74qek5e637vhcr6tyjd9ukqfecc", - "validator_addr": "cosmosaccaddr1p56gv748xfd74qek5e637vhcr6tyjd9ukqfecc", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr1kwftgznylzerft2ksgkzvvfn5rfpy4nk2ye8na", - "validator_addr": "cosmosaccaddr1kwftgznylzerft2ksgkzvvfn5rfpy4nk2ye8na", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr1rj74vaqm0xkxl5cjjam63mayh4x6at3m379ulv", - "validator_addr": "cosmosaccaddr1rj74vaqm0xkxl5cjjam63mayh4x6at3m379ulv", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr1zpx36km7tk5cksyzxgvcp6g552p3uhwx84r53q", - "validator_addr": "cosmosaccaddr1zpx36km7tk5cksyzxgvcp6g552p3uhwx84r53q", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr1gq0qecxs8xdaarrqxxazwavwxm7qz5jzs5anvt", - "validator_addr": "cosmosaccaddr1gq0qecxs8xdaarrqxxazwavwxm7qz5jzs5anvt", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr1cypmdvszcd9kd3jenmqxd03cpceql8rtuvxftp", - "validator_addr": "cosmosaccaddr1cypmdvszcd9kd3jenmqxd03cpceql8rtuvxftp", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr1klslzz2n2nqvdaa6gwflwpka7gc60vvmh3k450", - "validator_addr": "cosmosaccaddr1klslzz2n2nqvdaa6gwflwpka7gc60vvmh3k450", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr1qkllv8f6qakkw3hk9dqvytys090lk6twsyv8vf", - "validator_addr": "cosmosaccaddr1qkllv8f6qakkw3hk9dqvytys090lk6twsyv8vf", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr1wf9nug554ugpw4t0wnlppxc6crl2n02qr8v3cd", - "validator_addr": "cosmosaccaddr1wf9nug554ugpw4t0wnlppxc6crl2n02qr8v3cd", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr1t3afuz2kt99jz4pe5k4vjvkdmldn2x0lqzv83w", - "validator_addr": "cosmosaccaddr1t3afuz2kt99jz4pe5k4vjvkdmldn2x0lqzv83w", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr14zfph0h8rexsca6gg6jkwqup3sgl6mwj6eu4e6", - "validator_addr": "cosmosaccaddr14zfph0h8rexsca6gg6jkwqup3sgl6mwj6eu4e6", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr1998p0xkdwvul952ydavnx88tmwkhlfa0vhrngj", - "validator_addr": "cosmosaccaddr1998p0xkdwvul952ydavnx88tmwkhlfa0vhrngj", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr1jw554408yw2h438q200jyuqgln76xh4ax0q4s0", - "validator_addr": "cosmosaccaddr1jw554408yw2h438q200jyuqgln76xh4ax0q4s0", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr1mwmcpq5nhaen8zyy86mrrept2gmp0z5peapkhu", - "validator_addr": "cosmosaccaddr1mwmcpq5nhaen8zyy86mrrept2gmp0z5peapkhu", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr1emaa7mwgpnpmc7yptm728ytp9quamsvu9rk4hp", - "validator_addr": "cosmosaccaddr1emaa7mwgpnpmc7yptm728ytp9quamsvu9rk4hp", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr1tq0zwzyc88l2enrlhtzw0he8rm24xfd5s9aeer", - "validator_addr": "cosmosaccaddr1tq0zwzyc88l2enrlhtzw0he8rm24xfd5s9aeer", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr1n9qsfp3x09rhhxptzrgmdlucqhg2ce95fm3fw8", - "validator_addr": "cosmosaccaddr1n9qsfp3x09rhhxptzrgmdlucqhg2ce95fm3fw8", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr1sqec04r28jfevkzfkdj4ql2qzr2zwrmg78qzj8", - "validator_addr": "cosmosaccaddr1sqec04r28jfevkzfkdj4ql2qzr2zwrmg78qzj8", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr1hfygmryre7r8m9pfqmc85y7kw7ejphmp59k2x8", - "validator_addr": "cosmosaccaddr1hfygmryre7r8m9pfqmc85y7kw7ejphmp59k2x8", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr1jvh448tvk368k4md83ys7auledclek0vfpckz2", - "validator_addr": "cosmosaccaddr1jvh448tvk368k4md83ys7auledclek0vfpckz2", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr1fhfcs5npydv8s96wrk9p5ychctslu92t4n5qd4", - "validator_addr": "cosmosaccaddr1fhfcs5npydv8s96wrk9p5ychctslu92t4n5qd4", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr1eg88jsn38mrael6cqu7d2u8j6dynya7fv2p2tl", - "validator_addr": "cosmosaccaddr1eg88jsn38mrael6cqu7d2u8j6dynya7fv2p2tl", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr1ukcuqpqw3eq505wkqd2adgn8ugewxr6jtakngs", - "validator_addr": "cosmosaccaddr1ukcuqpqw3eq505wkqd2adgn8ugewxr6jtakngs", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr1na3wr7ujdp3qdej6l5y0k4znzrkaz77t2yjaqf", - "validator_addr": "cosmosaccaddr1na3wr7ujdp3qdej6l5y0k4znzrkaz77t2yjaqf", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr1xupfqk73y7rmc6qdgv7rtjy8wsngvt2g2t59t3", - "validator_addr": "cosmosaccaddr1xupfqk73y7rmc6qdgv7rtjy8wsngvt2g2t59t3", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr17gvlvfpsfl6hffn5u2hahk22un4ynpykc44tat", - "validator_addr": "cosmosaccaddr17gvlvfpsfl6hffn5u2hahk22un4ynpykc44tat", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr1yfseqtj5sjhzz2q2ym09jym4h4nc4yevae0jp2", - "validator_addr": "cosmosaccaddr1yfseqtj5sjhzz2q2ym09jym4h4nc4yevae0jp2", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr1yd0rklq45zg89fywr89ccutlcwp9kehhh0z03k", - "validator_addr": "cosmosaccaddr1yd0rklq45zg89fywr89ccutlcwp9kehhh0z03k", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr1arlpxs2ftf5hgetqxxkvd7mqdc28mmaqclyv4y", - "validator_addr": "cosmosaccaddr1arlpxs2ftf5hgetqxxkvd7mqdc28mmaqclyv4y", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr12ceualfg92x7du73mtcv0zya4nxvq3tl2m52uz", - "validator_addr": "cosmosaccaddr12ceualfg92x7du73mtcv0zya4nxvq3tl2m52uz", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr1wxf0ck9h2e8p2wmecxtep6cefhexsp4kzc8fxy", - "validator_addr": "cosmosaccaddr1wxf0ck9h2e8p2wmecxtep6cefhexsp4kzc8fxy", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr1pzlud6lg8w9phcwetc5aqp24eflshtv4xlxthf", - "validator_addr": "cosmosaccaddr1pzlud6lg8w9phcwetc5aqp24eflshtv4xlxthf", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr10qp8kqwm2cuql0hw2az5mngpmw5xm9ee32exlp", - "validator_addr": "cosmosaccaddr10qp8kqwm2cuql0hw2az5mngpmw5xm9ee32exlp", - "shares": "100", - "height": "0" - }, - { - "delegator_addr": "cosmosaccaddr14dwnmm6n7tjdpeylpwsdsatdl0umm75dfkqcpa", - "validator_addr": "cosmosaccaddr14dwnmm6n7tjdpeylpwsdsatdl0umm75dfkqcpa", - "shares": "100", - "height": "0" - } - ] - } - } -} \ No newline at end of file diff --git a/docs/RELEASE_PROCESS.md b/docs/RELEASE_PROCESS.md index 1f83b21bf..503c5d3fa 100644 --- a/docs/RELEASE_PROCESS.md +++ b/docs/RELEASE_PROCESS.md @@ -6,6 +6,6 @@ - [ ] 4. Summarize breaking API changes section under “Breaking Changes” section to the `CHANGELOG.md` to bring attention to any breaking API changes that affect RPC consumers. - [ ] 5. Tag the commit `{{ .Release.Name }}-rcN` - [ ] 6. Kick off 1 day of automated fuzz testing -- [ ] 7. Release Lead assigns 2 people to perform buddy testing script +- [ ] 7. Release Lead assigns 2 people to perform [buddy testing script](/docs/RELEASE_TEST_SCRIPT.md) and update the relevant documentation - [ ] 8. If errors are found in either #6 or #7 go back to #2 (*NOTE*: be sure to increment the `rcN`) - [ ] 9. After #6 and #7 have successfully completed then merge the release PR and push the final release tag diff --git a/docs/RELEASE_TEST_SCRIPT.md b/docs/RELEASE_TEST_SCRIPT.md new file mode 100644 index 000000000..725507958 --- /dev/null +++ b/docs/RELEASE_TEST_SCRIPT.md @@ -0,0 +1,17 @@ +This document should contain plain english instructions for testing functionality on `gaiad`. This “Script” is supposed to be run by 2 people who will each spin up a `gaiad` node and run the series of prompts below. + +- [Create a network of 2 nodes](getting-started/create-testnet.md) +- [Generate an account](sdk/clients.md) +- [Send funds from one account to the other](sdk/clients.md) +- [Create a validator](validators/validator-setup.md) +- [Edit a validator](validators/validator-setup.md) +- [Delegate to validator](sdk/clients.md) +- [Unbond from a validator](sdk/clients.md) +- [View validators and verify output](validators/validator-setup.md) +- [Query network status](getting-started/full-node.md) +- [Create a proposal](validators/validator-setup.md) +- [Query a proposal](validators/validator-setup.md) +- [Vote on a proposal](validators/validator-setup.md) +- [Query status of a proposal](validators/validator-setup.md) +- [Query the votes on a proposal](validators/validator-setup.md) +- [Export state and reload](getting-started/create-testnet.md) diff --git a/docs/getting-started/create-testnet.md b/docs/getting-started/create-testnet.md new file mode 100644 index 000000000..0b68b3287 --- /dev/null +++ b/docs/getting-started/create-testnet.md @@ -0,0 +1,27 @@ +## Create your Own Testnet + +To create your own testnet, first each validator will need to install gaiad and run gen-tx + +```bash +gaiad init gen-tx --name +``` + +This populations `$HOME/.gaiad/gen-tx/` with a json file. + +Now these json files need to be aggregated together via Github, a Google form, pastebin or other methods. + +Place all files on one computer in `$HOME/.gaiad/gen-tx/` + +```bash +gaiad init --gen-txs -o --chain= +``` + +This will generate a `genesis.json` in `$HOME/.gaiad/config/genesis.json` distribute this file to all validators on your testnet. + +### Export state + +To export state and reload (useful for testing purposes): + +``` +gaiad export > genesis.json; cp genesis.json ~/.gaiad/config/genesis.json; gaiad start +``` diff --git a/docs/sdk/clients.md b/docs/sdk/clients.md index f24f5b46d..914a6c599 100644 --- a/docs/sdk/clients.md +++ b/docs/sdk/clients.md @@ -159,5 +159,5 @@ gaiacli stake delegation \ ## Light Client Daemon ::: tip Note -🚧 We are actively working on documentation for the LCD. +🚧Documentation coming soon! ::: diff --git a/docs/validators/validator-setup.md b/docs/validators/validator-setup.md index bac2c441d..837471bf2 100644 --- a/docs/validators/validator-setup.md +++ b/docs/validators/validator-setup.md @@ -132,3 +132,132 @@ LimitNOFILE=4096 [Install] WantedBy=multi-user.target ``` + +## Delegating to a Validator + +On the upcoming mainnet, you can delegate `Atom` to a validator. These [delegators](https://cosmos.network/resources/delegators) can receive part of the validator's fee revenue. Read more about the [Cosmos Token Model](https://github.com/cosmos/cosmos/raw/master/Cosmos_Token_Model.pdf). + +### Bond Tokens + +On the testnet, we delegate `steak` instead of `Atom`. Here's how you can bond tokens to a testnet validator: + +```bash +gaiacli stake delegate \ + --amount=10steak \ + --address-delegator= \ + --address-validator= \ + --from= \ + --chain-id=gaia-7001 +``` + +While tokens are bonded, they are pooled with all the other bonded tokens in the network. Validators and delegators obtain a percentage of shares that equal their stake in this pool. + +> _*NOTE:*_ Don't use more `steak` thank you have! You can always get more by using the [Faucet](https://gaia.faucetcosmos.network/)! + +### Unbond Tokens + +If for any reason the validator misbehaves, or you want to unbond a certain amount of tokens, use this following command. You can unbond a specific amount of`shares`\(eg:`12.1`\) or all of them \(`MAX`\). + +```bash +gaiacli stake unbond \ + --address-delegator= \ + --address-validator= \ + --shares=MAX \ + --from= \ + --chain-id=gaia-7001 +``` + +You can check your balance and your stake delegation to see that the unbonding went through successfully. + +```bash +gaiacli account + +gaiacli stake delegation \ + --address-delegator= \ + --address-validator= \ + --chain-id=gaia-7001 +``` + +## Governance + +Governance is the process from which users in the Cosmos Hub can come to consensus on software upgrades, parameters of the mainnet or on custom text proposals. This is done through voting on proposals, which will be submitted by `Atom` holders on the mainnet. + +Some considerations about the voting process: + +- Voting is done by bonded `Atom` holders on a 1 bonded `Atom` 1 vote basis +- Delegators inherit the vote of their validator if they don't vote +- **Validators MUST vote on every proposal**. If a validator does not vote on a proposal, they will be **partially slashed** +- Votes are tallied at the end of the voting period (2 weeks on mainnet). Each address can vote multiple times to update its `Option` value (paying the transaction fee each time), only the last casted vote will count as valid +- Voters can choose between options `Yes`, `No`, `NoWithVeto` and `Abstain` +At the end of the voting period, a proposal is accepted if `(YesVotes/(YesVotes+NoVotes+NoWithVetoVotes))>1/2` and `(NoWithVetoVotes/(YesVotes+NoVotes+NoWithVetoVotes))<1/3`. It is rejected otherwise + +For more information about the governance process and how it works, please check out the Governance module [specification](https://github.com/cosmos/cosmos-sdk/tree/develop/docs/spec/governance). + +### Create a Governance proposal + +In order to create a governance proposal, you must submit an initial deposit along with the proposal details: + +- `title`: Title of the proposal +- `description`: Description of the proposal +- `type`: Type of proposal. Must be of value _Text_ (types _SoftwareUpgrade_ and _ParameterChange_ not supported yet). + +```bash +gaiacli gov submit-proposal \ + --title= \ + --description=<description> \ + --type=<Text/ParameterChange/SoftwareUpgrade> \ + --proposer=<account_cosmosaccaddr> \ + --deposit=<40steak> \ + --from=<name> \ + --chain-id=gaia-7001 +``` + + +### Increase deposit + +In order for a proposal to be broadcasted to the network, the amount deposited must be above a `minDeposit` value (default: `10 steak`). If the proposal you previously created didn't meet this requirement, you can still increase the total amount deposited to activate it. Once the minimum deposit is reached, the proposal enters voting period: + +```bash +gaiacli gov deposit \ + --proposalID=<proposal_id> \ + --depositer=<account_cosmosaccaddr> \ + --deposit=<200steak> \ + --from=<name> \ + --chain-id=gaia-7001 +``` + +> _NOTE_: Proposals that don't meet this requirement will be deleted after `MaxDepositPeriod` is reached. + +#### Query proposal + +Once created, you can now query information of the proposal: + +```bash +gaiacli gov query-proposal \ + --proposalID=<proposal_id> \ + --chain-id=gaia-7001 +``` + +### Vote on a proposal + +After a proposal's deposit reaches the `MinDeposit` value, the voting period opens. Bonded `Atom` holders can then cast vote on it: + +```bash +gaiacli gov vote \ + --proposalID=<proposal_id> \ + --voter=<account_cosmosaccaddr> \ + --option=<Yes/No/NoWithVeto/Abstain> \ + --from=<name> \ + --chain-id=gaia-7001 +``` + +#### Query vote + +Check the vote with the option you just submitted: + +```bash +gaiacli gov query-vote \ + --proposalID=<proposal_id> \ + --voter=<account_cosmosaccaddr> \ + --chain-id=gaia-7001 +``` From 0d41026a0a8aa0ca40b93d5d57e343cdef5f2830 Mon Sep 17 00:00:00 2001 From: ValarDragon <dojha12@gmail.com> Date: Mon, 13 Aug 2018 15:12:03 -0700 Subject: [PATCH 10/23] Rename transient store key to be a unique key. This caused an error with non-determinism between nodes with same gaiad version and genesis. --- PENDING.md | 3 ++- cmd/gaia/app/app.go | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/PENDING.md b/PENDING.md index cba76aae6..eb40f8b7b 100644 --- a/PENDING.md +++ b/PENDING.md @@ -7,7 +7,8 @@ BREAKING CHANGES * Gaia CLI (`gaiacli`) * Gaia - + * Make the transient store key use a distinct store key. + * SDK * Tendermint diff --git a/cmd/gaia/app/app.go b/cmd/gaia/app/app.go index 9b318c8b1..a96efa6b1 100644 --- a/cmd/gaia/app/app.go +++ b/cmd/gaia/app/app.go @@ -78,7 +78,7 @@ func NewGaiaApp(logger log.Logger, db dbm.DB, traceStore io.Writer, baseAppOptio keyGov: sdk.NewKVStoreKey("gov"), keyFeeCollection: sdk.NewKVStoreKey("fee"), keyParams: sdk.NewKVStoreKey("params"), - tkeyParams: sdk.NewTransientStoreKey("params"), + tkeyParams: sdk.NewTransientStoreKey("transient_params"), } // define the accountMapper From 165fdf4a07f60cf6f31b1f973c48f13fd1412a7f Mon Sep 17 00:00:00 2001 From: ValarDragon <dojha12@gmail.com> Date: Mon, 13 Aug 2018 18:26:16 -0700 Subject: [PATCH 11/23] (squash this) Add PR ref in changelog --- PENDING.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/PENDING.md b/PENDING.md index eb40f8b7b..9f0b86a99 100644 --- a/PENDING.md +++ b/PENDING.md @@ -7,7 +7,7 @@ BREAKING CHANGES * Gaia CLI (`gaiacli`) * Gaia - * Make the transient store key use a distinct store key. + * Make the transient store key use a distinct store key. [#2013](https://github.com/cosmos/cosmos-sdk/pull/2013) * SDK From c9358ec198070dc8fb8d0e2f48f6b8b6a781c848 Mon Sep 17 00:00:00 2001 From: Federico Kunze <31522760+fedekunze@users.noreply.github.com> Date: Wed, 15 Aug 2018 16:59:46 +0200 Subject: [PATCH 12/23] R4R: Fix repeated cmds in CLI for staking (v.0.24.0 release) (#2043) * Cherry picked commits * Update CHANGELOG.md --- CHANGELOG.md | 28 +++++++++++++++------------- cmd/gaia/cmd/gaiacli/main.go | 4 ++++ x/stake/client/cli/query.go | 12 ++++++------ 3 files changed, 25 insertions(+), 19 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7b6103526..930de1332 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -16,8 +16,8 @@ BREAKING CHANGES * Gaia CLI (`gaiacli`) - [x/stake] change `--keybase-sig` to `--identity` - [x/stake] \#1828 Force user to specify amount on create-validator command by removing default - - [x/gov] Change `--proposalID` to `--proposal-id` - - [x/stake, x/gov] \#1606 Use `--from` instead of adhoc flags like `--address-validator` + - [x/gov] Change `--proposalID` to `--proposal-id` + - [x/stake, x/gov] \#1606 Use `--from` instead of adhoc flags like `--address-validator` and `--proposer` to indicate the sender address. - \#1551 Remove `--name` completely - Genesis/key creation (`gaiad init`) now supports user-provided key passwords @@ -26,12 +26,12 @@ BREAKING CHANGES - [x/stake] Inflation doesn't use rationals in calculation (performance boost) - [x/stake] Persist a map from `addr->pubkey` in the state since BeginBlock doesn't provide pubkeys. - - [x/gov] \#1781 Added tags sub-package, changed tags to use dash-case + - [x/gov] \#1781 Added tags sub-package, changed tags to use dash-case - [x/gov] \#1688 Governance parameters are now stored in globalparams store - [x/gov] \#1859 Slash validators who do not vote on a proposal - [x/gov] \#1914 added TallyResult type that gets stored in Proposal after tallying is finished - -* SDK + +* SDK - [baseapp] Msgs are no longer run on CheckTx, removed `ctx.IsCheckTx()` - [baseapp] NewBaseApp constructor takes sdk.TxDecoder as argument instead of wire.Codec - [types] sdk.NewCoin takes sdk.Int, sdk.NewInt64Coin takes int64 @@ -40,14 +40,14 @@ BREAKING CHANGES - Removed all tx related fields and logic (building & signing) to separate structure `TxContext` in `x/auth/client/context` -* Tendermint +* Tendermint - v0.22.5 -> See [Tendermint PR](https://github.com/tendermint/tendermint/pull/1966) - - change all the cryptography imports. + - change all the cryptography imports. - v0.23.0 -> See [Changelog](https://github.com/tendermint/tendermint/blob/v0.23.0/CHANGELOG.md#0230) and [SDK PR](https://github.com/cosmos/cosmos-sdk/pull/1927) - BeginBlock no longer includes crypto.Pubkey - - use time.Time instead of int64 for time. + - use time.Time instead of int64 for time. FEATURES @@ -56,11 +56,12 @@ FEATURES * Gaia CLI (`gaiacli`) - [x/gov] added `query-proposals` command. Can filter by `depositer`, `voter`, and `status` + - [x/stake] \#2043 Added staking query cli cmds for unbonding-delegations and redelegations * Gaia - [networks] Added ansible scripts to upgrade seed nodes on a network -* SDK +* SDK - [x/mock/simulation] Randomized simulation framework - Modules specify invariants and operations, preferably in an x/[module]/simulation package - Modules can test random combinations of their own operations @@ -78,10 +79,10 @@ IMPROVEMENTS - [spec] \#967 Inflation and distribution specs drastically improved - [x/gov] \#1773 Votes on a proposal can now be queried - [x/gov] Initial governance parameters can now be set in the genesis file - - [x/stake] \#1815 Sped up the processing of `EditValidator` txs. + - [x/stake] \#1815 Sped up the processing of `EditValidator` txs. - [config] \#1930 Transactions indexer indexes all tags by default. -* SDK +* SDK - [baseapp] \#1587 Allow any alphanumeric character in route - [baseapp] Allow any alphanumeric character in route - [tools] Remove `rm -rf vendor/` from `make get_vendor_deps` @@ -95,13 +96,14 @@ BUG FIXES * Gaia CLI (`gaiacli`) - \#1766 Fixes bad example for keybase identity + - [x/stake] \#2021 Fixed repeated CLI commands in staking * Gaia - \#1804 Fixes gen-tx genesis generation logic temporarily until upstream updates - \#1799 Fix `gaiad export` - \#1839 Fixed bug where intra-tx counter wasn't set correctly for genesis validators - [x/stake] \#1858 Fixed bug where the cliff validator was not updated correctly - - [tests] \#1675 Fix non-deterministic `test_cover` + - [tests] \#1675 Fix non-deterministic `test_cover` - [tests] \#1551 Fixed invalid LCD test JSON payload in `doIBCTransfer` - [basecoin] Fixes coin transaction failure and account query [discussion](https://forum.cosmos.network/t/unmarshalbinarybare-expected-to-read-prefix-bytes-75fbfab8-since-it-is-registered-concrete-but-got-0a141dfa/664/6) - [x/gov] \#1757 Fix VoteOption conversion to String @@ -274,7 +276,7 @@ FEATURES * [types] Added MinInt and MinUint functions * [gaiad] `unsafe_reset_all` now resets addrbook.json * [democoin] add x/oracle, x/assoc -* [tests] created a randomized testing framework. +* [tests] created a randomized testing framework. - Currently bank has limited functionality in the framework - Auth has its invariants checked within the framework * [tests] Add WaitForNextNBlocksTM helper method diff --git a/cmd/gaia/cmd/gaiacli/main.go b/cmd/gaia/cmd/gaiacli/main.go index 9c4d67b8c..02a96b614 100644 --- a/cmd/gaia/cmd/gaiacli/main.go +++ b/cmd/gaia/cmd/gaiacli/main.go @@ -88,6 +88,10 @@ func main() { stakecmd.GetCmdQueryValidators("stake", cdc), stakecmd.GetCmdQueryDelegation("stake", cdc), stakecmd.GetCmdQueryDelegations("stake", cdc), + stakecmd.GetCmdQueryUnbondingDelegation("stake", cdc), + stakecmd.GetCmdQueryUnbondingDelegations("stake", cdc), + stakecmd.GetCmdQueryRedelegation("stake", cdc), + stakecmd.GetCmdQueryRedelegations("stake", cdc), slashingcmd.GetCmdQuerySigningInfo("slashing", cdc), )...) stakeCmd.AddCommand( diff --git a/x/stake/client/cli/query.go b/x/stake/client/cli/query.go index 5ac303f9f..015d6ffcf 100644 --- a/x/stake/client/cli/query.go +++ b/x/stake/client/cli/query.go @@ -312,11 +312,11 @@ func GetCmdQueryUnbondingDelegations(storeName string, cdc *wire.Codec) *cobra.C } // GetCmdQueryRedelegation implements the command to query a single -// unbonding-delegation record. +// redelegation record. func GetCmdQueryRedelegation(storeName string, cdc *wire.Codec) *cobra.Command { cmd := &cobra.Command{ - Use: "unbonding-delegation", - Short: "Query an unbonding-delegation record based on delegator and validator address", + Use: "redelegation", + Short: "Query a redelegation record based on delegator and a source and destination validator address", RunE: func(cmd *cobra.Command, args []string) error { valSrcAddr, err := sdk.AccAddressFromBech32(viper.GetString(FlagAddressValidatorSrc)) if err != nil { @@ -373,11 +373,11 @@ func GetCmdQueryRedelegation(storeName string, cdc *wire.Codec) *cobra.Command { } // GetCmdQueryRedelegations implements the command to query all the -// unbonding-delegation records for a delegator. +// redelegation records for a delegator. func GetCmdQueryRedelegations(storeName string, cdc *wire.Codec) *cobra.Command { cmd := &cobra.Command{ - Use: "unbonding-delegations [delegator-addr]", - Short: "Query all unbonding-delegations records for one delegator", + Use: "redelegations [delegator-addr]", + Short: "Query all redelegations records for one delegator", Args: cobra.ExactArgs(1), RunE: func(cmd *cobra.Command, args []string) error { delegatorAddr, err := sdk.AccAddressFromBech32(args[0]) From 3d50567034ffc740070022f25ab59bbc65c055f1 Mon Sep 17 00:00:00 2001 From: Christopher Goes <cwgoes@pluranimity.org> Date: Thu, 16 Aug 2018 17:36:15 +0200 Subject: [PATCH 13/23] Merge PR #1783: Slashing, validator set, and governance simulation --- .circleci/config.yml | 30 +++- CHANGELOG.md | 3 + Gopkg.lock | 51 +++--- Makefile | 22 +-- baseapp/baseapp.go | 2 +- cmd/gaia/app/sim_test.go | 102 ++++++++++-- tests/test_cover.sh | 2 +- types/stake.go | 5 +- x/bank/simulation/msgs.go | 4 + x/bank/simulation/sim_test.go | 6 +- x/gov/handler.go | 11 ++ x/gov/keeper.go | 12 ++ x/gov/simulation/invariants.go | 19 +++ x/gov/simulation/msgs.go | 132 +++++++++++++++ x/gov/simulation/sim_test.go | 68 ++++++++ x/mock/app.go | 28 +++- x/mock/simulation/constants.go | 31 ++++ x/mock/simulation/random_simulate_blocks.go | 172 ++++++++++++++++++-- x/mock/simulation/transition_matrix.go | 70 ++++++++ x/mock/simulation/types.go | 6 + x/mock/simulation/util.go | 14 +- x/slashing/simulation/invariants.go | 18 ++ x/slashing/simulation/msgs.go | 34 ++++ x/stake/genesis.go | 1 - x/stake/keeper/validator.go | 9 +- x/stake/simulation/msgs.go | 5 +- x/stake/simulation/sim_test.go | 8 +- x/stake/types/validator.go | 10 +- 28 files changed, 784 insertions(+), 91 deletions(-) create mode 100644 x/gov/simulation/invariants.go create mode 100644 x/gov/simulation/msgs.go create mode 100644 x/gov/simulation/sim_test.go create mode 100644 x/mock/simulation/constants.go create mode 100644 x/mock/simulation/transition_matrix.go create mode 100644 x/slashing/simulation/invariants.go create mode 100644 x/slashing/simulation/msgs.go diff --git a/.circleci/config.yml b/.circleci/config.yml index bf7892a8c..b778653ea 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -85,7 +85,7 @@ jobs: export PATH="$GOBIN:$PATH" make test_cli - test_sim: + test_sim_modules: <<: *defaults parallelism: 1 steps: @@ -96,11 +96,26 @@ jobs: - restore_cache: key: v1-tree-{{ .Environment.CIRCLE_SHA1 }} - run: - name: Test simulation + name: Test individual module simulations command: | export PATH="$GOBIN:$PATH" - export GAIA_SIMULATION_SEED=1531897442166404087 - make test_sim + make test_sim_modules + + test_sim_gaia_fast: + <<: *defaults + parallelism: 1 + steps: + - attach_workspace: + at: /tmp/workspace + - restore_cache: + key: v1-pkg-cache + - restore_cache: + key: v1-tree-{{ .Environment.CIRCLE_SHA1 }} + - run: + name: Test full Gaia simulation + command: | + export PATH="$GOBIN:$PATH" + make test_sim_gaia_fast test_cover: <<: *defaults @@ -118,7 +133,7 @@ jobs: command: | export PATH="$GOBIN:$PATH" make install - for pkg in $(go list github.com/cosmos/cosmos-sdk/... | grep -v github.com/cosmos/cosmos-sdk/cmd/gaia/cli_test | circleci tests split --split-by=timings); do + for pkg in $(go list github.com/cosmos/cosmos-sdk/... | grep -v github.com/cosmos/cosmos-sdk/cmd/gaia/cli_test | grep -v '/simulation' | circleci tests split --split-by=timings); do id=$(basename "$pkg") GOCACHE=off go test -timeout 8m -race -coverprofile=/tmp/workspace/profiles/$id.out -covermode=atomic "$pkg" | tee "/tmp/logs/$id-$RANDOM.log" done @@ -161,7 +176,10 @@ workflows: - test_cli: requires: - setup_dependencies - - test_sim: + - test_sim_modules: + requires: + - setup_dependencies + - test_sim_gaia_fast: requires: - setup_dependencies - test_cover: diff --git a/CHANGELOG.md b/CHANGELOG.md index 930de1332..b4de50494 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -66,6 +66,9 @@ FEATURES - Modules specify invariants and operations, preferably in an x/[module]/simulation package - Modules can test random combinations of their own operations - Applications can integrate operations and invariants from modules together for an integrated simulation + - Simulates Tendermint's algorithm for validator set updates + - Simulates validator signing/downtime with a Markov chain, and occaisional double-signatures + - Includes simulated operations & invariants for staking, slashing, governance, and bank modules - [store] \#1481 Add transient store - [baseapp] Initialize validator set on ResponseInitChain - [baseapp] added BaseApp.Seal - ability to seal baseapp parameters once they've been set diff --git a/Gopkg.lock b/Gopkg.lock index cc42ac4f4..c3a540858 100644 --- a/Gopkg.lock +++ b/Gopkg.lock @@ -34,7 +34,7 @@ [[projects]] branch = "master" - digest = "1:6aabc1566d6351115d561d038da82a4c19b46c3b6e17f4a0a2fa60260663dc79" + digest = "1:2c00f064ba355903866cbfbf3f7f4c0fe64af6638cc7d1b8bdcf3181bc67f1d8" name = "github.com/btcsuite/btcd" packages = ["btcec"] pruneopts = "UT" @@ -71,7 +71,7 @@ version = "v1.4.7" [[projects]] - digest = "1:fa30c0652956e159cdb97dcb2ef8b8db63ed668c02a5c3a40961c8f0641252fe" + digest = "1:fdf5169073fb0ad6dc12a70c249145e30f4058647bea25f0abd48b6d9f228a11" name = "github.com/go-kit/kit" packages = [ "log", @@ -103,7 +103,7 @@ version = "v1.7.0" [[projects]] - digest = "1:212285efb97b9ec2e20550d81f0446cb7897e57cbdfd7301b1363ab113d8be45" + digest = "1:35621fe20f140f05a0c4ef662c26c0ab4ee50bca78aa30fe87d33120bd28165e" name = "github.com/gogo/protobuf" packages = [ "gogoproto", @@ -118,7 +118,7 @@ version = "v1.1.1" [[projects]] - digest = "1:cb22af0ed7c72d495d8be1106233ee553898950f15fd3f5404406d44c2e86888" + digest = "1:17fe264ee908afc795734e8c4e63db2accabaf57326dbf21763a7d6b86096260" name = "github.com/golang/protobuf" packages = [ "proto", @@ -165,12 +165,13 @@ [[projects]] branch = "master" - digest = "1:8951fe6e358876736d8fa1f3992624fdbb2dec6bc49401c1381d1ef8abbb544f" + digest = "1:a361611b8c8c75a1091f00027767f7779b29cb37c456a71b8f2604c88057ab40" name = "github.com/hashicorp/hcl" packages = [ ".", "hcl/ast", "hcl/parser", + "hcl/printer", "hcl/scanner", "hcl/strconv", "hcl/token", @@ -262,7 +263,7 @@ version = "v1.0.0" [[projects]] - digest = "1:98225904b7abff96c052b669b25788f18225a36673fba022fb93514bb9a2a64e" + digest = "1:c1a04665f9613e082e1209cf288bf64f4068dcd6c87a64bf1c4ff006ad422ba0" name = "github.com/prometheus/client_golang" packages = [ "prometheus", @@ -273,7 +274,7 @@ [[projects]] branch = "master" - digest = "1:0f37e09b3e92aaeda5991581311f8dbf38944b36a3edec61cc2d1991f527554a" + digest = "1:2d5cd61daa5565187e1d96bae64dbbc6080dacf741448e9629c64fd93203b0d4" name = "github.com/prometheus/client_model" packages = ["go"] pruneopts = "UT" @@ -281,7 +282,7 @@ [[projects]] branch = "master" - digest = "1:dad2e5a2153ee7a6c9ab8fc13673a16ee4fb64434a7da980965a3741b0c981a3" + digest = "1:63b68062b8968092eb86bedc4e68894bd096ea6b24920faca8b9dcf451f54bb5" name = "github.com/prometheus/common" packages = [ "expfmt", @@ -293,7 +294,7 @@ [[projects]] branch = "master" - digest = "1:a37c98f4b7a66bb5c539c0539f0915a74ef1c8e0b3b6f45735289d94cae92bfd" + digest = "1:8c49953a1414305f2ff5465147ee576dd705487c35b15918fcd4efdc0cb7a290" name = "github.com/prometheus/procfs" packages = [ ".", @@ -312,7 +313,7 @@ revision = "e2704e165165ec55d062f5919b4b29494e9fa790" [[projects]] - digest = "1:37ace7f35375adec11634126944bdc45a673415e2fcc07382d03b75ec76ea94c" + digest = "1:bd1ae00087d17c5a748660b8e89e1043e1e5479d0fea743352cda2f8dd8c4f84" name = "github.com/spf13/afero" packages = [ ".", @@ -331,7 +332,7 @@ version = "v1.2.0" [[projects]] - digest = "1:627ab2f549a6a55c44f46fa24a4307f4d0da81bfc7934ed0473bf38b24051d26" + digest = "1:7ffc0983035bc7e297da3688d9fe19d60a420e9c38bef23f845c53788ed6a05e" name = "github.com/spf13/cobra" packages = ["."] pruneopts = "UT" @@ -340,11 +341,11 @@ [[projects]] branch = "master" - digest = "1:080e5f630945ad754f4b920e60b4d3095ba0237ebf88dc462eb28002932e3805" + digest = "1:8a020f916b23ff574845789daee6818daf8d25a4852419aae3f0b12378ba432a" name = "github.com/spf13/jwalterweatherman" packages = ["."] pruneopts = "UT" - revision = "7c0cea34c8ece3fbeb2b27ab9b59511d360fb394" + revision = "14d3d4c518341bea657dd8a226f5121c0ff8c9f2" [[projects]] digest = "1:dab83a1bbc7ad3d7a6ba1a1cc1760f25ac38cdf7d96a5cdd55cd915a4f5ceaf9" @@ -363,7 +364,7 @@ version = "v1.0.0" [[projects]] - digest = "1:73697231b93fb74a73ebd8384b68b9a60c57ea6b13c56d2425414566a72c8e6d" + digest = "1:7e8d267900c7fa7f35129a2a37596e38ed0f11ca746d6d9ba727980ee138f9f6" name = "github.com/stretchr/testify" packages = [ "assert", @@ -375,7 +376,7 @@ [[projects]] branch = "master" - digest = "1:922191411ad8f61bcd8018ac127589bb489712c1d1a0ab2497aca4b16de417d2" + digest = "1:f2ffd421680b0a3f7887501b3c6974bcf19217ecd301d0e2c9b681940ec363d5" name = "github.com/syndtr/goleveldb" packages = [ "leveldb", @@ -392,11 +393,11 @@ "leveldb/util", ] pruneopts = "UT" - revision = "c4c61651e9e37fa117f53c5a906d3b63090d8445" + revision = "ae2bd5eed72d46b28834ec3f60db3a3ebedd8dbd" [[projects]] branch = "master" - digest = "1:203b409c21115233a576f99e8f13d8e07ad82b25500491f7e1cca12588fb3232" + digest = "1:087aaa7920e5d0bf79586feb57ce01c35c830396ab4392798112e8aae8c47722" name = "github.com/tendermint/ed25519" packages = [ ".", @@ -423,7 +424,7 @@ version = "v0.9.2" [[projects]] - digest = "1:df232b6f3c44554161093af004100f75e564b398ad3ff63ecbc297fe400dcfdb" + digest = "1:26146cdb2811ce481e72138439b9b1aa17a64d54364f96bb92f97a9ef8ba4f01" name = "github.com/tendermint/tendermint" packages = [ "abci/client", @@ -498,7 +499,7 @@ [[projects]] branch = "master" - digest = "1:3c3c47c1f7587c380afcc1d76385a4a03a2917b9ccc1ac50864d8f87e0264ada" + digest = "1:7a71fffde456d746c52f9cd09c50b034533a3180fb1f6320abb149f2ccc579e5" name = "golang.org/x/crypto" packages = [ "blowfish", @@ -520,7 +521,7 @@ revision = "de0752318171da717af4ce24d0a2e8626afaeb11" [[projects]] - digest = "1:04dda8391c3e2397daf254ac68003f30141c069b228d06baec8324a5f81dc1e9" + digest = "1:d36f55a999540d29b6ea3c2ea29d71c76b1d9853fdcd3e5c5cb4836f2ba118f1" name = "golang.org/x/net" packages = [ "context", @@ -537,17 +538,17 @@ [[projects]] branch = "master" - digest = "1:a97b28c54844d6b9848a840ae83d4d263292e831e8c2a586116fcab5c7cfe5f2" + digest = "1:a989b95f72fce8876213e8e20492525b4cf69a9e7fee7f1d9897983ee0d547e9" name = "golang.org/x/sys" packages = [ "cpu", "unix", ] pruneopts = "UT" - revision = "98c5dad5d1a0e8a73845ecc8897d0bd56586511d" + revision = "1c9583448a9c3aa0f9a6a5241bf73c0bd8aafded" [[projects]] - digest = "1:7509ba4347d1f8de6ae9be8818b0cd1abc3deeffe28aeaf4be6d4b6b5178d9ca" + digest = "1:a2ab62866c75542dd18d2b069fec854577a20211d7c0ea6ae746072a1dccdd18" name = "golang.org/x/text" packages = [ "collate", @@ -575,10 +576,10 @@ name = "google.golang.org/genproto" packages = ["googleapis/rpc/status"] pruneopts = "UT" - revision = "383e8b2c3b9e36c4076b235b32537292176bae20" + revision = "d0a8f471bba2dbb160885b0000d814ee5d559bad" [[projects]] - digest = "1:4515e3030c440845b046354fd5d57671238428b820deebce2e9dabb5cd3c51ac" + digest = "1:2dab32a43451e320e49608ff4542fdfc653c95dcc35d0065ec9c6c3dd540ed74" name = "google.golang.org/grpc" packages = [ ".", diff --git a/Makefile b/Makefile index 208b59ade..d06d4eb4c 100644 --- a/Makefile +++ b/Makefile @@ -130,15 +130,17 @@ test_unit: test_race: @go test -race $(PACKAGES_NOSIMULATION) -test_sim: - @echo "Running individual module simulations." - @go test $(PACKAGES_SIMTEST) -v - @echo "Running full Gaia simulation. This may take several minutes." - @echo "Pass the flag 'SimulationSeed' to run with a constant seed." - @echo "Pass the flag 'SimulationNumKeys' to run with the specified number of keys." - @echo "Pass the flag 'SimulationNumBlocks' to run with the specified number of blocks." - @echo "Pass the flag 'SimulationBlockSize' to run with the specified block size (operations per block)." - @go test ./cmd/gaia/app -run TestFullGaiaSimulation -SimulationEnabled=true -SimulationBlockSize=200 -v +test_sim_modules: + @echo "Running individual module simulations..." + @go test $(PACKAGES_SIMTEST) + +test_sim_gaia_fast: + @echo "Running full Gaia simulation. This may take several minutes..." + @go test ./cmd/gaia/app -run TestFullGaiaSimulation -SimulationEnabled=true -SimulationNumBlocks=1000 -v -timeout 24h + +test_sim_gaia_slow: + @echo "Running full Gaia simulation. This may take several minutes..." + @go test ./cmd/gaia/app -run TestFullGaiaSimulation -SimulationEnabled=true -SimulationNumBlocks=1000 -SimulationVerbose=true -v -timeout 24h test_cover: @bash tests/test_cover.sh @@ -204,4 +206,4 @@ localnet-stop: check_tools check_dev_tools get_tools get_dev_tools get_vendor_deps draw_deps test test_cli test_unit \ test_cover test_lint benchmark devdoc_init devdoc devdoc_save devdoc_update \ build-linux build-docker-gaiadnode localnet-start localnet-stop \ -format check-ledger test_sim update_tools update_dev_tools +format check-ledger test_sim_modules test_sim_gaia_fast test_sim_gaia_slow update_tools update_dev_tools diff --git a/baseapp/baseapp.go b/baseapp/baseapp.go index d7398d899..cf63f1f4d 100644 --- a/baseapp/baseapp.go +++ b/baseapp/baseapp.go @@ -379,7 +379,7 @@ func (app *BaseApp) BeginBlock(req abci.RequestBeginBlock) (res abci.ResponseBeg } else { // In the first block, app.deliverState.ctx will already be initialized // by InitChain. Context is now updated with Header information. - app.deliverState.ctx = app.deliverState.ctx.WithBlockHeader(req.Header) + app.deliverState.ctx = app.deliverState.ctx.WithBlockHeader(req.Header).WithBlockHeight(req.Header.Height) } if app.beginBlocker != nil { diff --git a/cmd/gaia/app/sim_test.go b/cmd/gaia/app/sim_test.go index f0bea1e17..5d0edcba2 100644 --- a/cmd/gaia/app/sim_test.go +++ b/cmd/gaia/app/sim_test.go @@ -8,47 +8,68 @@ import ( "github.com/stretchr/testify/require" + "github.com/tendermint/tendermint/crypto" dbm "github.com/tendermint/tendermint/libs/db" "github.com/tendermint/tendermint/libs/log" + "github.com/cosmos/cosmos-sdk/baseapp" sdk "github.com/cosmos/cosmos-sdk/types" banksim "github.com/cosmos/cosmos-sdk/x/bank/simulation" + govsim "github.com/cosmos/cosmos-sdk/x/gov/simulation" "github.com/cosmos/cosmos-sdk/x/mock/simulation" + slashingsim "github.com/cosmos/cosmos-sdk/x/slashing/simulation" stake "github.com/cosmos/cosmos-sdk/x/stake" stakesim "github.com/cosmos/cosmos-sdk/x/stake/simulation" ) var ( seed int64 - numKeys int numBlocks int blockSize int enabled bool + verbose bool ) func init() { flag.Int64Var(&seed, "SimulationSeed", 42, "Simulation random seed") - flag.IntVar(&numKeys, "SimulationNumKeys", 10, "Number of keys (accounts)") - flag.IntVar(&numBlocks, "SimulationNumBlocks", 100, "Number of blocks") - flag.IntVar(&blockSize, "SimulationBlockSize", 100, "Operations per block") + flag.IntVar(&numBlocks, "SimulationNumBlocks", 500, "Number of blocks") + flag.IntVar(&blockSize, "SimulationBlockSize", 200, "Operations per block") flag.BoolVar(&enabled, "SimulationEnabled", false, "Enable the simulation") + flag.BoolVar(&verbose, "SimulationVerbose", false, "Verbose log output") } -func appStateFn(r *rand.Rand, accs []sdk.AccAddress) json.RawMessage { +func appStateFn(r *rand.Rand, keys []crypto.PrivKey, accs []sdk.AccAddress) json.RawMessage { var genesisAccounts []GenesisAccount // Randomly generate some genesis accounts - for _, addr := range accs { + for _, acc := range accs { coins := sdk.Coins{sdk.Coin{"steak", sdk.NewInt(100)}} genesisAccounts = append(genesisAccounts, GenesisAccount{ - Address: addr, + Address: acc, Coins: coins, }) } // Default genesis state stakeGenesis := stake.DefaultGenesisState() - stakeGenesis.Pool.LooseTokens = sdk.NewRat(1000) + var validators []stake.Validator + var delegations []stake.Delegation + // XXX Try different numbers of initially bonded validators + numInitiallyBonded := int64(50) + for i := 0; i < int(numInitiallyBonded); i++ { + validator := stake.NewValidator(accs[i], keys[i].PubKey(), stake.Description{}) + validator.Tokens = sdk.NewRat(100) + validator.DelegatorShares = sdk.NewRat(100) + delegation := stake.Delegation{accs[i], accs[i], sdk.NewRat(100), 0} + validators = append(validators, validator) + delegations = append(delegations, delegation) + } + stakeGenesis.Pool.LooseTokens = sdk.NewRat(int64(100*250) + (numInitiallyBonded * 100)) + stakeGenesis.Validators = validators + stakeGenesis.Bonds = delegations + // No inflation, for now + stakeGenesis.Params.InflationMax = sdk.NewRat(0) + stakeGenesis.Params.InflationMin = sdk.NewRat(0) genesis := GenesisState{ Accounts: genesisAccounts, StakeData: stakeGenesis, @@ -69,16 +90,31 @@ func TestFullGaiaSimulation(t *testing.T) { } // Setup Gaia application - logger := log.NewNopLogger() + var logger log.Logger + if verbose { + logger = log.TestingLogger() + } else { + logger = log.NewNopLogger() + } db := dbm.NewMemDB() app := NewGaiaApp(logger, db, nil) require.Equal(t, "GaiaApp", app.Name()) + allInvariants := func(t *testing.T, baseapp *baseapp.BaseApp, log string) { + banksim.NonnegativeBalanceInvariant(app.accountMapper)(t, baseapp, log) + govsim.AllInvariants()(t, baseapp, log) + stakesim.AllInvariants(app.coinKeeper, app.stakeKeeper, app.accountMapper)(t, baseapp, log) + slashingsim.AllInvariants()(t, baseapp, log) + } + // Run randomized simulation simulation.SimulateFromSeed( t, app.BaseApp, appStateFn, seed, []simulation.TestAndRunTx{ banksim.TestAndRunSingleInputMsgSend(app.accountMapper), + govsim.SimulateMsgSubmitProposal(app.govKeeper, app.stakeKeeper), + govsim.SimulateMsgDeposit(app.govKeeper, app.stakeKeeper), + govsim.SimulateMsgVote(app.govKeeper, app.stakeKeeper), stakesim.SimulateMsgCreateValidator(app.accountMapper, app.stakeKeeper), stakesim.SimulateMsgEditValidator(app.stakeKeeper), stakesim.SimulateMsgDelegate(app.accountMapper, app.stakeKeeper), @@ -86,15 +122,57 @@ func TestFullGaiaSimulation(t *testing.T) { stakesim.SimulateMsgCompleteUnbonding(app.stakeKeeper), stakesim.SimulateMsgBeginRedelegate(app.accountMapper, app.stakeKeeper), stakesim.SimulateMsgCompleteRedelegate(app.stakeKeeper), + slashingsim.SimulateMsgUnrevoke(app.slashingKeeper), }, []simulation.RandSetup{}, []simulation.Invariant{ - banksim.NonnegativeBalanceInvariant(app.accountMapper), - stakesim.AllInvariants(app.coinKeeper, app.stakeKeeper, app.accountMapper), + allInvariants, }, - numKeys, numBlocks, blockSize, ) } + +// TODO: Make this not depend on Gaia or any of the modules, +// and place it in random_simulation_test.go +// +// Test doesn't use `app.ExportAppStateAndValidators` as that panics with the following: +// panic: Stored pool should not have been nil [recovered] +// panic: Stored pool should not have been nil +// Change to `app.ExportAppStateAndValidators` once it is fixed +func TestAppStateDeterminism(t *testing.T) { + numTimesToRun := 5 + appHashList := make([]json.RawMessage, numTimesToRun) + + seed := rand.Int63() + for i := 0; i < numTimesToRun; i++ { + logger := log.NewNopLogger() + db := dbm.NewMemDB() + app := NewGaiaApp(logger, db, nil) + + noOpInvariant := func(t *testing.T, baseapp *baseapp.BaseApp, log string) {} + noOpTestAndRunTx := func(t *testing.T, r *rand.Rand, app *baseapp.BaseApp, ctx sdk.Context, + privKeys []crypto.PrivKey, log string, event func(string), + ) (action string, err sdk.Error) { + return "", nil + } + + // Run randomized simulation + simulation.SimulateFromSeed( + t, app.BaseApp, appStateFn, seed, + []simulation.TestAndRunTx{ + noOpTestAndRunTx, + }, + []simulation.RandSetup{}, + []simulation.Invariant{noOpInvariant}, + 0, + 10, + ) + appHash := app.LastCommitID().Hash + appHashList[i] = appHash + } + for i := 1; i < numTimesToRun; i++ { + require.Equal(t, appHashList[0], appHashList[i]) + } +} diff --git a/tests/test_cover.sh b/tests/test_cover.sh index be6215b5a..3fb0ab69c 100644 --- a/tests/test_cover.sh +++ b/tests/test_cover.sh @@ -1,7 +1,7 @@ #!/usr/bin/env bash set -e -PKGS=$(go list ./... | grep -v /vendor/ | grep -v github.com/cosmos/cosmos-sdk/cmd/gaia/cli_test) +PKGS=$(go list ./... | grep -v /vendor/ | grep -v github.com/cosmos/cosmos-sdk/cmd/gaia/cli_test | grep -v '/simulation') set -e echo "mode: atomic" > coverage.txt diff --git a/types/stake.go b/types/stake.go index 4e3cf38a3..f611a2b51 100644 --- a/types/stake.go +++ b/types/stake.go @@ -51,8 +51,9 @@ type Validator interface { // validator which fulfills abci validator interface for use in Tendermint func ABCIValidator(v Validator) abci.Validator { return abci.Validator{ - PubKey: tmtypes.TM2PB.PubKey(v.GetPubKey()), - Power: v.GetPower().RoundInt64(), + PubKey: tmtypes.TM2PB.PubKey(v.GetPubKey()), + Address: v.GetPubKey().Address(), + Power: v.GetPower().RoundInt64(), } } diff --git a/x/bank/simulation/msgs.go b/x/bank/simulation/msgs.go index 3a7248875..43d7e1fd7 100644 --- a/x/bank/simulation/msgs.go +++ b/x/bank/simulation/msgs.go @@ -35,6 +35,10 @@ func TestAndRunSingleInputMsgSend(mapper auth.AccountMapper) simulation.TestAndR toAddr := sdk.AccAddress(toKey.PubKey().Address()) initFromCoins := mapper.GetAccount(ctx, fromAddr).GetCoins() + if len(initFromCoins) == 0 { + return "skipping, no coins at all", nil + } + denomIndex := r.Intn(len(initFromCoins)) amt, goErr := randPositiveInt(r, initFromCoins[denomIndex].Amount) if goErr != nil { diff --git a/x/bank/simulation/sim_test.go b/x/bank/simulation/sim_test.go index 5d76dd058..49e3dfa92 100644 --- a/x/bank/simulation/sim_test.go +++ b/x/bank/simulation/sim_test.go @@ -5,6 +5,8 @@ import ( "math/rand" "testing" + "github.com/tendermint/tendermint/crypto" + sdk "github.com/cosmos/cosmos-sdk/types" "github.com/cosmos/cosmos-sdk/x/bank" "github.com/cosmos/cosmos-sdk/x/mock" @@ -24,7 +26,7 @@ func TestBankWithRandomMessages(t *testing.T) { panic(err) } - appStateFn := func(r *rand.Rand, accs []sdk.AccAddress) json.RawMessage { + appStateFn := func(r *rand.Rand, keys []crypto.PrivKey, accs []sdk.AccAddress) json.RawMessage { mock.RandomSetGenesis(r, mapp, accs, []string{"stake"}) return json.RawMessage("{}") } @@ -39,6 +41,6 @@ func TestBankWithRandomMessages(t *testing.T) { NonnegativeBalanceInvariant(mapper), TotalCoinsInvariant(mapper, func() sdk.Coins { return mapp.TotalCoinsSupply }), }, - 100, 30, 30, + 30, 30, ) } diff --git a/x/gov/handler.go b/x/gov/handler.go index a9fdfcb3c..554c06a8a 100644 --- a/x/gov/handler.go +++ b/x/gov/handler.go @@ -96,6 +96,8 @@ func handleMsgVote(ctx sdk.Context, keeper Keeper, msg MsgVote) sdk.Result { // Called every block, process inflation, update validator set func EndBlocker(ctx sdk.Context, keeper Keeper) (resTags sdk.Tags) { + logger := ctx.Logger().With("module", "x/gov") + resTags = sdk.NewTags() // Delete proposals that haven't met minDeposit @@ -109,6 +111,9 @@ func EndBlocker(ctx sdk.Context, keeper Keeper) (resTags sdk.Tags) { keeper.DeleteProposal(ctx, inactiveProposal) resTags.AppendTag(tags.Action, tags.ActionProposalDropped) resTags.AppendTag(tags.ProposalID, proposalIDBytes) + + logger.Info("Proposal %d - \"%s\" - didn't mean minimum deposit (had only %s), deleted", + inactiveProposal.GetProposalID(), inactiveProposal.GetTitle(), inactiveProposal.GetTotalDeposit()) } // Check if earliest Active Proposal ended voting period yet @@ -136,6 +141,9 @@ func EndBlocker(ctx sdk.Context, keeper Keeper) (resTags sdk.Tags) { activeProposal.SetTallyResult(tallyResults) keeper.SetProposal(ctx, activeProposal) + logger.Info("Proposal %d - \"%s\" - tallied, passed: %v", + activeProposal.GetProposalID(), activeProposal.GetTitle(), passes) + for _, valAddr := range nonVotingVals { val := keeper.ds.GetValidatorSet().Validator(ctx, valAddr) keeper.ds.GetValidatorSet().Slash(ctx, @@ -143,6 +151,9 @@ func EndBlocker(ctx sdk.Context, keeper Keeper) (resTags sdk.Tags) { ctx.BlockHeight(), val.GetPower().RoundInt64(), keeper.GetTallyingProcedure(ctx).GovernancePenalty) + + logger.Info("Validator %s failed to vote on proposal %d, slashing", + val.GetOwner(), activeProposal.GetProposalID()) } resTags.AppendTag(tags.Action, action) diff --git a/x/gov/keeper.go b/x/gov/keeper.go index 0034e3d71..8a23ad248 100644 --- a/x/gov/keeper.go +++ b/x/gov/keeper.go @@ -119,6 +119,18 @@ func (keeper Keeper) setInitialProposalID(ctx sdk.Context, proposalID int64) sdk return nil } +// Get the last used proposal ID +func (keeper Keeper) GetLastProposalID(ctx sdk.Context) (proposalID int64) { + store := ctx.KVStore(keeper.storeKey) + bz := store.Get(KeyNextProposalID) + if bz == nil { + return 0 + } + keeper.cdc.MustUnmarshalBinary(bz, &proposalID) + proposalID-- + return +} + func (keeper Keeper) getNewProposalID(ctx sdk.Context) (proposalID int64, err sdk.Error) { store := ctx.KVStore(keeper.storeKey) bz := store.Get(KeyNextProposalID) diff --git a/x/gov/simulation/invariants.go b/x/gov/simulation/invariants.go new file mode 100644 index 000000000..e9275f3c1 --- /dev/null +++ b/x/gov/simulation/invariants.go @@ -0,0 +1,19 @@ +package simulation + +import ( + "testing" + + "github.com/stretchr/testify/require" + + "github.com/cosmos/cosmos-sdk/baseapp" + "github.com/cosmos/cosmos-sdk/x/mock/simulation" +) + +// AllInvariants tests all governance invariants +func AllInvariants() simulation.Invariant { + return func(t *testing.T, app *baseapp.BaseApp, log string) { + // TODO Add some invariants! + // Checking proposal queues, no passed-but-unexecuted proposals, etc. + require.Nil(t, nil) + } +} diff --git a/x/gov/simulation/msgs.go b/x/gov/simulation/msgs.go new file mode 100644 index 000000000..596a013d3 --- /dev/null +++ b/x/gov/simulation/msgs.go @@ -0,0 +1,132 @@ +package simulation + +import ( + "fmt" + "math/rand" + "testing" + + "github.com/stretchr/testify/require" + + "github.com/tendermint/tendermint/crypto" + + "github.com/cosmos/cosmos-sdk/baseapp" + sdk "github.com/cosmos/cosmos-sdk/types" + "github.com/cosmos/cosmos-sdk/x/gov" + "github.com/cosmos/cosmos-sdk/x/mock/simulation" + "github.com/cosmos/cosmos-sdk/x/stake" +) + +const ( + denom = "steak" +) + +// SimulateMsgSubmitProposal +func SimulateMsgSubmitProposal(k gov.Keeper, sk stake.Keeper) simulation.TestAndRunTx { + return func(t *testing.T, r *rand.Rand, app *baseapp.BaseApp, ctx sdk.Context, keys []crypto.PrivKey, log string, event func(string)) (action string, err sdk.Error) { + key := simulation.RandomKey(r, keys) + addr := sdk.AccAddress(key.PubKey().Address()) + deposit := randomDeposit(r) + msg := gov.NewMsgSubmitProposal( + simulation.RandStringOfLength(r, 5), + simulation.RandStringOfLength(r, 5), + gov.ProposalTypeText, + addr, + deposit, + ) + require.Nil(t, msg.ValidateBasic(), "expected msg to pass ValidateBasic: %s", msg.GetSignBytes()) + ctx, write := ctx.CacheContext() + result := gov.NewHandler(k)(ctx, msg) + if result.IsOK() { + // Update pool to keep invariants + pool := sk.GetPool(ctx) + pool.LooseTokens = pool.LooseTokens.Sub(sdk.NewRatFromInt(deposit.AmountOf(denom))) + sk.SetPool(ctx, pool) + write() + } + event(fmt.Sprintf("gov/MsgSubmitProposal/%v", result.IsOK())) + action = fmt.Sprintf("TestMsgSubmitProposal: ok %v, msg %s", result.IsOK(), msg.GetSignBytes()) + return action, nil + } +} + +// SimulateMsgDeposit +func SimulateMsgDeposit(k gov.Keeper, sk stake.Keeper) simulation.TestAndRunTx { + return func(t *testing.T, r *rand.Rand, app *baseapp.BaseApp, ctx sdk.Context, keys []crypto.PrivKey, log string, event func(string)) (action string, err sdk.Error) { + key := simulation.RandomKey(r, keys) + addr := sdk.AccAddress(key.PubKey().Address()) + proposalID, ok := randomProposalID(r, k, ctx) + if !ok { + return "no-operation", nil + } + deposit := randomDeposit(r) + msg := gov.NewMsgDeposit(addr, proposalID, deposit) + require.Nil(t, msg.ValidateBasic(), "expected msg to pass ValidateBasic: %s", msg.GetSignBytes()) + ctx, write := ctx.CacheContext() + result := gov.NewHandler(k)(ctx, msg) + if result.IsOK() { + // Update pool to keep invariants + pool := sk.GetPool(ctx) + pool.LooseTokens = pool.LooseTokens.Sub(sdk.NewRatFromInt(deposit.AmountOf(denom))) + sk.SetPool(ctx, pool) + write() + } + event(fmt.Sprintf("gov/MsgDeposit/%v", result.IsOK())) + action = fmt.Sprintf("TestMsgDeposit: ok %v, msg %s", result.IsOK(), msg.GetSignBytes()) + return action, nil + } +} + +// SimulateMsgVote +func SimulateMsgVote(k gov.Keeper, sk stake.Keeper) simulation.TestAndRunTx { + return func(t *testing.T, r *rand.Rand, app *baseapp.BaseApp, ctx sdk.Context, keys []crypto.PrivKey, log string, event func(string)) (action string, err sdk.Error) { + key := simulation.RandomKey(r, keys) + addr := sdk.AccAddress(key.PubKey().Address()) + proposalID, ok := randomProposalID(r, k, ctx) + if !ok { + return "no-operation", nil + } + option := randomVotingOption(r) + msg := gov.NewMsgVote(addr, proposalID, option) + require.Nil(t, msg.ValidateBasic(), "expected msg to pass ValidateBasic: %s", msg.GetSignBytes()) + ctx, write := ctx.CacheContext() + result := gov.NewHandler(k)(ctx, msg) + if result.IsOK() { + write() + } + event(fmt.Sprintf("gov/MsgVote/%v", result.IsOK())) + action = fmt.Sprintf("TestMsgVote: ok %v, msg %s", result.IsOK(), msg.GetSignBytes()) + return action, nil + } +} + +// Pick a random deposit +func randomDeposit(r *rand.Rand) sdk.Coins { + // TODO Choose based on account balance and min deposit + amount := int64(r.Intn(20)) + 1 + return sdk.Coins{sdk.NewInt64Coin(denom, amount)} +} + +// Pick a random proposal ID +func randomProposalID(r *rand.Rand, k gov.Keeper, ctx sdk.Context) (proposalID int64, ok bool) { + lastProposalID := k.GetLastProposalID(ctx) + if lastProposalID < 1 { + return 0, false + } + proposalID = int64(r.Intn(int(lastProposalID))) + return proposalID, true +} + +// Pick a random voting option +func randomVotingOption(r *rand.Rand) gov.VoteOption { + switch r.Intn(4) { + case 0: + return gov.OptionYes + case 1: + return gov.OptionAbstain + case 2: + return gov.OptionNo + case 3: + return gov.OptionNoWithVeto + } + panic("should not happen") +} diff --git a/x/gov/simulation/sim_test.go b/x/gov/simulation/sim_test.go new file mode 100644 index 000000000..e7131f8fc --- /dev/null +++ b/x/gov/simulation/sim_test.go @@ -0,0 +1,68 @@ +package simulation + +import ( + "encoding/json" + "math/rand" + "testing" + + abci "github.com/tendermint/tendermint/abci/types" + "github.com/tendermint/tendermint/crypto" + + sdk "github.com/cosmos/cosmos-sdk/types" + "github.com/cosmos/cosmos-sdk/x/bank" + "github.com/cosmos/cosmos-sdk/x/gov" + "github.com/cosmos/cosmos-sdk/x/mock" + "github.com/cosmos/cosmos-sdk/x/mock/simulation" + "github.com/cosmos/cosmos-sdk/x/params" + "github.com/cosmos/cosmos-sdk/x/stake" +) + +// TestGovWithRandomMessages +func TestGovWithRandomMessages(t *testing.T) { + mapp := mock.NewApp() + + bank.RegisterWire(mapp.Cdc) + gov.RegisterWire(mapp.Cdc) + mapper := mapp.AccountMapper + coinKeeper := bank.NewKeeper(mapper) + stakeKey := sdk.NewKVStoreKey("stake") + stakeKeeper := stake.NewKeeper(mapp.Cdc, stakeKey, coinKeeper, stake.DefaultCodespace) + paramKey := sdk.NewKVStoreKey("params") + paramKeeper := params.NewKeeper(mapp.Cdc, paramKey) + govKey := sdk.NewKVStoreKey("gov") + govKeeper := gov.NewKeeper(mapp.Cdc, govKey, paramKeeper.Setter(), coinKeeper, stakeKeeper, gov.DefaultCodespace) + mapp.Router().AddRoute("gov", gov.NewHandler(govKeeper)) + mapp.SetEndBlocker(func(ctx sdk.Context, req abci.RequestEndBlock) abci.ResponseEndBlock { + gov.EndBlocker(ctx, govKeeper) + return abci.ResponseEndBlock{} + }) + + err := mapp.CompleteSetup([]*sdk.KVStoreKey{stakeKey, paramKey, govKey}) + if err != nil { + panic(err) + } + + appStateFn := func(r *rand.Rand, keys []crypto.PrivKey, accs []sdk.AccAddress) json.RawMessage { + mock.RandomSetGenesis(r, mapp, accs, []string{"stake"}) + return json.RawMessage("{}") + } + + setup := func(r *rand.Rand, privKeys []crypto.PrivKey) { + ctx := mapp.NewContext(false, abci.Header{}) + stake.InitGenesis(ctx, stakeKeeper, stake.DefaultGenesisState()) + gov.InitGenesis(ctx, govKeeper, gov.DefaultGenesisState()) + } + + simulation.Simulate( + t, mapp.BaseApp, appStateFn, + []simulation.TestAndRunTx{ + SimulateMsgSubmitProposal(govKeeper, stakeKeeper), + SimulateMsgDeposit(govKeeper, stakeKeeper), + SimulateMsgVote(govKeeper, stakeKeeper), + }, []simulation.RandSetup{ + setup, + }, []simulation.Invariant{ + AllInvariants(), + }, 10, 100, + ) +} diff --git a/x/mock/app.go b/x/mock/app.go index 53b6345b0..f472c5531 100644 --- a/x/mock/app.go +++ b/x/mock/app.go @@ -11,6 +11,7 @@ import ( abci "github.com/tendermint/tendermint/abci/types" "github.com/tendermint/tendermint/crypto" "github.com/tendermint/tendermint/crypto/ed25519" + "github.com/tendermint/tendermint/crypto/secp256k1" dbm "github.com/tendermint/tendermint/libs/db" "github.com/tendermint/tendermint/libs/log" ) @@ -173,7 +174,32 @@ func GeneratePrivKeyAddressPairs(n int) (keys []crypto.PrivKey, addrs []sdk.AccA keys = make([]crypto.PrivKey, n, n) addrs = make([]sdk.AccAddress, n, n) for i := 0; i < n; i++ { - keys[i] = ed25519.GenPrivKey() + if rand.Int63()%2 == 0 { + keys[i] = secp256k1.GenPrivKey() + } else { + keys[i] = ed25519.GenPrivKey() + } + addrs[i] = sdk.AccAddress(keys[i].PubKey().Address()) + } + return +} + +// GeneratePrivKeyAddressPairsFromRand generates a total of n private key, address +// pairs using the provided randomness source. +func GeneratePrivKeyAddressPairsFromRand(rand *rand.Rand, n int) (keys []crypto.PrivKey, addrs []sdk.AccAddress) { + keys = make([]crypto.PrivKey, n, n) + addrs = make([]sdk.AccAddress, n, n) + for i := 0; i < n; i++ { + secret := make([]byte, 32) + _, err := rand.Read(secret) + if err != nil { + panic("Could not read randomness") + } + if rand.Int63()%2 == 0 { + keys[i] = secp256k1.GenPrivKeySecp256k1(secret) + } else { + keys[i] = ed25519.GenPrivKeyFromSecret(secret) + } addrs[i] = sdk.AccAddress(keys[i].PubKey().Address()) } return diff --git a/x/mock/simulation/constants.go b/x/mock/simulation/constants.go new file mode 100644 index 000000000..985a22dca --- /dev/null +++ b/x/mock/simulation/constants.go @@ -0,0 +1,31 @@ +package simulation + +const ( + // Fraction of double-signing evidence from a past height + pastEvidenceFraction float64 = 0.5 + + // Minimum time per block + minTimePerBlock int64 = 86400 / 2 + + // Maximum time per block + maxTimePerBlock int64 = 86400 + + // Number of keys + numKeys int = 250 + + // Chance that double-signing evidence is found on a given block + evidenceFraction float64 = 0.01 + + // TODO Remove in favor of binary search for invariant violation + onOperation bool = false +) + +var ( + // Currently there are 3 different liveness types, fully online, spotty connection, offline. + initialLivenessWeightings = []int{40, 5, 5} + livenessTransitionMatrix, _ = CreateTransitionMatrix([][]int{ + {90, 20, 1}, + {10, 50, 5}, + {0, 10, 1000}, + }) +) diff --git a/x/mock/simulation/random_simulate_blocks.go b/x/mock/simulation/random_simulate_blocks.go index 5f507b89c..1b6953631 100644 --- a/x/mock/simulation/random_simulate_blocks.go +++ b/x/mock/simulation/random_simulate_blocks.go @@ -7,75 +7,211 @@ import ( "testing" "time" + abci "github.com/tendermint/tendermint/abci/types" + "github.com/tendermint/tendermint/crypto" + tmtypes "github.com/tendermint/tendermint/types" + "github.com/cosmos/cosmos-sdk/baseapp" sdk "github.com/cosmos/cosmos-sdk/types" "github.com/cosmos/cosmos-sdk/x/mock" "github.com/stretchr/testify/require" - abci "github.com/tendermint/tendermint/abci/types" ) // Simulate tests application by sending random messages. func Simulate( - t *testing.T, app *baseapp.BaseApp, appStateFn func(r *rand.Rand, accs []sdk.AccAddress) json.RawMessage, ops []TestAndRunTx, setups []RandSetup, - invariants []Invariant, numKeys int, numBlocks int, blockSize int, + t *testing.T, app *baseapp.BaseApp, appStateFn func(r *rand.Rand, keys []crypto.PrivKey, accs []sdk.AccAddress) json.RawMessage, ops []TestAndRunTx, setups []RandSetup, + invariants []Invariant, numBlocks int, blockSize int, ) { time := time.Now().UnixNano() - SimulateFromSeed(t, app, appStateFn, time, ops, setups, invariants, numKeys, numBlocks, blockSize) + SimulateFromSeed(t, app, appStateFn, time, ops, setups, invariants, numBlocks, blockSize) } // SimulateFromSeed tests an application by running the provided // operations, testing the provided invariants, but using the provided seed. func SimulateFromSeed( - t *testing.T, app *baseapp.BaseApp, appStateFn func(r *rand.Rand, accs []sdk.AccAddress) json.RawMessage, seed int64, ops []TestAndRunTx, setups []RandSetup, - invariants []Invariant, numKeys int, numBlocks int, blockSize int, + t *testing.T, app *baseapp.BaseApp, appStateFn func(r *rand.Rand, keys []crypto.PrivKey, accs []sdk.AccAddress) json.RawMessage, seed int64, ops []TestAndRunTx, setups []RandSetup, + invariants []Invariant, numBlocks int, blockSize int, ) { log := fmt.Sprintf("Starting SimulateFromSeed with randomness created with seed %d", int(seed)) - keys, addrs := mock.GeneratePrivKeyAddressPairs(numKeys) + fmt.Printf("%s\n", log) r := rand.New(rand.NewSource(seed)) + keys, accs := mock.GeneratePrivKeyAddressPairsFromRand(r, numKeys) // Setup event stats events := make(map[string]uint) event := func(what string) { + log += "\nevent - " + what events[what]++ } - app.InitChain(abci.RequestInitChain{AppStateBytes: appStateFn(r, addrs)}) + timestamp := time.Unix(0, 0) + timeDiff := maxTimePerBlock - minTimePerBlock + + res := app.InitChain(abci.RequestInitChain{AppStateBytes: appStateFn(r, keys, accs)}) + validators := make(map[string]mockValidator) + for _, validator := range res.Validators { + validators[string(validator.Address)] = mockValidator{validator, GetMemberOfInitialState(r, initialLivenessWeightings)} + } + for i := 0; i < len(setups); i++ { setups[i](r, keys) } - app.Commit() - header := abci.Header{Height: 0} + header := abci.Header{Height: 0, Time: timestamp} + opCount := 0 + + request := abci.RequestBeginBlock{Header: header} + + var pastTimes []time.Time for i := 0; i < numBlocks; i++ { - app.BeginBlock(abci.RequestBeginBlock{}) - // Make sure invariants hold at beginning of block and when nothing was - // done. + // Log the header time for future lookup + pastTimes = append(pastTimes, header.Time) + + // Run the BeginBlock handler + app.BeginBlock(request) + + log += "\nBeginBlock" + + // Make sure invariants hold at beginning of block AssertAllInvariants(t, app, invariants, log) ctx := app.NewContext(false, header) - // TODO: Add modes to simulate "no load", "medium load", and - // "high load" blocks. - for j := 0; j < blockSize; j++ { + var thisBlockSize int + load := r.Float64() + switch { + case load < 0.33: + thisBlockSize = 0 + case load < 0.66: + thisBlockSize = r.Intn(blockSize * 2) + default: + thisBlockSize = r.Intn(blockSize * 4) + } + for j := 0; j < thisBlockSize; j++ { logUpdate, err := ops[r.Intn(len(ops))](t, r, app, ctx, keys, log, event) log += "\n" + logUpdate require.Nil(t, err, log) - AssertAllInvariants(t, app, invariants, log) + if onOperation { + AssertAllInvariants(t, app, invariants, log) + } + if opCount%200 == 0 { + fmt.Printf("\rSimulating... block %d/%d, operation %d.", header.Height, numBlocks, opCount) + } + opCount++ } - app.EndBlock(abci.RequestEndBlock{}) + res := app.EndBlock(abci.RequestEndBlock{}) header.Height++ + header.Time = header.Time.Add(time.Duration(minTimePerBlock) * time.Second).Add(time.Duration(int64(r.Intn(int(timeDiff)))) * time.Second) + + log += "\nEndBlock" + + // Make sure invariants hold at end of block + AssertAllInvariants(t, app, invariants, log) + + // Generate a random RequestBeginBlock with the current validator set for the next block + request = RandomRequestBeginBlock(t, r, validators, livenessTransitionMatrix, evidenceFraction, pastTimes, event, header, log) + + // Update the validator set + validators = updateValidators(t, r, validators, res.ValidatorUpdates, event) } + fmt.Printf("\nSimulation complete. Final height (blocks): %d, final time (seconds): %v\n", header.Height, header.Time) DisplayEvents(events) } +// RandomRequestBeginBlock generates a list of signing validators according to the provided list of validators, signing fraction, and evidence fraction +func RandomRequestBeginBlock(t *testing.T, r *rand.Rand, validators map[string]mockValidator, livenessTransitions TransitionMatrix, evidenceFraction float64, + pastTimes []time.Time, event func(string), header abci.Header, log string) abci.RequestBeginBlock { + if len(validators) == 0 { + return abci.RequestBeginBlock{Header: header} + } + signingValidators := make([]abci.SigningValidator, len(validators)) + i := 0 + for _, mVal := range validators { + mVal.livenessState = livenessTransitions.NextState(r, mVal.livenessState) + signed := true + + if mVal.livenessState == 1 { + // spotty connection, 50% probability of success + // See https://github.com/golang/go/issues/23804#issuecomment-365370418 + // for reasoning behind computing like this + signed = r.Int63()%2 == 0 + } else if mVal.livenessState == 2 { + // offline + signed = false + } + if signed { + event("beginblock/signing/signed") + } else { + event("beginblock/signing/missed") + } + signingValidators[i] = abci.SigningValidator{ + Validator: mVal.val, + SignedLastBlock: signed, + } + i++ + } + evidence := make([]abci.Evidence, 0) + for r.Float64() < evidenceFraction { + height := header.Height + time := header.Time + if r.Float64() < pastEvidenceFraction { + height = int64(r.Intn(int(header.Height))) + time = pastTimes[height] + } + validator := signingValidators[r.Intn(len(signingValidators))].Validator + var currentTotalVotingPower int64 + for _, mVal := range validators { + currentTotalVotingPower += mVal.val.Power + } + evidence = append(evidence, abci.Evidence{ + Type: tmtypes.ABCIEvidenceTypeDuplicateVote, + Validator: validator, + Height: height, + Time: time, + TotalVotingPower: currentTotalVotingPower, + }) + event("beginblock/evidence") + } + return abci.RequestBeginBlock{ + Header: header, + LastCommitInfo: abci.LastCommitInfo{ + Validators: signingValidators, + }, + ByzantineValidators: evidence, + } +} + // AssertAllInvariants asserts a list of provided invariants against application state func AssertAllInvariants(t *testing.T, app *baseapp.BaseApp, tests []Invariant, log string) { for i := 0; i < len(tests); i++ { tests[i](t, app, log) } } + +// updateValidators mimicks Tendermint's update logic +func updateValidators(t *testing.T, r *rand.Rand, current map[string]mockValidator, updates []abci.Validator, event func(string)) map[string]mockValidator { + for _, update := range updates { + switch { + case update.Power == 0: + require.NotNil(t, current[string(update.PubKey.Data)], "tried to delete a nonexistent validator") + event("endblock/validatorupdates/kicked") + delete(current, string(update.PubKey.Data)) + default: + // Does validator already exist? + if mVal, ok := current[string(update.PubKey.Data)]; ok { + mVal.val = update + event("endblock/validatorupdates/updated") + } else { + // Set this new validator + current[string(update.PubKey.Data)] = mockValidator{update, GetMemberOfInitialState(r, initialLivenessWeightings)} + event("endblock/validatorupdates/added") + } + } + } + return current +} diff --git a/x/mock/simulation/transition_matrix.go b/x/mock/simulation/transition_matrix.go new file mode 100644 index 000000000..39bdb1e4f --- /dev/null +++ b/x/mock/simulation/transition_matrix.go @@ -0,0 +1,70 @@ +package simulation + +import ( + "fmt" + "math/rand" +) + +// TransitionMatrix is _almost_ a left stochastic matrix. +// It is technically not one due to not normalizing the column values. +// In the future, if we want to find the steady state distribution, +// it will be quite easy to normalize these values to get a stochastic matrix. +// Floats aren't currently used as the default due to non-determinism across +// architectures +type TransitionMatrix struct { + weights [][]int + // total in each column + totals []int + n int +} + +// CreateTransitionMatrix creates a transition matrix from the provided weights. +// TODO: Provide example usage +func CreateTransitionMatrix(weights [][]int) (TransitionMatrix, error) { + n := len(weights) + for i := 0; i < n; i++ { + if len(weights[i]) != n { + return TransitionMatrix{}, fmt.Errorf("Transition Matrix: Non-square matrix provided, error on row %d", i) + } + } + totals := make([]int, n) + for row := 0; row < n; row++ { + for col := 0; col < n; col++ { + totals[col] += weights[row][col] + } + } + return TransitionMatrix{weights, totals, n}, nil +} + +// NextState returns the next state randomly chosen using r, and the weightings provided +// in the transition matrix. +func (t TransitionMatrix) NextState(r *rand.Rand, i int) int { + randNum := r.Intn(t.totals[i]) + for row := 0; row < t.n; row++ { + if randNum < t.weights[row][i] { + return row + } + randNum -= t.weights[row][i] + } + // This line should never get executed + return -1 +} + +// GetMemberOfInitialState takes an initial array of weights, of size n. +// It returns a weighted random number in [0,n). +func GetMemberOfInitialState(r *rand.Rand, weights []int) int { + n := len(weights) + total := 0 + for i := 0; i < n; i++ { + total += weights[i] + } + randNum := r.Intn(total) + for state := 0; state < n; state++ { + if randNum < weights[state] { + return state + } + randNum -= weights[state] + } + // This line should never get executed + return -1 +} diff --git a/x/mock/simulation/types.go b/x/mock/simulation/types.go index 6e1d9f198..35769b0b2 100644 --- a/x/mock/simulation/types.go +++ b/x/mock/simulation/types.go @@ -6,6 +6,7 @@ import ( "github.com/cosmos/cosmos-sdk/baseapp" sdk "github.com/cosmos/cosmos-sdk/types" + abci "github.com/tendermint/tendermint/abci/types" "github.com/tendermint/tendermint/crypto" ) @@ -25,6 +26,11 @@ type ( // If the invariant has been broken, the function should halt the // test and output the log. Invariant func(t *testing.T, app *baseapp.BaseApp, log string) + + mockValidator struct { + val abci.Validator + livenessState int + } ) // PeriodicInvariant returns an Invariant function closure that asserts diff --git a/x/mock/simulation/util.go b/x/mock/simulation/util.go index 14227a1ae..1d64ba30d 100644 --- a/x/mock/simulation/util.go +++ b/x/mock/simulation/util.go @@ -3,8 +3,9 @@ package simulation import ( "fmt" "math/rand" + "sort" - crypto "github.com/tendermint/tendermint/crypto" + "github.com/tendermint/tendermint/crypto" sdk "github.com/cosmos/cosmos-sdk/types" ) @@ -39,8 +40,15 @@ func RandStringOfLength(r *rand.Rand, n int) string { // Pretty-print events as a table func DisplayEvents(events map[string]uint) { - // TODO - fmt.Printf("Events: %v\n", events) + var keys []string + for key := range events { + keys = append(keys, key) + } + sort.Strings(keys) + fmt.Printf("Event statistics: \n") + for _, key := range keys { + fmt.Printf(" % 60s => %d\n", key, events[key]) + } } // Pick a random key from an array diff --git a/x/slashing/simulation/invariants.go b/x/slashing/simulation/invariants.go new file mode 100644 index 000000000..7352aa503 --- /dev/null +++ b/x/slashing/simulation/invariants.go @@ -0,0 +1,18 @@ +package simulation + +import ( + "testing" + + "github.com/stretchr/testify/require" + + "github.com/cosmos/cosmos-sdk/baseapp" + "github.com/cosmos/cosmos-sdk/x/mock/simulation" +) + +// AllInvariants tests all slashing invariants +func AllInvariants() simulation.Invariant { + return func(t *testing.T, app *baseapp.BaseApp, log string) { + // TODO Any invariants to check here? + require.Nil(t, nil) + } +} diff --git a/x/slashing/simulation/msgs.go b/x/slashing/simulation/msgs.go new file mode 100644 index 000000000..b6a093674 --- /dev/null +++ b/x/slashing/simulation/msgs.go @@ -0,0 +1,34 @@ +package simulation + +import ( + "fmt" + "math/rand" + "testing" + + "github.com/stretchr/testify/require" + + "github.com/tendermint/tendermint/crypto" + + "github.com/cosmos/cosmos-sdk/baseapp" + sdk "github.com/cosmos/cosmos-sdk/types" + "github.com/cosmos/cosmos-sdk/x/mock/simulation" + "github.com/cosmos/cosmos-sdk/x/slashing" +) + +// SimulateMsgUnrevoke +func SimulateMsgUnrevoke(k slashing.Keeper) simulation.TestAndRunTx { + return func(t *testing.T, r *rand.Rand, app *baseapp.BaseApp, ctx sdk.Context, keys []crypto.PrivKey, log string, event func(string)) (action string, err sdk.Error) { + key := simulation.RandomKey(r, keys) + address := sdk.AccAddress(key.PubKey().Address()) + msg := slashing.NewMsgUnrevoke(address) + require.Nil(t, msg.ValidateBasic(), "expected msg to pass ValidateBasic: %s", msg.GetSignBytes()) + ctx, write := ctx.CacheContext() + result := slashing.NewHandler(k)(ctx, msg) + if result.IsOK() { + write() + } + event(fmt.Sprintf("slashing/MsgUnrevoke/%v", result.IsOK())) + action = fmt.Sprintf("TestMsgUnrevoke: ok %v, msg %s", result.IsOK(), msg.GetSignBytes()) + return action, nil + } +} diff --git a/x/stake/genesis.go b/x/stake/genesis.go index 46bda752d..7a004bccd 100644 --- a/x/stake/genesis.go +++ b/x/stake/genesis.go @@ -33,7 +33,6 @@ func InitGenesis(ctx sdk.Context, keeper Keeper, data types.GenesisState) (res [ // Manually set indexes for the first time keeper.SetValidatorByPubKeyIndex(ctx, validator) - keeper.SetValidatorByPowerIndex(ctx, validator, data.Pool) if validator.Status == sdk.Bonded { diff --git a/x/stake/keeper/validator.go b/x/stake/keeper/validator.go index eaaf3df9e..8b8cea73d 100644 --- a/x/stake/keeper/validator.go +++ b/x/stake/keeper/validator.go @@ -421,6 +421,9 @@ func (k Keeper) UpdateBondedValidators( if !validator.Revoked { if validator.Status != sdk.Bonded { validatorToBond = validator + if newValidatorBonded { + panic("already decided to bond a validator, can't bond another!") + } newValidatorBonded = true } @@ -436,6 +439,10 @@ func (k Keeper) UpdateBondedValidators( iterator.Close() + if newValidatorBonded && bytes.Equal(oldCliffValidatorAddr, validator.Owner) { + panic("cliff validator has not been changed, yet we bonded a new validator") + } + // clear or set the cliff validator if bondedValidatorsCount == int(maxValidators) { k.setCliffValidator(ctx, validator, k.GetPool(ctx)) @@ -556,7 +563,7 @@ func (k Keeper) unbondValidator(ctx sdk.Context, validator types.Validator) type // sanity check if validator.Status == sdk.Unbonded { - panic(fmt.Sprintf("should not already be unbonded, validator: %v\n", validator)) + panic(fmt.Sprintf("should not already be unbonded, validator: %v\n", validator)) } // set the status diff --git a/x/stake/simulation/msgs.go b/x/stake/simulation/msgs.go index e4077a749..ec39f87b0 100644 --- a/x/stake/simulation/msgs.go +++ b/x/stake/simulation/msgs.go @@ -235,7 +235,10 @@ func SimulateMsgCompleteRedelegate(k stake.Keeper) simulation.TestAndRunTx { func Setup(mapp *mock.App, k stake.Keeper) simulation.RandSetup { return func(r *rand.Rand, privKeys []crypto.PrivKey) { ctx := mapp.NewContext(false, abci.Header{}) - stake.InitGenesis(ctx, k, stake.DefaultGenesisState()) + gen := stake.DefaultGenesisState() + gen.Params.InflationMax = sdk.NewRat(0) + gen.Params.InflationMin = sdk.NewRat(0) + stake.InitGenesis(ctx, k, gen) params := k.GetParams(ctx) denom := params.BondDenom loose := sdk.ZeroInt() diff --git a/x/stake/simulation/sim_test.go b/x/stake/simulation/sim_test.go index 391ca1996..3e80e1eb3 100644 --- a/x/stake/simulation/sim_test.go +++ b/x/stake/simulation/sim_test.go @@ -5,12 +5,14 @@ import ( "math/rand" "testing" + abci "github.com/tendermint/tendermint/abci/types" + "github.com/tendermint/tendermint/crypto" + sdk "github.com/cosmos/cosmos-sdk/types" "github.com/cosmos/cosmos-sdk/x/bank" "github.com/cosmos/cosmos-sdk/x/mock" "github.com/cosmos/cosmos-sdk/x/mock/simulation" "github.com/cosmos/cosmos-sdk/x/stake" - abci "github.com/tendermint/tendermint/abci/types" ) // TestStakeWithRandomMessages @@ -35,7 +37,7 @@ func TestStakeWithRandomMessages(t *testing.T) { panic(err) } - appStateFn := func(r *rand.Rand, accs []sdk.AccAddress) json.RawMessage { + appStateFn := func(r *rand.Rand, keys []crypto.PrivKey, accs []sdk.AccAddress) json.RawMessage { mock.RandomSetGenesis(r, mapp, accs, []string{"stake"}) return json.RawMessage("{}") } @@ -54,6 +56,6 @@ func TestStakeWithRandomMessages(t *testing.T) { Setup(mapp, stakeKeeper), }, []simulation.Invariant{ AllInvariants(coinKeeper, stakeKeeper, mapp.AccountMapper), - }, 10, 100, 100, + }, 10, 100, ) } diff --git a/x/stake/types/validator.go b/x/stake/types/validator.go index 837b8f8e8..089e8ea92 100644 --- a/x/stake/types/validator.go +++ b/x/stake/types/validator.go @@ -314,8 +314,9 @@ func (d Description) EnsureLength() (Description, sdk.Error) { // ABCIValidator returns an abci.Validator from a staked validator type. func (v Validator) ABCIValidator() abci.Validator { return abci.Validator{ - PubKey: tmtypes.TM2PB.PubKey(v.PubKey), - Power: v.BondedTokens().RoundInt64(), + PubKey: tmtypes.TM2PB.PubKey(v.PubKey), + Address: v.PubKey.Address(), + Power: v.BondedTokens().RoundInt64(), } } @@ -323,8 +324,9 @@ func (v Validator) ABCIValidator() abci.Validator { // with with zero power used for validator updates. func (v Validator) ABCIValidatorZero() abci.Validator { return abci.Validator{ - PubKey: tmtypes.TM2PB.PubKey(v.PubKey), - Power: 0, + PubKey: tmtypes.TM2PB.PubKey(v.PubKey), + Address: v.PubKey.Address(), + Power: 0, } } From 45bd414fc2fffaa0aee9548087352c84dd8364e9 Mon Sep 17 00:00:00 2001 From: Jack Zampolin <jack.zampolin@gmail.com> Date: Thu, 16 Aug 2018 11:23:57 -0700 Subject: [PATCH 14/23] Run localnet on every commit ensure network reaches at least 10 blocks (#2067) --- .circleci/config.yml | 26 +++++++++++++++++++++ CHANGELOG.md | 1 + Makefile | 4 ++-- PENDING.md | 19 ++++++++------- scripts/localnet-blocks-test.sh | 41 +++++++++++++++++++++++++++++++++ 5 files changed, 79 insertions(+), 12 deletions(-) create mode 100755 scripts/localnet-blocks-test.sh diff --git a/.circleci/config.yml b/.circleci/config.yml index b778653ea..3be6151e9 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -165,6 +165,29 @@ jobs: name: upload command: bash <(curl -s https://codecov.io/bash) -f coverage.txt + localnet: + working_directory: /home/circleci/.go_workspace/src/github.com/cosmos/cosmos-sdk + machine: + image: circleci/classic:latest + environment: + GOBIN: /home/circleci/.go_workspace/bin + GOPATH: /home/circleci/.go_workspace/ + GOOS: linux + GOARCH: amd64 + parallelism: 1 + steps: + - checkout + - run: + name: run localnet and exit on failure + command: | + set -x + make get_tools + make get_vendor_deps + make build-linux + make localnet-start + ./scripts/localnet-blocks-test.sh 40 5 10 localhost + + workflows: version: 2 test-suite: @@ -185,6 +208,9 @@ workflows: - test_cover: requires: - setup_dependencies + - localnet: + requires: + - setup_dependencies - upload_coverage: requires: - test_cover diff --git a/CHANGELOG.md b/CHANGELOG.md index b4de50494..55104830b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -84,6 +84,7 @@ IMPROVEMENTS - [x/gov] Initial governance parameters can now be set in the genesis file - [x/stake] \#1815 Sped up the processing of `EditValidator` txs. - [config] \#1930 Transactions indexer indexes all tags by default. + - [ci] [#2057](https://github.com/cosmos/cosmos-sdk/pull/2057) Run `make localnet-start` on every commit and ensure network reaches at least 10 blocks * SDK - [baseapp] \#1587 Allow any alphanumeric character in route diff --git a/Makefile b/Makefile index d06d4eb4c..655d8574e 100644 --- a/Makefile +++ b/Makefile @@ -15,7 +15,7 @@ ci: get_tools get_vendor_deps install test_cover test_lint test ######################################## ### Build/Install -check-ledger: +check-ledger: ifeq ($(LEDGER_ENABLED),true) ifndef GCC $(error "gcc not installed for ledger support, please install") @@ -193,7 +193,7 @@ build-docker-gaiadnode: # Run a 4-node testnet locally localnet-start: localnet-stop @if ! [ -f build/node0/gaiad/config/genesis.json ]; then docker run --rm -v $(CURDIR)/build:/gaiad:Z tendermint/gaiadnode testnet --v 4 --o . --starting-ip-address 192.168.10.2 ; fi - docker-compose up + docker-compose up -d # Stop testnet localnet-stop: diff --git a/PENDING.md b/PENDING.md index 9f0b86a99..9ade31c8b 100644 --- a/PENDING.md +++ b/PENDING.md @@ -8,10 +8,10 @@ BREAKING CHANGES * Gaia * Make the transient store key use a distinct store key. [#2013](https://github.com/cosmos/cosmos-sdk/pull/2013) - -* SDK -* Tendermint +* SDK + +* Tendermint FEATURES @@ -22,9 +22,9 @@ FEATURES * Gaia -* SDK +* SDK -* Tendermint +* Tendermint IMPROVEMENTS @@ -35,9 +35,9 @@ IMPROVEMENTS * Gaia -* SDK +* SDK -* Tendermint +* Tendermint BUG FIXES @@ -48,7 +48,6 @@ BUG FIXES * Gaia -* SDK - -* Tendermint +* SDK +* Tendermint diff --git a/scripts/localnet-blocks-test.sh b/scripts/localnet-blocks-test.sh new file mode 100755 index 000000000..53df090ff --- /dev/null +++ b/scripts/localnet-blocks-test.sh @@ -0,0 +1,41 @@ +#!/bin/bash + +CNT=0 +ITER=$1 +SLEEP=$2 +NUMBLOCKS=$3 +NODEADDR=$4 + +if [ -z "$1" ]; then + echo "Need to input number of iterations to run..." + exit 1 +fi + +if [ -z "$2" ]; then + echo "Need to input number of seconds to sleep between iterations" + exit 1 +fi + +if [ -z "$3" ]; then + echo "Need to input block height to declare completion..." + exit 1 +fi + +if [ -z "$4" ]; then + echo "Need to input node address to poll..." + exit 1 +fi + +while [ ${CNT} -lt $ITER ]; do + var=$(curl -s $NODEADDR:26657/status | jq -r '.result.sync_info.latest_block_height') + echo "Number of Blocks: ${var}" + if [ ! -z ${var} ] && [ ${var} -gt ${NUMBLOCKS} ]; then + echo "Number of blocks reached, exiting success..." + exit 0 + fi + let CNT=CNT+1 + sleep $SLEEP +done + +echo "Timeout reached, exiting failure..." +exit 1 From 8bb79d12ca0d905f34d734e59479cfba5e6775d1 Mon Sep 17 00:00:00 2001 From: Dev Ojha <ValarDragon@users.noreply.github.com> Date: Thu, 16 Aug 2018 14:45:07 -0700 Subject: [PATCH 15/23] Fix non-deterministic map iteration in fuzzer (#2069) * This demonstrates that the state machine is non-deterministic if there are more than two txs in a block. * fix non-deterministic map iteration * (squash this) fix build errors * (squash this) iterate using range --- cmd/gaia/app/sim_test.go | 40 ++++++++++++--------- x/bank/simulation/sim_test.go | 1 + x/gov/simulation/sim_test.go | 1 + x/mock/simulation/random_simulate_blocks.go | 25 ++++++++++--- x/stake/simulation/sim_test.go | 1 + 5 files changed, 48 insertions(+), 20 deletions(-) diff --git a/cmd/gaia/app/sim_test.go b/cmd/gaia/app/sim_test.go index 5d0edcba2..3b85a89cf 100644 --- a/cmd/gaia/app/sim_test.go +++ b/cmd/gaia/app/sim_test.go @@ -130,17 +130,13 @@ func TestFullGaiaSimulation(t *testing.T) { }, numBlocks, blockSize, + false, ) } -// TODO: Make this not depend on Gaia or any of the modules, -// and place it in random_simulation_test.go -// -// Test doesn't use `app.ExportAppStateAndValidators` as that panics with the following: -// panic: Stored pool should not have been nil [recovered] -// panic: Stored pool should not have been nil -// Change to `app.ExportAppStateAndValidators` once it is fixed +// TODO: Make another test for the fuzzer itself, which just has noOp txs +// and doesn't depend on gaia func TestAppStateDeterminism(t *testing.T) { numTimesToRun := 5 appHashList := make([]json.RawMessage, numTimesToRun) @@ -152,27 +148,39 @@ func TestAppStateDeterminism(t *testing.T) { app := NewGaiaApp(logger, db, nil) noOpInvariant := func(t *testing.T, baseapp *baseapp.BaseApp, log string) {} - noOpTestAndRunTx := func(t *testing.T, r *rand.Rand, app *baseapp.BaseApp, ctx sdk.Context, - privKeys []crypto.PrivKey, log string, event func(string), - ) (action string, err sdk.Error) { - return "", nil - } + // noOpTestAndRunTx := func(t *testing.T, r *rand.Rand, app *baseapp.BaseApp, ctx sdk.Context, + // privKeys []crypto.PrivKey, log string, event func(string), + // ) (action string, err sdk.Error) { + // return "", nil + // } // Run randomized simulation simulation.SimulateFromSeed( t, app.BaseApp, appStateFn, seed, []simulation.TestAndRunTx{ - noOpTestAndRunTx, + banksim.TestAndRunSingleInputMsgSend(app.accountMapper), + govsim.SimulateMsgSubmitProposal(app.govKeeper, app.stakeKeeper), + govsim.SimulateMsgDeposit(app.govKeeper, app.stakeKeeper), + govsim.SimulateMsgVote(app.govKeeper, app.stakeKeeper), + stakesim.SimulateMsgCreateValidator(app.accountMapper, app.stakeKeeper), + stakesim.SimulateMsgEditValidator(app.stakeKeeper), + stakesim.SimulateMsgDelegate(app.accountMapper, app.stakeKeeper), + stakesim.SimulateMsgBeginUnbonding(app.accountMapper, app.stakeKeeper), + stakesim.SimulateMsgCompleteUnbonding(app.stakeKeeper), + stakesim.SimulateMsgBeginRedelegate(app.accountMapper, app.stakeKeeper), + stakesim.SimulateMsgCompleteRedelegate(app.stakeKeeper), + slashingsim.SimulateMsgUnrevoke(app.slashingKeeper), }, []simulation.RandSetup{}, []simulation.Invariant{noOpInvariant}, - 0, - 10, + 20, + 20, + true, ) appHash := app.LastCommitID().Hash appHashList[i] = appHash } for i := 1; i < numTimesToRun; i++ { - require.Equal(t, appHashList[0], appHashList[i]) + require.Equal(t, appHashList[0], appHashList[i], "appHashes: %v", appHashList) } } diff --git a/x/bank/simulation/sim_test.go b/x/bank/simulation/sim_test.go index 49e3dfa92..8fedeca79 100644 --- a/x/bank/simulation/sim_test.go +++ b/x/bank/simulation/sim_test.go @@ -42,5 +42,6 @@ func TestBankWithRandomMessages(t *testing.T) { TotalCoinsInvariant(mapper, func() sdk.Coins { return mapp.TotalCoinsSupply }), }, 30, 30, + false, ) } diff --git a/x/gov/simulation/sim_test.go b/x/gov/simulation/sim_test.go index e7131f8fc..691aa1cd2 100644 --- a/x/gov/simulation/sim_test.go +++ b/x/gov/simulation/sim_test.go @@ -64,5 +64,6 @@ func TestGovWithRandomMessages(t *testing.T) { }, []simulation.Invariant{ AllInvariants(), }, 10, 100, + false, ) } diff --git a/x/mock/simulation/random_simulate_blocks.go b/x/mock/simulation/random_simulate_blocks.go index 1b6953631..ffc00500e 100644 --- a/x/mock/simulation/random_simulate_blocks.go +++ b/x/mock/simulation/random_simulate_blocks.go @@ -4,6 +4,7 @@ import ( "encoding/json" "fmt" "math/rand" + "sort" "testing" "time" @@ -20,17 +21,17 @@ import ( // Simulate tests application by sending random messages. func Simulate( t *testing.T, app *baseapp.BaseApp, appStateFn func(r *rand.Rand, keys []crypto.PrivKey, accs []sdk.AccAddress) json.RawMessage, ops []TestAndRunTx, setups []RandSetup, - invariants []Invariant, numBlocks int, blockSize int, + invariants []Invariant, numBlocks int, blockSize int, commit bool, ) { time := time.Now().UnixNano() - SimulateFromSeed(t, app, appStateFn, time, ops, setups, invariants, numBlocks, blockSize) + SimulateFromSeed(t, app, appStateFn, time, ops, setups, invariants, numBlocks, blockSize, commit) } // SimulateFromSeed tests an application by running the provided // operations, testing the provided invariants, but using the provided seed. func SimulateFromSeed( t *testing.T, app *baseapp.BaseApp, appStateFn func(r *rand.Rand, keys []crypto.PrivKey, accs []sdk.AccAddress) json.RawMessage, seed int64, ops []TestAndRunTx, setups []RandSetup, - invariants []Invariant, numBlocks int, blockSize int, + invariants []Invariant, numBlocks int, blockSize int, commit bool, ) { log := fmt.Sprintf("Starting SimulateFromSeed with randomness created with seed %d", int(seed)) fmt.Printf("%s\n", log) @@ -104,6 +105,9 @@ func SimulateFromSeed( } res := app.EndBlock(abci.RequestEndBlock{}) + if commit { + app.Commit() + } header.Height++ header.Time = header.Time.Add(time.Duration(minTimePerBlock) * time.Second).Add(time.Duration(int64(r.Intn(int(timeDiff)))) * time.Second) @@ -123,6 +127,17 @@ func SimulateFromSeed( DisplayEvents(events) } +func getKeys(validators map[string]mockValidator) []string { + keys := make([]string, len(validators)) + i := 0 + for key := range validators { + keys[i] = key + i++ + } + sort.Strings(keys) + return keys +} + // RandomRequestBeginBlock generates a list of signing validators according to the provided list of validators, signing fraction, and evidence fraction func RandomRequestBeginBlock(t *testing.T, r *rand.Rand, validators map[string]mockValidator, livenessTransitions TransitionMatrix, evidenceFraction float64, pastTimes []time.Time, event func(string), header abci.Header, log string) abci.RequestBeginBlock { @@ -131,7 +146,9 @@ func RandomRequestBeginBlock(t *testing.T, r *rand.Rand, validators map[string]m } signingValidators := make([]abci.SigningValidator, len(validators)) i := 0 - for _, mVal := range validators { + + for _, key := range getKeys(validators) { + mVal := validators[key] mVal.livenessState = livenessTransitions.NextState(r, mVal.livenessState) signed := true diff --git a/x/stake/simulation/sim_test.go b/x/stake/simulation/sim_test.go index 3e80e1eb3..84745cd1d 100644 --- a/x/stake/simulation/sim_test.go +++ b/x/stake/simulation/sim_test.go @@ -57,5 +57,6 @@ func TestStakeWithRandomMessages(t *testing.T) { }, []simulation.Invariant{ AllInvariants(coinKeeper, stakeKeeper, mapp.AccountMapper), }, 10, 100, + false, ) } From b8cfc1e19fe2f11c33917cb062bbf0477a18b80c Mon Sep 17 00:00:00 2001 From: Christopher Goes <cwgoes@pluranimity.org> Date: Fri, 17 Aug 2018 16:19:33 +0200 Subject: [PATCH 16/23] Merge PR #2068: Minor simulation changes --- .circleci/config.yml | 19 +++ Makefile | 10 +- cmd/gaia/app/sim_test.go | 129 ++++++++++---------- x/gov/handler.go | 6 +- x/mock/simulation/random_simulate_blocks.go | 7 +- x/stake/simulation/invariants.go | 11 +- 6 files changed, 103 insertions(+), 79 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 3be6151e9..116bdc866 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -101,6 +101,22 @@ jobs: export PATH="$GOBIN:$PATH" make test_sim_modules + test_sim_gaia_nondeterminism: + <<: *defaults + parallelism: 1 + steps: + - attach_workspace: + at: /tmp/workspace + - restore_cache: + key: v1-pkg-cache + - restore_cache: + key: v1-tree-{{ .Environment.CIRCLE_SHA1 }} + - run: + name: Test individual module simulations + command: | + export PATH="$GOBIN:$PATH" + make test_sim_gaia_nondeterminism + test_sim_gaia_fast: <<: *defaults parallelism: 1 @@ -202,6 +218,9 @@ workflows: - test_sim_modules: requires: - setup_dependencies + - test_sim_gaia_nondeterminism: + requires: + - setup_dependencies - test_sim_gaia_fast: requires: - setup_dependencies diff --git a/Makefile b/Makefile index 655d8574e..5a8dd82fe 100644 --- a/Makefile +++ b/Makefile @@ -134,12 +134,16 @@ test_sim_modules: @echo "Running individual module simulations..." @go test $(PACKAGES_SIMTEST) +test_sim_gaia_nondeterminism: + @echo "Running nondeterminism test..." + @go test ./cmd/gaia/app -run TestAppStateDeterminism -SimulationEnabled=true -v -timeout 10m + test_sim_gaia_fast: - @echo "Running full Gaia simulation. This may take several minutes..." - @go test ./cmd/gaia/app -run TestFullGaiaSimulation -SimulationEnabled=true -SimulationNumBlocks=1000 -v -timeout 24h + @echo "Running quick Gaia simulation. This may take several minutes..." + @go test ./cmd/gaia/app -run TestFullGaiaSimulation -SimulationEnabled=true -SimulationNumBlocks=200 -timeout 24h test_sim_gaia_slow: - @echo "Running full Gaia simulation. This may take several minutes..." + @echo "Running full Gaia simulation. This may take awhile!" @go test ./cmd/gaia/app -run TestFullGaiaSimulation -SimulationEnabled=true -SimulationNumBlocks=1000 -SimulationVerbose=true -v -timeout 24h test_cover: diff --git a/cmd/gaia/app/sim_test.go b/cmd/gaia/app/sim_test.go index 3b85a89cf..8a81a1a92 100644 --- a/cmd/gaia/app/sim_test.go +++ b/cmd/gaia/app/sim_test.go @@ -3,6 +3,7 @@ package app import ( "encoding/json" "flag" + "fmt" "math/rand" "testing" @@ -84,6 +85,34 @@ func appStateFn(r *rand.Rand, keys []crypto.PrivKey, accs []sdk.AccAddress) json return appState } +func testAndRunTxs(app *GaiaApp) []simulation.TestAndRunTx { + return []simulation.TestAndRunTx{ + banksim.TestAndRunSingleInputMsgSend(app.accountMapper), + govsim.SimulateMsgSubmitProposal(app.govKeeper, app.stakeKeeper), + govsim.SimulateMsgDeposit(app.govKeeper, app.stakeKeeper), + govsim.SimulateMsgVote(app.govKeeper, app.stakeKeeper), + stakesim.SimulateMsgCreateValidator(app.accountMapper, app.stakeKeeper), + stakesim.SimulateMsgEditValidator(app.stakeKeeper), + stakesim.SimulateMsgDelegate(app.accountMapper, app.stakeKeeper), + stakesim.SimulateMsgBeginUnbonding(app.accountMapper, app.stakeKeeper), + stakesim.SimulateMsgCompleteUnbonding(app.stakeKeeper), + stakesim.SimulateMsgBeginRedelegate(app.accountMapper, app.stakeKeeper), + stakesim.SimulateMsgCompleteRedelegate(app.stakeKeeper), + slashingsim.SimulateMsgUnrevoke(app.slashingKeeper), + } +} + +func invariants(app *GaiaApp) []simulation.Invariant { + return []simulation.Invariant{ + func(t *testing.T, baseapp *baseapp.BaseApp, log string) { + banksim.NonnegativeBalanceInvariant(app.accountMapper)(t, baseapp, log) + govsim.AllInvariants()(t, baseapp, log) + stakesim.AllInvariants(app.coinKeeper, app.stakeKeeper, app.accountMapper)(t, baseapp, log) + slashingsim.AllInvariants()(t, baseapp, log) + }, + } +} + func TestFullGaiaSimulation(t *testing.T) { if !enabled { t.Skip("Skipping Gaia simulation") @@ -100,34 +129,12 @@ func TestFullGaiaSimulation(t *testing.T) { app := NewGaiaApp(logger, db, nil) require.Equal(t, "GaiaApp", app.Name()) - allInvariants := func(t *testing.T, baseapp *baseapp.BaseApp, log string) { - banksim.NonnegativeBalanceInvariant(app.accountMapper)(t, baseapp, log) - govsim.AllInvariants()(t, baseapp, log) - stakesim.AllInvariants(app.coinKeeper, app.stakeKeeper, app.accountMapper)(t, baseapp, log) - slashingsim.AllInvariants()(t, baseapp, log) - } - // Run randomized simulation simulation.SimulateFromSeed( t, app.BaseApp, appStateFn, seed, - []simulation.TestAndRunTx{ - banksim.TestAndRunSingleInputMsgSend(app.accountMapper), - govsim.SimulateMsgSubmitProposal(app.govKeeper, app.stakeKeeper), - govsim.SimulateMsgDeposit(app.govKeeper, app.stakeKeeper), - govsim.SimulateMsgVote(app.govKeeper, app.stakeKeeper), - stakesim.SimulateMsgCreateValidator(app.accountMapper, app.stakeKeeper), - stakesim.SimulateMsgEditValidator(app.stakeKeeper), - stakesim.SimulateMsgDelegate(app.accountMapper, app.stakeKeeper), - stakesim.SimulateMsgBeginUnbonding(app.accountMapper, app.stakeKeeper), - stakesim.SimulateMsgCompleteUnbonding(app.stakeKeeper), - stakesim.SimulateMsgBeginRedelegate(app.accountMapper, app.stakeKeeper), - stakesim.SimulateMsgCompleteRedelegate(app.stakeKeeper), - slashingsim.SimulateMsgUnrevoke(app.slashingKeeper), - }, + testAndRunTxs(app), []simulation.RandSetup{}, - []simulation.Invariant{ - allInvariants, - }, + invariants(app), numBlocks, blockSize, false, @@ -138,49 +145,37 @@ func TestFullGaiaSimulation(t *testing.T) { // TODO: Make another test for the fuzzer itself, which just has noOp txs // and doesn't depend on gaia func TestAppStateDeterminism(t *testing.T) { - numTimesToRun := 5 - appHashList := make([]json.RawMessage, numTimesToRun) - - seed := rand.Int63() - for i := 0; i < numTimesToRun; i++ { - logger := log.NewNopLogger() - db := dbm.NewMemDB() - app := NewGaiaApp(logger, db, nil) - - noOpInvariant := func(t *testing.T, baseapp *baseapp.BaseApp, log string) {} - // noOpTestAndRunTx := func(t *testing.T, r *rand.Rand, app *baseapp.BaseApp, ctx sdk.Context, - // privKeys []crypto.PrivKey, log string, event func(string), - // ) (action string, err sdk.Error) { - // return "", nil - // } - - // Run randomized simulation - simulation.SimulateFromSeed( - t, app.BaseApp, appStateFn, seed, - []simulation.TestAndRunTx{ - banksim.TestAndRunSingleInputMsgSend(app.accountMapper), - govsim.SimulateMsgSubmitProposal(app.govKeeper, app.stakeKeeper), - govsim.SimulateMsgDeposit(app.govKeeper, app.stakeKeeper), - govsim.SimulateMsgVote(app.govKeeper, app.stakeKeeper), - stakesim.SimulateMsgCreateValidator(app.accountMapper, app.stakeKeeper), - stakesim.SimulateMsgEditValidator(app.stakeKeeper), - stakesim.SimulateMsgDelegate(app.accountMapper, app.stakeKeeper), - stakesim.SimulateMsgBeginUnbonding(app.accountMapper, app.stakeKeeper), - stakesim.SimulateMsgCompleteUnbonding(app.stakeKeeper), - stakesim.SimulateMsgBeginRedelegate(app.accountMapper, app.stakeKeeper), - stakesim.SimulateMsgCompleteRedelegate(app.stakeKeeper), - slashingsim.SimulateMsgUnrevoke(app.slashingKeeper), - }, - []simulation.RandSetup{}, - []simulation.Invariant{noOpInvariant}, - 20, - 20, - true, - ) - appHash := app.LastCommitID().Hash - appHashList[i] = appHash + if !enabled { + t.Skip("Skipping Gaia simulation") } - for i := 1; i < numTimesToRun; i++ { - require.Equal(t, appHashList[0], appHashList[i], "appHashes: %v", appHashList) + + numSeeds := 5 + numTimesToRunPerSeed := 5 + appHashList := make([]json.RawMessage, numTimesToRunPerSeed) + + for i := 0; i < numSeeds; i++ { + seed := rand.Int63() + for j := 0; j < numTimesToRunPerSeed; j++ { + logger := log.NewNopLogger() + db := dbm.NewMemDB() + app := NewGaiaApp(logger, db, nil) + + // Run randomized simulation + simulation.SimulateFromSeed( + t, app.BaseApp, appStateFn, seed, + testAndRunTxs(app), + []simulation.RandSetup{}, + []simulation.Invariant{}, + 20, + 20, + true, + ) + appHash := app.LastCommitID().Hash + fmt.Printf(">>> APP HASH: %v, %X\n", appHash, appHash) + appHashList[j] = appHash + } + for k := 1; k < numTimesToRunPerSeed; k++ { + require.Equal(t, appHashList[0], appHashList[k]) + } } } diff --git a/x/gov/handler.go b/x/gov/handler.go index 554c06a8a..d1de0cbab 100644 --- a/x/gov/handler.go +++ b/x/gov/handler.go @@ -1,6 +1,8 @@ package gov import ( + "fmt" + sdk "github.com/cosmos/cosmos-sdk/types" "github.com/cosmos/cosmos-sdk/x/gov/tags" ) @@ -152,8 +154,8 @@ func EndBlocker(ctx sdk.Context, keeper Keeper) (resTags sdk.Tags) { val.GetPower().RoundInt64(), keeper.GetTallyingProcedure(ctx).GovernancePenalty) - logger.Info("Validator %s failed to vote on proposal %d, slashing", - val.GetOwner(), activeProposal.GetProposalID()) + logger.Info(fmt.Sprintf("Validator %s failed to vote on proposal %d, slashing", + val.GetOwner(), activeProposal.GetProposalID())) } resTags.AppendTag(tags.Action, action) diff --git a/x/mock/simulation/random_simulate_blocks.go b/x/mock/simulation/random_simulate_blocks.go index ffc00500e..c7e616614 100644 --- a/x/mock/simulation/random_simulate_blocks.go +++ b/x/mock/simulation/random_simulate_blocks.go @@ -105,9 +105,6 @@ func SimulateFromSeed( } res := app.EndBlock(abci.RequestEndBlock{}) - if commit { - app.Commit() - } header.Height++ header.Time = header.Time.Add(time.Duration(minTimePerBlock) * time.Second).Add(time.Duration(int64(r.Intn(int(timeDiff)))) * time.Second) @@ -116,6 +113,10 @@ func SimulateFromSeed( // Make sure invariants hold at end of block AssertAllInvariants(t, app, invariants, log) + if commit { + app.Commit() + } + // Generate a random RequestBeginBlock with the current validator set for the next block request = RandomRequestBeginBlock(t, r, validators, livenessTransitionMatrix, evidenceFraction, pastTimes, event, header, log) diff --git a/x/stake/simulation/invariants.go b/x/stake/simulation/invariants.go index e4869693c..96e7931c7 100644 --- a/x/stake/simulation/invariants.go +++ b/x/stake/simulation/invariants.go @@ -28,7 +28,7 @@ func AllInvariants(ck bank.Keeper, k stake.Keeper, am auth.AccountMapper) simula func SupplyInvariants(ck bank.Keeper, k stake.Keeper, am auth.AccountMapper) simulation.Invariant { return func(t *testing.T, app *baseapp.BaseApp, log string) { ctx := app.NewContext(false, abci.Header{}) - pool := k.GetPool(ctx) + //pool := k.GetPool(ctx) loose := sdk.ZeroInt() bonded := sdk.ZeroRat() @@ -52,11 +52,14 @@ func SupplyInvariants(ck bank.Keeper, k stake.Keeper, am auth.AccountMapper) sim }) // Loose tokens should equal coin supply plus unbonding delegations plus tokens on unbonded validators - require.True(t, pool.LooseTokens.RoundInt64() == loose.Int64(), "expected loose tokens to equal total steak held by accounts - pool.LooseTokens: %v, sum of account tokens: %v\nlog: %s", - pool.LooseTokens.RoundInt64(), loose.Int64(), log) + // XXX TODO https://github.com/cosmos/cosmos-sdk/issues/2063#issuecomment-413720872 + // require.True(t, pool.LooseTokens.RoundInt64() == loose.Int64(), "expected loose tokens to equal total steak held by accounts - pool.LooseTokens: %v, sum of account tokens: %v\nlog: %s", + // pool.LooseTokens.RoundInt64(), loose.Int64(), log) // Bonded tokens should equal sum of tokens with bonded validators - require.True(t, pool.BondedTokens.Equal(bonded), "expected bonded tokens to equal total steak held by bonded validators\nlog: %s", log) + // XXX TODO https://github.com/cosmos/cosmos-sdk/issues/2063#issuecomment-413720872 + // require.True(t, pool.BondedTokens.RoundInt64() == bonded.RoundInt64(), "expected bonded tokens to equal total steak held by bonded validators - pool.BondedTokens: %v, sum of bonded validator tokens: %v\nlog: %s", + // pool.BondedTokens.RoundInt64(), bonded.RoundInt64(), log) // TODO Inflation check on total supply } From cf03076a0a65f7989087579ce362b44439941875 Mon Sep 17 00:00:00 2001 From: Alexander Bezobchuk <alexanderbez@users.noreply.github.com> Date: Fri, 17 Aug 2018 11:33:13 -0400 Subject: [PATCH 17/23] Merge PR #2047: Fix Invalid Cliff Validator Power Comparison --- CHANGELOG.md | 1 + x/stake/keeper/validator.go | 19 +++++++++---------- x/stake/keeper/validator_test.go | 14 +++++++++++++- 3 files changed, 23 insertions(+), 11 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 55104830b..7ec3d6658 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -103,6 +103,7 @@ BUG FIXES - [x/stake] \#2021 Fixed repeated CLI commands in staking * Gaia + - [x/stake] [#2077](https://github.com/cosmos/cosmos-sdk/pull/2077) Fixed invalid cliff power comparison - \#1804 Fixes gen-tx genesis generation logic temporarily until upstream updates - \#1799 Fix `gaiad export` - \#1839 Fixed bug where intra-tx counter wasn't set correctly for genesis validators diff --git a/x/stake/keeper/validator.go b/x/stake/keeper/validator.go index 8b8cea73d..debb91729 100644 --- a/x/stake/keeper/validator.go +++ b/x/stake/keeper/validator.go @@ -280,10 +280,6 @@ func (k Keeper) updateCliffValidator(ctx sdk.Context, affectedVal types.Validato panic(fmt.Sprintf("cliff validator record not found for address: %v\n", cliffAddr)) } - // NOTE: We get the power via affectedVal since the store (by power key) - // has yet to be updated. - affectedValPower := affectedVal.GetPower() - // Create a validator iterator ranging from smallest to largest by power // starting the current cliff validator's power. start := GetValidatorsByPowerIndexKey(oldCliffVal, pool) @@ -307,16 +303,19 @@ func (k Keeper) updateCliffValidator(ctx sdk.Context, affectedVal types.Validato panic("failed to create valid validator power iterator") } + affectedValRank := GetValidatorsByPowerIndexKey(affectedVal, pool) + newCliffValRank := GetValidatorsByPowerIndexKey(newCliffVal, pool) + if bytes.Equal(affectedVal.Owner, newCliffVal.Owner) { // The affected validator remains the cliff validator, however, since - // the store does not contain the new power, set the new cliff - // validator to the affected validator. - bz := GetValidatorsByPowerIndexKey(affectedVal, pool) - store.Set(ValidatorPowerCliffKey, bz) - } else if affectedValPower.GT(newCliffVal.GetPower()) { + // the store does not contain the new power, update the new power rank. + store.Set(ValidatorPowerCliffKey, affectedValRank) + } else if bytes.Compare(affectedValRank, newCliffValRank) > 0 { // The affected validator no longer remains the cliff validator as it's - // power is greater than the new current cliff validator. + // power is greater than the new cliff validator. k.setCliffValidator(ctx, newCliffVal, pool) + } else { + panic("invariant broken: the cliff validator should change or it should remain the same") } } diff --git a/x/stake/keeper/validator_test.go b/x/stake/keeper/validator_test.go index b9e61a101..3446f0dc8 100644 --- a/x/stake/keeper/validator_test.go +++ b/x/stake/keeper/validator_test.go @@ -48,7 +48,6 @@ func TestSetValidator(t *testing.T) { updates := keeper.GetTendermintUpdates(ctx) require.Equal(t, 1, len(updates)) require.Equal(t, validator.ABCIValidator(), updates[0]) - } func TestUpdateValidatorByPowerIndex(t *testing.T) { @@ -143,6 +142,19 @@ func TestCliffValidatorChange(t *testing.T) { cliffPower = keeper.GetCliffValidatorPower(ctx) require.Equal(t, newCliffVal.Owner, sdk.AccAddress(keeper.GetCliffValidator(ctx))) require.Equal(t, GetValidatorsByPowerIndexKey(newCliffVal, pool), cliffPower) + + // add enough power to cliff validator to be equal in rank to next validator + newCliffVal, pool, _ = newCliffVal.AddTokensFromDel(pool, 9) + keeper.SetPool(ctx, pool) + newCliffVal = keeper.UpdateValidator(ctx, newCliffVal) + + // assert new cliff validator due to power rank construction + newCliffVal = validators[numVals-maxVals+2] + require.Equal(t, newCliffVal.Owner, sdk.AccAddress(keeper.GetCliffValidator(ctx))) + + // assert cliff validator power should have been updated + cliffPower = keeper.GetCliffValidatorPower(ctx) + require.Equal(t, GetValidatorsByPowerIndexKey(newCliffVal, pool), cliffPower) } func TestSlashToZeroPowerRemoved(t *testing.T) { From 466e0c04d598358d93071dfb5a893935e786a972 Mon Sep 17 00:00:00 2001 From: Federico Kunze <31522760+fedekunze@users.noreply.github.com> Date: Fri, 17 Aug 2018 18:49:57 +0200 Subject: [PATCH 18/23] R4R: Update cli docs (#2076) * Update cli docs, fixes #2026 * Fixed merge conflicts * Updated chain_id --- docs/sdk/clients.md | 245 +++++++++++++++++++++++++---- docs/validators/validator-setup.md | 161 +++---------------- 2 files changed, 240 insertions(+), 166 deletions(-) diff --git a/docs/sdk/clients.md b/docs/sdk/clients.md index 914a6c599..846cc3b2a 100644 --- a/docs/sdk/clients.md +++ b/docs/sdk/clients.md @@ -12,27 +12,25 @@ `gaiacli` is the command line interface to manage accounts and transactions on Cosmos testnets. Here is a list of useful `gaiacli` commands, including usage examples. -### Key Types +### Keys + +#### Key Types There are three types of key representations that are used: - `cosmosaccaddr` - - Derived from account keys generated by `gaiacli keys add` - Used to receive funds - e.g. `cosmosaccaddr15h6vd5f0wqps26zjlwrc6chah08ryu4hzzdwhc` - - `cosmosaccpub` - - Derived from account keys generated by `gaiacli keys add` - e.g. `cosmosaccpub1zcjduc3q7fu03jnlu2xpl75s2nkt7krm6grh4cc5aqth73v0zwmea25wj2hsqhlqzm` - - `cosmosvalpub` - Generated when the node is created with `gaiad init`. - Get this value with `gaiad tendermint show_validator` - e.g. `cosmosvalpub1zcjduc3qcyj09qc03elte23zwshdx92jm6ce88fgc90rtqhjx8v0608qh5ssp0w94c` -### Generate Keys +#### Generate Keys You'll need an account private and public key pair \(a.k.a. `sk, pk` respectively\) to be able to receive funds, send txs, bond tx, etc. @@ -66,10 +64,14 @@ gaiad tendermint show_validator We strongly recommend _NOT_ using the same passphrase for multiple keys. The Tendermint team and the Interchain Foundation will not be responsible for the loss of funds. ::: -### Get Tokens +### Account + +#### Get Tokens The best way to get tokens is from the [Cosmos Testnet Faucet](https://faucetcosmos.network). If the faucet is not working for you, try asking [#cosmos-validators](https://riot.im/app/#/room/#cosmos-validators:matrix.org). The faucet needs the `cosmosaccaddr` from the account you wish to use for staking. +#### Query Account balance + After receiving tokens to your address, you can view your account's balance by typing: ```bash @@ -79,7 +81,6 @@ gaiacli account <account_cosmosaccaddr> ::: warning Note When you query an account balance with zero tokens, you will get this error: `No account with address <account_cosmosaccaddr> was found in the state.` This can also happen if you fund the account before your node has fully synced with the chain. These are both normal. -We're working on improving our error messages! ::: ### Send Tokens @@ -87,7 +88,7 @@ We're working on improving our error messages! ```bash gaiacli send \ --amount=10faucetToken \ - --chain-id=gaia-7005 \ + --chain-id=<chain_id> \ --name=<key_name> \ --to=<destination_cosmosaccaddr> ``` @@ -109,20 +110,40 @@ You can also check your balance at a given block by using the `--block` flag: gaiacli account <account_cosmosaccaddr> --block=<block_height> ``` -### Delegate +### Staking + +#### Set up a Validator + +Please refer to the [Validator Setup](https://cosmos.network/docs/validators/validator-setup.html) section for a more complete guide on how to set up a validator-candidate. + +#### Delegate to a Validator On the upcoming mainnet, you can delegate `atom` to a validator. These [delegators](/resources/delegators-faq) can receive part of the validator's fee revenue. Read more about the [Cosmos Token Model](https://github.com/cosmos/cosmos/raw/master/Cosmos_Token_Model.pdf). -### Bond Tokens +##### Query Validators -On the testnet, we delegate `steak` instead of `atom`. Here's how you can bond tokens to a testnet validator: +You can query the list of all validators of a specific chain: + +```bash +gaiacli stake validators +``` + +If you want to get the information of a single validator you can check it with: + +```bash +gaiacli stake validator <account_cosmosaccaddr> +``` + +#### Bond Tokens + +On the testnet, we delegate `steak` instead of `atom`. Here's how you can bond tokens to a testnet validator (*i.e.* delegate): ```bash gaiacli stake delegate \ --amount=10steak \ --address-validator=$(gaiad tendermint show_validator) \ --name=<key_name> \ - --chain-id=gaia-7005 + --chain-id=<chain_id> ``` While tokens are bonded, they are pooled with all the other bonded tokens in the network. Validators and delegators obtain a percentage of shares that equal their stake in this pool. @@ -131,33 +152,197 @@ While tokens are bonded, they are pooled with all the other bonded tokens in the Don't use more `steak` thank you have! You can always get more by using the [Faucet](https://faucetcosmos.network/)! ::: -### Unbond Tokens +##### Query Delegations -If for any reason the validator misbehaves, or you want to unbond a certain amount of tokens, use this following command. You can unbond a specific amount of`shares`\(eg:`12.1`\) or all of them \(`MAX`\). +Once submitted a delegation to a validator, you can see it's information by using the following command: + +```bash +gaiacli stake delegation \ + --address-delegator=<account_cosmosaccaddr> \ + --address-validator=$(gaiad tendermint show-validator) +``` + +Or if you want to check all your current delegations with disctinct validators: + +```bash +gaiacli stake delegations <account_cosmosaccaddr> +``` + +You can also get previous delegation(s) status by adding the `--height` flag. + +#### Unbond Tokens + +If for any reason the validator misbehaves, or you just want to unbond a certain amount of tokens, use this following command. You can unbond a specific `shares-amount` (eg:`12.1`\) or a `shares-percent` (eg:`25`) with the corresponding flags. ```bash gaiacli stake unbond begin \ - --address-validator=$(gaiad tendermint show_validator) \ - --shares=MAX \ - --name=<key_name> \ - --chain-id=gaia-7005 + --address-validator=$(gaiad tendermint show-validator) \ + --shares-percent=100 \ + --from=<key_name> \ + --chain-id=<chain_id> ``` -Later you must use the `gaiacli stake unbond complete` command to finish -unbonding at which point you can can check your balance and your stake -delegation to see that the unbonding went through successfully. +Later you must complete the unbonding process by using the `gaiacli stake unbond complete` command: ```bash -gaiacli account <account_cosmosaccaddr> - -gaiacli stake delegation \ - --address-delegator=<account_cosmosaccaddr> \ - --address-validator=$(gaiad tendermint show_validator) \ - --chain-id=gaia-7005 +gaiacli stake unbond complete \ + --address-validator=$(gaiad tendermint show-validator) \ + --from=<key_name> \ + --chain-id=<chain_id> ``` -## Light Client Daemon +##### Query Unbonding-Delegations + +Once you begin an unbonding-delegation, you can see it's information by using the following command: + +```bash +gaiacli stake unbonding-delegation \ + --address-delegator=<account_cosmosaccaddr> \ + --address-validator=$(gaiad tendermint show-validator) \ +``` + +Or if you want to check all your current unbonding-delegations with disctinct validators: + +```bash +gaiacli stake unbonding-delegations <account_cosmosaccaddr> +``` + +You can also get previous unbonding-delegation(s) status by adding the `--height` flag. + +#### Redelegate Tokens + +A redelegation is a type delegation that allows you to bond illiquid tokens from one validator to another: + +```bash +gaiacli stake redelegate begin \ + --address-validator-source=$(gaiad tendermint show-validator) \ + --address-validator-dest=<account_cosmosaccaddr> \ + --shares-percent=50 \ + --from=<key_name> \ + --chain-id=<chain_id> +``` + +Here you can also redelegate a specific `shares-amount` or a `shares-percent` with the corresponding flags. + +Later you must complete the redelegation process by using the `gaiacli stake redelegate complete` command: + +```bash +gaiacli stake unbond complete \ + --address-validator=$(gaiad tendermint show-validator) \ + --from=<key_name> \ + --chain-id=<chain_id> +``` + +##### Query Redelegations + +Once you begin an redelegation, you can see it's information by using the following command: + +```bash +gaiacli stake redelegation \ + --address-delegator=<account_cosmosaccaddr> \ + --address-validator-source=$(gaiad tendermint show-validator) \ + --address-validator-dest=<account_cosmosaccaddr> \ +``` + +Or if you want to check all your current unbonding-delegations with disctinct validators: + +```bash +gaiacli stake redelegations <account_cosmosaccaddr> +``` + +You can also get previous redelegation(s) status by adding the `--height` flag. + +### Governance + +Governance is the process from which users in the Cosmos Hub can come to consensus on software upgrades, parameters of the mainnet or on custom text proposals. This is done through voting on proposals, which will be submitted by `Atom` holders on the mainnet. + +Some considerations about the voting process: + +- Voting is done by bonded `Atom` holders on a 1 bonded `Atom` 1 vote basis +- Delegators inherit the vote of their validator if they don't vote +- **Validators MUST vote on every proposal**. If a validator does not vote on a proposal, they will be **partially slashed** +- Votes are tallied at the end of the voting period (2 weeks on mainnet). Each address can vote multiple times to update its `Option` value (paying the transaction fee each time), only the last casted vote will count as valid +- Voters can choose between options `Yes`, `No`, `NoWithVeto` and `Abstain` + At the end of the voting period, a proposal is accepted if `(YesVotes/(YesVotes+NoVotes+NoWithVetoVotes))>1/2` and `(NoWithVetoVotes/(YesVotes+NoVotes+NoWithVetoVotes))<1/3`. It is rejected otherwise + +For more information about the governance process and how it works, please check out the Governance module [specification](https://github.com/cosmos/cosmos-sdk/tree/develop/docs/spec/governance). + +#### Create a Governance proposal + +In order to create a governance proposal, you must submit an initial deposit along with the proposal details: + +- `title`: Title of the proposal +- `description`: Description of the proposal +- `type`: Type of proposal. Must be of value _Text_ (types _SoftwareUpgrade_ and _ParameterChange_ not supported yet). + +```bash +gaiacli gov submit-proposal \ + --title=<title> \ + --description=<description> \ + --type=<Text/ParameterChange/SoftwareUpgrade> \ + --proposer=<account_cosmosaccaddr> \ + --deposit=<40steak> \ + --from=<name> \ + --chain-id=<chain_id> +``` + +##### Query proposals + +Once created, you can now query information of the proposal: + +```bash +gaiacli gov query-proposal \ + --proposal-id=<proposal_id> +``` + +Or query all available proposals: + +```bash +gaiacli gov query-proposals +``` + +You can also query proposals filtered by `voter` or `depositer` by using the corresponding flags. + +#### Increase deposit + +In order for a proposal to be broadcasted to the network, the amount deposited must be above a `minDeposit` value (default: `10 steak`). If the proposal you previously created didn't meet this requirement, you can still increase the total amount deposited to activate it. Once the minimum deposit is reached, the proposal enters voting period: + +```bash +gaiacli gov deposit \ + --proposal-id=<proposal_id> \ + --depositer=<account_cosmosaccaddr> \ + --deposit=<200steak> \ + --from=<name> \ + --chain-id=<chain_id> +``` + +> _NOTE_: Proposals that don't meet this requirement will be deleted after `MaxDepositPeriod` is reached. + +#### Vote on a proposal + +After a proposal's deposit reaches the `MinDeposit` value, the voting period opens. Bonded `Atom` holders can then cast vote on it: + +```bash +gaiacli gov vote \ + --proposal-id=<proposal_id> \ + --voter=<account_cosmosaccaddr> \ + --option=<Yes/No/NoWithVeto/Abstain> \ + --from=<name> \ + --chain-id=<chain_id> +``` + +##### Query vote + +Check the vote with the option you just submitted: + +```bash +gaiacli gov query-vote \ + --proposal-id=<proposal_id> \ + --voter=<account_cosmosaccaddr> +``` + +## Gaia-Lite ::: tip Note -🚧Documentation coming soon! +🚧 We are actively working on documentation for Gaia-lite. ::: diff --git a/docs/validators/validator-setup.md b/docs/validators/validator-setup.md index 837471bf2..f6ca97a15 100644 --- a/docs/validators/validator-setup.md +++ b/docs/validators/validator-setup.md @@ -1,7 +1,7 @@ # Validator Setup ::: warning Current Testnet -The current testnet is `gaia-7005`. +The current testnet is `gaia-8000`. ::: Before setting up your validator node, make sure you've already gone through the [Full Node Setup](/getting-started/full-node.md) guide. @@ -34,7 +34,7 @@ gaiacli stake create-validator \ --pubkey=$(gaiad tendermint show_validator) \ --address-validator=<account_cosmosaccaddr> --moniker="choose a moniker" \ - --chain-id=gaia-7005 \ + --chain-id=<chain_id> \ --name=<key_name> ``` @@ -51,7 +51,7 @@ gaiacli stake edit-validator --website="https://cosmos.network" \ --identity=6A0D65E29A4CBC8E --details="To infinity and beyond!" - --chain-id=gaia-7005 \ + --chain-id=<chain_id> \ --name=<key_name> ``` @@ -62,7 +62,26 @@ View the validator's information with this command: ```bash gaiacli stake validator \ --address-validator=<account_cosmosaccaddr> \ - --chain-id=gaia-7005 + --chain-id=<chain_id> +``` + +### Track Validator Signing Information + +In order to keep track of a validator's signatures in the past you can do so by using the `signing-info` command: + +```bash +gaiacli stake signing-information <validator-pubkey>\ + --chain-id=<chain_id> +``` + +### Unrevoke Validator + +When a validator is `Revoked` for downtime, you must submit an `Unrevoke` transaction in order to be able to get block proposer rewards again (depends on the zone fee distribution). + +```bash +gaiacli stake unrevoke \ + --from=<key_name> \ + --chain-id=<chain_id> ``` ### Confirm Your Validator is Running @@ -75,7 +94,6 @@ gaiacli advanced tendermint validator-set | grep "$(gaiad tendermint show_valida You should also be able to see your validator on the [Explorer](https://explorecosmos.network/validators). You are looking for the `bech32` encoded `address` in the `~/.gaiad/config/priv_validator.json` file. - ::: warning Note To be in the validator set, you need to have more total voting power than the 100th validator. ::: @@ -84,7 +102,7 @@ To be in the validator set, you need to have more total voting power than the 10 ### Problem #1: My validator has `voting_power: 0` -Your validator has become auto-unbonded. In `gaia-7005`, we unbond validators if they do not vote on `50` of the last `100` blocks. Since blocks are proposed every ~2 seconds, a validator unresponsive for ~100 seconds will become unbonded. This usually happens when your `gaiad` process crashes. +Your validator has become auto-unbonded. In `gaia-8000`, we unbond validators if they do not vote on `50` of the last `100` blocks. Since blocks are proposed every ~2 seconds, a validator unresponsive for ~100 seconds will become unbonded. This usually happens when your `gaiad` process crashes. Here's how you can return the voting power back to your validator. First, if `gaiad` is not running, start it up again: @@ -95,7 +113,7 @@ gaiad start Wait for your full node to catch up to the latest block. Next, run the following command. Note that `<cosmosaccaddr>` is the address of your validator account, and `<name>` is the name of the validator account. You can find this info by running `gaiacli keys list`. ```bash -gaiacli stake unrevoke <cosmosaccaddr> --chain-id=gaia-7005 --name=<name> +gaiacli stake unrevoke <cosmosaccaddr> --chain-id=<chain_id> --name=<name> ``` ::: danger Warning @@ -132,132 +150,3 @@ LimitNOFILE=4096 [Install] WantedBy=multi-user.target ``` - -## Delegating to a Validator - -On the upcoming mainnet, you can delegate `Atom` to a validator. These [delegators](https://cosmos.network/resources/delegators) can receive part of the validator's fee revenue. Read more about the [Cosmos Token Model](https://github.com/cosmos/cosmos/raw/master/Cosmos_Token_Model.pdf). - -### Bond Tokens - -On the testnet, we delegate `steak` instead of `Atom`. Here's how you can bond tokens to a testnet validator: - -```bash -gaiacli stake delegate \ - --amount=10steak \ - --address-delegator=<account_cosmosaccaddr> \ - --address-validator=<validator_cosmosaccaddr> \ - --from=<key_name> \ - --chain-id=gaia-7001 -``` - -While tokens are bonded, they are pooled with all the other bonded tokens in the network. Validators and delegators obtain a percentage of shares that equal their stake in this pool. - -> _*NOTE:*_ Don't use more `steak` thank you have! You can always get more by using the [Faucet](https://gaia.faucetcosmos.network/)! - -### Unbond Tokens - -If for any reason the validator misbehaves, or you want to unbond a certain amount of tokens, use this following command. You can unbond a specific amount of`shares`\(eg:`12.1`\) or all of them \(`MAX`\). - -```bash -gaiacli stake unbond \ - --address-delegator=<account_cosmosaccaddr> \ - --address-validator=<validator_cosmosaccaddr> \ - --shares=MAX \ - --from=<key_name> \ - --chain-id=gaia-7001 -``` - -You can check your balance and your stake delegation to see that the unbonding went through successfully. - -```bash -gaiacli account <account_cosmosaccaddr> - -gaiacli stake delegation \ - --address-delegator=<account_cosmosaccaddr> \ - --address-validator=<validator_cosmosaccaddr> \ - --chain-id=gaia-7001 -``` - -## Governance - -Governance is the process from which users in the Cosmos Hub can come to consensus on software upgrades, parameters of the mainnet or on custom text proposals. This is done through voting on proposals, which will be submitted by `Atom` holders on the mainnet. - -Some considerations about the voting process: - -- Voting is done by bonded `Atom` holders on a 1 bonded `Atom` 1 vote basis -- Delegators inherit the vote of their validator if they don't vote -- **Validators MUST vote on every proposal**. If a validator does not vote on a proposal, they will be **partially slashed** -- Votes are tallied at the end of the voting period (2 weeks on mainnet). Each address can vote multiple times to update its `Option` value (paying the transaction fee each time), only the last casted vote will count as valid -- Voters can choose between options `Yes`, `No`, `NoWithVeto` and `Abstain` -At the end of the voting period, a proposal is accepted if `(YesVotes/(YesVotes+NoVotes+NoWithVetoVotes))>1/2` and `(NoWithVetoVotes/(YesVotes+NoVotes+NoWithVetoVotes))<1/3`. It is rejected otherwise - -For more information about the governance process and how it works, please check out the Governance module [specification](https://github.com/cosmos/cosmos-sdk/tree/develop/docs/spec/governance). - -### Create a Governance proposal - -In order to create a governance proposal, you must submit an initial deposit along with the proposal details: - -- `title`: Title of the proposal -- `description`: Description of the proposal -- `type`: Type of proposal. Must be of value _Text_ (types _SoftwareUpgrade_ and _ParameterChange_ not supported yet). - -```bash -gaiacli gov submit-proposal \ - --title=<title> \ - --description=<description> \ - --type=<Text/ParameterChange/SoftwareUpgrade> \ - --proposer=<account_cosmosaccaddr> \ - --deposit=<40steak> \ - --from=<name> \ - --chain-id=gaia-7001 -``` - - -### Increase deposit - -In order for a proposal to be broadcasted to the network, the amount deposited must be above a `minDeposit` value (default: `10 steak`). If the proposal you previously created didn't meet this requirement, you can still increase the total amount deposited to activate it. Once the minimum deposit is reached, the proposal enters voting period: - -```bash -gaiacli gov deposit \ - --proposalID=<proposal_id> \ - --depositer=<account_cosmosaccaddr> \ - --deposit=<200steak> \ - --from=<name> \ - --chain-id=gaia-7001 -``` - -> _NOTE_: Proposals that don't meet this requirement will be deleted after `MaxDepositPeriod` is reached. - -#### Query proposal - -Once created, you can now query information of the proposal: - -```bash -gaiacli gov query-proposal \ - --proposalID=<proposal_id> \ - --chain-id=gaia-7001 -``` - -### Vote on a proposal - -After a proposal's deposit reaches the `MinDeposit` value, the voting period opens. Bonded `Atom` holders can then cast vote on it: - -```bash -gaiacli gov vote \ - --proposalID=<proposal_id> \ - --voter=<account_cosmosaccaddr> \ - --option=<Yes/No/NoWithVeto/Abstain> \ - --from=<name> \ - --chain-id=gaia-7001 -``` - -#### Query vote - -Check the vote with the option you just submitted: - -```bash -gaiacli gov query-vote \ - --proposalID=<proposal_id> \ - --voter=<account_cosmosaccaddr> \ - --chain-id=gaia-7001 -``` From 5794f3c3cefc70f83b038440d32f11ae55871f07 Mon Sep 17 00:00:00 2001 From: Alexander Bezobchuk <alexanderbez@users.noreply.github.com> Date: Sat, 18 Aug 2018 07:41:12 -0400 Subject: [PATCH 19/23] Merge PR #2083: Fix broken invariant of bonded validator power decrease --- CHANGELOG.md | 2 +- x/stake/keeper/validator.go | 16 ++++++-- x/stake/keeper/validator_test.go | 67 +++++++++++++++++++++++++++++++- 3 files changed, 79 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7ec3d6658..f6b91607a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -112,7 +112,7 @@ BUG FIXES - [tests] \#1551 Fixed invalid LCD test JSON payload in `doIBCTransfer` - [basecoin] Fixes coin transaction failure and account query [discussion](https://forum.cosmos.network/t/unmarshalbinarybare-expected-to-read-prefix-bytes-75fbfab8-since-it-is-registered-concrete-but-got-0a141dfa/664/6) - [x/gov] \#1757 Fix VoteOption conversion to String - + * [x/stake] [#2083] Fix broken invariant of bonded validator power decrease ## 0.23.1 diff --git a/x/stake/keeper/validator.go b/x/stake/keeper/validator.go index debb91729..8105e3747 100644 --- a/x/stake/keeper/validator.go +++ b/x/stake/keeper/validator.go @@ -452,21 +452,29 @@ func (k Keeper) UpdateBondedValidators( // swap the cliff validator for a new validator if the affected validator // was bonded if newValidatorBonded { - // unbond the cliff validator if oldCliffValidatorAddr != nil { - cliffVal, found := k.GetValidator(ctx, oldCliffValidatorAddr) + oldCliffVal, found := k.GetValidator(ctx, oldCliffValidatorAddr) if !found { panic(fmt.Sprintf("validator record not found for address: %v\n", oldCliffValidatorAddr)) } - k.unbondValidator(ctx, cliffVal) + if bytes.Equal(validatorToBond.Owner, affectedValidator.Owner) { + // unbond the old cliff validator iff the affected validator was + // newly bonded and has greater power + k.unbondValidator(ctx, oldCliffVal) + } else { + // otherwise unbond the affected validator, which must have been + // kicked out + affectedValidator = k.unbondValidator(ctx, affectedValidator) + } } - // bond the new validator validator = k.bondValidator(ctx, validatorToBond) if bytes.Equal(validator.Owner, affectedValidator.Owner) { return validator, true } + + return affectedValidator, true } return types.Validator{}, false diff --git a/x/stake/keeper/validator_test.go b/x/stake/keeper/validator_test.go index 3446f0dc8..62f9823a9 100644 --- a/x/stake/keeper/validator_test.go +++ b/x/stake/keeper/validator_test.go @@ -88,6 +88,69 @@ func TestUpdateValidatorByPowerIndex(t *testing.T) { require.True(t, keeper.validatorByPowerIndexExists(ctx, power)) } +func TestUpdateBondedValidatorsDecreaseCliff(t *testing.T) { + numVals := 10 + maxVals := 5 + + // create context, keeper, and pool for tests + ctx, _, keeper := CreateTestInput(t, false, 0) + pool := keeper.GetPool(ctx) + + // create keeper parameters + params := keeper.GetParams(ctx) + params.MaxValidators = uint16(maxVals) + keeper.SetParams(ctx, params) + + // create a random pool + pool.LooseTokens = sdk.NewRat(10000) + pool.BondedTokens = sdk.NewRat(1234) + keeper.SetPool(ctx, pool) + + validators := make([]types.Validator, numVals) + for i := 0; i < len(validators); i++ { + moniker := fmt.Sprintf("val#%d", int64(i)) + val := types.NewValidator(Addrs[i], PKs[i], types.Description{Moniker: moniker}) + val.BondHeight = int64(i) + val.BondIntraTxCounter = int16(i) + val, pool, _ = val.AddTokensFromDel(pool, int64((i+1)*10)) + + keeper.SetPool(ctx, pool) + val = keeper.UpdateValidator(ctx, val) + validators[i] = val + } + + nextCliffVal := validators[numVals-maxVals+1] + + // remove enough tokens to kick out the validator below the current cliff + // validator and next in line cliff validator + nextCliffVal, pool, _ = nextCliffVal.RemoveDelShares(pool, sdk.NewRat(21)) + keeper.SetPool(ctx, pool) + nextCliffVal = keeper.UpdateValidator(ctx, nextCliffVal) + + // require the cliff validator has changed + cliffVal := validators[numVals-maxVals-1] + require.Equal(t, cliffVal.Owner, sdk.AccAddress(keeper.GetCliffValidator(ctx))) + + // require the cliff validator power has changed + cliffPower := keeper.GetCliffValidatorPower(ctx) + require.Equal(t, GetValidatorsByPowerIndexKey(cliffVal, pool), cliffPower) + + expectedValStatus := map[int]sdk.BondStatus{ + 9: sdk.Bonded, 8: sdk.Bonded, 7: sdk.Bonded, 5: sdk.Bonded, 4: sdk.Bonded, + 0: sdk.Unbonded, 1: sdk.Unbonded, 2: sdk.Unbonded, 3: sdk.Unbonded, 6: sdk.Unbonded, + } + + // require all the validators have their respective statuses + for valIdx, status := range expectedValStatus { + valAddr := validators[valIdx].Owner + val, _ := keeper.GetValidator(ctx, valAddr) + + require.Equal( + t, val.GetStatus(), status, + fmt.Sprintf("expected validator to have status: %s", sdk.BondStatusToString(status))) + } +} + func TestCliffValidatorChange(t *testing.T) { numVals := 10 maxVals := 5 @@ -415,11 +478,13 @@ func TestGetValidatorsEdgeCases(t *testing.T) { var validators [4]types.Validator for i, amt := range amts { pool := keeper.GetPool(ctx) - validators[i] = types.NewValidator(Addrs[i], PKs[i], types.Description{}) + moniker := fmt.Sprintf("val#%d", int64(i)) + validators[i] = types.NewValidator(Addrs[i], PKs[i], types.Description{Moniker: moniker}) validators[i], pool, _ = validators[i].AddTokensFromDel(pool, amt) keeper.SetPool(ctx, pool) validators[i] = keeper.UpdateValidator(ctx, validators[i]) } + for i := range amts { validators[i], found = keeper.GetValidator(ctx, validators[i].Owner) require.True(t, found) From 98a5844310d94310f47c689385f5a03d696b8b62 Mon Sep 17 00:00:00 2001 From: Christopher Goes <cwgoes@pluranimity.org> Date: Mon, 20 Aug 2018 17:06:18 +0200 Subject: [PATCH 20/23] Makefile phony; Gopkg.lock --- Gopkg.lock | 14 +++++++------- Makefile | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/Gopkg.lock b/Gopkg.lock index 14e88f8b8..38830c49e 100644 --- a/Gopkg.lock +++ b/Gopkg.lock @@ -48,12 +48,12 @@ revision = "d4cc87b860166d00d6b5b9e0d3b3d71d6088d4d4" [[projects]] - digest = "1:a2c1d0e43bd3baaa071d1b9ed72c27d78169b2b269f71c105ac4ba34b1be4a39" + digest = "1:ffe9824d294da03b391f44e1ae8281281b4afc1bdaa9588c9097785e3af10cec" name = "github.com/davecgh/go-spew" packages = ["spew"] pruneopts = "UT" - revision = "346938d642f2ec3594ed81d874461961cd0faa76" - version = "v1.1.0" + revision = "8991bc29aa16c548c550c7ff78260e27b9ab7c73" + version = "v1.1.1" [[projects]] digest = "1:c7644c73a3d23741fdba8a99b1464e021a224b7e205be497271a8003a15ca41b" @@ -518,7 +518,7 @@ "salsa20/salsa", ] pruneopts = "UT" - revision = "de0752318171da717af4ce24d0a2e8626afaeb11" + revision = "aabede6cba87e37f413b3e60ebfc214f8eeca1b0" [[projects]] digest = "1:d36f55a999540d29b6ea3c2ea29d71c76b1d9853fdcd3e5c5cb4836f2ba118f1" @@ -538,14 +538,14 @@ [[projects]] branch = "master" - digest = "1:4bd75b1a219bc590b05c976bbebf47f4e993314ebb5c7cbf2efe05a09a184d54" + digest = "1:ead82e3e398388679f3ad77633a087ac31a47a6be59ae20841e1d1b3a3fbbd22" name = "golang.org/x/sys" packages = [ "cpu", "unix", ] pruneopts = "UT" - revision = "4e1fef5609515ec7a2cee7b5de30ba6d9b438cbf" + revision = "1a700e749ce29638d0bbcb531cce1094ea096bd3" [[projects]] digest = "1:a2ab62866c75542dd18d2b069fec854577a20211d7c0ea6ae746072a1dccdd18" @@ -576,7 +576,7 @@ name = "google.golang.org/genproto" packages = ["googleapis/rpc/status"] pruneopts = "UT" - revision = "383e8b2c3b9e36c4076b235b32537292176bae20" + revision = "c66870c02cf823ceb633bcd05be3c7cda29976f4" [[projects]] digest = "1:2dab32a43451e320e49608ff4542fdfc653c95dcc35d0065ec9c6c3dd540ed74" diff --git a/Makefile b/Makefile index 2a7fd59b7..5603513eb 100644 --- a/Makefile +++ b/Makefile @@ -218,4 +218,4 @@ localnet-stop: check_tools check_dev_tools get_tools get_dev_tools get_vendor_deps draw_deps test test_cli test_unit \ test_cover test_lint benchmark devdoc_init devdoc devdoc_save devdoc_update \ build-linux build-docker-gaiadnode localnet-start localnet-stop \ -format check-ledger test_sim_modules test_sim_gaia_fast test_sim_gaia_slow update_tools update_dev_tools +format check-ledger test_sim_gaia_nondeterminism test_sim_modules test_sim_gaia_fast test_sim_gaia_slow update_tools update_dev_tools From 800ac2844e5e2e0857458aae3b548776c0f1c273 Mon Sep 17 00:00:00 2001 From: Christopher Goes <cwgoes@pluranimity.org> Date: Mon, 20 Aug 2018 17:10:43 +0200 Subject: [PATCH 21/23] validator.Operator, sdk.Dec --- cmd/gaia/app/sim_test.go | 12 ++++++------ x/gov/simulation/msgs.go | 4 ++-- x/stake/keeper/validator_test.go | 12 ++++++------ x/stake/simulation/msgs.go | 4 ++-- 4 files changed, 16 insertions(+), 16 deletions(-) diff --git a/cmd/gaia/app/sim_test.go b/cmd/gaia/app/sim_test.go index 8a81a1a92..051508e1a 100644 --- a/cmd/gaia/app/sim_test.go +++ b/cmd/gaia/app/sim_test.go @@ -59,18 +59,18 @@ func appStateFn(r *rand.Rand, keys []crypto.PrivKey, accs []sdk.AccAddress) json numInitiallyBonded := int64(50) for i := 0; i < int(numInitiallyBonded); i++ { validator := stake.NewValidator(accs[i], keys[i].PubKey(), stake.Description{}) - validator.Tokens = sdk.NewRat(100) - validator.DelegatorShares = sdk.NewRat(100) - delegation := stake.Delegation{accs[i], accs[i], sdk.NewRat(100), 0} + validator.Tokens = sdk.NewDec(100) + validator.DelegatorShares = sdk.NewDec(100) + delegation := stake.Delegation{accs[i], accs[i], sdk.NewDec(100), 0} validators = append(validators, validator) delegations = append(delegations, delegation) } - stakeGenesis.Pool.LooseTokens = sdk.NewRat(int64(100*250) + (numInitiallyBonded * 100)) + stakeGenesis.Pool.LooseTokens = sdk.NewDec(int64(100*250) + (numInitiallyBonded * 100)) stakeGenesis.Validators = validators stakeGenesis.Bonds = delegations // No inflation, for now - stakeGenesis.Params.InflationMax = sdk.NewRat(0) - stakeGenesis.Params.InflationMin = sdk.NewRat(0) + stakeGenesis.Params.InflationMax = sdk.NewDec(0) + stakeGenesis.Params.InflationMin = sdk.NewDec(0) genesis := GenesisState{ Accounts: genesisAccounts, StakeData: stakeGenesis, diff --git a/x/gov/simulation/msgs.go b/x/gov/simulation/msgs.go index 596a013d3..ed80ab4e6 100644 --- a/x/gov/simulation/msgs.go +++ b/x/gov/simulation/msgs.go @@ -39,7 +39,7 @@ func SimulateMsgSubmitProposal(k gov.Keeper, sk stake.Keeper) simulation.TestAnd if result.IsOK() { // Update pool to keep invariants pool := sk.GetPool(ctx) - pool.LooseTokens = pool.LooseTokens.Sub(sdk.NewRatFromInt(deposit.AmountOf(denom))) + pool.LooseTokens = pool.LooseTokens.Sub(sdk.NewDecFromInt(deposit.AmountOf(denom))) sk.SetPool(ctx, pool) write() } @@ -66,7 +66,7 @@ func SimulateMsgDeposit(k gov.Keeper, sk stake.Keeper) simulation.TestAndRunTx { if result.IsOK() { // Update pool to keep invariants pool := sk.GetPool(ctx) - pool.LooseTokens = pool.LooseTokens.Sub(sdk.NewRatFromInt(deposit.AmountOf(denom))) + pool.LooseTokens = pool.LooseTokens.Sub(sdk.NewDecFromInt(deposit.AmountOf(denom))) sk.SetPool(ctx, pool) write() } diff --git a/x/stake/keeper/validator_test.go b/x/stake/keeper/validator_test.go index d92ed8317..54149707e 100644 --- a/x/stake/keeper/validator_test.go +++ b/x/stake/keeper/validator_test.go @@ -102,8 +102,8 @@ func TestUpdateBondedValidatorsDecreaseCliff(t *testing.T) { keeper.SetParams(ctx, params) // create a random pool - pool.LooseTokens = sdk.NewRat(10000) - pool.BondedTokens = sdk.NewRat(1234) + pool.LooseTokens = sdk.NewDec(10000) + pool.BondedTokens = sdk.NewDec(1234) keeper.SetPool(ctx, pool) validators := make([]types.Validator, numVals) @@ -123,13 +123,13 @@ func TestUpdateBondedValidatorsDecreaseCliff(t *testing.T) { // remove enough tokens to kick out the validator below the current cliff // validator and next in line cliff validator - nextCliffVal, pool, _ = nextCliffVal.RemoveDelShares(pool, sdk.NewRat(21)) + nextCliffVal, pool, _ = nextCliffVal.RemoveDelShares(pool, sdk.NewDec(21)) keeper.SetPool(ctx, pool) nextCliffVal = keeper.UpdateValidator(ctx, nextCliffVal) // require the cliff validator has changed cliffVal := validators[numVals-maxVals-1] - require.Equal(t, cliffVal.Owner, sdk.AccAddress(keeper.GetCliffValidator(ctx))) + require.Equal(t, cliffVal.Operator, sdk.AccAddress(keeper.GetCliffValidator(ctx))) // require the cliff validator power has changed cliffPower := keeper.GetCliffValidatorPower(ctx) @@ -142,7 +142,7 @@ func TestUpdateBondedValidatorsDecreaseCliff(t *testing.T) { // require all the validators have their respective statuses for valIdx, status := range expectedValStatus { - valAddr := validators[valIdx].Owner + valAddr := validators[valIdx].Operator val, _ := keeper.GetValidator(ctx, valAddr) require.Equal( @@ -213,7 +213,7 @@ func TestCliffValidatorChange(t *testing.T) { // assert new cliff validator due to power rank construction newCliffVal = validators[numVals-maxVals+2] - require.Equal(t, newCliffVal.Owner, sdk.AccAddress(keeper.GetCliffValidator(ctx))) + require.Equal(t, newCliffVal.Operator, sdk.AccAddress(keeper.GetCliffValidator(ctx))) // assert cliff validator power should have been updated cliffPower = keeper.GetCliffValidatorPower(ctx) diff --git a/x/stake/simulation/msgs.go b/x/stake/simulation/msgs.go index c457885fb..17f980893 100644 --- a/x/stake/simulation/msgs.go +++ b/x/stake/simulation/msgs.go @@ -236,8 +236,8 @@ func Setup(mapp *mock.App, k stake.Keeper) simulation.RandSetup { return func(r *rand.Rand, privKeys []crypto.PrivKey) { ctx := mapp.NewContext(false, abci.Header{}) gen := stake.DefaultGenesisState() - gen.Params.InflationMax = sdk.NewRat(0) - gen.Params.InflationMin = sdk.NewRat(0) + gen.Params.InflationMax = sdk.NewDec(0) + gen.Params.InflationMin = sdk.NewDec(0) stake.InitGenesis(ctx, k, gen) params := k.GetParams(ctx) denom := params.BondDenom From f076794c5a6a5d03d648e4a92e6af06904777394 Mon Sep 17 00:00:00 2001 From: Jae Kwon <jae@tendermint.com> Date: Mon, 20 Aug 2018 21:55:23 -0700 Subject: [PATCH 22/23] Fix bug introduced during merge --- x/stake/keeper/validator.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/x/stake/keeper/validator.go b/x/stake/keeper/validator.go index 1a205a928..c828cc38e 100644 --- a/x/stake/keeper/validator.go +++ b/x/stake/keeper/validator.go @@ -425,7 +425,8 @@ func (k Keeper) UpdateBondedValidators( } newValidatorBonded = true } - + } else { + // TODO: document why we must break here. break } From d8d17df2c5753c292f53df9ef2485a20ffa5a9b9 Mon Sep 17 00:00:00 2001 From: Christopher Goes <cwgoes@pluranimity.org> Date: Tue, 21 Aug 2018 14:22:41 +0200 Subject: [PATCH 23/23] Correctly set variables in Makefile --- Makefile | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Makefile b/Makefile index 5603513eb..3e0c36da6 100644 --- a/Makefile +++ b/Makefile @@ -20,16 +20,16 @@ check-ledger: ifeq ($(LEDGER_ENABLED),true) ifeq ($(UNAME_S),OpenBSD) $(info "OpenBSD detected, disabling ledger support (https://github.com/cosmos/cosmos-sdk/issues/1988)") - TMP_BUILD_TAGS := $(BUILD_TAGS) - BUILD_TAGS = $(filter-out ledger, $(TMP_BUILD_TAGS)) +TMP_BUILD_TAGS := $(BUILD_TAGS) +BUILD_TAGS = $(filter-out ledger, $(TMP_BUILD_TAGS)) else ifndef GCC $(error "gcc not installed for ledger support, please install or set LEDGER_ENABLED to false in the Makefile") endif endif else - TMP_BUILD_TAGS := $(BUILD_TAGS) - BUILD_TAGS = $(filter-out ledger, $(TMP_BUILD_TAGS)) +TMP_BUILD_TAGS := $(BUILD_TAGS) +BUILD_TAGS = $(filter-out ledger, $(TMP_BUILD_TAGS)) endif build: check-ledger