Full Code of cybercongress/go-cyber for AI

main 11938962e29c cached
582 files
7.9 MB
2.1M tokens
6107 symbols
1 requests
Download .txt
Showing preview only (8,423K chars total). Download the full file or copy to clipboard to get everything.
Repository: cybercongress/go-cyber
Branch: main
Commit: 11938962e29c
Files: 582
Total size: 7.9 MB

Directory structure:
gitextract__ww5i2x0/

├── .dockerignore
├── .gitattributes
├── .github/
│   ├── ISSUE_TEMPLATE/
│   │   ├── bug_report.md
│   │   ├── feature_request.md
│   │   └── gitcoin-issue-template.md
│   └── tests.yml
├── .gitignore
├── .golangci.yml
├── .goreleaser.yml
├── CHANGELOG.md
├── CONTRIBUTING.md
├── Dockerfile
├── LICENSE
├── Makefile
├── README.md
├── app/
│   ├── ante.go
│   ├── app.go
│   ├── apptesting/
│   │   ├── events.go
│   │   └── test_suite.go
│   ├── encoding.go
│   ├── export.go
│   ├── forks.go
│   ├── genesis.go
│   ├── helpers/
│   │   ├── contracts.go
│   │   ├── global_errors.go
│   │   └── mock.go
│   ├── keepers/
│   │   ├── keepers.go
│   │   └── keys.go
│   ├── modules.go
│   ├── params/
│   │   ├── const.go
│   │   ├── encoding.go
│   │   └── weights.go
│   ├── prefix.go
│   ├── proof_exempt.go
│   ├── proof_exempt_test.go
│   ├── test_helpers.go
│   └── upgrades/
│       ├── types.go
│       ├── v2/
│       │   ├── constants.go
│       │   └── upgrades.go
│       ├── v3/
│       │   ├── constants.go
│       │   └── upgrades.go
│       ├── v4/
│       │   ├── constants.go
│       │   └── upgrades.go
│       ├── v5/
│       │   ├── constants.go
│       │   └── forks.go
│       ├── v6/
│       │   ├── burn.go
│       │   ├── constants.go
│       │   └── upgrades.go
│       └── v7/
│           ├── constants.go
│           └── upgrades.go
├── buf.work.yaml
├── client/
│   └── docs/
│       ├── docs.go
│       ├── static/
│       │   └── openapi.yml
│       ├── swagger.yaml
│       └── template/
│           └── index.tpl
├── cmd/
│   ├── cyber/
│   │   ├── cmd/
│   │   │   └── root.go
│   │   └── main.go
│   └── iavltool/
│       ├── README.md
│       ├── cmd/
│       │   └── root.go
│       └── main.go
├── contrib/
│   ├── Dockerfile
│   ├── devtools/
│   │   ├── Makefile
│   │   ├── dockerfile
│   │   └── proto-tools-installer.sh
│   ├── links-load.sh
│   ├── localnet-blocks-test.sh
│   ├── reset-chain.sh
│   └── single-node.sh
├── docker-compose.yml
├── docs/
│   ├── README.md
│   ├── cyber_ledger_guide.md
│   ├── cyberlink_content.md
│   ├── deploy_contract.md
│   ├── help/
│   │   └── problem_to_install_drivers.md
│   ├── keystore.md
│   ├── menu/
│   │   └── index.md
│   ├── multisig_guide.md
│   ├── port_forwarding_guide.md
│   ├── proto/
│   │   ├── proto-docs.md
│   │   └── protodoc-markdown.tmpl
│   ├── rpc.md
│   ├── run_validator.md
│   ├── send_txs.md
│   ├── setup_cyber_configuration.md
│   ├── setup_dev_env.md
│   ├── soft2-soft3-concepts.md
│   ├── supported_gpu_list.md
│   ├── ultimate_commands_guide.md
│   └── upgrade-plan.md
├── entrypoint.sh
├── go.mod
├── go.sum
├── merkle/
│   ├── node.go
│   ├── proof.go
│   ├── subtree.go
│   ├── tree.go
│   ├── tree_test.go
│   └── util.go
├── networks/
│   ├── bostrom/
│   │   ├── cyberfrey-upgrade-guide.md
│   │   ├── deploy_node_from_snapshot.md
│   │   ├── genesis-validator.md
│   │   ├── genesis.json
│   │   ├── gentxs/
│   │   │   ├── bloqhub.json
│   │   │   ├── gentx-0base.vc.json
│   │   │   ├── gentx-39a20a7d84c6e91c6638f5a685a13f655e050ee0.json
│   │   │   ├── gentx-5b59d7daadd971a9613b2efcc3c6eab0777f5f29.json
│   │   │   ├── gentx-5e8522bef5ceca507e05aa0d5f67f37a70222c73.json
│   │   │   ├── gentx-77d27615009fc703ece46901792cc8750cccd0de.json
│   │   │   ├── gentx-822b374bf2ca56c49fd565d149cd7cb6d175d8cb.json
│   │   │   ├── gentx-902fb751851e474133ee4ba1e646f49237b50edf.json
│   │   │   ├── gentx-Amber.json
│   │   │   ├── gentx-Bro_n_Bro.json
│   │   │   ├── gentx-Hailbiafra.json
│   │   │   ├── gentx-MindPool.json
│   │   │   ├── gentx-Nett.json
│   │   │   ├── gentx-NodeMarsel.json
│   │   │   ├── gentx-Node_masters.json
│   │   │   ├── gentx-P2P.ORG.json
│   │   │   ├── gentx-PLap.json
│   │   │   ├── gentx-POSTHUMAN.json
│   │   │   ├── gentx-StakeAngle.json
│   │   │   ├── gentx-a99b8bcb07d027895bcc2abe6baa866174b5ec23.json
│   │   │   ├── gentx-alinode.json
│   │   │   ├── gentx-blue.json
│   │   │   ├── gentx-citizen-cosmos.json
│   │   │   ├── gentx-csaxial.json
│   │   │   ├── gentx-dd4dd317f85209964232cbbe772c242c50bbbe58.json
│   │   │   ├── gentx-dobry.json
│   │   │   ├── gentx-f1b4b596730ed81d33dbcf051870f0b7b50d6306.json
│   │   │   ├── gentx-goto5k.json
│   │   │   ├── gentx-kiwi.json
│   │   │   ├── gentx-qwertys318.json
│   │   │   ├── gentx-spectrum.json
│   │   │   ├── gentx-sta.json
│   │   │   └── gentx.json
│   │   ├── peers.md
│   │   ├── unsigned-genesis.json
│   │   ├── v3-upgrade-guide.md
│   │   └── v4-upgrade-guide.md
│   └── space-pussy/
│       ├── deploy_node_from_snapshot.md
│       ├── genesis-validator.md
│       ├── genesis.json
│       ├── gentxs/
│       │   ├── bloqhub.json
│       │   ├── gentx-Citizen-Cosmos.json
│       │   ├── gentx-Developer.json
│       │   ├── gentx-Kerman.json
│       │   ├── gentx-MikeLitoris.json
│       │   ├── gentx-POSTHUMAN.json
│       │   ├── gentx-Papsan.json
│       │   ├── gentx-SAMPLE.json
│       │   ├── gentx-Stigga.json
│       │   ├── gentx-ToTheMars.json
│       │   ├── gentx-Traneco.json
│       │   ├── gentx-bro-n-bro.json
│       │   ├── gentx-chainmaniacs.json
│       │   ├── gentx-cyberG.json
│       │   ├── gentx-denwer.json
│       │   ├── gentx-goto5k.json
│       │   ├── gentx-joy_prophet.json
│       │   ├── gentx-linak.json
│       │   ├── gentx-lux8net.json
│       │   ├── gentx-space.json
│       │   ├── gentx-web34ever.json
│       │   └── mimino.json
│       ├── get_peers/
│       │   ├── getpeers.nu
│       │   └── getpeers.sh
│       ├── peers.md
│       ├── pussy_snapshot_deploy_guide.md
│       └── unsigned-genesis.json
├── plugins/
│   ├── types/
│   │   ├── custom_querier.go
│   │   ├── dispatch_msg.go
│   │   ├── stargate_querier.go
│   │   ├── stargate_queries.go
│   │   └── types.go
│   └── wasm.go
├── proto/
│   ├── buf.gen.doc.yaml
│   ├── buf.gen.gogo.yaml
│   ├── buf.gen.swagger.yaml
│   ├── buf.yaml
│   ├── cyber/
│   │   ├── bandwidth/
│   │   │   └── v1beta1/
│   │   │       ├── genesis.proto
│   │   │       ├── query.proto
│   │   │       ├── tx.proto
│   │   │       └── types.proto
│   │   ├── clock/
│   │   │   └── v1/
│   │   │       ├── clock.proto
│   │   │       ├── genesis.proto
│   │   │       ├── query.proto
│   │   │       └── tx.proto
│   │   ├── dmn/
│   │   │   └── v1beta1/
│   │   │       ├── genesis.proto
│   │   │       ├── query.proto
│   │   │       ├── tx.proto
│   │   │       └── types.proto
│   │   ├── graph/
│   │   │   └── v1beta1/
│   │   │       ├── query.proto
│   │   │       ├── tx.proto
│   │   │       └── types.proto
│   │   ├── grid/
│   │   │   └── v1beta1/
│   │   │       ├── genesis.proto
│   │   │       ├── query.proto
│   │   │       ├── tx.proto
│   │   │       └── types.proto
│   │   ├── liquidity/
│   │   │   └── v1beta1/
│   │   │       ├── genesis.proto
│   │   │       ├── liquidity.proto
│   │   │       ├── query.proto
│   │   │       └── tx.proto
│   │   ├── rank/
│   │   │   └── v1beta1/
│   │   │       ├── genesis.proto
│   │   │       ├── pagination.proto
│   │   │       ├── query.proto
│   │   │       ├── tx.proto
│   │   │       └── types.proto
│   │   └── resources/
│   │       └── v1beta1/
│   │           ├── genesis.proto
│   │           ├── query.proto
│   │           ├── tx.proto
│   │           └── types.proto
│   └── osmosis/
│       └── tokenfactory/
│           └── v1beta1/
│               ├── authority_metadata.proto
│               ├── genesis.proto
│               ├── params.proto
│               ├── query.proto
│               └── tx.proto
├── scripts/
│   ├── install_cyber.sh
│   ├── merge_protoc.py
│   ├── protoc_swagger_openapi_gen.sh
│   └── protocgen.sh
├── start_script.sh
├── types/
│   ├── account.go
│   └── coins.go
├── utils/
│   ├── context.go
│   └── io.go
└── x/
    ├── bandwidth/
    │   ├── abci.go
    │   ├── client/
    │   │   └── cli/
    │   │       └── query.go
    │   ├── exported/
    │   │   └── exported.go
    │   ├── keeper/
    │   │   ├── blocks.go
    │   │   ├── genesis.go
    │   │   ├── grpc_query.go
    │   │   ├── keeper.go
    │   │   ├── migrator.go
    │   │   ├── msg_server.go
    │   │   └── snapshotter.go
    │   ├── migrations/
    │   │   └── v2/
    │   │       └── migrate.go
    │   ├── module.go
    │   ├── spec/
    │   │   ├── 00_concepts.md
    │   │   ├── 01_api.md
    │   │   ├── 02_state.md
    │   │   ├── 03_state_transitions.md
    │   │   ├── 06_params.md
    │   │   ├── 07_wasm.md
    │   │   ├── 08_errors.md
    │   │   ├── 09_cli.md
    │   │   └── README.md
    │   ├── types/
    │   │   ├── codec.go
    │   │   ├── errors.go
    │   │   ├── expected_keepers.go
    │   │   ├── genesis.go
    │   │   ├── genesis.pb.go
    │   │   ├── keys.go
    │   │   ├── msgs.go
    │   │   ├── params.go
    │   │   ├── params_legacy.go
    │   │   ├── query.pb.go
    │   │   ├── query.pb.gw.go
    │   │   ├── tx.pb.go
    │   │   └── types.pb.go
    │   └── wasm/
    │       └── interface.go
    ├── clock/
    │   ├── README.md
    │   ├── abci.go
    │   ├── abci_test.go
    │   ├── client/
    │   │   └── cli/
    │   │       ├── query.go
    │   │       └── tx.go
    │   ├── genesis.go
    │   ├── genesis_test.go
    │   ├── keeper/
    │   │   ├── clock.go
    │   │   ├── keeper.go
    │   │   ├── keeper_test.go
    │   │   ├── msg_server.go
    │   │   ├── msg_server_test.go
    │   │   ├── querier.go
    │   │   └── querier_test.go
    │   ├── module.go
    │   ├── spec/
    │   │   ├── 01_concepts.md
    │   │   ├── 02_state.md
    │   │   ├── 03_integration.md
    │   │   ├── 04_clients.md
    │   │   └── README.md
    │   └── types/
    │       ├── clock.pb.go
    │       ├── codec.go
    │       ├── codec_test.go
    │       ├── errors.go
    │       ├── genesis.pb.go
    │       ├── keys.go
    │       ├── msgs.go
    │       ├── msgs_test.go
    │       ├── params.go
    │       ├── params_test.go
    │       ├── query.pb.go
    │       ├── query.pb.gw.go
    │       ├── tx.pb.go
    │       └── tx.pb.gw.go
    ├── cyberbank/
    │   ├── abci.go
    │   ├── keeper/
    │   │   ├── genesis.go
    │   │   ├── keeper.go
    │   │   ├── proxy.go
    │   │   └── snapshotter.go
    │   ├── module.go
    │   ├── spec/
    │   │   ├── 00_concepts.md
    │   │   ├── 02_state.md
    │   │   ├── 03_state_transitions.md
    │   │   └── README.md
    │   └── types/
    │       ├── expected_keepers.go
    │       ├── hook.go
    │       └── keys.go
    ├── dmn/
    │   ├── abci.go
    │   ├── client/
    │   │   └── cli/
    │   │       └── query.go
    │   ├── exported/
    │   │   └── exported.go
    │   ├── keeper/
    │   │   ├── genesis.go
    │   │   ├── grpc_query.go
    │   │   ├── keeper.go
    │   │   ├── migrator.go
    │   │   └── msg_server.go
    │   ├── migrations/
    │   │   └── v2/
    │   │       └── migrate.go
    │   ├── module.go
    │   ├── types/
    │   │   ├── codec.go
    │   │   ├── errors.go
    │   │   ├── events.go
    │   │   ├── expected_keepers.go
    │   │   ├── genesis.go
    │   │   ├── genesis.pb.go
    │   │   ├── keys.go
    │   │   ├── msgs.go
    │   │   ├── params.go
    │   │   ├── params_legacy.go
    │   │   ├── querier.go
    │   │   ├── query.pb.go
    │   │   ├── query.pb.gw.go
    │   │   ├── thought.go
    │   │   ├── tx.pb.go
    │   │   └── types.pb.go
    │   └── wasm/
    │       └── interface.go
    ├── graph/
    │   ├── abci.go
    │   ├── client/
    │   │   └── cli/
    │   │       ├── query.go
    │   │       └── tx.go
    │   ├── keeper/
    │   │   ├── genesis.go
    │   │   ├── graph.go
    │   │   ├── grpc_query.go
    │   │   ├── index.go
    │   │   ├── msg_server.go
    │   │   ├── neudeg.go
    │   │   ├── particles.go
    │   │   └── snapshotter.go
    │   ├── module.go
    │   ├── types/
    │   │   ├── codec.go
    │   │   ├── compact_link.go
    │   │   ├── cyberlinks.go
    │   │   ├── errors.go
    │   │   ├── events.go
    │   │   ├── keys.go
    │   │   ├── msgs.go
    │   │   ├── particles_filter.go
    │   │   ├── querier.go
    │   │   ├── query.pb.go
    │   │   ├── query.pb.gw.go
    │   │   ├── tx.pb.go
    │   │   └── types.pb.go
    │   └── wasm/
    │       └── interface.go
    ├── grid/
    │   ├── client/
    │   │   └── cli/
    │   │       ├── query.go
    │   │       └── tx.go
    │   ├── exported/
    │   │   └── exported.go
    │   ├── keeper/
    │   │   ├── genesis.go
    │   │   ├── grpc_query.go
    │   │   ├── keeper.go
    │   │   ├── migrator.go
    │   │   └── msg_server.go
    │   ├── migrations/
    │   │   └── v2/
    │   │       └── migrate.go
    │   ├── module.go
    │   ├── spec/
    │   │   ├── 00_concepts.md
    │   │   ├── 01_api.md
    │   │   ├── 02_state.md
    │   │   ├── 03_state_transitions.md
    │   │   ├── 04_messages.md
    │   │   ├── 05_events.md
    │   │   ├── 06_params.md
    │   │   ├── 07_wasm.md
    │   │   ├── 08_errors.md
    │   │   ├── 09_cli.md
    │   │   └── README.md
    │   ├── types/
    │   │   ├── codec.go
    │   │   ├── errors.go
    │   │   ├── events.go
    │   │   ├── expected_keepers.go
    │   │   ├── genesis.go
    │   │   ├── genesis.pb.go
    │   │   ├── keys.go
    │   │   ├── msgs.go
    │   │   ├── params.go
    │   │   ├── params_legacy.go
    │   │   ├── query.pb.go
    │   │   ├── query.pb.gw.go
    │   │   ├── route.go
    │   │   ├── tx.pb.go
    │   │   └── types.pb.go
    │   └── wasm/
    │       └── interface.go
    ├── liquidity/
    │   ├── abci.go
    │   ├── client/
    │   │   └── cli/
    │   │       ├── flags.go
    │   │       ├── query.go
    │   │       └── tx.go
    │   ├── exported/
    │   │   └── exported.go
    │   ├── genesis.go
    │   ├── handler.go
    │   ├── keeper/
    │   │   ├── batch.go
    │   │   ├── genesis.go
    │   │   ├── grpc_query.go
    │   │   ├── invariants.go
    │   │   ├── keeper.go
    │   │   ├── liquidity_pool.go
    │   │   ├── migrator.go
    │   │   ├── msg_server.go
    │   │   ├── store.go
    │   │   └── swap.go
    │   ├── migrations/
    │   │   └── v3/
    │   │       └── migrate.go
    │   ├── module.go
    │   ├── spec/
    │   │   ├── 01_concepts.md
    │   │   ├── 02_state.md
    │   │   ├── 03_state_transitions.md
    │   │   ├── 04_messages.md
    │   │   ├── 05_begin_block.md
    │   │   ├── 06_end_block.md
    │   │   ├── 07_events.md
    │   │   ├── 08_params.md
    │   │   └── README.md
    │   ├── types/
    │   │   ├── codec.go
    │   │   ├── codec_test.go
    │   │   ├── errors.go
    │   │   ├── events.go
    │   │   ├── expected_keepers.go
    │   │   ├── genesis.go
    │   │   ├── genesis.pb.go
    │   │   ├── keys.go
    │   │   ├── liquidity.pb.go
    │   │   ├── liquidity_pool.go
    │   │   ├── msgs.go
    │   │   ├── params.go
    │   │   ├── params_legacy.go
    │   │   ├── querier.go
    │   │   ├── query.pb.go
    │   │   ├── query.pb.gw.go
    │   │   ├── swap.go
    │   │   ├── tx.pb.go
    │   │   └── utils.go
    │   └── wasm/
    │       └── liquidity.go
    ├── rank/
    │   ├── abci.go
    │   ├── client/
    │   │   └── cli/
    │   │       └── query.go
    │   ├── cuda/
    │   │   ├── Makefile
    │   │   ├── cbdrank.h
    │   │   ├── rank.cu
    │   │   ├── test_rank.cu
    │   │   └── types.h
    │   ├── exported/
    │   │   └── exported.go
    │   ├── keeper/
    │   │   ├── calculate.go
    │   │   ├── calculate_cpu.go
    │   │   ├── calculate_gpu.go
    │   │   ├── calculate_gpu_nop.go
    │   │   ├── calculate_mock.go
    │   │   ├── genesis.go
    │   │   ├── grpc_query.go
    │   │   ├── keeper.go
    │   │   ├── migrator.go
    │   │   ├── msg_server.go
    │   │   └── snapshotter.go
    │   ├── migrations/
    │   │   └── v2/
    │   │       └── migrate.go
    │   ├── module.go
    │   ├── types/
    │   │   ├── codec.go
    │   │   ├── compute.go
    │   │   ├── context.go
    │   │   ├── expected_keepers.go
    │   │   ├── genesis.go
    │   │   ├── genesis.pb.go
    │   │   ├── index.go
    │   │   ├── index_types.go
    │   │   ├── keys.go
    │   │   ├── msgs.go
    │   │   ├── pagination.pb.go
    │   │   ├── params.go
    │   │   ├── params_legacy.go
    │   │   ├── querier.go
    │   │   ├── query.pb.go
    │   │   ├── query.pb.gw.go
    │   │   ├── rank.go
    │   │   ├── tx.pb.go
    │   │   └── types.pb.go
    │   └── wasm/
    │       └── interface.go
    ├── resources/
    │   ├── client/
    │   │   └── cli/
    │   │       ├── query.go
    │   │       └── tx.go
    │   ├── exported/
    │   │   └── exported.go
    │   ├── keeper/
    │   │   ├── genesis.go
    │   │   ├── grpc_query.go
    │   │   ├── keeper.go
    │   │   ├── migrator.go
    │   │   └── msg_server.go
    │   ├── migrations/
    │   │   └── v2/
    │   │       └── migrate.go
    │   ├── module.go
    │   ├── spec/
    │   │   ├── 00_concepts.md
    │   │   ├── 01_api.md
    │   │   ├── 02_state.md
    │   │   ├── 03_state_transitions.md
    │   │   ├── 04_messages.md
    │   │   ├── 05_events.md
    │   │   ├── 06_params.md
    │   │   ├── 07_wasm.md
    │   │   ├── 08_errors.md
    │   │   ├── 09_cli.md
    │   │   └── README.md
    │   ├── types/
    │   │   ├── account.go
    │   │   ├── codec.go
    │   │   ├── errors.go
    │   │   ├── events.go
    │   │   ├── expected_keepers.go
    │   │   ├── genesis.go
    │   │   ├── genesis.pb.go
    │   │   ├── keys.go
    │   │   ├── msgs.go
    │   │   ├── params.go
    │   │   ├── params_legacy.go
    │   │   ├── period.go
    │   │   ├── query.pb.go
    │   │   ├── query.pb.gw.go
    │   │   ├── tx.pb.go
    │   │   └── types.pb.go
    │   └── wasm/
    │       └── interface.go
    ├── staking/
    │   ├── module.go
    │   └── msg_server.go
    └── tokenfactory/
        ├── README.md
        ├── client/
        │   └── cli/
        │       ├── query.go
        │       └── tx.go
        ├── exported/
        │   └── exported.go
        ├── keeper/
        │   ├── admins.go
        │   ├── admins_test.go
        │   ├── bankactions.go
        │   ├── createdenom.go
        │   ├── createdenom_test.go
        │   ├── creators.go
        │   ├── genesis.go
        │   ├── genesis_test.go
        │   ├── grpc_query.go
        │   ├── keeper.go
        │   ├── keeper_test.go
        │   ├── migrator.go
        │   ├── msg_server.go
        │   ├── msg_server_test.go
        │   └── params.go
        ├── migrations/
        │   └── v2/
        │       ├── migrate.go
        │       └── migrate_test.go
        ├── module.go
        ├── testhelpers/
        │   └── authz.go
        ├── types/
        │   ├── authorityMetadata.go
        │   ├── authorityMetadata.pb.go
        │   ├── capabilities.go
        │   ├── codec.go
        │   ├── codec_test.go
        │   ├── denoms.go
        │   ├── denoms_test.go
        │   ├── errors.go
        │   ├── events.go
        │   ├── expected_keepers.go
        │   ├── genesis.go
        │   ├── genesis.pb.go
        │   ├── genesis_test.go
        │   ├── keys.go
        │   ├── msgs.go
        │   ├── msgs_test.go
        │   ├── params.go
        │   ├── params.pb.go
        │   ├── params_legacy.go
        │   ├── query.pb.go
        │   ├── query.pb.gw.go
        │   └── tx.pb.go
        └── wasm/
            ├── custom_msg_test.go
            ├── custom_query_test.go
            ├── helpers_test.go
            ├── message_plugin.go
            ├── queries.go
            ├── query_plugin.go
            ├── types/
            │   ├── msg.go
            │   ├── query.go
            │   └── types.go
            ├── validate_msg_test.go
            └── validate_queries_test.go

================================================
FILE CONTENTS
================================================

================================================
FILE: .dockerignore
================================================
eulet-5
mytestnet

================================================
FILE: .gitattributes
================================================
client/docs/swagger-ui/* linguist-vendored



================================================
FILE: .github/ISSUE_TEMPLATE/bug_report.md
================================================
---
name: Bug report
about: Create a report to help us improve

---

<!--
Hi!

Please use the template below for issue bugs found within cyberd.

Provide a general summary of the issue in the title above and use relevant fields below to define the problem.

-->
### Current Behavior
[comment]: # (Describe what actually happened.)

### Expected Behavior
[comment]: # (Describe what you expected to happen.)

### Reproduction
[comment]: # (Describe how we can replicate the bug step by step.)

### Log
[comment]: # (Also you can attach log to this issue.)

### Additional Information
[comment]: # (Any other information that would be useful, content, screenshots, etc.)

================================================
FILE: .github/ISSUE_TEMPLATE/feature_request.md
================================================
---
name: Feature request
about: Suggest an idea for this project

---

<!--
Hi!

Please use the template below for share your ideas with us.

Provide a general summary of the issue in the title above and use relevant fields below to define the problem.

-->

### User Story

[comment]: # (As a <user type>, I want to <task> so that <goal>.)


### Why Is this Needed?

[comment]: # (Describe the problem and why this task is needed. Provide description of the current state, what you would like to happen, and what actually happen)
*Summary*:


### Definition of Done
[comment]: # (Any other information that would be useful, bullets are helpful.)


### Additional Information
[comment]: # (Any other information that would be useful, content, screenshots, etc.)


================================================
FILE: .github/ISSUE_TEMPLATE/gitcoin-issue-template.md
================================================
---
name: Add Issue to Gitcoin
about: This is recommended issue template for gitcoin

---

#### Overview
[Here](https://github.com/cybercongress/cyberd/blob/master/README.md) you can explore our project

---
#### Current project situation

Current project situation section where you can explain why we need to solve this task

---
#### Task description

Explain task clearly with details

---
#### Required skills

- List;
- required;
- skills;
- here.

---
#### Contribution rules

[Here](https://github.com/cybercongress/cyberd/blob/master/CONTRIBUTING.md) you can learn how to contribute to our project

---
#### Definition of done

Explain what you actually want to see as a result:
- [ ] you can
- [ ] also
- [ ] use checkboxes

---
#### Extra information

Bounty amount | 999 ETH
------------ | -------------
Experience level | beginner / intermediate / advanced
Project length | hours / days / weeks / mounths
Expires in | 2 weeks / 1 mounth / 3 mounths / 6 mounths / 1 year
Bounty type | bug / feature / security / other


================================================
FILE: .github/tests.yml
================================================
# https://github.com/mvdan/github-actions-golang
on: [push, pull_request]
name: Test
jobs:
  test:
    strategy:
      matrix:
        go-version: [1.19.x, 1.20.x]
        os: [ubuntu-latest, macos-latest, windows-latest]
    runs-on: ${{ matrix.os }}
    steps:
    - uses: actions/checkout@v3
    - uses: actions/setup-go@v4
      with:
        go-version: ${{ matrix.go-version }}
    - run: go test ./...


================================================
FILE: .gitignore
================================================
# OS
.DS_Store
*.swp
*.swo
*.swl
*.swm
*.swn
.vscode
.idea

# Build
vendor
build
tools/bin/*
examples/build/*
docs/_build
docs/tutorial
dist
tools-stamp
docs/node_modules
NULL

# Data - ideally these don't exist
baseapp/data/*
client/lcd/keys/*
mytestnet
testnet
testnets

# Testing
coverage.txt
profile.out

# Vagrant
.vagrant/
*.box
*.log
vagrant

# IDE
.idea/
*.iml

# Graphviz
dependency-graph.png

# Latex
*.aux
*.out
*.synctex.gz
contract_tests/*

# Wasm
contracts

# Scripts
*.mjs

*.wasm

cmd/iavltool/*.txt

# Local infrastructure docs (not part of codebase)
local/

# Claude Code
.claude/
CLAUDE.md

================================================
FILE: .golangci.yml
================================================
run:
  # timeout for analysis, e.g. 30s, 5m, default is 1m
  timeout: 10m
  tests: true

linters:
  disable-all: true
  enable:
    - bodyclose
    - depguard
    - dogsled
    - errcheck
    - goconst
    - gocritic
    - gofumpt
    - revive
    - gosec
    - gosimple
    - govet
    - ineffassign
    - misspell
    - nakedret
    - exportloopref
    - staticcheck
    - stylecheck
    - typecheck
    - unconvert
    - unused
    - unparam
    - misspell

linters-settings:
  gosec:
    excludes:
      - G404


================================================
FILE: .goreleaser.yml
================================================
builds:
  -
    main: ./cyberdcli
    binary: cyberdcli
    env:
      - CGO_ENABLED=0
      - GO111MODULE=on
    goos:
      - linux
      - darwin
      - windows
    goarch:
      - amd64


checksum:
  name_template: '{{ .ProjectName }}_checksums.txt'


changelog:
  sort: asc
  filters:
    exclude:
    - '^docs:'
    - '^test:'
    - '^CI:'
    - Merge pull request


nfpm:
  name_template: '{{ .Binary }}_{{ .Os }}_{{ .Arch }}_{{ .Version }}'
  replacements:
    darwin: macOS
    386: i386
    amd64: x86_64
  homepage:  https://github.com/cybercongress
  description: Distributed search engine
  maintainer: Cyber Admin <cybercongress42@gmail.com>
  license: MIT
  vendor: cyber.Congress
  formats:
    - deb
    - rpm
  dependencies:
    - git
  recommends:
    - rpm


archive:
  name_template: '{{ .Binary }}_{{ .Os }}_{{ .Arch }}_{{ .Version }}'
  replacements:
    darwin: MacOS
    linux: Linux
    windows: Windows
    386: i386
    amd64: x86_64
  format: zip
  format_overrides:
    - goos: linux
      format: tar.gz
  wrap_in_directory: true
  files:
    - none*

================================================
FILE: CHANGELOG.md
================================================
# Change Log

## [Unreleased](https://github.com/cybercongress/go-cyber/tree/HEAD)

[Full Changelog](https://github.com/cybercongress/go-cyber/compare/v0.1.6...HEAD)

**Closed issues:**

- Disable karma calculations [\#552](https://github.com/cybercongress/go-cyber/issues/552)
- Upgrade to Launchpad [\#550](https://github.com/cybercongress/go-cyber/issues/550)
- Test onchain upgrade against docker container [\#541](https://github.com/cybercongress/go-cyber/issues/541)
- Upgrade to sdk 38.5 and tm 33.6 [\#530](https://github.com/cybercongress/go-cyber/issues/530)
- Delegations not indexed with bank module wrapper [\#521](https://github.com/cybercongress/go-cyber/issues/521)
- Security upgrade with bump to 0.38.3/0.33.3 [\#518](https://github.com/cybercongress/go-cyber/issues/518)
- Rename cyberdcli [\#481](https://github.com/cybercongress/go-cyber/issues/481)
- Euler-6 release [\#463](https://github.com/cybercongress/go-cyber/issues/463)
- Md style error in  run\_validator.md [\#445](https://github.com/cybercongress/go-cyber/issues/445)
- Support easy install with brew tap [\#426](https://github.com/cybercongress/go-cyber/issues/426)
- Validator setup using Tendermint KMS + Ledger  [\#393](https://github.com/cybercongress/go-cyber/issues/393)
- Delegation of energy and power [\#329](https://github.com/cybercongress/go-cyber/issues/329)
- Daemon for autoclaiming of validators rewards [\#280](https://github.com/cybercongress/go-cyber/issues/280)

**Merged pull requests:**

- Indexing rewards of withdraw proxy account [\#579](https://github.com/cybercongress/go-cyber/pull/579) ([litvintech](https://github.com/litvintech))
- Skip indexing of not existed account [\#578](https://github.com/cybercongress/go-cyber/pull/578) ([litvintech](https://github.com/litvintech))
- Fixed call of rank rpc endpoint [\#572](https://github.com/cybercongress/go-cyber/pull/572) ([litvintech](https://github.com/litvintech))
- Fixed freeing of allocated memory [\#571](https://github.com/cybercongress/go-cyber/pull/571) ([litvintech](https://github.com/litvintech))
- Energy module [\#565](https://github.com/cybercongress/go-cyber/pull/565) ([litvintech](https://github.com/litvintech))
- Uints rank's values [\#564](https://github.com/cybercongress/go-cyber/pull/564) ([litvintech](https://github.com/litvintech))
- Extra APIs [\#563](https://github.com/cybercongress/go-cyber/pull/563) ([litvintech](https://github.com/litvintech))
- upgrade\_fixes\_to\_run\_val [\#545](https://github.com/cybercongress/go-cyber/pull/545) ([mrlp4](https://github.com/mrlp4))
- fixes to upgrade guide [\#537](https://github.com/cybercongress/go-cyber/pull/537) ([mrlp4](https://github.com/mrlp4))
- Update script.sh [\#536](https://github.com/cybercongress/go-cyber/pull/536) ([SaveTheAles](https://github.com/SaveTheAles))
- Update naming for docs build to go-cyber [\#535](https://github.com/cybercongress/go-cyber/pull/535) ([SaveTheAles](https://github.com/SaveTheAles))
- Software upgrade documentation [\#534](https://github.com/cybercongress/go-cyber/pull/534) ([litvintech](https://github.com/litvintech))
- Delegation tracking and Darwin upgrade [\#533](https://github.com/cybercongress/go-cyber/pull/533) ([litvintech](https://github.com/litvintech))
- Master docs update [\#532](https://github.com/cybercongress/go-cyber/pull/532) ([mrlp4](https://github.com/mrlp4))
- Upgraded to sdk 38.5 and tm 33.6 [\#531](https://github.com/cybercongress/go-cyber/pull/531) ([litvintech](https://github.com/litvintech))
- upd repo name to go-cyber [\#527](https://github.com/cybercongress/go-cyber/pull/527) ([mrlp4](https://github.com/mrlp4))
- docs\_fixes [\#526](https://github.com/cybercongress/go-cyber/pull/526) ([mrlp4](https://github.com/mrlp4))
- fixes\_tun\_val\_guide [\#525](https://github.com/cybercongress/go-cyber/pull/525) ([mrlp4](https://github.com/mrlp4))
- fix\_daemon\_name [\#523](https://github.com/cybercongress/go-cyber/pull/523) ([mrlp4](https://github.com/mrlp4))
- Upgrade sdk and tm versions due to security issue [\#519](https://github.com/cybercongress/go-cyber/pull/519) ([litvintech](https://github.com/litvintech))
- docs\_update [\#517](https://github.com/cybercongress/go-cyber/pull/517) ([mrlp4](https://github.com/mrlp4))

## [v0.1.6](https://github.com/cybercongress/go-cyber/tree/v0.1.6) (2020-04-03)
[Full Changelog](https://github.com/cybercongress/go-cyber/compare/euler-5...v0.1.6)

**Closed issues:**

- Update docs for euler-6 [\#503](https://github.com/cybercongress/go-cyber/issues/503)
- Add network load endpoint [\#499](https://github.com/cybercongress/go-cyber/issues/499)
- Remove graph merkling due storage iterator non-determinism [\#496](https://github.com/cybercongress/go-cyber/issues/496)
- Add used karma to cyberlink's events [\#495](https://github.com/cybercongress/go-cyber/issues/495)
- The error during the signing tx with imported eth key [\#494](https://github.com/cybercongress/go-cyber/issues/494)
- Refactore http client [\#493](https://github.com/cybercongress/go-cyber/issues/493)
- Provide NewEventManager to links handler [\#488](https://github.com/cybercongress/go-cyber/issues/488)
- Upgrade to cosmwasm 0.7 [\#484](https://github.com/cybercongress/go-cyber/issues/484)
- Apply infinite gas meter to ante handler [\#483](https://github.com/cybercongress/go-cyber/issues/483)
- Fix iteration over links storage [\#482](https://github.com/cybercongress/go-cyber/issues/482)
- Rename cyberlink msg [\#480](https://github.com/cybercongress/go-cyber/issues/480)
- Deploy first WASM contract to Euler-6 [\#479](https://github.com/cybercongress/go-cyber/issues/479)
- Refactore module to go-cyber [\#478](https://github.com/cybercongress/go-cyber/issues/478)
- Add cosmwasm build stage in Dockerfile [\#470](https://github.com/cybercongress/go-cyber/issues/470)
- Prepare genesis file of Euler-6 [\#466](https://github.com/cybercongress/go-cyber/issues/466)
- Export cyberlinks from Euler-5 [\#465](https://github.com/cybercongress/go-cyber/issues/465)
- Test online upgrades in Euler-6 [\#464](https://github.com/cybercongress/go-cyber/issues/464)
- Upgrade link's custom storage to sdk's storage [\#462](https://github.com/cybercongress/go-cyber/issues/462)
- Update swagger.yaml for LCD  [\#461](https://github.com/cybercongress/go-cyber/issues/461)
- Unexpected bandwidth regeneration after a transaction [\#460](https://github.com/cybercongress/go-cyber/issues/460)
- NaN rank values for objects after agent's full power transfer [\#455](https://github.com/cybercongress/go-cyber/issues/455)
- Add events to link msg [\#454](https://github.com/cybercongress/go-cyber/issues/454)
- Wrong app hash calculated after node restart. [\#453](https://github.com/cybercongress/go-cyber/issues/453)
- Error in RPC response, top endpoint [\#451](https://github.com/cybercongress/go-cyber/issues/451)
- Upgrade to cosmos-sdk v0.38.0 [\#449](https://github.com/cybercongress/go-cyber/issues/449)
- Fix overall karma calculation [\#448](https://github.com/cybercongress/go-cyber/issues/448)
- Standalone changes of modules balance shouldn't trigger a rank recalculation [\#446](https://github.com/cybercongress/go-cyber/issues/446)
- Command list from euler 3 update [\#433](https://github.com/cybercongress/go-cyber/issues/433)
- Upgrade to Cosmos-SDK 0.38.0 [\#429](https://github.com/cybercongress/go-cyber/issues/429)
- Update run\_validator guide for Euler-dev [\#423](https://github.com/cybercongress/go-cyber/issues/423)
- WASM integration [\#381](https://github.com/cybercongress/go-cyber/issues/381)

**Merged pull requests:**

- upd to cli-install script [\#516](https://github.com/cybercongress/go-cyber/pull/516) ([mrlp4](https://github.com/mrlp4))
- update ci script for changelog generator [\#515](https://github.com/cybercongress/go-cyber/pull/515) ([SaveTheAles](https://github.com/SaveTheAles))
- update repo name at changelog generator [\#514](https://github.com/cybercongress/go-cyber/pull/514) ([SaveTheAles](https://github.com/SaveTheAles))
- Improve band and rank params init [\#513](https://github.com/cybercongress/go-cyber/pull/513) ([litvintech](https://github.com/litvintech))
- Upd genesis hash at run\_validator [\#512](https://github.com/cybercongress/go-cyber/pull/512) ([mrlp4](https://github.com/mrlp4))
- Euler-6 release [\#511](https://github.com/cybercongress/go-cyber/pull/511) ([litvintech](https://github.com/litvintech))
- Updated README [\#510](https://github.com/cybercongress/go-cyber/pull/510) ([litvintech](https://github.com/litvintech))
- Remove http client [\#509](https://github.com/cybercongress/go-cyber/pull/509) ([litvintech](https://github.com/litvintech))
- Add swagger bundle for cyber [\#508](https://github.com/cybercongress/go-cyber/pull/508) ([litvintech](https://github.com/litvintech))
- Documentation update for 0.1.6 [\#507](https://github.com/cybercongress/go-cyber/pull/507) ([mrlp4](https://github.com/mrlp4))
- Install cybercli script [\#506](https://github.com/cybercongress/go-cyber/pull/506) ([mrlp4](https://github.com/mrlp4))
- Update run validator guide [\#504](https://github.com/cybercongress/go-cyber/pull/504) ([mrlp4](https://github.com/mrlp4))
- Remove merkling of graph [\#501](https://github.com/cybercongress/go-cyber/pull/501) ([litvintech](https://github.com/litvintech))
- Add RPC endpoint for network load [\#500](https://github.com/cybercongress/go-cyber/pull/500) ([litvintech](https://github.com/litvintech))
- Fixed ethereum private key import [\#498](https://github.com/cybercongress/go-cyber/pull/498) ([litvintech](https://github.com/litvintech))
- Add used karma to cyberlinks events [\#497](https://github.com/cybercongress/go-cyber/pull/497) ([litvintech](https://github.com/litvintech))
- Fix event manager for NewLinksHangler [\#492](https://github.com/cybercongress/go-cyber/pull/492) ([litvintech](https://github.com/litvintech))
- Fix iteration over links storage [\#491](https://github.com/cybercongress/go-cyber/pull/491) ([litvintech](https://github.com/litvintech))
- Rename cyberlink msg [\#490](https://github.com/cybercongress/go-cyber/pull/490) ([litvintech](https://github.com/litvintech))
- Upgrade to cosmwasm 0.7 [\#489](https://github.com/cybercongress/go-cyber/pull/489) ([litvintech](https://github.com/litvintech))
- Add custom ante handler with applied infinity gas meter [\#487](https://github.com/cybercongress/go-cyber/pull/487) ([litvintech](https://github.com/litvintech))
- Add cosmwasm docker build stage [\#486](https://github.com/cybercongress/go-cyber/pull/486) ([litvintech](https://github.com/litvintech))
- Added cosmwasm module [\#477](https://github.com/cybercongress/go-cyber/pull/477) ([litvintech](https://github.com/litvintech))
- Upgrade to cosmos-SDK v0.38.1 [\#476](https://github.com/cybercongress/go-cyber/pull/476) ([litvintech](https://github.com/litvintech))
- Fixed NaN in weights calculation in CPU/GPU [\#475](https://github.com/cybercongress/go-cyber/pull/475) ([litvintech](https://github.com/litvintech))
- Euler-5.1 [\#473](https://github.com/cybercongress/go-cyber/pull/473) ([litvintech](https://github.com/litvintech))
- Fixed calculation of overall karma [\#459](https://github.com/cybercongress/go-cyber/pull/459) ([litvintech](https://github.com/litvintech))
- Fixed triggering of rank calculation by modules [\#458](https://github.com/cybercongress/go-cyber/pull/458) ([litvintech](https://github.com/litvintech))
- Added skipping of NaN objects during sorting [\#457](https://github.com/cybercongress/go-cyber/pull/457) ([litvintech](https://github.com/litvintech))
- Updated index.md [\#442](https://github.com/cybercongress/go-cyber/pull/442) ([mrlp4](https://github.com/mrlp4))
- fixed title ultimate guide; fixed folders names [\#441](https://github.com/cybercongress/go-cyber/pull/441) ([mrlp4](https://github.com/mrlp4))

## [euler-5](https://github.com/cybercongress/go-cyber/tree/euler-5) (2019-12-20)
[Full Changelog](https://github.com/cybercongress/go-cyber/compare/v0.1.5-rc1...euler-5)

**Closed issues:**

- Bump tendermint/cosmos-sdk to 0.32.8/0.37.4 [\#437](https://github.com/cybercongress/go-cyber/issues/437)
- Add overall karma stats [\#435](https://github.com/cybercongress/go-cyber/issues/435)
- Add instructions for easy install and use non-validating version of cyberdcli [\#425](https://github.com/cybercongress/go-cyber/issues/425)
- euler-x params discussion [\#422](https://github.com/cybercongress/go-cyber/issues/422)
- Add rank and bandwidth modules LCD endpoints [\#419](https://github.com/cybercongress/go-cyber/issues/419)
- Add max block bandwidth parameter [\#415](https://github.com/cybercongress/go-cyber/issues/415)
- Make cross testing of data preparation code for GPU [\#413](https://github.com/cybercongress/go-cyber/issues/413)
- Fix CLI output on txs [\#412](https://github.com/cybercongress/go-cyber/issues/412)
- Add Makefile for rank CUDA kernel [\#409](https://github.com/cybercongress/go-cyber/issues/409)
- CUDA kernel for Rank Merkle Tree calculation [\#401](https://github.com/cybercongress/go-cyber/issues/401)
- Sync fail due to possible DB corruption  [\#397](https://github.com/cybercongress/go-cyber/issues/397)
- Add instructions to use without docker [\#389](https://github.com/cybercongress/go-cyber/issues/389)
- Update docs on inflation params from euler-5 [\#385](https://github.com/cybercongress/go-cyber/issues/385)
- Ability to launch validator from blockchain backup [\#384](https://github.com/cybercongress/go-cyber/issues/384)
- Top CIDs endpoint [\#378](https://github.com/cybercongress/go-cyber/issues/378)
- Index of used by account bandwidth for linking [\#371](https://github.com/cybercongress/go-cyber/issues/371)
- Snapshot of Cosmos Hub for euler-5 [\#369](https://github.com/cybercongress/go-cyber/issues/369)
- Configure BIP44 path [\#368](https://github.com/cybercongress/go-cyber/issues/368)
- Get actual data on euler-4 validators uptime [\#360](https://github.com/cybercongress/go-cyber/issues/360)
- Set size limit for CIDv1 [\#346](https://github.com/cybercongress/go-cyber/issues/346)
- Prepare genesis for euler-5 with proofs flow [\#339](https://github.com/cybercongress/go-cyber/issues/339)
- Adjust consensus and cyberd params for euler-5 [\#338](https://github.com/cybercongress/go-cyber/issues/338)
- Add table of seed/validator nodes to README for euler-4 [\#319](https://github.com/cybercongress/go-cyber/issues/319)
- Advanced export [\#318](https://github.com/cybercongress/go-cyber/issues/318)
- Make profiling [\#317](https://github.com/cybercongress/go-cyber/issues/317)
- Move bandwidth logic to ante handler [\#249](https://github.com/cybercongress/go-cyber/issues/249)
- Download genesis files on start of docker container [\#224](https://github.com/cybercongress/go-cyber/issues/224)
- Refactor daemon/cmd package [\#199](https://github.com/cybercongress/go-cyber/issues/199)
- index stats rpc add block time fields [\#176](https://github.com/cybercongress/go-cyber/issues/176)

**Merged pull requests:**

- 0.1.5 docs cleanup [\#439](https://github.com/cybercongress/go-cyber/pull/439) ([mrlp4](https://github.com/mrlp4))
- Bump cosmos-sdk and tendermint versions [\#438](https://github.com/cybercongress/go-cyber/pull/438) ([litvintech](https://github.com/litvintech))
- Added used overall karma generated by agents [\#436](https://github.com/cybercongress/go-cyber/pull/436) ([litvintech](https://github.com/litvintech))
- Implemented top cids endpoint and top processing [\#434](https://github.com/cybercongress/go-cyber/pull/434) ([litvintech](https://github.com/litvintech))
- run\_validator\_fixes [\#432](https://github.com/cybercongress/go-cyber/pull/432) ([mrlp4](https://github.com/mrlp4))
- add Tendermint KMS  with Leger validator setup [\#431](https://github.com/cybercongress/go-cyber/pull/431) ([mrlp4](https://github.com/mrlp4))
- Update README.md [\#430](https://github.com/cybercongress/go-cyber/pull/430) ([serejandmyself](https://github.com/serejandmyself))
- ledger\_guide\_cyberd [\#428](https://github.com/cybercongress/go-cyber/pull/428) ([mrlp4](https://github.com/mrlp4))
- create run\_validator for euler-dev testnet [\#427](https://github.com/cybercongress/go-cyber/pull/427) ([mrlp4](https://github.com/mrlp4))
- Remove outdated whitepaper [\#424](https://github.com/cybercongress/go-cyber/pull/424) ([cyb-master](https://github.com/cyb-master))
- 419 band and rank modules endpoints [\#420](https://github.com/cybercongress/go-cyber/pull/420) ([litvintech](https://github.com/litvintech))
- Client upgrade [\#418](https://github.com/cybercongress/go-cyber/pull/418) ([litvintech](https://github.com/litvintech))
- Added stat for used for linking band [\#417](https://github.com/cybercongress/go-cyber/pull/417) ([litvintech](https://github.com/litvintech))
- \#320 add advanced guides [\#390](https://github.com/cybercongress/go-cyber/pull/390) ([SaveTheAles](https://github.com/SaveTheAles))

## [v0.1.5-rc1](https://github.com/cybercongress/go-cyber/tree/v0.1.5-rc1) (2019-11-01)
[Full Changelog](https://github.com/cybercongress/go-cyber/compare/v0.1.4...v0.1.5-rc1)

**Closed issues:**

- Change to native ante handler [\#403](https://github.com/cybercongress/go-cyber/issues/403)
- Parallelization data preparation for GPU [\#400](https://github.com/cybercongress/go-cyber/issues/400)
- Add Makefile [\#396](https://github.com/cybercongress/go-cyber/issues/396)
- Cyberd Ledger support guide [\#391](https://github.com/cybercongress/go-cyber/issues/391)
- Refactor DesirableNetworkBandwidthForRecoveryPeriod [\#386](https://github.com/cybercongress/go-cyber/issues/386)
- Damping factor as onchain parameter [\#379](https://github.com/cybercongress/go-cyber/issues/379)
- Upgrade to cosmos-sdk 0.37.0 [\#377](https://github.com/cybercongress/go-cyber/issues/377)
- Fix search index loading [\#373](https://github.com/cybercongress/go-cyber/issues/373)
- Upgrade mint module [\#356](https://github.com/cybercongress/go-cyber/issues/356)
- Remove old distribution [\#353](https://github.com/cybercongress/go-cyber/issues/353)
- Add validate-genesis command to CLI [\#335](https://github.com/cybercongress/go-cyber/issues/335)
- Governance parameterization of bandwidth parameters [\#332](https://github.com/cybercongress/go-cyber/issues/332)
- Governance parameterization of rank window [\#331](https://github.com/cybercongress/go-cyber/issues/331)
- Adjusting of link weight [\#330](https://github.com/cybercongress/go-cyber/issues/330)
- Answer why CyberD is better for Web3 then Google [\#328](https://github.com/cybercongress/go-cyber/issues/328)
-  Exclude at the current stage the consideration of the behavioural factor in the search for ordinary users [\#327](https://github.com/cybercongress/go-cyber/issues/327)
- New distribution [\#316](https://github.com/cybercongress/go-cyber/issues/316)
- Create list of supported and tested GPUs [\#315](https://github.com/cybercongress/go-cyber/issues/315)
- Upgrade to cosmos-sdk 0.34.4 [\#313](https://github.com/cybercongress/go-cyber/issues/313)
- Update development environment documentation [\#311](https://github.com/cybercongress/go-cyber/issues/311)
- RPC endpoint for cid rank proofs [\#309](https://github.com/cybercongress/go-cyber/issues/309)
- Fix pictures in whitepaper [\#303](https://github.com/cybercongress/go-cyber/issues/303)
- Error during rewards withdrawal  [\#302](https://github.com/cybercongress/go-cyber/issues/302)
- Merkle proofs for link storage [\#299](https://github.com/cybercongress/go-cyber/issues/299)
- Add backup and restore validator keys guide. [\#286](https://github.com/cybercongress/go-cyber/issues/286)
- Move bandwidth and rank constants to params store [\#284](https://github.com/cybercongress/go-cyber/issues/284)
- Cyberadmin telegram-bot for cyberd [\#281](https://github.com/cybercongress/go-cyber/issues/281)
- Align current network capabilities with cyberCongress pricing model [\#262](https://github.com/cybercongress/go-cyber/issues/262)
- Add keystore doc [\#256](https://github.com/cybercongress/go-cyber/issues/256)
- Finish Proof of Code genesis drop [\#294](https://github.com/cybercongress/go-cyber/issues/294)
- Full validating quorum [\#195](https://github.com/cybercongress/go-cyber/issues/195)
- Infinity race problem. [\#172](https://github.com/cybercongress/go-cyber/issues/172)
- Rank calculation period automatic adjustment [\#142](https://github.com/cybercongress/go-cyber/issues/142)
- Slow node start-up. [\#138](https://github.com/cybercongress/go-cyber/issues/138)
- RPC get cid rank endpoint [\#116](https://github.com/cybercongress/go-cyber/issues/116)
- CheckTx doesn't include coins that will be minted in current block [\#113](https://github.com/cybercongress/go-cyber/issues/113)

**Merged pull requests:**

- Added max block band params and validation [\#421](https://github.com/cybercongress/go-cyber/pull/421) ([litvintech](https://github.com/litvintech))
- 318 advanced export [\#416](https://github.com/cybercongress/go-cyber/pull/416) ([litvintech](https://github.com/litvintech))
- Remove outdated whitepaper from docs [\#414](https://github.com/cybercongress/go-cyber/pull/414) ([SaveTheAles](https://github.com/SaveTheAles))
- Added makefile for rank, added tag CUDA for daemon build [\#411](https://github.com/cybercongress/go-cyber/pull/411) ([litvintech](https://github.com/litvintech))
- Band refactoring [\#408](https://github.com/cybercongress/go-cyber/pull/408) ([litvintech](https://github.com/litvintech))
- Damping factor and tolerance as onchain params [\#407](https://github.com/cybercongress/go-cyber/pull/407) ([litvintech](https://github.com/litvintech))
- Refactoring of data preparation for GPU, added workers [\#406](https://github.com/cybercongress/go-cyber/pull/406) ([litvintech](https://github.com/litvintech))
- Added native ante handler [\#405](https://github.com/cybercongress/go-cyber/pull/405) ([litvintech](https://github.com/litvintech))
- Added Makefile, updated Dockerfile for [\#404](https://github.com/cybercongress/go-cyber/pull/404) ([litvintech](https://github.com/litvintech))
- Update band parameters [\#399](https://github.com/cybercongress/go-cyber/pull/399) ([vasilistefanenko](https://github.com/vasilistefanenko))
- Sdk 37 upgrade [\#395](https://github.com/cybercongress/go-cyber/pull/395) ([vasilistefanenko](https://github.com/vasilistefanenko))
- add Ledger support guide  [\#392](https://github.com/cybercongress/go-cyber/pull/392) ([mrlp4](https://github.com/mrlp4))
- Upgrade SDK to 0.37.0 LTS [\#388](https://github.com/cybercongress/go-cyber/pull/388) ([litvintech](https://github.com/litvintech))
- 352 link node [\#387](https://github.com/cybercongress/go-cyber/pull/387) ([vasilistefanenko](https://github.com/vasilistefanenko))
- Update README.md [\#376](https://github.com/cybercongress/go-cyber/pull/376) ([serejandmyself](https://github.com/serejandmyself))
- Search index fix [\#375](https://github.com/cybercongress/go-cyber/pull/375) ([litvintech](https://github.com/litvintech))
- Awesome README [\#374](https://github.com/cybercongress/go-cyber/pull/374) ([litvintech](https://github.com/litvintech))
- add governance overview article [\#367](https://github.com/cybercongress/go-cyber/pull/367) ([SaveTheAles](https://github.com/SaveTheAles))
- Update multisig\_guide.md [\#366](https://github.com/cybercongress/go-cyber/pull/366) ([serejandmyself](https://github.com/serejandmyself))
- Upgrade to cosmos-sdk  [\#362](https://github.com/cybercongress/go-cyber/pull/362) ([litvintech](https://github.com/litvintech))
- Merkle tree for links [\#361](https://github.com/cybercongress/go-cyber/pull/361) ([litvintech](https://github.com/litvintech))
- Removed old distribution [\#358](https://github.com/cybercongress/go-cyber/pull/358) ([litvintech](https://github.com/litvintech))
- Upgrade to cosmos-hub mint module [\#357](https://github.com/cybercongress/go-cyber/pull/357) ([litvintech](https://github.com/litvintech))
- 309 rank proof [\#355](https://github.com/cybercongress/go-cyber/pull/355) ([janus](https://github.com/janus))
- Fixes fatal mistake in distribution [\#348](https://github.com/cybercongress/go-cyber/pull/348) ([cyb-master](https://github.com/cyb-master))
- Format hotfix [\#347](https://github.com/cybercongress/go-cyber/pull/347) ([cyb-master](https://github.com/cyb-master))
- Edit GPU list according to @litvintech comments [\#345](https://github.com/cybercongress/go-cyber/pull/345) ([SaveTheAles](https://github.com/SaveTheAles))
- Change get-cyb description [\#344](https://github.com/cybercongress/go-cyber/pull/344) ([SaveTheAles](https://github.com/SaveTheAles))
- Add keystore managment guide \#256 [\#343](https://github.com/cybercongress/go-cyber/pull/343) ([SaveTheAles](https://github.com/SaveTheAles))
- Merkle tree for links [\#340](https://github.com/cybercongress/go-cyber/pull/340) ([litvintech](https://github.com/litvintech))
- Final fixes of paper [\#334](https://github.com/cybercongress/go-cyber/pull/334) ([cyb-master](https://github.com/cyb-master))
- Problem with install NVIDIA drivers  [\#326](https://github.com/cybercongress/go-cyber/pull/326) ([wimel](https://github.com/wimel))
- update run\_validator [\#325](https://github.com/cybercongress/go-cyber/pull/325) ([wimel](https://github.com/wimel))
- \#320 add multisig guide create and send [\#324](https://github.com/cybercongress/go-cyber/pull/324) ([SaveTheAles](https://github.com/SaveTheAles))
- Some Dan's fixes [\#323](https://github.com/cybercongress/go-cyber/pull/323) ([ghost](https://github.com/ghost))
- Proposal of the new distribution [\#322](https://github.com/cybercongress/go-cyber/pull/322) ([cyb-master](https://github.com/cyb-master))
- Cosmos-sdk upgrade to 0.34.4 [\#314](https://github.com/cybercongress/go-cyber/pull/314) ([litvintech](https://github.com/litvintech))
- Updated docs for dev env setup [\#312](https://github.com/cybercongress/go-cyber/pull/312) ([litvintech](https://github.com/litvintech))
- Add goveralls support for test coverage [\#305](https://github.com/cybercongress/go-cyber/pull/305) ([arturalbov](https://github.com/arturalbov))

## [v0.1.4](https://github.com/cybercongress/go-cyber/tree/v0.1.4) (2019-03-15)
[Full Changelog](https://github.com/cybercongress/go-cyber/compare/v0.1.3...v0.1.4)

**Closed issues:**

- Consensus Failure [\#293](https://github.com/cybercongress/go-cyber/issues/293)
- Enabled send [\#290](https://github.com/cybercongress/go-cyber/issues/290)
- move debug logic to x/debug module [\#288](https://github.com/cybercongress/go-cyber/issues/288)
- Add doc of using help feature of cli [\#287](https://github.com/cybercongress/go-cyber/issues/287)
- Infinity loop in rank end blocker if node was restarted before x00 blocks. [\#283](https://github.com/cybercongress/go-cyber/issues/283)
- Add doc about editing moniker and openning 26656 port. [\#282](https://github.com/cybercongress/go-cyber/issues/282)
- Centralized network communication [\#257](https://github.com/cybercongress/go-cyber/issues/257)
- Get supply [\#158](https://github.com/cybercongress/go-cyber/issues/158)
- Development start guide [\#78](https://github.com/cybercongress/go-cyber/issues/78)

**Merged pull requests:**

- 0.1.4 [\#298](https://github.com/cybercongress/go-cyber/pull/298) ([hleb-albau](https://github.com/hleb-albau))
- \#293 Handle bank delegation method in inmem index update mechanism [\#297](https://github.com/cybercongress/go-cyber/pull/297) ([hleb-albau](https://github.com/hleb-albau))
- 138 links storage [\#295](https://github.com/cybercongress/go-cyber/pull/295) ([hleb-albau](https://github.com/hleb-albau))
- \#78 Dev Env docs [\#292](https://github.com/cybercongress/go-cyber/pull/292) ([hleb-albau](https://github.com/hleb-albau))
- \#290 Enable send [\#291](https://github.com/cybercongress/go-cyber/pull/291) ([hleb-albau](https://github.com/hleb-albau))
- \#288 Move debug code to x/debug [\#289](https://github.com/cybercongress/go-cyber/pull/289) ([hleb-albau](https://github.com/hleb-albau))
- \#158 Get supply [\#285](https://github.com/cybercongress/go-cyber/pull/285) ([hleb-albau](https://github.com/hleb-albau))

## [v0.1.3](https://github.com/cybercongress/go-cyber/tree/v0.1.3) (2019-03-01)
[Full Changelog](https://github.com/cybercongress/go-cyber/compare/v0.1.2...v0.1.3)

**Closed issues:**

- Remove full index loading for next rank in link index [\#275](https://github.com/cybercongress/go-cyber/issues/275)
- Generate lottery results cmd [\#273](https://github.com/cybercongress/go-cyber/issues/273)
- Can not explore existing account if it have not any outgoing transactions [\#238](https://github.com/cybercongress/go-cyber/issues/238)
- distribution validator slashes don't work in cybercli [\#237](https://github.com/cybercongress/go-cyber/issues/237)
- Enable governance module [\#193](https://github.com/cybercongress/go-cyber/issues/193)

**Merged pull requests:**

- minor docs reorg fixes [\#279](https://github.com/cybercongress/go-cyber/pull/279) ([SaveTheAles](https://github.com/SaveTheAles))
- \#193 Enable governance module [\#278](https://github.com/cybercongress/go-cyber/pull/278) ([hleb-albau](https://github.com/hleb-albau))
- Remove full index loading for next rank in link index [\#277](https://github.com/cybercongress/go-cyber/pull/277) ([arturalbov](https://github.com/arturalbov))
- \#273 Generate lottery results cmd [\#274](https://github.com/cybercongress/go-cyber/pull/274) ([hleb-albau](https://github.com/hleb-albau))
- add staging [\#272](https://github.com/cybercongress/go-cyber/pull/272) ([SaveTheAles](https://github.com/SaveTheAles))
- add folder removing [\#271](https://github.com/cybercongress/go-cyber/pull/271) ([SaveTheAles](https://github.com/SaveTheAles))
- Docs ci upd [\#270](https://github.com/cybercongress/go-cyber/pull/270) ([SaveTheAles](https://github.com/SaveTheAles))

## [v0.1.2](https://github.com/cybercongress/go-cyber/tree/v0.1.2) (2019-02-23)
[Full Changelog](https://github.com/cybercongress/go-cyber/compare/v0.1.1...v0.1.2)

**Closed issues:**

- Update  to cosmos 0.32.0 [\#265](https://github.com/cybercongress/go-cyber/issues/265)
- Rank calculation failed: out of memory [\#264](https://github.com/cybercongress/go-cyber/issues/264)
- Download golang only once during docker build. [\#259](https://github.com/cybercongress/go-cyber/issues/259)
- Do not calculate rank, if there is no new links on last window. [\#258](https://github.com/cybercongress/go-cyber/issues/258)
- Http client only new links option for submit endpoint [\#254](https://github.com/cybercongress/go-cyber/issues/254)
- Add fail at height debug flags [\#250](https://github.com/cybercongress/go-cyber/issues/250)
- Different bandwidth price on same block height [\#247](https://github.com/cybercongress/go-cyber/issues/247)
- Add more seeds into initial config [\#244](https://github.com/cybercongress/go-cyber/issues/244)
- Consensus failure after node restart [\#243](https://github.com/cybercongress/go-cyber/issues/243)
- Extend isLinkExist endpoint with possibility not specify address param [\#242](https://github.com/cybercongress/go-cyber/issues/242)
- Search returns 500 error when previously unexisted "from" CID added [\#241](https://github.com/cybercongress/go-cyber/issues/241)
- Create awesome gif for readme [\#239](https://github.com/cybercongress/go-cyber/issues/239)
- Add staking/validators endpoint to node RPC [\#235](https://github.com/cybercongress/go-cyber/issues/235)
- Rest server  blocks cli keystore file [\#233](https://github.com/cybercongress/go-cyber/issues/233)
- Add cyberd rest light-client to docker image [\#230](https://github.com/cybercongress/go-cyber/issues/230)
- Losе token on testnet  [\#227](https://github.com/cybercongress/go-cyber/issues/227)
- Launch 0.1.1 testnet [\#205](https://github.com/cybercongress/go-cyber/issues/205)
- Cannot interact with node [\#203](https://github.com/cybercongress/go-cyber/issues/203)
- Update cyberd.ai [\#185](https://github.com/cybercongress/go-cyber/issues/185)
- Cyberd release scheme. [\#180](https://github.com/cybercongress/go-cyber/issues/180)
- CI: Cyberd docker image building. Include genesis file [\#160](https://github.com/cybercongress/go-cyber/issues/160)
- Improve building of links index for search queries [\#145](https://github.com/cybercongress/go-cyber/issues/145)
- Store initial supply from genesis file \(used by mint\) [\#115](https://github.com/cybercongress/go-cyber/issues/115)
- Genesis state generator [\#92](https://github.com/cybercongress/go-cyber/issues/92)
- Webscoket API [\#76](https://github.com/cybercongress/go-cyber/issues/76)
- Distribution [\#27](https://github.com/cybercongress/go-cyber/issues/27)
- Ranking research [\#24](https://github.com/cybercongress/go-cyber/issues/24)
- Define distribution in paper [\#5](https://github.com/cybercongress/go-cyber/issues/5)

**Merged pull requests:**

- 0.1.2 [\#269](https://github.com/cybercongress/go-cyber/pull/269) ([hleb-albau](https://github.com/hleb-albau))
- Refactoring  of search index. Fix links export [\#268](https://github.com/cybercongress/go-cyber/pull/268) ([arturalbov](https://github.com/arturalbov))
- Launch euler-2 testnet [\#267](https://github.com/cybercongress/go-cyber/pull/267) ([hleb-albau](https://github.com/hleb-albau))
- \#265 Update to cosmos 0.32.0 [\#266](https://github.com/cybercongress/go-cyber/pull/266) ([hleb-albau](https://github.com/hleb-albau))
- Consensus failure after node restart [\#263](https://github.com/cybercongress/go-cyber/pull/263) ([arturalbov](https://github.com/arturalbov))
- Do not calculate rank, if there is no new links on last window. [\#261](https://github.com/cybercongress/go-cyber/pull/261) ([arturalbov](https://github.com/arturalbov))
- Client submit only new links flag [\#260](https://github.com/cybercongress/go-cyber/pull/260) ([hleb-albau](https://github.com/hleb-albau))
- Improve building of links index for search queries [\#255](https://github.com/cybercongress/go-cyber/pull/255) ([arturalbov](https://github.com/arturalbov))
- \#244 Add moon as seed node [\#253](https://github.com/cybercongress/go-cyber/pull/253) ([hleb-albau](https://github.com/hleb-albau))
- \#250 Add fail at height debug flag [\#251](https://github.com/cybercongress/go-cyber/pull/251) ([hleb-albau](https://github.com/hleb-albau))
- \#247 Different bandwidth price on same block height [\#248](https://github.com/cybercongress/go-cyber/pull/248) ([hleb-albau](https://github.com/hleb-albau))
- \#242 Extend isLinkExist endpoint with possibility not specify address [\#246](https://github.com/cybercongress/go-cyber/pull/246) ([hleb-albau](https://github.com/hleb-albau))
- \#242 Extend isLinkExist endpoint with possibility not specify address [\#245](https://github.com/cybercongress/go-cyber/pull/245) ([hleb-albau](https://github.com/hleb-albau))
- Add staking/validators endpoint to node RPC [\#236](https://github.com/cybercongress/go-cyber/pull/236) ([arturalbov](https://github.com/arturalbov))
- Rest server blocks cli keystore file [\#234](https://github.com/cybercongress/go-cyber/pull/234) ([arturalbov](https://github.com/arturalbov))
- UPD run validator md [\#232](https://github.com/cybercongress/go-cyber/pull/232) ([SaveTheAles](https://github.com/SaveTheAles))
- Add cyberd rest light-client to docker image [\#231](https://github.com/cybercongress/go-cyber/pull/231) ([arturalbov](https://github.com/arturalbov))
- Fix docs [\#228](https://github.com/cybercongress/go-cyber/pull/228) ([arturalbov](https://github.com/arturalbov))
- upd run-validator.md [\#225](https://github.com/cybercongress/go-cyber/pull/225) ([SaveTheAles](https://github.com/SaveTheAles))

## [v0.1.1](https://github.com/cybercongress/go-cyber/tree/v0.1.1) (2019-01-31)
[Full Changelog](https://github.com/cybercongress/go-cyber/compare/euler-1...v0.1.1)

**Closed issues:**

- Mass testing of cyberd-testnet 0.1.1 [\#219](https://github.com/cybercongress/go-cyber/issues/219)
- Export 0.1.1 genesis from 0.1.0 testnet. [\#215](https://github.com/cybercongress/go-cyber/issues/215)
- Setup 0.1.1 chain params for staking, distr, slashing, mint modules. [\#201](https://github.com/cybercongress/go-cyber/issues/201)
- Error on replay with wrong app hash calculation \(block \#914381\) [\#197](https://github.com/cybercongress/go-cyber/issues/197)

## [euler-1](https://github.com/cybercongress/go-cyber/tree/euler-1) (2019-01-31)
[Full Changelog](https://github.com/cybercongress/go-cyber/compare/euler-1.1-dev1...euler-1)

**Merged pull requests:**

- Euler 0.1.1 [\#223](https://github.com/cybercongress/go-cyber/pull/223) ([arturalbov](https://github.com/arturalbov))
- Fix import reader [\#222](https://github.com/cybercongress/go-cyber/pull/222) ([arturalbov](https://github.com/arturalbov))
- Landing update [\#220](https://github.com/cybercongress/go-cyber/pull/220) ([asadovka](https://github.com/asadovka))
- DISCUSS: Chain params for 0.1.1 network [\#202](https://github.com/cybercongress/go-cyber/pull/202) ([hleb-albau](https://github.com/hleb-albau))

## [euler-1.1-dev1](https://github.com/cybercongress/go-cyber/tree/euler-1.1-dev1) (2019-01-30)
[Full Changelog](https://github.com/cybercongress/go-cyber/compare/euler-1.1-dev0...euler-1.1-dev1)

**Closed issues:**

- Link msg bandwidth cost doesn't take into account links count  [\#216](https://github.com/cybercongress/go-cyber/issues/216)
- Docker image  with possibility to select compute unit [\#211](https://github.com/cybercongress/go-cyber/issues/211)

**Merged pull requests:**

- \#215 Fix pou distribution uses share not percentage [\#221](https://github.com/cybercongress/go-cyber/pull/221) ([hleb-albau](https://github.com/hleb-albau))
- \#215 Fix gentx commands. [\#218](https://github.com/cybercongress/go-cyber/pull/218) ([hleb-albau](https://github.com/hleb-albau))

## [euler-1.1-dev0](https://github.com/cybercongress/go-cyber/tree/euler-1.1-dev0) (2019-01-29)
[Full Changelog](https://github.com/cybercongress/go-cyber/compare/v0.1.0...euler-1.1-dev0)

**Closed issues:**

- Fix typos [\#207](https://github.com/cybercongress/go-cyber/issues/207)
- Update landing for 0.4 whitepaper [\#204](https://github.com/cybercongress/go-cyber/issues/204)
- Fix validator manual [\#189](https://github.com/cybercongress/go-cyber/issues/189)
- Update to tendermint v29.0 [\#187](https://github.com/cybercongress/go-cyber/issues/187)
- Links Exporter [\#184](https://github.com/cybercongress/go-cyber/issues/184)
- Change mint module to default cosmos module [\#181](https://github.com/cybercongress/go-cyber/issues/181)
- Change Bandwidth Price to Average for 24h Sliding Window [\#179](https://github.com/cybercongress/go-cyber/issues/179)
- High bandwidth cost for create validator msg [\#178](https://github.com/cybercongress/go-cyber/issues/178)
- Bandwidth Specification Change [\#177](https://github.com/cybercongress/go-cyber/issues/177)
- Add rpc endpoint to submit signed link and send messages [\#173](https://github.com/cybercongress/go-cyber/issues/173)
- Tx size reduction: switch to more compact links tx encoding. [\#171](https://github.com/cybercongress/go-cyber/issues/171)
- Current Bandwidth do not respect price [\#168](https://github.com/cybercongress/go-cyber/issues/168)
- index entities count  endpoint [\#165](https://github.com/cybercongress/go-cyber/issues/165)
- negative bandwidnt  [\#164](https://github.com/cybercongress/go-cyber/issues/164)
- Add ipfs hashes to release [\#161](https://github.com/cybercongress/go-cyber/issues/161)
- Change token name from CBD to CYB in the testnetwork [\#157](https://github.com/cybercongress/go-cyber/issues/157)
- Wrong CYB allocation in Genesis [\#156](https://github.com/cybercongress/go-cyber/issues/156)
- Update docker with 0.1.0 version [\#154](https://github.com/cybercongress/go-cyber/issues/154)
- Add more issues templates. [\#153](https://github.com/cybercongress/go-cyber/issues/153)
- Move import\_private command to keys subcomand [\#152](https://github.com/cybercongress/go-cyber/issues/152)
- Add trust-node by default in cli [\#151](https://github.com/cybercongress/go-cyber/issues/151)
- Handle import of ethereum privkeys with 0x [\#150](https://github.com/cybercongress/go-cyber/issues/150)
- Numerous small fixes in whitepaper [\#89](https://github.com/cybercongress/go-cyber/issues/89)
- Cyberd landing make up [\#36](https://github.com/cybercongress/go-cyber/issues/36)
- Whitepaper 0.4 [\#25](https://github.com/cybercongress/go-cyber/issues/25)

**Merged pull requests:**

- CI: testnet ipfs files hashes   [\#217](https://github.com/cybercongress/go-cyber/pull/217) ([arturalbov](https://github.com/arturalbov))
- WIP: CI Cyberd docker image building. Include genesis file [\#214](https://github.com/cybercongress/go-cyber/pull/214) ([arturalbov](https://github.com/arturalbov))
- \#197 Error on replay with wrong app hash calculation [\#213](https://github.com/cybercongress/go-cyber/pull/213) ([hleb-albau](https://github.com/hleb-albau))
- Links exporter [\#210](https://github.com/cybercongress/go-cyber/pull/210) ([arturalbov](https://github.com/arturalbov))
- R4R \#181 Constant Block Reward [\#209](https://github.com/cybercongress/go-cyber/pull/209) ([hleb-albau](https://github.com/hleb-albau))
- 157 change token protocol name [\#208](https://github.com/cybercongress/go-cyber/pull/208) ([hleb-albau](https://github.com/hleb-albau))
- Fix typos get\_CYB.md [\#206](https://github.com/cybercongress/go-cyber/pull/206) ([serejandmyself](https://github.com/serejandmyself))
- R4R: \#156 Add Missing euler tokens cmd [\#200](https://github.com/cybercongress/go-cyber/pull/200) ([hleb-albau](https://github.com/hleb-albau))
- Update to cosmos-sdk v0.30.0 [\#198](https://github.com/cybercongress/go-cyber/pull/198) ([hleb-albau](https://github.com/hleb-albau))
- Tx size reduction: switch to more compact links tx encoding [\#192](https://github.com/cybercongress/go-cyber/pull/192) ([arturalbov](https://github.com/arturalbov))
- Fix rank calculation context data [\#191](https://github.com/cybercongress/go-cyber/pull/191) ([hleb-albau](https://github.com/hleb-albau))
- Important fixes in validators manual [\#190](https://github.com/cybercongress/go-cyber/pull/190) ([cyb-master](https://github.com/cyb-master))
- Change Bandwidth Price to Average for 24h Sliding Window [\#188](https://github.com/cybercongress/go-cyber/pull/188) ([arturalbov](https://github.com/arturalbov))
- R4R Update cosmos to latest develop [\#186](https://github.com/cybercongress/go-cyber/pull/186) ([hleb-albau](https://github.com/hleb-albau))
- \#153 Add more issues templates. [\#183](https://github.com/cybercongress/go-cyber/pull/183) ([hleb-albau](https://github.com/hleb-albau))
- \#178 \#168 Bandwidth price + Msg cost for non link txes [\#182](https://github.com/cybercongress/go-cyber/pull/182) ([hleb-albau](https://github.com/hleb-albau))
- \#173 Add rpc endpoint to submit signed link and send messages [\#174](https://github.com/cybercongress/go-cyber/pull/174) ([hleb-albau](https://github.com/hleb-albau))
- Technical notes on euler release [\#169](https://github.com/cybercongress/go-cyber/pull/169) ([cyb-master](https://github.com/cyb-master))
- Handle import of ethereum privkeys with 0x. Trust node by default  [\#167](https://github.com/cybercongress/go-cyber/pull/167) ([arturalbov](https://github.com/arturalbov))
- \#164 fix rpc negative bw \#165 add index entities count endpoint [\#166](https://github.com/cybercongress/go-cyber/pull/166) ([hleb-albau](https://github.com/hleb-albau))
- Move import\_private command to keys subcomand [\#159](https://github.com/cybercongress/go-cyber/pull/159) ([arturalbov](https://github.com/arturalbov))

## [v0.1.0](https://github.com/cybercongress/go-cyber/tree/v0.1.0) (2019-01-06)
[Full Changelog](https://github.com/cybercongress/go-cyber/compare/v0.0.8...v0.1.0)

**Closed issues:**

- Cannot check balance using cli [\#149](https://github.com/cybercongress/go-cyber/issues/149)
- Cli: Add possibility to restore acc from priv keys [\#146](https://github.com/cybercongress/go-cyber/issues/146)
- Index out of range for cids with not calculated rank yet. [\#139](https://github.com/cybercongress/go-cyber/issues/139)
- CID rank merkle proofs [\#133](https://github.com/cybercongress/go-cyber/issues/133)
- Go mod Ci dependency error  [\#128](https://github.com/cybercongress/go-cyber/issues/128)
- Update to cosmos 29 [\#126](https://github.com/cybercongress/go-cyber/issues/126)
- Simple go cyberd client [\#122](https://github.com/cybercongress/go-cyber/issues/122)
- Write down bandwidth specification [\#114](https://github.com/cybercongress/go-cyber/issues/114)
- Consensus hash [\#112](https://github.com/cybercongress/go-cyber/issues/112)
- Add remainig bandwidth endpoint [\#109](https://github.com/cybercongress/go-cyber/issues/109)
- Make docker container based on  nvidia-gpu image. [\#104](https://github.com/cybercongress/go-cyber/issues/104)
- Index transactions by addresses. [\#103](https://github.com/cybercongress/go-cyber/issues/103)
- Calculate rank in ||, post results each 600 blocks. [\#101](https://github.com/cybercongress/go-cyber/issues/101)
- Account inmem balances should be updated by wrapping accountKeeper [\#99](https://github.com/cybercongress/go-cyber/issues/99)
- Get rid of RPC proxy [\#94](https://github.com/cybercongress/go-cyber/issues/94)
- Linkchains support [\#91](https://github.com/cybercongress/go-cyber/issues/91)
- Include addresses into knowledge graph [\#90](https://github.com/cybercongress/go-cyber/issues/90)
- Graphics for whitepaper [\#88](https://github.com/cybercongress/go-cyber/issues/88)
- Add bandwidth by stake [\#77](https://github.com/cybercongress/go-cyber/issues/77)
- Launch testnet Euler [\#73](https://github.com/cybercongress/go-cyber/issues/73)
- Test Ethereum Network Statistical Significance [\#52](https://github.com/cybercongress/go-cyber/issues/52)
- Cyberd landing design [\#51](https://github.com/cybercongress/go-cyber/issues/51)
- Simulation [\#31](https://github.com/cybercongress/go-cyber/issues/31)
- Link Chain PoC | Zeronet [\#26](https://github.com/cybercongress/go-cyber/issues/26)
- Write benchmark and test SpringRank with different amount of objects/edges [\#22](https://github.com/cybercongress/go-cyber/issues/22)
- Parse Ethereum network and calculate SpringRank [\#21](https://github.com/cybercongress/go-cyber/issues/21)
- Research basic chains fundamentals [\#15](https://github.com/cybercongress/go-cyber/issues/15)
- Perfomance testing of Solana [\#10](https://github.com/cybercongress/go-cyber/issues/10)
- Research on perfomance of consensus computers [\#9](https://github.com/cybercongress/go-cyber/issues/9)
- Perfomance testing scenario for cyberd [\#8](https://github.com/cybercongress/go-cyber/issues/8)

**Merged pull requests:**

- \[euler\] Launch euler testnet [\#148](https://github.com/cybercongress/go-cyber/pull/148) ([hleb-albau](https://github.com/hleb-albau))
- Cli: Add possibility to restore acc from priv keys [\#147](https://github.com/cybercongress/go-cyber/pull/147) ([arturalbov](https://github.com/arturalbov))
- Rank merkle proofs [\#144](https://github.com/cybercongress/go-cyber/pull/144) ([arturalbov](https://github.com/arturalbov))
- Setup bw params [\#143](https://github.com/cybercongress/go-cyber/pull/143) ([hleb-albau](https://github.com/hleb-albau))
- Merkle tree implementation [\#141](https://github.com/cybercongress/go-cyber/pull/141) ([arturalbov](https://github.com/arturalbov))
- \#139 Index out of range for cids with not calculated rank yet. [\#140](https://github.com/cybercongress/go-cyber/pull/140) ([hleb-albau](https://github.com/hleb-albau))
- Fix http client and rank logs [\#137](https://github.com/cybercongress/go-cyber/pull/137) ([hleb-albau](https://github.com/hleb-albau))
- \[euler-dev3\] New testnet [\#136](https://github.com/cybercongress/go-cyber/pull/136) ([hleb-albau](https://github.com/hleb-albau))
- \#101 Copy state before index creation [\#135](https://github.com/cybercongress/go-cyber/pull/135) ([hleb-albau](https://github.com/hleb-albau))
- \#92 Populate state with random addresses [\#134](https://github.com/cybercongress/go-cyber/pull/134) ([hleb-albau](https://github.com/hleb-albau))
- Small fixes [\#131](https://github.com/cybercongress/go-cyber/pull/131) ([arturalbov](https://github.com/arturalbov))
- Parallel rank calculation [\#130](https://github.com/cybercongress/go-cyber/pull/130) ([arturalbov](https://github.com/arturalbov))
- Update stake index every block [\#129](https://github.com/cybercongress/go-cyber/pull/129) ([hleb-albau](https://github.com/hleb-albau))
- \#126 Update to cosmos 29 [\#127](https://github.com/cybercongress/go-cyber/pull/127) ([hleb-albau](https://github.com/hleb-albau))
- Refactoring [\#125](https://github.com/cybercongress/go-cyber/pull/125) ([hleb-albau](https://github.com/hleb-albau))
- Various Bug fixes [\#124](https://github.com/cybercongress/go-cyber/pull/124) ([hleb-albau](https://github.com/hleb-albau))
- In-memory storages refactoring [\#123](https://github.com/cybercongress/go-cyber/pull/123) ([arturalbov](https://github.com/arturalbov))
- \#114 Write bw specification [\#121](https://github.com/cybercongress/go-cyber/pull/121) ([hleb-albau](https://github.com/hleb-albau))
- WIP \#114 Add cbdbank module [\#120](https://github.com/cybercongress/go-cyber/pull/120) ([hleb-albau](https://github.com/hleb-albau))
- Update readme [\#119](https://github.com/cybercongress/go-cyber/pull/119) ([hleb-albau](https://github.com/hleb-albau))
- Clean up folders [\#118](https://github.com/cybercongress/go-cyber/pull/118) ([arturalbov](https://github.com/arturalbov))
- \#103 Index transactions by signers. [\#117](https://github.com/cybercongress/go-cyber/pull/117) ([hleb-albau](https://github.com/hleb-albau))

## [v0.0.8](https://github.com/cybercongress/go-cyber/tree/v0.0.8) (2018-12-11)
[Full Changelog](https://github.com/cybercongress/go-cyber/compare/v0.0.7...v0.0.8)

**Closed issues:**

- Cid validation [\#93](https://github.com/cybercongress/go-cyber/issues/93)
- Update to cosmos-sdk version 0.26.1 [\#79](https://github.com/cybercongress/go-cyber/issues/79)
- Add possibility to join for new validators. [\#75](https://github.com/cybercongress/go-cyber/issues/75)
- Calculate rank using GPU [\#74](https://github.com/cybercongress/go-cyber/issues/74)
- Create basic wiki cyberd indexer [\#71](https://github.com/cybercongress/go-cyber/issues/71)
- Build node releases with cleveldb [\#59](https://github.com/cybercongress/go-cyber/issues/59)
- Remove 'cosmosaccaddr' prefix from cyberd address [\#39](https://github.com/cybercongress/go-cyber/issues/39)
- Create cyberd PoC based on Cosmos SDK [\#37](https://github.com/cybercongress/go-cyber/issues/37)
- Make up cyberd landing [\#87](https://github.com/cybercongress/go-cyber/issues/87)
- Draw logo for cyberd [\#16](https://github.com/cybercongress/go-cyber/issues/16)
- Build basic economic model [\#1](https://github.com/cybercongress/go-cyber/issues/1)

**Merged pull requests:**

- \#76 Define Basic RPC specification [\#111](https://github.com/cybercongress/go-cyber/pull/111) ([hleb-albau](https://github.com/hleb-albau))
- \#104 Make docker container based on nvidia-gpu image [\#110](https://github.com/cybercongress/go-cyber/pull/110) ([hleb-albau](https://github.com/hleb-albau))
- \[DON'T MERGE\] Add bandwidth by stake. Part 2. [\#108](https://github.com/cybercongress/go-cyber/pull/108) ([arturalbov](https://github.com/arturalbov))
- Add bandwidth by stake Part 1 [\#107](https://github.com/cybercongress/go-cyber/pull/107) ([arturalbov](https://github.com/arturalbov))
- \#93 Cid validation [\#106](https://github.com/cybercongress/go-cyber/pull/106) ([hleb-albau](https://github.com/hleb-albau))
- \#78 Add guide `How to join network as validator` [\#105](https://github.com/cybercongress/go-cyber/pull/105) ([hleb-albau](https://github.com/hleb-albau))
-  \#1 Build basic economic model [\#102](https://github.com/cybercongress/go-cyber/pull/102) ([hleb-albau](https://github.com/hleb-albau))
- Update cosmos to 0.27.0 [\#100](https://github.com/cybercongress/go-cyber/pull/100) ([hleb-albau](https://github.com/hleb-albau))
- Small fixes for validators joining [\#98](https://github.com/cybercongress/go-cyber/pull/98) ([arturalbov](https://github.com/arturalbov))
- Remove poc folder [\#97](https://github.com/cybercongress/go-cyber/pull/97) ([hleb-albau](https://github.com/hleb-albau))
- Add possibility to join for new validators [\#96](https://github.com/cybercongress/go-cyber/pull/96) ([arturalbov](https://github.com/arturalbov))
- Calculate eth network significance [\#85](https://github.com/cybercongress/go-cyber/pull/85) ([hleb-albau](https://github.com/hleb-albau))
- 74 gpu rank calculation [\#83](https://github.com/cybercongress/go-cyber/pull/83) ([hleb-albau](https://github.com/hleb-albau))
- Remove 'cosmosaccaddr' prefix from cyberd address [\#82](https://github.com/cybercongress/go-cyber/pull/82) ([arturalbov](https://github.com/arturalbov))
- UPD docs\_upd job [\#81](https://github.com/cybercongress/go-cyber/pull/81) ([SaveTheAles](https://github.com/SaveTheAles))
- Update cosmos-sdk version to 0.26.1 [\#80](https://github.com/cybercongress/go-cyber/pull/80) ([arturalbov](https://github.com/arturalbov))

## [v0.0.7](https://github.com/cybercongress/go-cyber/tree/v0.0.7) (2018-10-25)
[Full Changelog](https://github.com/cybercongress/go-cyber/compare/v0.0.6...v0.0.7)

**Closed issues:**

- Proxy service. Add search pagination [\#69](https://github.com/cybercongress/go-cyber/issues/69)
- Proxy service. Search request with "spaces" fails [\#67](https://github.com/cybercongress/go-cyber/issues/67)
- Non-deterministic rank calculation [\#66](https://github.com/cybercongress/go-cyber/issues/66)
- Claim service: increment tx sequence manually [\#64](https://github.com/cybercongress/go-cyber/issues/64)
- Add send tokens endpoint to proxy [\#62](https://github.com/cybercongress/go-cyber/issues/62)

**Merged pull requests:**

- \#71 Create basic wiki cyberd indexer [\#72](https://github.com/cybercongress/go-cyber/pull/72) ([hleb-albau](https://github.com/hleb-albau))
- Proxy service. Add search pagination [\#70](https://github.com/cybercongress/go-cyber/pull/70) ([arturalbov](https://github.com/arturalbov))
- Proxy service. Search request with spaces fails [\#68](https://github.com/cybercongress/go-cyber/pull/68) ([arturalbov](https://github.com/arturalbov))
- Claim service: increment tx sequence manually [\#65](https://github.com/cybercongress/go-cyber/pull/65) ([arturalbov](https://github.com/arturalbov))

## [v0.0.6](https://github.com/cybercongress/go-cyber/tree/v0.0.6) (2018-10-24)
[Full Changelog](https://github.com/cybercongress/go-cyber/compare/v0.0.5...v0.0.6)

## [v0.0.5](https://github.com/cybercongress/go-cyber/tree/v0.0.5) (2018-10-23)
[Full Changelog](https://github.com/cybercongress/go-cyber/compare/v0.0.4...v0.0.5)

**Closed issues:**

- \[RPC\] Fix small finding  [\#57](https://github.com/cybercongress/go-cyber/issues/57)

## [v0.0.4](https://github.com/cybercongress/go-cyber/tree/v0.0.4) (2018-10-23)
[Full Changelog](https://github.com/cybercongress/go-cyber/compare/v0.0.3...v0.0.4)

**Closed issues:**

- Service to claim cyberd zeronet tokens [\#61](https://github.com/cybercongress/go-cyber/issues/61)
- Update cosmos-sdk to latest dev branch version  [\#56](https://github.com/cybercongress/go-cyber/issues/56)
- Perfomance Degradation: Heavy Disk Usage [\#50](https://github.com/cybercongress/go-cyber/issues/50)

**Merged pull requests:**

- Add send tokens endpoint to proxy [\#63](https://github.com/cybercongress/go-cyber/pull/63) ([arturalbov](https://github.com/arturalbov))
- Claim service [\#60](https://github.com/cybercongress/go-cyber/pull/60) ([arturalbov](https://github.com/arturalbov))
- \#57 \[RPC\] Fix small finding [\#58](https://github.com/cybercongress/go-cyber/pull/58) ([hleb-albau](https://github.com/hleb-albau))
- Update cosmos-sdk to latest dev branch version [\#53](https://github.com/cybercongress/go-cyber/pull/53) ([hleb-albau](https://github.com/hleb-albau))

## [v0.0.3](https://github.com/cybercongress/go-cyber/tree/v0.0.3) (2018-10-19)
[Full Changelog](https://github.com/cybercongress/go-cyber/compare/v0.0.2...v0.0.3)

**Closed issues:**

- RPC Client: /search on non existing cid return first added cid [\#48](https://github.com/cybercongress/go-cyber/issues/48)
- CLI: Add "wait\_for\_confirmation" Flag [\#47](https://github.com/cybercongress/go-cyber/issues/47)
- Write validation logic of IPFS hash for Losion Zeronet [\#18](https://github.com/cybercongress/go-cyber/issues/18)
- Genesis Zeronet [\#17](https://github.com/cybercongress/go-cyber/issues/17)
- Performance testing of Zeronet [\#4](https://github.com/cybercongress/go-cyber/issues/4)

**Merged pull requests:**

- Add cyberdproxy process to docker container. Add status endpoint [\#55](https://github.com/cybercongress/go-cyber/pull/55) ([arturalbov](https://github.com/arturalbov))
- Proxy rpc [\#54](https://github.com/cybercongress/go-cyber/pull/54) ([arturalbov](https://github.com/arturalbov))

## [v0.0.2](https://github.com/cybercongress/go-cyber/tree/v0.0.2) (2018-10-05)
[Full Changelog](https://github.com/cybercongress/go-cyber/compare/v0.0.1...v0.0.2)

**Closed issues:**

- Cosmos PoC: Integrate Rank Calculation [\#43](https://github.com/cybercongress/go-cyber/issues/43)
- Cosmos PoC: Extenend Standart Tendermint RPC API  [\#42](https://github.com/cybercongress/go-cyber/issues/42)
- Implement persistent storage for links. [\#40](https://github.com/cybercongress/go-cyber/issues/40)
- run extra node for cyberd [\#20](https://github.com/cybercongress/go-cyber/issues/20)

**Merged pull requests:**

- Fix search on non existing cid [\#49](https://github.com/cybercongress/go-cyber/pull/49) ([arturalbov](https://github.com/arturalbov))
- Add Circle CI build job [\#46](https://github.com/cybercongress/go-cyber/pull/46) ([arturalbov](https://github.com/arturalbov))
- Extenend Standart Tendermint RPC API [\#45](https://github.com/cybercongress/go-cyber/pull/45) ([arturalbov](https://github.com/arturalbov))
- \#43 Simplest Rank [\#44](https://github.com/cybercongress/go-cyber/pull/44) ([hleb-albau](https://github.com/hleb-albau))
- \#40 introduce in-memory store [\#41](https://github.com/cybercongress/go-cyber/pull/41) ([hleb-albau](https://github.com/hleb-albau))
- \#37 redesign db, app refactor [\#38](https://github.com/cybercongress/go-cyber/pull/38) ([hleb-albau](https://github.com/hleb-albau))
- Cosmos POC: Clean up CLI [\#35](https://github.com/cybercongress/go-cyber/pull/35) ([arturalbov](https://github.com/arturalbov))
- Update cyberd/cosmos README [\#34](https://github.com/cybercongress/go-cyber/pull/34) ([arturalbov](https://github.com/arturalbov))

## [v0.0.1](https://github.com/cybercongress/go-cyber/tree/v0.0.1) (2018-09-25)
**Closed issues:**

- Make cyberd docs to be included into common wiki. [\#32](https://github.com/cybercongress/go-cyber/issues/32)
- Write LT/NLT logic to Losion Zeronet [\#19](https://github.com/cybercongress/go-cyber/issues/19)
- Research basic technologies [\#14](https://github.com/cybercongress/go-cyber/issues/14)
- Research basic papers [\#13](https://github.com/cybercongress/go-cyber/issues/13)
- Perfomance testing of Ethermint [\#12](https://github.com/cybercongress/go-cyber/issues/12)
- Perfomance testing of Plasma [\#11](https://github.com/cybercongress/go-cyber/issues/11)
- Perfomance testing of PoA networks [\#7](https://github.com/cybercongress/go-cyber/issues/7)
- Cleanup paper [\#6](https://github.com/cybercongress/go-cyber/issues/6)
-  Perfomance testing of EOS [\#3](https://github.com/cybercongress/go-cyber/issues/3)

**Merged pull requests:**

- Genesis zeronet: Cosmos SDK [\#33](https://github.com/cybercongress/go-cyber/pull/33) ([arturalbov](https://github.com/arturalbov))
- \[WIP\] 21 calculate spring rank for ethereum [\#23](https://github.com/cybercongress/go-cyber/pull/23) ([hleb-albau](https://github.com/hleb-albau))
- Fixing typo [\#2](https://github.com/cybercongress/go-cyber/pull/2) ([trummax](https://github.com/trummax))



\* *This Change Log was automatically generated by [github_changelog_generator](https://github.com/skywinder/Github-Changelog-Generator)*

================================================
FILE: CONTRIBUTING.md
================================================
# Contributing to go-cyber
Thank you for considering a contribution to **go-cyber**! This guide explains how to:
* Get started
* Development workflow
* Get help if you encounter trouble


## Get in touch
Before starting to work on a feature or a fix, please open an issue to discuss the use case or bug with us. This can 
save both you and us a lot of time. For any non-trivial change, we'll ask you to create a short design document explaining:

* Why is this change done? What's the use case?
* What test cases should it have? What could go wrong?
* How will it roughly be implemented? (We'll happily provide code pointers to save you time)


## Development Workflow

### Development Setup
Please, use [development environment setup guide](./docs/help/setup_dev_env.md).

### Creating Commits And Writing Commit Messages
The commit messages that accompany your code changes are an important piece of documentation, please follow these guidelines when writing commit messages:

* Keep commits discrete: avoid including multiple unrelated changes in a single commit
* Keep commits self-contained: avoid spreading a single change across multiple commits. A single commit should make sense in isolation
* Include GitHub issue in the commit message on a first line at the beginning. Example:
```
#123 Refactor CONTRIBUTING.md

--Add Creating Commits And Writing Commit Messages Section
```

### Submitting Your Change
After you submit your pull request, a core developer will review it. It is normal that this takes several 
iterations, so don't get discouraged by change requests. They ensure the high quality that we all enjoy.


## Getting Help
If you run into any trouble, please reach out to us on the issue you are working on.


## Our Thanks
We deeply appreciate your effort toward improving go-cyber. For any contribution, large or small, you will be immortalized
 in the release notes for the version you've contributed to.


================================================
FILE: Dockerfile
================================================
###########################################################################################
# Build cyber
###########################################################################################
FROM ubuntu:20.04

ENV GO_VERSION '1.22.7'
ENV GO_ARCH 'linux-amd64'
ENV GO_BIN_SHA 'fc5d49b7a5035f1f1b265c17aa86e9819e6dc9af8260ad61430ee7fbe27881bb'
ENV DEBIAN_FRONTEND=noninteractive
ENV DAEMON_HOME /root/.cyber
ENV DAEMON_RESTART_AFTER_UPGRADE=true
ENV DAEMON_ALLOW_DOWNLOAD_BINARIES=true
ENV DAEMON_LOG_BUFFER_SIZE=1048
ENV UNSAFE_SKIP_BACKUP=true
ENV DAEMON_NAME cyber
ENV BUILD_DIR /build
ENV PATH /usr/local/go/bin:/root/.cargo/bin:/root/cargo/env:/root/.cyber/scripts:$PATH
ENV CUDA_VER '11.4.4-1'
ENV PATH="/usr/local/go/bin:/usr/local/cuda/bin:$PATH"


# Install go and required deps
###########################################################################################
RUN apt-get update && apt-get install -y --no-install-recommends wget ca-certificates \
&& wget -O go.tgz https://golang.org/dl/go${GO_VERSION}.linux-amd64.tar.gz \
&& echo "${GO_BIN_SHA} *go.tgz" | sha256sum -c - \
&& tar -C /usr/local -xzf go.tgz \
&& rm go.tgz \
&& go version


COPY . /sources
WORKDIR /sources

# Install CUDA, build tools and compile cyber
###########################################################################################
RUN apt-get update && apt-get -y install --no-install-recommends \
    make gcc g++ \
    curl \
    gnupg \
    git \
    software-properties-common \
#    nvidia-cuda-toolkit \
# Install cuda selected version instead nvidia-cuda-toolkit
&& wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/cuda-ubuntu2004.pin \
&& mv cuda-ubuntu2004.pin /etc/apt/preferences.d/cuda-repository-pin-600 \
&& apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/3bf863cc.pub \
&& add-apt-repository "deb https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/ /" \
&& apt-get update \
&& apt-get install cuda=${CUDA_VER} -y --no-install-recommends \
&& mkdir -p /cyber/cosmovisor/upgrades/v3/bin \
&& mkdir -p /cyber/cosmovisor/upgrades/v4/bin \
&& mkdir -p /cyber/cosmovisor/upgrades/v6/bin \
&& mkdir -p /cyber/cosmovisor/upgrades/v7/bin \
 # Compile cyber for v3 version
###########################################################################################
&& git checkout v3.0.1 \
&& cd /sources/x/rank/cuda \
&& make build \
&& cd  /sources \
&& make build CUDA_ENABLED=true \
&& cp ./build/cyber /cyber/cosmovisor/upgrades/v3/bin/ \
&& rm -rf ./build \
 # Compile cyber for v4 version
###########################################################################################
&& git checkout v5.2.0 \
&& cd /sources/x/rank/cuda \
&& make build \
&& cd  /sources \
&& make build CUDA_ENABLED=true \
&& cp ./build/cyber /cyber/cosmovisor/upgrades/v4/bin/ \
&& rm -rf ./build \
 # Compile cyber for v6 version
###########################################################################################
&& git checkout v6.0.1 \
&& cd /sources/x/rank/cuda \
&& make build \
&& cd  /sources \
&& make build CUDA_ENABLED=true \
&& cp ./build/cyber /cyber/cosmovisor/upgrades/v6/bin/ \
&& rm -rf ./build \
 # Compile cyber for v7 version
###########################################################################################
&& git checkout v7.0.2 \
&& cd /sources/x/rank/cuda \
&& make build \
&& cd  /sources \
&& make build CUDA_ENABLED=true \
&& cp ./build/cyber /cyber/cosmovisor/upgrades/v7/bin/ \
&& rm -rf ./build \
# Cleanup
###########################################################################################
&& apt-get purge -y git \
    make \
    cuda \
    gcc g++ \
    curl \
    gnupg \
    python3.8 \
&& go clean --cache -i \
&& apt-get remove --purge '^nvidia-.*' -y \
&& apt-get autoremove -y \
&& apt-get clean

# Install cosmovisor
###########################################################################################
 RUN wget -O cosmovisor.tgz https://github.com/cosmos/cosmos-sdk/releases/download/cosmovisor%2Fv1.5.0/cosmovisor-v1.5.0-linux-amd64.tar.gz \
 && tar -xzf cosmovisor.tgz \
 && cp cosmovisor /usr/bin/cosmovisor \
 && chmod +x /usr/bin/cosmovisor \
 && rm cosmovisor.tgz && rm -fR $BUILD_DIR/* && rm -fR $BUILD_DIR/.*[a-z]

# Copy startup scripts and genesis
###########################################################################################
WORKDIR /
COPY start_script.sh start_script.sh
COPY entrypoint.sh /entrypoint.sh
RUN wget -O /genesis.json https://gateway.ipfs.cybernode.ai/ipfs/QmYubyVNfghD4xCrTFj26zBwrF9s5GJhi1TmxvrwmJCipr \
&& chmod +x start_script.sh \
&& chmod +x /entrypoint.sh

#  Start
###############################################################################
EXPOSE 26656 26657 1317 9090 26660
ENTRYPOINT ["/entrypoint.sh"]
CMD ["./start_script.sh"]


================================================
FILE: LICENSE
================================================
Cyber License

Don’t believe, don’t fear, don’t ask.


================================================
FILE: Makefile
================================================
#!/usr/bin/make -f
CUDA_ENABLED ?= false
LEDGER_ENABLED ?= true
VERSION := $(shell echo $(shell git describe --tags) | sed 's/^v//')
COMMIT := $(shell git log -1 --format='%H')
BFT_VERSION := $(shell go list -m github.com/cometbft/cometbft | sed 's:.* ::')

BINDIR ?= $(GOPATH)/bin
BUILDDIR ?= $(CURDIR)/build/

# for dockerized protobuf tools
DOCKER := $(shell which docker)
BUF_IMAGE=bufbuild/buf@sha256:3cb1f8a4b48bd5ad8f09168f10f607ddc318af202f5c057d52a45216793d85e5 #v1.4.0
DOCKER_BUF := $(DOCKER) run --rm -v $(CURDIR):/workspace --workdir /workspace $(BUF_IMAGE)
HTTPS_GIT := https://github.com/cybercongress/go-cyber.git

export GO111MODULE = on

###############################################################################
###                              Build Flags/Tags                           ###
###############################################################################

build_tags = netgo
ifeq ($(LEDGER_ENABLED),true)
  ifeq ($(OS),Windows_NT)
    GCCEXE = $(shell where gcc.exe 2> NUL)
    ifeq ($(GCCEXE),)
      $(error gcc.exe not installed for ledger support, please install or set LEDGER_ENABLED=false)
    else
      build_tags += ledger
    endif
  else
    UNAME_S = $(shell uname -s)
    ifeq ($(UNAME_S),OpenBSD)
      $(warning OpenBSD detected, disabling ledger support (https://github.com/cosmos/cosmos-sdk/issues/1988))
    else
      GCC = $(shell command -v gcc 2> /dev/null)
      ifeq ($(GCC),)
        $(error gcc not installed for ledger support, please install or set LEDGER_ENABLED=false)
      else
        build_tags += ledger
      endif
    endif
  endif
endif

ifeq ($(CUDA_ENABLED),true)
    NVCC_RESULT := $(shell which nvcc 2> NULL)
    NVCC_TEST := $(notdir $(NVCC_RESULT))
    ifeq ($(NVCC_TEST),nvcc)
        build_tags += cuda
    else
        $(error CUDA not installed for GPU support, please install or set CUDA_ENABLED=false)
    endif
endif

build_tags += $(BUILD_TAGS)
build_tags := $(strip $(build_tags))

whitespace :=
empty = $(whitespace) $(whitespace)
comma := ,
build_tags_comma_sep := $(subst $(empty),$(comma),$(build_tags))

ldflags = -X github.com/cosmos/cosmos-sdk/version.Name=cyber \
		  -X github.com/cosmos/cosmos-sdk/version.AppName=cyber \
		  -X github.com/cosmos/cosmos-sdk/version.Version=$(VERSION) \
		  -X github.com/cosmos/cosmos-sdk/version.Commit=$(COMMIT) \
		  -X "github.com/cosmos/cosmos-sdk/version.BuildTags=$(build_tags_comma_sep)" \
		  -X github.com/cometbft/cometbft/version.BFTVer=$(BFT_VERSION)

ldflags += $(LDFLAGS)
ldflags := $(strip $(ldflags))
BUILD_FLAGS := -tags "$(build_tags_comma_sep)" -ldflags '$(ldflags)' -trimpath

include contrib/devtools/Makefile

all: build format lint test
.PHONY: all

###############################################################################
###                                Build                                    ###
###############################################################################

build: go.sum
	go build $(BUILD_FLAGS) -o $(BUILDDIR) ./cmd/cyber

install: go.sum
	go install $(BUILD_FLAGS) ./cmd/cyber

.PHONY: build install

###############################################################################
###                           Tools / Dependencies                          ###
###############################################################################

go-mod-cache: go.sum
	@echo "--> Download go modules to local cache"
	@go mod download

go.sum: go.mod
	@echo "--> Ensure dependencies have not been modified"
	go mod verify
	go mod tidy
.PHONY: go.sum

.PHONY: go.sum go-mod-cache

###############################################################################
###                                Localnet                                 ###
###############################################################################

# TODO update localnet flow
#build-docker-cybernode: build-linux
#	$(MAKE) -C networks/local
#
## Run a 4-node testnet locally
#localnet-start: localnet-stop
#	@if ! [ -f build/node0/cyber/config/genesis.json ]; then docker run --rm -v $(CURDIR)/build:/cyber:Z cybercongress/cyber testnet --v 4 -o . --starting-ip-address 192.168.10.2 --keyring-backend=test --chain-id=chain-local ; fi
#	docker-compose up -d
#
## Stop testnet
#localnet-stop:
#	docker-compose down

###############################################################################
###                                Linting                                  ###
###############################################################################

format-tools:
	go install mvdan.cc/gofumpt@v0.4.0
	go install github.com/client9/misspell/cmd/misspell@v0.3.4
	go install golang.org/x/tools/cmd/goimports@latest

lint: format-tools
	golangci-lint run --tests=false
	find . -name '*.go' -type f -not -path "./vendor*" -not -path "*.git*" -not -path "*_test.go" | xargs gofumpt -d

format: format-tools
	find . -name '*.go' -type f -not -path "./vendor*" -not -path "*.git*" -not -path "./client/docs/statik/statik.go" | xargs gofumpt -w
	find . -name '*.go' -type f -not -path "./vendor*" -not -path "*.git*" -not -path "./client/docs/statik/statik.go" | xargs misspell -w
	find . -name '*.go' -type f -not -path "./vendor*" -not -path "*.git*" -not -path "./client/docs/statik/statik.go" | xargs goimports -w -local github.com/cybercongress/go-cyber

###############################################################################
###                                Protobuf                                 ###
###############################################################################

protoVer=0.13.1
protoImageName=ghcr.io/cosmos/proto-builder:$(protoVer)
protoImage=$(DOCKER) run --rm -v $(CURDIR):/workspace --workdir /workspace $(protoImageName)

proto-all: proto-format proto-lint proto-gen

proto-gen:
	@echo "Generating Protobuf files"
	@$(protoImage) sh ./scripts/protocgen.sh

proto-format:
	@echo "Formatting Protobuf files"
	@$(protoImage) find ./ -name "*.proto" -exec clang-format -i {} \;

# npm install -g swagger2openapi swagger-merger swagger-combine
proto-swagger-gen:
	@echo "Generating Protobuf Swagger OpenAPI"
	@./scripts/protoc_swagger_openapi_gen.sh

proto-lint:
	@$(DOCKER_BUF) lint --error-format=json

proto-check-breaking:
	@$(DOCKER_BUF) breaking --against $(HTTPS_GIT)#branch=main

###############################################################################
###                                Docs                                     ###
###############################################################################

# TODO update statik and swagger flow
#update-swagger-docs: statik proto-swagger-gen
#	$(BINDIR)/statik -src=client/docs/swagger-ui -dest=client/docs -f -m
#
#.PHONY: update-swagger-docs

================================================
FILE: README.md
================================================
# go-cyber

Collective intelligence substrate. Convergent computation over a knowledge graph with on-chain diffusion model, built on Cosmos SDK.

[![version](https://img.shields.io/github/release/cyberia-to/go-cyber.svg?style=flat-square)](https://github.com/cyberia-to/go-cyber/releases/latest)
![Cosmos-SDK](https://img.shields.io/static/v1.svg?label=cosmos-sdk&message=0.47.16&color=blue&style=flat-square)
![CometBFT](https://img.shields.io/static/v1.svg?label=cometbft&message=0.37.18&color=blue&style=flat-square)
![IBC](https://img.shields.io/static/v1.svg?label=ibc-go&message=7.10.0&color=blue&style=flat-square)
![CosmWasm](https://img.shields.io/static/v1.svg?label=wasmd&message=0.46.0&color=blue&style=flat-square)
[![license](https://img.shields.io/badge/License-Cyber-brightgreen.svg?style=flat-square)](https://github.com/cyberia-to/go-cyber/blob/main/LICENSE)

## Networks

| Network | Hub | Launch | Token |
|---|---|---|---|
| [Bostrom](https://cyb.ai) | Bootloader Hub | 2021 | BOOT |
| [Space Pussy](https://spacepussy.ai) | Meme Community Network | 2022 | PUSSY |

## Build

```bash
make install
```

Without GPU (CLI-only, connects to remote node):

```bash
make install CUDA_ENABLED=false
```

## Quick Start

- RPC: `https://rpc.bostrom.cybernode.ai/`
- REST: `https://lcd.bostrom.cybernode.ai/`
- Seed: `d0518ce9881a4b0c5872e5e9b7c4ea8d760dad3f@85.10.207.173:26656`

Use [localbostrom](networks/local/) for local development.

## Documentation

See [docs/](docs/README.md) for validator setup, CLI guides, module specs, and tutorials.


================================================
FILE: app/ante.go
================================================
package app

import (
	errorsmod "cosmossdk.io/errors"
	wasmkeeper "github.com/CosmWasm/wasmd/x/wasm/keeper"
	wasmtypes "github.com/CosmWasm/wasmd/x/wasm/types"
	storetypes "github.com/cosmos/cosmos-sdk/store/types"
	sdk "github.com/cosmos/cosmos-sdk/types"
	sdkerrors "github.com/cosmos/cosmos-sdk/types/errors"
	"github.com/cosmos/cosmos-sdk/x/auth/ante"

	ibcante "github.com/cosmos/ibc-go/v7/modules/core/ante"
	ibckeeper "github.com/cosmos/ibc-go/v7/modules/core/keeper"
)

// HandlerOptions extend the SDK's AnteHandler options by requiring the IBC
// channel keeper.
type HandlerOptions struct {
	ante.HandlerOptions

	IBCKeeper         *ibckeeper.Keeper
	WasmConfig        *wasmtypes.WasmConfig
	WasmKeeper        *wasmkeeper.Keeper
	TXCounterStoreKey storetypes.StoreKey

	TxEncoder sdk.TxEncoder

	// ProofExemptContracts is a list of CosmWasm contract addresses
	// whose "submit_proof" execute messages are exempt from gas fees.
	// This allows miners to submit PoW proofs without holding tokens.
	ProofExemptContracts []string
}

func NewAnteHandler(options HandlerOptions) (sdk.AnteHandler, error) {
	if options.AccountKeeper == nil {
		return nil, errorsmod.Wrap(sdkerrors.ErrLogic, "account keeper is required for AnteHandler")
	}

	if options.BankKeeper == nil {
		return nil, errorsmod.Wrap(sdkerrors.ErrLogic, "bank keeper is required for AnteHandler")
	}

	if options.SignModeHandler == nil {
		return nil, errorsmod.Wrap(sdkerrors.ErrLogic, "sign mode handler is required for ante builder")
	}

	if options.WasmConfig == nil {
		return nil, errorsmod.Wrap(sdkerrors.ErrLogic, "wasm config is required for ante builder")
	}

	if options.TXCounterStoreKey == nil {
		return nil, errorsmod.Wrap(sdkerrors.ErrLogic, "tx counter key is required for ante builder")
	}

	sigGasConsumer := options.SigGasConsumer
	if sigGasConsumer == nil {
		sigGasConsumer = ante.DefaultSigVerificationGasConsumer
	}

	anteDecorators := []sdk.AnteDecorator{
		ante.NewSetUpContextDecorator(), // outermost AnteDecorator. SetUpContext must be called first
		wasmkeeper.NewLimitSimulationGasDecorator(options.WasmConfig.SimulationGasLimit), // after setup context to enforce limits early
		wasmkeeper.NewCountTXDecorator(options.TXCounterStoreKey),
		wasmkeeper.NewGasRegisterDecorator(options.WasmKeeper.GetGasRegister()),
		ante.NewExtensionOptionsDecorator(options.ExtensionOptionChecker),
		ante.NewValidateBasicDecorator(),
		ante.NewTxTimeoutHeightDecorator(),
		ante.NewValidateMemoDecorator(options.AccountKeeper),
		ante.NewConsumeGasForTxSizeDecorator(options.AccountKeeper),
		NewProofExemptDecorator(options.HandlerOptions, options.ProofExemptContracts),
		ante.NewSetPubKeyDecorator(options.AccountKeeper), // SetPubKeyDecorator must be called before all signature verification decorators
		ante.NewValidateSigCountDecorator(options.AccountKeeper),
		ante.NewSigGasConsumeDecorator(options.AccountKeeper, sigGasConsumer),
		ante.NewSigVerificationDecorator(options.AccountKeeper, options.SignModeHandler),
		ante.NewIncrementSequenceDecorator(options.AccountKeeper),
		ibcante.NewRedundantRelayDecorator(options.IBCKeeper),
	}

	return sdk.ChainAnteDecorators(anteDecorators...), nil
}


================================================
FILE: app/app.go
================================================
package app

import (
	autocliv1 "cosmossdk.io/api/cosmos/autocli/v1"
	"cosmossdk.io/math"
	"fmt"
	"github.com/cometbft/cometbft/crypto"
	"github.com/cometbft/cometbft/libs/bytes"
	"github.com/cosmos/cosmos-sdk/crypto/keys/ed25519"
	"github.com/cosmos/cosmos-sdk/server"
	storetypes "github.com/cosmos/cosmos-sdk/store/types"
	"github.com/cosmos/cosmos-sdk/types/bech32"
	"github.com/cosmos/cosmos-sdk/x/bank"
	bankkeeper "github.com/cosmos/cosmos-sdk/x/bank/keeper"
	banktypes "github.com/cosmos/cosmos-sdk/x/bank/types"
	distrtypes "github.com/cosmos/cosmos-sdk/x/distribution/types"
	v7 "github.com/cybercongress/go-cyber/v7/app/upgrades/v7"

	slashingtypes "github.com/cosmos/cosmos-sdk/x/slashing/types"
	stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types"
	v5 "github.com/cybercongress/go-cyber/v7/app/upgrades/v5"
	v6 "github.com/cybercongress/go-cyber/v7/app/upgrades/v6"
	"github.com/cybercongress/go-cyber/v7/client/docs"
	bandwidthkeeper "github.com/cybercongress/go-cyber/v7/x/bandwidth/keeper"
	cyberbankkeeper "github.com/cybercongress/go-cyber/v7/x/cyberbank/keeper"
	graphkeeper "github.com/cybercongress/go-cyber/v7/x/graph/keeper"
	rankkeeper "github.com/cybercongress/go-cyber/v7/x/rank/keeper"
	"io"
	"os"
	"time"

	reflectionv1 "cosmossdk.io/api/cosmos/reflection/v1"

	"github.com/cosmos/cosmos-sdk/runtime"
	"github.com/cosmos/cosmos-sdk/x/auth/posthandler"

	v2 "github.com/cybercongress/go-cyber/v7/app/upgrades/v2"
	v3 "github.com/cybercongress/go-cyber/v7/app/upgrades/v3"
	v4 "github.com/cybercongress/go-cyber/v7/app/upgrades/v4"

	"github.com/cosmos/cosmos-sdk/client/grpc/tmservice"
	ibcclientclient "github.com/cosmos/ibc-go/v7/modules/core/02-client/client"

	"github.com/cybercongress/go-cyber/v7/app/keepers"
	"github.com/cybercongress/go-cyber/v7/app/upgrades"

	dbm "github.com/cometbft/cometbft-db"
	"github.com/cosmos/cosmos-sdk/client"
	"github.com/cosmos/cosmos-sdk/codec/types"
	servertypes "github.com/cosmos/cosmos-sdk/server/types"
	authtx "github.com/cosmos/cosmos-sdk/x/auth/tx"
	"github.com/spf13/cast"

	abci "github.com/cometbft/cometbft/abci/types"
	"github.com/cometbft/cometbft/libs/log"
	tmos "github.com/cometbft/cometbft/libs/os"
	"github.com/cosmos/cosmos-sdk/baseapp"
	nodeservice "github.com/cosmos/cosmos-sdk/client/grpc/node"
	"github.com/cosmos/cosmos-sdk/codec"
	"github.com/cosmos/cosmos-sdk/server/api"
	"github.com/cosmos/cosmos-sdk/server/config"
	sdk "github.com/cosmos/cosmos-sdk/types"
	"github.com/cosmos/cosmos-sdk/types/module"
	"github.com/cosmos/cosmos-sdk/version"
	"github.com/cosmos/cosmos-sdk/x/auth/ante"
	authtypes "github.com/cosmos/cosmos-sdk/x/auth/types"
	"github.com/cosmos/cosmos-sdk/x/crisis"

	paramsclient "github.com/cosmos/cosmos-sdk/x/params/client"
	paramstypes "github.com/cosmos/cosmos-sdk/x/params/types"
	upgradeclient "github.com/cosmos/cosmos-sdk/x/upgrade/client"
	upgradetypes "github.com/cosmos/cosmos-sdk/x/upgrade/types"

	tmproto "github.com/cometbft/cometbft/proto/tendermint/types"

	"github.com/CosmWasm/wasmd/x/wasm"
	wasmkeeper "github.com/CosmWasm/wasmd/x/wasm/keeper"
	wasmtypes "github.com/CosmWasm/wasmd/x/wasm/types"

	tmjson "github.com/cometbft/cometbft/libs/json"

	govclient "github.com/cosmos/cosmos-sdk/x/gov/client"

	"github.com/cybercongress/go-cyber/v7/utils"

	runtimeservices "github.com/cosmos/cosmos-sdk/runtime/services"
)

const (
	appName = "BostromHub"
	Name    = "bostrom"
)

// We pull these out so we can set them with LDFLAGS in the Makefile
var (
	NodeDir      = ".cyber"
	Bech32Prefix = "bostrom"

	Upgrades = []upgrades.Upgrade{v2.Upgrade, v3.Upgrade, v4.Upgrade, v6.Upgrade, v7.Upgrade}
	Forks    = []upgrades.Fork{v5.Fork}
)

// These constants are derived from the above variables.
// These are the ones we will want to use in the code, based on
// any overrides above
var (
	// DefaultNodeHome default home directories for wasmd
	DefaultNodeHome = os.ExpandEnv("$HOME/") + NodeDir
)

func getGovProposalHandlers() []govclient.ProposalHandler {
	return []govclient.ProposalHandler{
		paramsclient.ProposalHandler,
		upgradeclient.LegacyProposalHandler,
		upgradeclient.LegacyCancelProposalHandler,
		ibcclientclient.UpdateClientProposalHandler,
		ibcclientclient.UpgradeProposalHandler,
	}
}

//// module accounts that are allowed to receive tokens
//var allowedReceivingModAcc = map[string]bool{
//	distrtypes.ModuleName: true,
//}

var (
	_ runtime.AppI            = (*App)(nil)
	_ servertypes.Application = (*App)(nil)
)

// App extends an ABCI application, but with most of its parameters exported.
// They are exported for convenience in creating helper functions, as object
// capabilities aren't needed for testing.
type App struct {
	*baseapp.BaseApp
	keepers.AppKeepers

	aminoCodec        *codec.LegacyAmino
	appCodec          codec.Codec
	txConfig          client.TxConfig
	interfaceRegistry types.InterfaceRegistry

	invCheckPeriod uint

	ModuleManager *module.Manager

	sm *module.SimulationManager

	configurator module.Configurator
}

// New returns a reference to an initialized Cyber Consensus Computer.
func NewBostromApp(
	logger log.Logger,
	db dbm.DB,
	traceStore io.Writer,
	loadLatest bool,
	appOpts servertypes.AppOptions,
	wasmOpts []wasmkeeper.Option,
	baseAppOptions ...func(*baseapp.BaseApp),
) *App {
	wasmtypes.MaxWasmSize = 2 * 1024 * 1024 // 2MB
	encodingConfig := MakeEncodingConfig()

	appCodec, legacyAmino := encodingConfig.Codec, encodingConfig.Amino
	interfaceRegistry := encodingConfig.InterfaceRegistry
	txConfig := encodingConfig.TxConfig

	// App Opts
	skipGenesisInvariants := cast.ToBool(appOpts.Get(crisis.FlagSkipGenesisInvariants))
	invCheckPeriod := cast.ToUint(appOpts.Get(server.FlagInvCheckPeriod))

	bApp := baseapp.NewBaseApp(
		appName,
		logger,
		db,
		txConfig.TxDecoder(),
		baseAppOptions...)

	bApp.SetCommitMultiStoreTracer(traceStore)
	bApp.SetVersion(version.Version)
	bApp.SetInterfaceRegistry(interfaceRegistry)
	bApp.SetTxEncoder(txConfig.TxEncoder())

	app := &App{
		BaseApp:           bApp,
		aminoCodec:        legacyAmino,
		appCodec:          appCodec,
		txConfig:          txConfig,
		interfaceRegistry: interfaceRegistry,
		invCheckPeriod:    invCheckPeriod,
	}

	// Setup keepers
	app.AppKeepers = keepers.NewAppKeepers(
		appCodec,
		bApp,
		legacyAmino,
		keepers.GetMaccPerms(),
		invCheckPeriod,
		logger,
		appOpts,
		wasmOpts,
	)

	/****  Module Options ****/

	// NOTE: Any module instantiated in the module manager that is later modified
	// must be passed by reference here.
	app.ModuleManager = module.NewManager(appModules(app, encodingConfig, skipGenesisInvariants)...)

	// During begin block slashing happens after distr.BeginBlocker so that
	// there is nothing left over in the validator fee pool, so as to keep the
	// CanWithdrawInvariant invariant.
	// NOTE: staking module is required if HistoricalEntries param > 0
	// NOTE: capability module's beginblocker must come before any modules using capabilities (e.g. IBC)
	// Tell the app's module manager how to set the order of BeginBlockers, which are run at the beginning of every block.
	app.ModuleManager.SetOrderBeginBlockers(orderBeginBlockers()...)

	app.ModuleManager.SetOrderEndBlockers(orderEndBlockers()...)

	// NOTE: The genutils module must occur after staking so that pools are
	// properly initialized with tokens from genesis accounts.
	// NOTE: The genutils module must also occur after auth so that it can access the params from auth.
	// NOTE: Capability module must occur first so that it can initialize any capabilities
	// so that other modules that want to create or claim capabilities afterwards in InitChain
	// can do so safely.
	app.ModuleManager.SetOrderInitGenesis(orderInitBlockers()...)

	// Uncomment if you want to set a custom migration order here.
	// NOTE: can be useful for future upgrades
	// app.mm.SetOrderMigrations(custom order)

	app.ModuleManager.RegisterInvariants(app.CrisisKeeper)

	// NOTE hack to register bank's module services because of custom wrapper
	// from sdk.bank/module.go: AppModule RegisterServices
	// 	m := keeper.NewMigrator(am.keeper.(keeper.BaseKeeper))
	// NOTE skip bank module from native services registration then initialize manually
	app.configurator = module.NewConfigurator(appCodec, app.MsgServiceRouter(), app.GRPCQueryRouter())

	delete(app.ModuleManager.Modules, banktypes.ModuleName)
	app.ModuleManager.RegisterServices(app.configurator)
	autocliv1.RegisterQueryServer(app.GRPCQueryRouter(), runtimeservices.NewAutoCLIQueryService(app.ModuleManager.Modules))
	app.ModuleManager.Modules[banktypes.ModuleName] = bank.NewAppModule(appCodec, app.CyberbankKeeper.Proxy, app.AccountKeeper, app.GetSubspace(banktypes.ModuleName))

	banktypes.RegisterMsgServer(app.configurator.MsgServer(), bankkeeper.NewMsgServerImpl(app.CyberbankKeeper.Proxy))
	banktypes.RegisterQueryServer(app.configurator.QueryServer(), app.CyberbankKeeper.Proxy)

	reflectionSvc, err := runtimeservices.NewReflectionService()
	if err != nil {
		panic(err)
	}
	reflectionv1.RegisterReflectionServiceServer(app.GRPCQueryRouter(), reflectionSvc)

	// initialize stores
	app.MountKVStores(app.GetKVStoreKey())
	app.MountTransientStores(app.GetTransientStoreKey())
	app.MountMemoryStores(app.GetMemoryStoreKey())

	wasmConfig, err := wasm.ReadWasmConfig(appOpts)
	if err != nil {
		panic("error while reading wasm config: " + err.Error())
	}

	proofExemptContracts := cast.ToStringSlice(appOpts.Get("proof-exempt.contracts"))

	anteHandler, err := NewAnteHandler(
		HandlerOptions{
			HandlerOptions: ante.HandlerOptions{
				AccountKeeper:   app.AccountKeeper,
				BankKeeper:      app.BankKeeper,
				FeegrantKeeper:  app.FeeGrantKeeper,
				SignModeHandler: encodingConfig.TxConfig.SignModeHandler(),
				SigGasConsumer:  ante.DefaultSigVerificationGasConsumer,
			},
			IBCKeeper:            app.IBCKeeper,
			TXCounterStoreKey:    app.GetKey(wasmtypes.StoreKey),
			WasmConfig:           &wasmConfig,
			WasmKeeper:           app.WasmKeeper,
			ProofExemptContracts: proofExemptContracts,
		},
	)
	if err != nil {
		panic(fmt.Errorf("failed to create AnteHandler: %s", err))
	}

	// set ante and post handlers
	app.SetAnteHandler(anteHandler)

	app.SetInitChainer(app.InitChainer)
	app.SetBeginBlocker(app.BeginBlocker)
	app.SetEndBlocker(app.EndBlocker)

	// Register snapshot extensions to enable state-sync for wasm and cyber modules
	if manager := app.SnapshotManager(); manager != nil {
		err = manager.RegisterExtensions(
			wasmkeeper.NewWasmSnapshotter(app.CommitMultiStore(), app.WasmKeeper),
			cyberbankkeeper.NewCyberbankSnapshotter(app.CommitMultiStore(), app.CyberbankKeeper),
			graphkeeper.NewGraphSnapshotter(app.CommitMultiStore(), app.AppKeepers.GraphKeeper, app.IndexKeeper),
			bandwidthkeeper.NewBandwidthSnapshotter(app.CommitMultiStore(), app.BandwidthMeter),
			rankkeeper.NewRankSnapshotter(app.CommitMultiStore(), app.RankKeeper),
		)
		if err != nil {
			panic("failed to register snapshot extension: " + err.Error())
		}
	}

	app.setupUpgradeHandlers(app.configurator)
	app.setupUpgradeStoreLoaders()

	app.setPostHandler()

	if loadLatest {
		if err := app.LoadLatestVersion(); err != nil {
			tmos.Exit(fmt.Sprintf("failed to load latest version: %s", err))
		}
		ctx := app.BaseApp.NewUncachedContext(true, tmproto.Header{})

		// TODO refactor context load flow
		// NOTE custom implementation
		app.loadContexts(db, ctx)

		if err := app.WasmKeeper.InitializePinnedCodes(ctx); err != nil {
			tmos.Exit(fmt.Sprintf("failed initialize pinned codes %s", err))
		}
	}

	// create the simulation manager and define the order of the modules for deterministic simulations
	//
	// NOTE: this is not required apps that don't use the simulator for fuzz testing
	// transactions
	app.sm = module.NewSimulationManager(simulationModules(app, encodingConfig, skipGenesisInvariants)...)

	app.sm.RegisterStoreDecoders()

	return app
}

func (app *App) setPostHandler() {
	postHandler, err := posthandler.NewPostHandler(
		posthandler.HandlerOptions{},
	)
	if err != nil {
		panic(err)
	}

	app.SetPostHandler(postHandler)
}

// Name returns the name of the App
func (app *App) Name() string {
	return app.BaseApp.Name()
}

// BeginBlocker application updates every begin block
func (app *App) BeginBlocker(ctx sdk.Context, req abci.RequestBeginBlock) abci.ResponseBeginBlock {
	//BeginBlockForks(ctx, app)
	return app.ModuleManager.BeginBlock(ctx, req)
}

// EndBlocker application updates every end block
func (app *App) EndBlocker(ctx sdk.Context, req abci.RequestEndBlock) abci.ResponseEndBlock {
	return app.ModuleManager.EndBlock(ctx, req)
}

// InitChainer application update at chain initialization
func (app *App) InitChainer(ctx sdk.Context, req abci.RequestInitChain) abci.ResponseInitChain {
	var genesisState GenesisState
	if err := tmjson.Unmarshal(req.AppStateBytes, &genesisState); err != nil {
		panic(err)
	}

	// custom initialization
	// var bankGenesisState banktypes.GenesisState
	// app.appCodec.MustUnmarshalJSON(genesisState["bank"], &bankGenesisState)
	// app.BandwidthMeter.AddToDesirableBandwidth(ctx, bankGenesisState.Supply.AmountOf(ctypes.VOLT).Uint64())

	app.UpgradeKeeper.SetModuleVersionMap(ctx, app.ModuleManager.GetVersionMap())
	resp := app.ModuleManager.InitGenesis(ctx, app.appCodec, genesisState)

	// custom initialization
	for _, account := range app.AccountKeeper.GetAllAccounts(ctx) {
		app.CyberbankKeeper.InitializeStakeAmpere(
			account.GetAccountNumber(),
			uint64(app.CyberbankKeeper.Proxy.GetAccountStakeAmperPlusRouted(ctx, account.GetAddress())),
		)
	}

	return resp
}

// LoadHeight loads a particular height
func (app *App) LoadHeight(height int64) error {
	return app.LoadVersion(height)
}

// ModuleAccountAddrs returns all the app's module account addresses.
func (app *App) ModuleAccountAddrs() map[string]bool {
	modAccAddrs := make(map[string]bool)
	for acc := range keepers.GetMaccPerms() {
		modAccAddrs[authtypes.NewModuleAddress(acc).String()] = true
	}

	return modAccAddrs
}

// LegacyAmino returns SimApp's amino codec.
//
// NOTE: This is solely to be used for testing purposes as it may be desirable
// for modules to register their own custom testing types.
func (app *App) LegacyAmino() *codec.LegacyAmino {
	return app.aminoCodec
}

// AppCodec returns Juno's app codec.
//
// NOTE: This is solely to be used for testing purposes as it may be desirable
// for modules to register their own custom testing types.
func (app *App) AppCodec() codec.Codec {
	return app.appCodec
}

// InterfaceRegistry returns Juno's InterfaceRegistry
func (app *App) InterfaceRegistry() types.InterfaceRegistry {
	return app.interfaceRegistry
}

// GetSubspace returns a param subspace for a given module name.
//
// NOTE: This is solely to be used for testing purposes.
func (app *App) GetSubspace(moduleName string) paramstypes.Subspace {
	subspace, _ := app.ParamsKeeper.GetSubspace(moduleName)
	return subspace
}

// RegisterAPIRoutes registers all application module routes with the provided
// API server.
func (app *App) RegisterAPIRoutes(apiSvr *api.Server, apiConfig config.APIConfig) {
	clientCtx := apiSvr.ClientCtx
	// Register new tx routes from grpc-gateway.
	authtx.RegisterGRPCGatewayRoutes(clientCtx, apiSvr.GRPCGatewayRouter)

	// Register new tendermint queries routes from grpc-gateway.
	tmservice.RegisterGRPCGatewayRoutes(clientCtx, apiSvr.GRPCGatewayRouter)

	// Register node gRPC service for grpc-gateway.
	nodeservice.RegisterGRPCGatewayRoutes(clientCtx, apiSvr.GRPCGatewayRouter)

	// Register grpc-gateway routes for all modules.
	ModuleBasics.RegisterGRPCGatewayRoutes(clientCtx, apiSvr.GRPCGatewayRouter)

	// register app's OpenAPI routes.
	docs.RegisterOpenAPIService(Name, apiSvr.Router)
}

// RegisterTxService implements the Application.RegisterTxService method.
func (app *App) RegisterTxService(clientCtx client.Context) {
	authtx.RegisterTxService(app.BaseApp.GRPCQueryRouter(), clientCtx, app.BaseApp.Simulate, app.interfaceRegistry)
}

// RegisterTendermintService implements the Application.RegisterTendermintService method.
func (app *App) RegisterTendermintService(clientCtx client.Context) {
	tmservice.RegisterTendermintService(
		clientCtx,
		app.BaseApp.GRPCQueryRouter(),
		app.interfaceRegistry,
		app.Query,
	)
}

func (app *App) RegisterNodeService(clientCtx client.Context) {
	nodeservice.RegisterNodeService(clientCtx, app.GRPCQueryRouter())
}

// configure store loader that checks if version == upgradeHeight and applies store upgrades
func (app *App) setupUpgradeStoreLoaders() {
	upgradeInfo, err := app.UpgradeKeeper.ReadUpgradeInfoFromDisk()
	if err != nil {
		panic("failed to read upgrade info from disk" + err.Error())
	}

	if app.UpgradeKeeper.IsSkipHeight(upgradeInfo.Height) {
		return
	}

	for _, upgrade := range Upgrades {
		storeUpgrades := upgrade.StoreUpgrades
		if upgradeInfo.Name == upgrade.UpgradeName {
			app.SetStoreLoader(
				upgradetypes.UpgradeStoreLoader(upgradeInfo.Height, &storeUpgrades),
			)
		}
	}
}

func (app *App) setupUpgradeHandlers(cfg module.Configurator) {
	for _, upgrade := range Upgrades {
		app.UpgradeKeeper.SetUpgradeHandler(
			upgrade.UpgradeName,
			upgrade.CreateUpgradeHandler(
				app.ModuleManager,
				cfg,
				&app.AppKeepers,
			),
		)
	}
}

// SimulationManager implements the SimulationApp interface
func (app *App) SimulationManager() *module.SimulationManager {
	return app.sm
}

// MakeCodecs constructs the *std.Codec and *codec.LegacyAmino instances used by
// Cyber's app. It is useful for tests and clients who do not want to construct the
// full Cyber app
func MakeCodecs() (codec.Codec, *codec.LegacyAmino) {
	config := MakeEncodingConfig()
	return config.Codec, config.Amino
}

func (app *App) loadContexts(db dbm.DB, ctx sdk.Context) {
	freshCtx := ctx.WithBlockHeight(int64(app.RankKeeper.GetLatestBlockNumber(ctx)))
	start := time.Now()
	app.BaseApp.Logger().Info("Loading the brain state")

	if app.LastBlockHeight() >= 1 {
		calculationPeriod := app.RankKeeper.GetParams(freshCtx).CalculationPeriod
		// TODO remove this after upgrade to v4 because on network upgrade block cannot access rank params
		if calculationPeriod == 0 {
			calculationPeriod = int64(5)
		}

		rankRoundBlockNumber := (freshCtx.BlockHeight() / calculationPeriod) * calculationPeriod
		if rankRoundBlockNumber == 0 && freshCtx.BlockHeight() >= 1 {
			rankRoundBlockNumber = 1
		}

		rankCtx, err := utils.NewContextWithMSVersion(db, rankRoundBlockNumber, app.GetKVStoreKey())
		if err != nil {
			tmos.Exit(err.Error())
		}

		app.CyberbankKeeper.LoadState(rankCtx, freshCtx)
		// TODO update index state load to one context as we store cyberlink' block now
		app.IndexKeeper.LoadState(rankCtx, freshCtx)
		app.BandwidthMeter.LoadState(freshCtx)
		app.GraphKeeper.LoadNeudeg(rankCtx, freshCtx)
		app.RankKeeper.LoadState(freshCtx)
		app.RankKeeper.StartRankCalculation(freshCtx)
	} else {
		// genesis case
		// NOTE this flow when starting from snapshot
		app.CyberbankKeeper.LoadState(freshCtx, freshCtx)
		// TODO update index state load to one context as we store cyberlink' block now
		app.IndexKeeper.LoadState(freshCtx, freshCtx)
		app.BandwidthMeter.InitState()
		app.GraphKeeper.LoadNeudeg(freshCtx, freshCtx)
		app.RankKeeper.LoadState(freshCtx)
	}

	app.BaseApp.Logger().Info(
		"Cyber Consensus Supercomputer is started!",
		"duration", time.Since(start).String(),
	)
}

// InitOsmosisAppForTestnet is broken down into two sections:
// Required Changes: Changes that, if not made, will cause the testnet to halt or panic
// Optional Changes: Changes to customize the testnet to one's liking (lower vote times, fund accounts, etc)
func InitAppForTestnet(app *App, newValAddr bytes.HexBytes, newValPubKey crypto.PubKey, newOperatorAddress, upgradeToTrigger string) *App {
	//
	// Required Changes:
	//

	ctx := app.BaseApp.NewUncachedContext(true, tmproto.Header{})
	pubkey := &ed25519.PubKey{Key: newValPubKey.Bytes()}
	pubkeyAny, err := types.NewAnyWithValue(pubkey)
	if err != nil {
		tmos.Exit(err.Error())
	}

	// STAKING
	//

	// Create Validator struct for our new validator.
	_, bz, err := bech32.DecodeAndConvert(newOperatorAddress)
	if err != nil {
		tmos.Exit(err.Error())
	}
	bech32Addr, err := bech32.ConvertAndEncode("bostromvaloper", bz)
	if err != nil {
		tmos.Exit(err.Error())
	}
	newVal := stakingtypes.Validator{
		OperatorAddress: bech32Addr,
		ConsensusPubkey: pubkeyAny,
		Jailed:          false,
		Status:          stakingtypes.Bonded,
		Tokens:          math.NewInt(900000000000000),
		DelegatorShares: sdk.MustNewDecFromStr("10000000"),
		Description: stakingtypes.Description{
			Moniker: "Testnet Validator",
		},
		Commission: stakingtypes.Commission{
			CommissionRates: stakingtypes.CommissionRates{
				Rate:          sdk.MustNewDecFromStr("0.05"),
				MaxRate:       sdk.MustNewDecFromStr("0.1"),
				MaxChangeRate: sdk.MustNewDecFromStr("0.05"),
			},
		},
		MinSelfDelegation: math.OneInt(),
	}

	// Remove all validators from power store
	stakingKey := app.GetKey(stakingtypes.ModuleName)
	stakingStore := ctx.KVStore(stakingKey)
	iterator := app.StakingKeeper.ValidatorsPowerStoreIterator(ctx)
	for ; iterator.Valid(); iterator.Next() {
		stakingStore.Delete(iterator.Key())
	}
	iterator.Close()

	// Remove all valdiators from last validators store
	iterator = app.StakingKeeper.LastValidatorsIterator(ctx)
	for ; iterator.Valid(); iterator.Next() {
		stakingStore.Delete(iterator.Key())
	}
	iterator.Close()

	// Remove all validators from validators store
	iterator = storetypes.KVStorePrefixIterator(stakingStore, stakingtypes.ValidatorsKey)
	for ; iterator.Valid(); iterator.Next() {
		stakingStore.Delete(iterator.Key())
	}
	iterator.Close()

	// Remove all validators from unbonding queue
	iterator = storetypes.KVStorePrefixIterator(stakingStore, stakingtypes.ValidatorQueueKey)
	for ; iterator.Valid(); iterator.Next() {
		stakingStore.Delete(iterator.Key())
	}
	iterator.Close()

	// Add our validator to power and last validators store
	app.StakingKeeper.SetValidator(ctx, newVal)
	err = app.StakingKeeper.SetValidatorByConsAddr(ctx, newVal)
	if err != nil {
		tmos.Exit(err.Error())
	}
	app.StakingKeeper.SetValidatorByPowerIndex(ctx, newVal)
	valAddr, err := sdk.ValAddressFromBech32(newVal.GetOperator().String())
	if err != nil {
		tmos.Exit(err.Error())
	}
	app.StakingKeeper.SetLastValidatorPower(ctx, valAddr, 0)
	if err := app.StakingKeeper.Hooks().AfterValidatorCreated(ctx, valAddr); err != nil {
		panic(err)
	}

	// DISTRIBUTION
	//

	// Initialize records for this validator across all distribution stores
	valAddr, err = sdk.ValAddressFromBech32(newVal.GetOperator().String())
	if err != nil {
		tmos.Exit(err.Error())
	}
	app.DistrKeeper.SetValidatorHistoricalRewards(ctx, valAddr, 0, distrtypes.NewValidatorHistoricalRewards(sdk.DecCoins{}, 1))
	app.DistrKeeper.SetValidatorCurrentRewards(ctx, valAddr, distrtypes.NewValidatorCurrentRewards(sdk.DecCoins{}, 1))
	app.DistrKeeper.SetValidatorAccumulatedCommission(ctx, valAddr, distrtypes.InitialValidatorAccumulatedCommission())
	app.DistrKeeper.SetValidatorOutstandingRewards(ctx, valAddr, distrtypes.ValidatorOutstandingRewards{Rewards: sdk.DecCoins{}})

	// SLASHING
	//

	// Set validator signing info for our new validator.
	newConsAddr := sdk.ConsAddress(newValAddr.Bytes())
	newValidatorSigningInfo := slashingtypes.ValidatorSigningInfo{
		Address:     newConsAddr.String(),
		StartHeight: app.LastBlockHeight() - 1,
		Tombstoned:  false,
	}
	app.SlashingKeeper.SetValidatorSigningInfo(ctx, newConsAddr, newValidatorSigningInfo)

	//
	// Optional Changes:
	//

	// UPGRADE
	//

	if upgradeToTrigger != "" {
		upgradePlan := upgradetypes.Plan{
			Name: upgradeToTrigger,
			//Height: app.LastBlockHeight() + 10,
			Height: app.LastBlockHeight(),
		}
		err = app.UpgradeKeeper.ScheduleUpgrade(ctx, upgradePlan)
		if err != nil {
			panic(err)
		}
	}

	return app
}


================================================
FILE: app/apptesting/events.go
================================================
package apptesting

import sdk "github.com/cosmos/cosmos-sdk/types"

// AssertEventEmitted asserts that ctx's event manager has emitted the given number of events
// of the given type.
func (s *KeeperTestHelper) AssertEventEmitted(ctx sdk.Context, eventTypeExpected string, numEventsExpected int) {
	allEvents := ctx.EventManager().Events()

	// filter out other events
	actualEvents := make([]sdk.Event, 0)
	for _, event := range allEvents {
		if event.Type == eventTypeExpected {
			actualEvents = append(actualEvents, event)
		}
	}
	s.Equal(numEventsExpected, len(actualEvents))
}


================================================
FILE: app/apptesting/test_suite.go
================================================
package apptesting

import (
	"encoding/json"
	"fmt"
	"testing"
	"time"

	"github.com/stretchr/testify/require"
	"github.com/stretchr/testify/suite"

	dbm "github.com/cometbft/cometbft-db"
	abci "github.com/cometbft/cometbft/abci/types"
	"github.com/cometbft/cometbft/crypto/ed25519"
	"github.com/cometbft/cometbft/libs/log"
	tmtypes "github.com/cometbft/cometbft/proto/tendermint/types"

	"cosmossdk.io/math"

	"github.com/cosmos/cosmos-sdk/baseapp"
	"github.com/cosmos/cosmos-sdk/client"
	cdctypes "github.com/cosmos/cosmos-sdk/codec/types"
	"github.com/cosmos/cosmos-sdk/crypto/keys/secp256k1"
	"github.com/cosmos/cosmos-sdk/store/rootmulti"
	sdk "github.com/cosmos/cosmos-sdk/types"
	"github.com/cosmos/cosmos-sdk/types/tx/signing"
	authsigning "github.com/cosmos/cosmos-sdk/x/auth/signing"
	"github.com/cosmos/cosmos-sdk/x/authz"
	authzcodec "github.com/cosmos/cosmos-sdk/x/authz/codec"
	banktestutil "github.com/cosmos/cosmos-sdk/x/bank/testutil"
	distrtypes "github.com/cosmos/cosmos-sdk/x/distribution/types"
	minttypes "github.com/cosmos/cosmos-sdk/x/mint/types"
	slashingtypes "github.com/cosmos/cosmos-sdk/x/slashing/types"
	stakinghelper "github.com/cosmos/cosmos-sdk/x/staking/testutil"
	stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types"
	upgradetypes "github.com/cosmos/cosmos-sdk/x/upgrade/types"

	"github.com/cybercongress/go-cyber/v7/app"
	appparams "github.com/cybercongress/go-cyber/v7/app/params"
)

type KeeperTestHelper struct {
	suite.Suite

	App         *app.App
	Ctx         sdk.Context
	QueryHelper *baseapp.QueryServiceTestHelper
	TestAccs    []sdk.AccAddress

	StakingHelper *stakinghelper.Helper
}

var (
	SecondaryDenom  = "uion"
	SecondaryAmount = sdk.NewInt(100000000)
)

// Setup sets up basic environment for suite (App, Ctx, and test accounts)
func (s *KeeperTestHelper) Setup() {
	t := s.T()
	s.App = app.Setup(t)
	s.Ctx = s.App.BaseApp.NewContext(false, tmtypes.Header{Height: 1, ChainID: "juno-1", Time: time.Now().UTC()})
	s.QueryHelper = &baseapp.QueryServiceTestHelper{
		GRPCQueryRouter: s.App.GRPCQueryRouter(),
		Ctx:             s.Ctx,
	}
	s.TestAccs = CreateRandomAccounts(3)

	s.StakingHelper = stakinghelper.NewHelper(s.Suite.T(), s.Ctx, s.App.AppKeepers.StakingKeeper)
	s.StakingHelper.Denom = "ujuno"
}

func (s *KeeperTestHelper) SetupTestForInitGenesis() {
	t := s.T()
	// Setting to True, leads to init genesis not running
	s.App = app.Setup(t)
	s.Ctx = s.App.BaseApp.NewContext(true, tmtypes.Header{
		ChainID: "testing",
	})
}

// CreateTestContext creates a test context.
func (s *KeeperTestHelper) CreateTestContext() sdk.Context {
	ctx, _ := s.CreateTestContextWithMultiStore()
	return ctx
}

// CreateTestContextWithMultiStore creates a test context and returns it together with multi store.
func (s *KeeperTestHelper) CreateTestContextWithMultiStore() (sdk.Context, sdk.CommitMultiStore) {
	db := dbm.NewMemDB()
	logger := log.NewNopLogger()

	ms := rootmulti.NewStore(db, logger)

	return sdk.NewContext(ms, tmtypes.Header{}, false, logger), ms
}

// CreateTestContext creates a test context.
func (s *KeeperTestHelper) Commit() {
	oldHeight := s.Ctx.BlockHeight()
	oldHeader := s.Ctx.BlockHeader()
	s.App.Commit()
	newHeader := tmtypes.Header{Height: oldHeight + 1, ChainID: "testing", Time: oldHeader.Time.Add(time.Second)}
	s.App.BeginBlock(abci.RequestBeginBlock{Header: newHeader})
	s.Ctx = s.App.NewContext(false, newHeader)
}

// FundAcc funds target address with specified amount.
func (s *KeeperTestHelper) FundAcc(acc sdk.AccAddress, amounts sdk.Coins) {
	err := banktestutil.FundAccount(s.App.AppKeepers.BankKeeper, s.Ctx, acc, amounts)
	s.Require().NoError(err)
}

// FundModuleAcc funds target modules with specified amount.
func (s *KeeperTestHelper) FundModuleAcc(moduleName string, amounts sdk.Coins) {
	err := banktestutil.FundModuleAccount(s.App.AppKeepers.BankKeeper, s.Ctx, moduleName, amounts)
	s.Require().NoError(err)
}

func (s *KeeperTestHelper) MintCoins(coins sdk.Coins) {
	err := s.App.AppKeepers.BankKeeper.MintCoins(s.Ctx, minttypes.ModuleName, coins)
	s.Require().NoError(err)
}

// SetupValidator sets up a validator and returns the ValAddress.
func (s *KeeperTestHelper) SetupValidator(bondStatus stakingtypes.BondStatus) sdk.ValAddress {
	valPriv := secp256k1.GenPrivKey()
	valPub := valPriv.PubKey()
	valAddr := sdk.ValAddress(valPub.Address())
	bondDenom := s.App.AppKeepers.StakingKeeper.GetParams(s.Ctx).BondDenom
	selfBond := sdk.NewCoins(sdk.Coin{Amount: sdk.NewInt(100), Denom: bondDenom})

	s.FundAcc(sdk.AccAddress(valAddr), selfBond)

	msg := s.StakingHelper.CreateValidatorMsg(valAddr, valPub, selfBond[0].Amount)
	res, err := s.StakingHelper.CreateValidatorWithMsg(s.Ctx, msg)
	s.Require().NoError(err)
	s.Require().NotNil(res)

	val, found := s.App.AppKeepers.StakingKeeper.GetValidator(s.Ctx, valAddr)
	s.Require().True(found)

	val = val.UpdateStatus(bondStatus)
	s.App.AppKeepers.StakingKeeper.SetValidator(s.Ctx, val)

	consAddr, err := val.GetConsAddr()
	s.Suite.Require().NoError(err)

	signingInfo := slashingtypes.NewValidatorSigningInfo(
		consAddr,
		s.Ctx.BlockHeight(),
		0,
		time.Unix(0, 0),
		false,
		0,
	)
	s.App.AppKeepers.SlashingKeeper.SetValidatorSigningInfo(s.Ctx, consAddr, signingInfo)

	return valAddr
}

// BeginNewBlock starts a new block.
func (s *KeeperTestHelper) BeginNewBlock() {
	var valAddr []byte

	validators := s.App.AppKeepers.StakingKeeper.GetAllValidators(s.Ctx)
	if len(validators) >= 1 {
		valAddrFancy, err := validators[0].GetConsAddr()
		s.Require().NoError(err)
		valAddr = valAddrFancy.Bytes()
	} else {
		valAddrFancy := s.SetupValidator(stakingtypes.Bonded)
		validator, _ := s.App.AppKeepers.StakingKeeper.GetValidator(s.Ctx, valAddrFancy)
		valAddr2, _ := validator.GetConsAddr()
		valAddr = valAddr2.Bytes()
	}

	s.BeginNewBlockWithProposer(valAddr)
}

// BeginNewBlockWithProposer begins a new block with a proposer.
func (s *KeeperTestHelper) BeginNewBlockWithProposer(proposer sdk.ValAddress) {
	validator, found := s.App.AppKeepers.StakingKeeper.GetValidator(s.Ctx, proposer)
	s.Assert().True(found)

	valConsAddr, err := validator.GetConsAddr()
	s.Require().NoError(err)

	valAddr := valConsAddr.Bytes()

	newBlockTime := s.Ctx.BlockTime().Add(5 * time.Second)

	header := tmtypes.Header{Height: s.Ctx.BlockHeight() + 1, Time: newBlockTime}
	newCtx := s.Ctx.WithBlockTime(newBlockTime).WithBlockHeight(s.Ctx.BlockHeight() + 1)
	s.Ctx = newCtx
	lastCommitInfo := abci.CommitInfo{
		Votes: []abci.VoteInfo{{
			Validator:       abci.Validator{Address: valAddr, Power: 1000},
			SignedLastBlock: true,
		}},
		Round: 0,
	}
	reqBeginBlock := abci.RequestBeginBlock{Header: header, LastCommitInfo: lastCommitInfo}

	fmt.Println("beginning block ", s.Ctx.BlockHeight())
	s.App.BeginBlocker(s.Ctx, reqBeginBlock)
}

// EndBlock ends the block.
func (s *KeeperTestHelper) EndBlock() {
	reqEndBlock := abci.RequestEndBlock{Height: s.Ctx.BlockHeight()}
	s.App.EndBlocker(s.Ctx, reqEndBlock)
}

// AllocateRewardsToValidator allocates reward tokens to a distribution module then allocates rewards to the validator address.
func (s *KeeperTestHelper) AllocateRewardsToValidator(valAddr sdk.ValAddress, rewardAmt math.Int) {
	validator, found := s.App.AppKeepers.StakingKeeper.GetValidator(s.Ctx, valAddr)
	s.Require().True(found)

	// allocate reward tokens to distribution module
	coins := sdk.Coins{sdk.NewCoin(appparams.BondDenom, rewardAmt)}
	err := banktestutil.FundModuleAccount(s.App.AppKeepers.BankKeeper, s.Ctx, distrtypes.ModuleName, coins)
	s.Require().NoError(err)

	// allocate rewards to validator
	s.Ctx = s.Ctx.WithBlockHeight(s.Ctx.BlockHeight() + 1)
	decTokens := sdk.DecCoins{{Denom: appparams.BondDenom, Amount: sdk.NewDec(20000)}}
	s.App.AppKeepers.DistrKeeper.AllocateTokensToValidator(s.Ctx, validator, decTokens)
}

// BuildTx builds a transaction.
func (s *KeeperTestHelper) BuildTx(
	txBuilder client.TxBuilder,
	msgs []sdk.Msg,
	sigV2 signing.SignatureV2,
	memo string, txFee sdk.Coins,
	gasLimit uint64,
) authsigning.Tx {
	err := txBuilder.SetMsgs(msgs[0])
	s.Require().NoError(err)

	err = txBuilder.SetSignatures(sigV2)
	s.Require().NoError(err)

	txBuilder.SetMemo(memo)
	txBuilder.SetFeeAmount(txFee)
	txBuilder.SetGasLimit(gasLimit)

	return txBuilder.GetTx()
}

func (s *KeeperTestHelper) ConfirmUpgradeSucceeded(upgradeName string, upgradeHeight int64) {
	s.Ctx = s.Ctx.WithBlockHeight(upgradeHeight - 1)
	plan := upgradetypes.Plan{Name: upgradeName, Height: upgradeHeight}
	err := s.App.AppKeepers.UpgradeKeeper.ScheduleUpgrade(s.Ctx, plan)
	s.Require().NoError(err)
	_, exists := s.App.AppKeepers.UpgradeKeeper.GetUpgradePlan(s.Ctx)
	s.Require().True(exists)

	s.Ctx = s.Ctx.WithBlockHeight(upgradeHeight)
	s.Require().NotPanics(func() {
		beginBlockRequest := abci.RequestBeginBlock{}
		s.App.BeginBlocker(s.Ctx, beginBlockRequest)
	})
}

// CreateRandomAccounts is a function return a list of randomly generated AccAddresses
func CreateRandomAccounts(numAccts int) []sdk.AccAddress {
	testAddrs := make([]sdk.AccAddress, numAccts)
	for i := 0; i < numAccts; i++ {
		pk := ed25519.GenPrivKey().PubKey()
		testAddrs[i] = sdk.AccAddress(pk.Address())
	}

	return testAddrs
}

func TestMessageAuthzSerialization(t *testing.T, msg sdk.Msg) {
	someDate := time.Date(1, 1, 1, 1, 1, 1, 1, time.UTC)
	const (
		mockGranter string = "cosmos1abc"
		mockGrantee string = "cosmos1xyz"
	)

	var (
		mockMsgGrant  authz.MsgGrant
		mockMsgRevoke authz.MsgRevoke
		mockMsgExec   authz.MsgExec
	)

	// Authz: Grant Msg
	typeURL := sdk.MsgTypeURL(msg)
	later := someDate.Add(time.Hour)
	grant, err := authz.NewGrant(someDate, authz.NewGenericAuthorization(typeURL), &later)
	require.NoError(t, err)

	msgGrant := authz.MsgGrant{Granter: mockGranter, Grantee: mockGrantee, Grant: grant}
	msgGrantBytes := json.RawMessage(sdk.MustSortJSON(authzcodec.ModuleCdc.MustMarshalJSON(&msgGrant)))
	err = authzcodec.ModuleCdc.UnmarshalJSON(msgGrantBytes, &mockMsgGrant)
	require.NoError(t, err)

	// Authz: Revoke Msg
	msgRevoke := authz.MsgRevoke{Granter: mockGranter, Grantee: mockGrantee, MsgTypeUrl: typeURL}
	msgRevokeByte := json.RawMessage(sdk.MustSortJSON(authzcodec.ModuleCdc.MustMarshalJSON(&msgRevoke)))
	err = authzcodec.ModuleCdc.UnmarshalJSON(msgRevokeByte, &mockMsgRevoke)
	require.NoError(t, err)

	// Authz: Exec Msg
	msgAny, err := cdctypes.NewAnyWithValue(msg)
	require.NoError(t, err)
	msgExec := authz.MsgExec{Grantee: mockGrantee, Msgs: []*cdctypes.Any{msgAny}}
	execMsgByte := json.RawMessage(sdk.MustSortJSON(authzcodec.ModuleCdc.MustMarshalJSON(&msgExec)))
	err = authzcodec.ModuleCdc.UnmarshalJSON(execMsgByte, &mockMsgExec)
	require.NoError(t, err)
	require.Equal(t, msgExec.Msgs[0].Value, mockMsgExec.Msgs[0].Value)
}

func GenerateTestAddrs() (string, string) {
	pk1 := ed25519.GenPrivKey().PubKey()
	validAddr := sdk.AccAddress(pk1.Address()).String()
	invalidAddr := sdk.AccAddress("invalid").String()
	return validAddr, invalidAddr
}


================================================
FILE: app/encoding.go
================================================
package app

import (
	simappparams "cosmossdk.io/simapp/params"
	"github.com/cosmos/cosmos-sdk/std"

	"github.com/cybercongress/go-cyber/v7/app/params"
)

func MakeEncodingConfig() simappparams.EncodingConfig {
	encodingConfig := params.MakeEncodingConfig()
	std.RegisterLegacyAminoCodec(encodingConfig.Amino)
	std.RegisterInterfaces(encodingConfig.InterfaceRegistry)
	ModuleBasics.RegisterLegacyAminoCodec(encodingConfig.Amino)
	ModuleBasics.RegisterInterfaces(encodingConfig.InterfaceRegistry)
	return encodingConfig
}


================================================
FILE: app/export.go
================================================
package app

import (
	"encoding/json"
	"fmt"
	tmproto "github.com/cometbft/cometbft/proto/tendermint/types"

	servertypes "github.com/cosmos/cosmos-sdk/server/types"
	"github.com/cosmos/cosmos-sdk/x/staking"
)

// ExportAppStateAndValidators exports the state of the application for a genesis
// file.
func (app *App) ExportAppStateAndValidators(forZeroHeight bool, jailAllowedAddrs []string, modulesToExport []string) (servertypes.ExportedApp, error) {
	// as if they could withdraw from the start of the next block
	ctx := app.NewContext(true, tmproto.Header{Height: app.LastBlockHeight()})

	// We export at last height + 1, because that's the height at which
	// Tendermint will start InitChain.
	height := app.LastBlockHeight() + 1
	if forZeroHeight {
		return servertypes.ExportedApp{}, fmt.Errorf("forZeroHeight not supported")
	}

	genState := app.ModuleManager.ExportGenesisForModules(ctx, app.appCodec, modulesToExport)
	appState, err := json.MarshalIndent(genState, "", "  ")
	if err != nil {
		return servertypes.ExportedApp{}, err
	}

	validators, err := staking.WriteValidators(ctx, app.AppKeepers.StakingKeeper)
	return servertypes.ExportedApp{
		AppState:        appState,
		Validators:      validators,
		Height:          height,
		ConsensusParams: app.BaseApp.GetConsensusParams(ctx),
	}, err
}


================================================
FILE: app/forks.go
================================================
package app

import (
	sdk "github.com/cosmos/cosmos-sdk/types"
)

// BeginBlockForks is intended to be ran in a chain upgrade.
func BeginBlockForks(ctx sdk.Context, app *App) {
	for _, fork := range Forks {
		if ctx.BlockHeight() == fork.UpgradeHeight {
			fork.BeginForkLogic(ctx, &app.AppKeepers)
			return
		}
	}
}


================================================
FILE: app/genesis.go
================================================
package app

import (
	"encoding/json"

	"github.com/cosmos/cosmos-sdk/codec"
)

// The genesis state of the blockchain is represented here as a map of raw json
// messages key'd by a identifier string.
// The identifier is used to determine which module genesis information belongs
// to so it may be appropriately routed during init chain.
// Within this application default genesis information is retrieved from
// the ModuleBasicManager which populates json from each BasicModule
// object provided to it during init.
type GenesisState map[string]json.RawMessage

// NewDefaultGenesisState generates the default state for the application.
func NewDefaultGenesisState(cdc codec.JSONCodec) GenesisState {
	return ModuleBasics.DefaultGenesis(cdc)
}


================================================
FILE: app/helpers/contracts.go
================================================
package helpers

import (
	wasmtypes "github.com/CosmWasm/wasmd/x/wasm/types"

	storetypes "github.com/cosmos/cosmos-sdk/store/types"
	sdk "github.com/cosmos/cosmos-sdk/types"
)

// Execute contract, recover from panic
func ExecuteContract(k wasmtypes.ContractOpsKeeper, childCtx sdk.Context, contractAddr sdk.AccAddress, msgBz []byte, err *error) {
	// Recover from panic, return error
	defer func() {
		if recoveryError := recover(); recoveryError != nil {
			// Determine error associated with panic
			if isOutofGas, msg := IsOutOfGasError(recoveryError); isOutofGas {
				*err = ErrOutOfGas.Wrapf("%s", msg)
			} else {
				*err = ErrContractExecutionPanic.Wrapf("%s", recoveryError)
			}
		}
	}()

	// Execute contract with sudo
	_, *err = k.Sudo(childCtx, contractAddr, msgBz)
}

// Check if error is out of gas error
func IsOutOfGasError(err any) (bool, string) {
	switch e := err.(type) {
	case storetypes.ErrorOutOfGas:
		return true, e.Descriptor
	case storetypes.ErrorGasOverflow:
		return true, e.Descriptor
	default:
		return false, ""
	}
}


================================================
FILE: app/helpers/global_errors.go
================================================
package helpers

import (
	errorsmod "cosmossdk.io/errors"

	sdkerrors "github.com/cosmos/cosmos-sdk/types/errors"
)

const codespace = "cyber-global"

var (
	ErrInvalidAddress            = sdkerrors.ErrInvalidAddress
	ErrContractNotRegistered     = errorsmod.Register(codespace, 1, "contract not registered")
	ErrContractAlreadyRegistered = errorsmod.Register(codespace, 2, "contract already registered")
	ErrContractNotAdmin          = errorsmod.Register(codespace, 3, "sender is not the contract admin")
	ErrContractNotCreator        = errorsmod.Register(codespace, 4, "sender is not the contract creator")
	ErrInvalidCWContract         = errorsmod.Register(codespace, 5, "invalid CosmWasm contract")
	ErrOutOfGas                  = errorsmod.Register(codespace, 6, "contract execution ran out of gas")
	ErrContractExecutionPanic    = errorsmod.Register(codespace, 7, "contract execution panicked")
)


================================================
FILE: app/helpers/mock.go
================================================
package helpers

import (
	"github.com/cometbft/cometbft/crypto"
	tmproto "github.com/cometbft/cometbft/proto/tendermint/types"
	tmtypes "github.com/cometbft/cometbft/types"

	cryptocodec "github.com/cosmos/cosmos-sdk/crypto/codec"
	"github.com/cosmos/cosmos-sdk/crypto/keys/ed25519"
	cryptotypes "github.com/cosmos/cosmos-sdk/crypto/types"
)

var _ tmtypes.PrivValidator = PV{}

// PV implements PrivValidator without any safety or persistence.
// Only use it for testing.
type PV struct {
	PrivKey cryptotypes.PrivKey
}

func NewPV() PV {
	return PV{ed25519.GenPrivKey()}
}

// GetPubKey implements PrivValidator interface
func (pv PV) GetPubKey() (crypto.PubKey, error) {
	return cryptocodec.ToTmPubKeyInterface(pv.PrivKey.PubKey())
}

// SignVote implements PrivValidator interface
func (pv PV) SignVote(chainID string, vote *tmproto.Vote) error {
	signBytes := tmtypes.VoteSignBytes(chainID, vote)
	sig, err := pv.PrivKey.Sign(signBytes)
	if err != nil {
		return err
	}
	vote.Signature = sig
	return nil
}

// SignProposal implements PrivValidator interface
func (pv PV) SignProposal(chainID string, proposal *tmproto.Proposal) error {
	signBytes := tmtypes.ProposalSignBytes(chainID, proposal)
	sig, err := pv.PrivKey.Sign(signBytes)
	if err != nil {
		return err
	}
	proposal.Signature = sig
	return nil
}


================================================
FILE: app/keepers/keepers.go
================================================
package keepers

import (
	"fmt"
	"github.com/cosmos/cosmos-sdk/store/streaming"
	sdk "github.com/cosmos/cosmos-sdk/types"
	"github.com/cosmos/cosmos-sdk/x/nft"
	nftkeeper "github.com/cosmos/cosmos-sdk/x/nft/keeper"
	"github.com/cosmos/ibc-apps/middleware/packet-forward-middleware/v7/packetforward"
	packetforwardtypes "github.com/cosmos/ibc-apps/middleware/packet-forward-middleware/v7/packetforward/types"
	icq "github.com/cosmos/ibc-apps/modules/async-icq/v7"
	icqkeeper "github.com/cosmos/ibc-apps/modules/async-icq/v7/keeper"
	icqtypes "github.com/cosmos/ibc-apps/modules/async-icq/v7/types"
	icacontroller "github.com/cosmos/ibc-go/v7/modules/apps/27-interchain-accounts/controller"
	icacontrollertypes "github.com/cosmos/ibc-go/v7/modules/apps/27-interchain-accounts/controller/types"
	icahost "github.com/cosmos/ibc-go/v7/modules/apps/27-interchain-accounts/host"
	icahosttypes "github.com/cosmos/ibc-go/v7/modules/apps/27-interchain-accounts/host/types"
	icatypes "github.com/cosmos/ibc-go/v7/modules/apps/27-interchain-accounts/types"
	clocktypes "github.com/cybercongress/go-cyber/v7/x/clock/types"
	tokenfactorykeeper "github.com/cybercongress/go-cyber/v7/x/tokenfactory/keeper"
	tokenfactorytypes "github.com/cybercongress/go-cyber/v7/x/tokenfactory/types"
	"os"
	"path/filepath"

	"github.com/CosmWasm/wasmd/x/wasm"
	wasmkeeper "github.com/CosmWasm/wasmd/x/wasm/keeper"
	wasmtypes "github.com/CosmWasm/wasmd/x/wasm/types"
	"github.com/cosmos/cosmos-sdk/baseapp"
	"github.com/cosmos/cosmos-sdk/client/flags"
	"github.com/cosmos/cosmos-sdk/codec"
	"github.com/cosmos/cosmos-sdk/server"
	servertypes "github.com/cosmos/cosmos-sdk/server/types"
	storetypes "github.com/cosmos/cosmos-sdk/store/types"
	authkeeper "github.com/cosmos/cosmos-sdk/x/auth/keeper"
	authtypes "github.com/cosmos/cosmos-sdk/x/auth/types"
	authzkeeper "github.com/cosmos/cosmos-sdk/x/authz/keeper"
	bankkeeper "github.com/cosmos/cosmos-sdk/x/bank/keeper"
	banktypes "github.com/cosmos/cosmos-sdk/x/bank/types"
	capabilitykeeper "github.com/cosmos/cosmos-sdk/x/capability/keeper"
	capabilitytypes "github.com/cosmos/cosmos-sdk/x/capability/types"
	crisiskeeper "github.com/cosmos/cosmos-sdk/x/crisis/keeper"
	crisistypes "github.com/cosmos/cosmos-sdk/x/crisis/types"
	distrkeeper "github.com/cosmos/cosmos-sdk/x/distribution/keeper"
	distrtypes "github.com/cosmos/cosmos-sdk/x/distribution/types"
	evidencekeeper "github.com/cosmos/cosmos-sdk/x/evidence/keeper"
	evidencetypes "github.com/cosmos/cosmos-sdk/x/evidence/types"
	"github.com/cosmos/cosmos-sdk/x/feegrant"
	feegrantkeeper "github.com/cosmos/cosmos-sdk/x/feegrant/keeper"
	govkeeper "github.com/cosmos/cosmos-sdk/x/gov/keeper"
	govtypes "github.com/cosmos/cosmos-sdk/x/gov/types"
	mintkeeper "github.com/cosmos/cosmos-sdk/x/mint/keeper"
	minttypes "github.com/cosmos/cosmos-sdk/x/mint/types"
	sdkparams "github.com/cosmos/cosmos-sdk/x/params"
	paramskeeper "github.com/cosmos/cosmos-sdk/x/params/keeper"
	paramstypes "github.com/cosmos/cosmos-sdk/x/params/types"
	paramproposal "github.com/cosmos/cosmos-sdk/x/params/types/proposal"
	slashingkeeper "github.com/cosmos/cosmos-sdk/x/slashing/keeper"
	slashingtypes "github.com/cosmos/cosmos-sdk/x/slashing/types"
	stakingkeeper "github.com/cosmos/cosmos-sdk/x/staking/keeper"
	stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types"
	"github.com/cosmos/cosmos-sdk/x/upgrade"
	upgradekeeper "github.com/cosmos/cosmos-sdk/x/upgrade/keeper"
	upgradetypes "github.com/cosmos/cosmos-sdk/x/upgrade/types"
	ibcfee "github.com/cosmos/ibc-go/v7/modules/apps/29-fee"
	ibcfeekeeper "github.com/cosmos/ibc-go/v7/modules/apps/29-fee/keeper"
	ibcfeetypes "github.com/cosmos/ibc-go/v7/modules/apps/29-fee/types"
	"github.com/cosmos/ibc-go/v7/modules/apps/transfer"
	ibctransferkeeper "github.com/cosmos/ibc-go/v7/modules/apps/transfer/keeper"
	ibctransfertypes "github.com/cosmos/ibc-go/v7/modules/apps/transfer/types"
	ibcclient "github.com/cosmos/ibc-go/v7/modules/core/02-client"
	ibcclienttypes "github.com/cosmos/ibc-go/v7/modules/core/02-client/types"
	porttypes "github.com/cosmos/ibc-go/v7/modules/core/05-port/types"
	ibcexported "github.com/cosmos/ibc-go/v7/modules/core/exported"
	ibckeeper "github.com/cosmos/ibc-go/v7/modules/core/keeper"

	//"github.com/cybercongress/go-cyber/v4/app"

	"github.com/spf13/cast"

	liquiditykeeper "github.com/cybercongress/go-cyber/v7/x/liquidity/keeper"
	liquiditytypes "github.com/cybercongress/go-cyber/v7/x/liquidity/types"

	wasmplugins "github.com/cybercongress/go-cyber/v7/plugins"
	bandwidthkeeper "github.com/cybercongress/go-cyber/v7/x/bandwidth/keeper"
	bandwidthtypes "github.com/cybercongress/go-cyber/v7/x/bandwidth/types"
	cyberbankkeeper "github.com/cybercongress/go-cyber/v7/x/cyberbank/keeper"
	dmnkeeper "github.com/cybercongress/go-cyber/v7/x/dmn/keeper"
	dmntypes "github.com/cybercongress/go-cyber/v7/x/dmn/types"
	graphkeeper "github.com/cybercongress/go-cyber/v7/x/graph/keeper"
	graphtypes "github.com/cybercongress/go-cyber/v7/x/graph/types"
	gridkeeper "github.com/cybercongress/go-cyber/v7/x/grid/keeper"
	gridtypes "github.com/cybercongress/go-cyber/v7/x/grid/types"
	"github.com/cybercongress/go-cyber/v7/x/rank"
	rankkeeper "github.com/cybercongress/go-cyber/v7/x/rank/keeper"
	ranktypes "github.com/cybercongress/go-cyber/v7/x/rank/types"
	resourceskeeper "github.com/cybercongress/go-cyber/v7/x/resources/keeper"
	resourcestypes "github.com/cybercongress/go-cyber/v7/x/resources/types"

	consensusparamkeeper "github.com/cosmos/cosmos-sdk/x/consensus/keeper"
	consensusparamtypes "github.com/cosmos/cosmos-sdk/x/consensus/types"

	govv1beta "github.com/cosmos/cosmos-sdk/x/gov/types/v1beta1"

	clockkeeper "github.com/cybercongress/go-cyber/v7/x/clock/keeper"

	"github.com/cometbft/cometbft/libs/log"
	icacontrollerkeeper "github.com/cosmos/ibc-go/v7/modules/apps/27-interchain-accounts/controller/keeper"
	icahostkeeper "github.com/cosmos/ibc-go/v7/modules/apps/27-interchain-accounts/host/keeper"

	packetforwardkeeper "github.com/cosmos/ibc-apps/middleware/packet-forward-middleware/v7/packetforward/keeper"
	ibchooks "github.com/cosmos/ibc-apps/modules/ibc-hooks/v7"
	ibchookskeeper "github.com/cosmos/ibc-apps/modules/ibc-hooks/v7/keeper"
	ibchookstypes "github.com/cosmos/ibc-apps/modules/ibc-hooks/v7/types"
)

var (
	wasmCapabilities = "iterator,staking,stargate,cyber,cosmwasm_1_1,cosmwasm_1_2,cosmwasm_1_3"

	tokenFactoryCapabilities = []string{
		tokenfactorytypes.EnableBurnFrom,
		tokenfactorytypes.EnableForceTransfer,
		tokenfactorytypes.EnableSetMetadata,
	}
)

// module account permissions
var maccPerms = map[string][]string{
	authtypes.FeeCollectorName:     nil,
	distrtypes.ModuleName:          nil,
	minttypes.ModuleName:           {authtypes.Minter},
	stakingtypes.BondedPoolName:    {authtypes.Burner, authtypes.Staking},
	stakingtypes.NotBondedPoolName: {authtypes.Burner, authtypes.Staking},
	govtypes.ModuleName:            {authtypes.Burner},
	nft.ModuleName:                 nil,
	ibctransfertypes.ModuleName:    {authtypes.Minter, authtypes.Burner},
	ibcfeetypes.ModuleName:         nil,
	wasmtypes.ModuleName:           {authtypes.Burner},
	liquiditytypes.ModuleName:      {authtypes.Minter, authtypes.Burner},
	gridtypes.GridPoolName:         nil,
	resourcestypes.ResourcesName:   {authtypes.Minter, authtypes.Burner},
	tokenfactorytypes.ModuleName:   {authtypes.Minter, authtypes.Burner},
	icatypes.ModuleName:            nil,
	icqtypes.ModuleName:            nil,
	bandwidthtypes.ModuleName:      {authtypes.Burner},
}

type AppKeepers struct {
	// keys to access the substores
	keys    map[string]*storetypes.KVStoreKey
	tkeys   map[string]*storetypes.TransientStoreKey
	memKeys map[string]*storetypes.MemoryStoreKey

	// keepers
	AccountKeeper         authkeeper.AccountKeeper
	BankKeeper            bankkeeper.Keeper
	CapabilityKeeper      *capabilitykeeper.Keeper
	StakingKeeper         *stakingkeeper.Keeper
	SlashingKeeper        slashingkeeper.Keeper
	MintKeeper            mintkeeper.Keeper
	DistrKeeper           distrkeeper.Keeper
	GovKeeper             govkeeper.Keeper
	CrisisKeeper          *crisiskeeper.Keeper
	UpgradeKeeper         *upgradekeeper.Keeper
	ParamsKeeper          paramskeeper.Keeper
	EvidenceKeeper        evidencekeeper.Keeper
	FeeGrantKeeper        feegrantkeeper.Keeper
	NFTKeeper             nftkeeper.Keeper
	AuthzKeeper           authzkeeper.Keeper
	ConsensusParamsKeeper consensusparamkeeper.Keeper

	IBCKeeper           *ibckeeper.Keeper // IBC Keeper must be a pointer in the app, so we can SetRouter on it correctly
	ICQKeeper           *icqkeeper.Keeper
	ICAHostKeeper       *icahostkeeper.Keeper
	ICAControllerKeeper *icacontrollerkeeper.Keeper
	IBCFeeKeeper        ibcfeekeeper.Keeper
	IBCHooksKeeper      *ibchookskeeper.Keeper
	TransferKeeper      *ibctransferkeeper.Keeper

	TokenFactoryKeeper tokenfactorykeeper.Keeper
	WasmKeeper         *wasmkeeper.Keeper
	LiquidityKeeper    liquiditykeeper.Keeper
	BandwidthMeter     *bandwidthkeeper.BandwidthMeter
	CyberbankKeeper    *cyberbankkeeper.IndexedKeeper
	GraphKeeper        *graphkeeper.GraphKeeper
	IndexKeeper        *graphkeeper.IndexKeeper
	RankKeeper         *rankkeeper.StateKeeper
	GridKeeper         gridkeeper.Keeper
	DmnKeeper          *dmnkeeper.Keeper
	ResourcesKeeper    resourceskeeper.Keeper
	ContractKeeper     wasmtypes.ContractOpsKeeper
	ClockKeeper        clockkeeper.Keeper

	ScopedIBCKeeper           capabilitykeeper.ScopedKeeper
	ScopedICQKeeper           capabilitykeeper.ScopedKeeper
	ScopedTransferKeeper      capabilitykeeper.ScopedKeeper
	ScopedICAHostKeeper       capabilitykeeper.ScopedKeeper
	ScopedICAControllerKeeper capabilitykeeper.ScopedKeeper
	ScopedWasmKeeper          capabilitykeeper.ScopedKeeper

	// IBC modules
	// transfer module
	// Middleware wrapper
	Ics20WasmHooks      *ibchooks.WasmHooks
	HooksICS4Wrapper    ibchooks.ICS4Middleware
	PacketForwardKeeper *packetforwardkeeper.Keeper
}

func NewAppKeepers(
	appCodec codec.Codec,
	bApp *baseapp.BaseApp,
	cdc *codec.LegacyAmino,
	maccPerms map[string][]string,
	invCheckPeriod uint,
	logger log.Logger,
	appOpts servertypes.AppOptions,
	wasmOpts []wasmkeeper.Option,
) AppKeepers {
	appKeepers := AppKeepers{}

	// Set keys KVStoreKey, TransientStoreKey, MemoryStoreKey
	appKeepers.GenerateKeys()
	keys := appKeepers.GetKVStoreKey()
	tkeys := appKeepers.GetTransientStoreKey()

	// load state streaming if enabled
	if _, _, err := streaming.LoadStreamingServices(bApp, appOpts, appCodec, logger, appKeepers.GetKVStoreKey()); err != nil {
		logger.Error("failed to load state streaming", "err", err)
		os.Exit(1)
	}

	appKeepers.ParamsKeeper = initParamsKeeper(
		appCodec,
		cdc,
		keys[paramstypes.StoreKey],
		tkeys[paramstypes.TStoreKey],
	)

	govModAddress := authtypes.NewModuleAddress(govtypes.ModuleName).String()

	// set the BaseApp's parameter store
	appKeepers.ConsensusParamsKeeper = consensusparamkeeper.NewKeeper(
		appCodec,
		keys[consensusparamtypes.StoreKey],
		govModAddress,
	)
	bApp.SetParamStore(&appKeepers.ConsensusParamsKeeper)

	// add capability keeper and ScopeToModule for ibc module
	appKeepers.CapabilityKeeper = capabilitykeeper.NewKeeper(
		appCodec,
		keys[capabilitytypes.StoreKey],
		appKeepers.memKeys[capabilitytypes.MemStoreKey],
	)

	scopedIBCKeeper := appKeepers.CapabilityKeeper.ScopeToModule(ibcexported.ModuleName)
	scopedICAHostKeeper := appKeepers.CapabilityKeeper.ScopeToModule(icahosttypes.SubModuleName)
	scopedICAControllerKeeper := appKeepers.CapabilityKeeper.ScopeToModule(icacontrollertypes.SubModuleName)
	scopedICQKeeper := appKeepers.CapabilityKeeper.ScopeToModule(icqtypes.ModuleName)
	scopedTransferKeeper := appKeepers.CapabilityKeeper.ScopeToModule(ibctransfertypes.ModuleName)
	scopedWasmKeeper := appKeepers.CapabilityKeeper.ScopeToModule(wasmtypes.ModuleName)
	appKeepers.CapabilityKeeper.Seal()

	// add keepers
	Bech32Prefix := "bostrom"
	appKeepers.AccountKeeper = authkeeper.NewAccountKeeper(
		appCodec,
		keys[authtypes.StoreKey],
		authtypes.ProtoBaseAccount,
		maccPerms,
		Bech32Prefix,
		govModAddress,
	)

	appKeepers.BankKeeper = bankkeeper.NewBaseKeeper(
		appCodec,
		keys[banktypes.StoreKey],
		appKeepers.AccountKeeper,
		BlockedAddresses(),
		govModAddress,
	)

	// Cyber uses custom bank module wrapped around SDK's bank module
	appKeepers.CyberbankKeeper = cyberbankkeeper.NewIndexedKeeper(
		appCodec,
		keys[authtypes.StoreKey],
		cyberbankkeeper.Wrap(appKeepers.BankKeeper),
		appKeepers.AccountKeeper,
	)

	stakingKeeper := stakingkeeper.NewKeeper(
		appCodec,
		keys[stakingtypes.StoreKey],
		appKeepers.AccountKeeper,
		appKeepers.CyberbankKeeper.Proxy,
		govModAddress,
	)

	appKeepers.MintKeeper = mintkeeper.NewKeeper(
		appCodec,
		keys[minttypes.StoreKey],
		stakingKeeper,
		appKeepers.AccountKeeper,
		appKeepers.CyberbankKeeper.Proxy,
		authtypes.FeeCollectorName,
		govModAddress,
	)

	appKeepers.DistrKeeper = distrkeeper.NewKeeper(
		appCodec,
		keys[distrtypes.StoreKey],
		appKeepers.AccountKeeper,
		appKeepers.CyberbankKeeper.Proxy,
		stakingKeeper,
		authtypes.FeeCollectorName,
		govModAddress,
	)

	appKeepers.SlashingKeeper = slashingkeeper.NewKeeper(
		appCodec,
		cdc,
		keys[slashingtypes.StoreKey],
		stakingKeeper,
		govModAddress,
	)

	appKeepers.CrisisKeeper = crisiskeeper.NewKeeper(
		appCodec,
		keys[crisistypes.StoreKey],
		invCheckPeriod,
		appKeepers.CyberbankKeeper.Proxy,
		authtypes.FeeCollectorName,
		govModAddress,
	)

	skipUpgradeHeights := map[int64]bool{}
	for _, h := range cast.ToIntSlice(appOpts.Get(server.FlagUnsafeSkipUpgrades)) {
		skipUpgradeHeights[int64(h)] = true
	}
	homePath := cast.ToString(appOpts.Get(flags.FlagHome))
	appKeepers.UpgradeKeeper = upgradekeeper.NewKeeper(
		skipUpgradeHeights,
		keys[upgradetypes.StoreKey],
		appCodec,
		homePath,
		bApp,
		govModAddress,
	)

	// register the staking hooks
	// NOTE: stakingKeeper above is passed by reference, so that it will contain these hooks
	stakingKeeper.SetHooks(
		stakingtypes.NewMultiStakingHooks(
			appKeepers.DistrKeeper.Hooks(),
			appKeepers.SlashingKeeper.Hooks(),
		),
	)
	appKeepers.StakingKeeper = stakingKeeper

	// Start cyber's keepers configuration

	appKeepers.BandwidthMeter = bandwidthkeeper.NewBandwidthMeter(
		appCodec,
		keys[bandwidthtypes.StoreKey],
		tkeys[bandwidthtypes.TStoreKey],
		appKeepers.CyberbankKeeper.Proxy,
		govModAddress,
	)

	appKeepers.GraphKeeper = graphkeeper.NewKeeper(
		appCodec,
		keys[graphtypes.ModuleName],
		// TODO fixed appKeepers.tkeys[paramstypes.TStoreKey], need test
		tkeys[graphtypes.TStoreKey],
	)

	appKeepers.IndexKeeper = graphkeeper.NewIndexKeeper(
		*appKeepers.GraphKeeper,
		// TODO fixed appKeepers.tkeys[paramstypes.TStoreKey], need test
		tkeys[graphtypes.TStoreKey],
	)

	computeUnit := ranktypes.ComputeUnit(cast.ToInt(appOpts.Get(rank.FlagComputeGPU)))
	computeMock := cast.ToBool(appOpts.Get(rank.FlagComputeMock))
	searchAPI := cast.ToBool(appOpts.Get(rank.FlagSearchAPI))
	appKeepers.RankKeeper = rankkeeper.NewKeeper(
		appCodec,
		keys[ranktypes.ModuleName],
		searchAPI,
		appKeepers.CyberbankKeeper,
		appKeepers.IndexKeeper,
		appKeepers.GraphKeeper,
		appKeepers.AccountKeeper,
		computeUnit,
		computeMock,
		govModAddress,
	)

	appKeepers.GridKeeper = gridkeeper.NewKeeper(
		appCodec,
		keys[gridtypes.ModuleName],
		appKeepers.CyberbankKeeper.Proxy,
		appKeepers.AccountKeeper,
		govModAddress,
	)
	appKeepers.CyberbankKeeper.SetGridKeeper(&appKeepers.GridKeeper)
	appKeepers.CyberbankKeeper.SetAccountKeeper(appKeepers.AccountKeeper)
	appKeepers.CyberbankKeeper.SetGraphKeeper(appKeepers.GraphKeeper)

	appKeepers.ResourcesKeeper = resourceskeeper.NewKeeper(
		appCodec,
		keys[gridtypes.ModuleName],
		appKeepers.AccountKeeper,
		appKeepers.CyberbankKeeper.Proxy,
		appKeepers.BandwidthMeter,
		appKeepers.GraphKeeper,
		govModAddress,
	)

	appKeepers.DmnKeeper = dmnkeeper.NewKeeper(
		appCodec,
		keys[dmntypes.StoreKey],
		appKeepers.CyberbankKeeper.Proxy,
		appKeepers.AccountKeeper,
		govModAddress,
	)

	appKeepers.LiquidityKeeper = liquiditykeeper.NewKeeper(
		appCodec,
		keys[liquiditytypes.StoreKey],
		appKeepers.CyberbankKeeper.Proxy,
		appKeepers.AccountKeeper,
		appKeepers.DistrKeeper,
		govModAddress,
	)

	// End cyber's keepers configuration

	// Create IBC Keeper
	appKeepers.IBCKeeper = ibckeeper.NewKeeper(
		appCodec,
		keys[ibcexported.StoreKey],
		appKeepers.GetSubspace(ibcexported.ModuleName),
		stakingKeeper,
		appKeepers.UpgradeKeeper,
		scopedIBCKeeper,
	)

	appKeepers.FeeGrantKeeper = feegrantkeeper.NewKeeper(
		appCodec,
		keys[feegrant.StoreKey],
		appKeepers.AccountKeeper,
	)

	appKeepers.AuthzKeeper = authzkeeper.NewKeeper(
		keys[authzkeeper.StoreKey],
		appCodec,
		bApp.MsgServiceRouter(),
		appKeepers.AccountKeeper,
	)

	// register the proposal types
	govRouter := govv1beta.NewRouter()
	govRouter.
		AddRoute(govtypes.RouterKey, govv1beta.ProposalHandler).
		AddRoute(paramproposal.RouterKey, sdkparams.NewParamChangeProposalHandler(appKeepers.ParamsKeeper)).
		AddRoute(upgradetypes.RouterKey, upgrade.NewSoftwareUpgradeProposalHandler(appKeepers.UpgradeKeeper)).
		AddRoute(ibcclienttypes.RouterKey, ibcclient.NewClientProposalHandler(appKeepers.IBCKeeper.ClientKeeper))

	govConfig := govtypes.DefaultConfig()
	govConfig.MaxMetadataLen = 10200

	govKeeper := govkeeper.NewKeeper(
		appCodec,
		keys[govtypes.StoreKey],
		appKeepers.AccountKeeper,
		appKeepers.CyberbankKeeper.Proxy,
		appKeepers.StakingKeeper,
		bApp.MsgServiceRouter(),
		govtypes.DefaultConfig(),
		govModAddress,
	)

	appKeepers.GovKeeper = *govKeeper.SetHooks(
		govtypes.NewMultiGovHooks(
		// register governance hooks
		),
	)

	appKeepers.NFTKeeper = nftkeeper.NewKeeper(keys[nftkeeper.StoreKey], appCodec, appKeepers.AccountKeeper, appKeepers.CyberbankKeeper.Proxy)

	// Configure the hooks keeper
	hooksKeeper := ibchookskeeper.NewKeeper(
		appKeepers.keys[ibchookstypes.StoreKey],
	)
	appKeepers.IBCHooksKeeper = &hooksKeeper

	cyberPrefix := sdk.GetConfig().GetBech32AccountAddrPrefix()
	wasmHooks := ibchooks.NewWasmHooks(appKeepers.IBCHooksKeeper, appKeepers.WasmKeeper, cyberPrefix) // The contract keeper needs to be set later
	appKeepers.Ics20WasmHooks = &wasmHooks
	appKeepers.HooksICS4Wrapper = ibchooks.NewICS4Middleware(
		appKeepers.IBCKeeper.ChannelKeeper,
		appKeepers.Ics20WasmHooks,
	)

	// Do not use this middleware for anything except x/wasm requirement.
	// The spec currently requires new channels to be created, to use it.
	// We need to wait for Channel Upgradability before we can use this for any other middleware.
	appKeepers.IBCFeeKeeper = ibcfeekeeper.NewKeeper(
		appCodec,
		keys[ibcfeetypes.StoreKey],
		appKeepers.HooksICS4Wrapper, // replaced with IBC middleware
		appKeepers.IBCKeeper.ChannelKeeper,
		&appKeepers.IBCKeeper.PortKeeper,
		appKeepers.AccountKeeper,
		appKeepers.CyberbankKeeper.Proxy,
	)

	// PacketForwardKeeper must be created before TransferKeeper
	appKeepers.PacketForwardKeeper = packetforwardkeeper.NewKeeper(
		appCodec,
		appKeepers.keys[packetforwardtypes.StoreKey],
		nil, // Will be zero-value here. Reference is set later on with SetTransferKeeper.
		appKeepers.IBCKeeper.ChannelKeeper,
		appKeepers.CyberbankKeeper.Proxy,
		appKeepers.HooksICS4Wrapper,
		govModAddress,
	)

	// Create Transfer Keepers
	transferKeeper := ibctransferkeeper.NewKeeper(
		appCodec,
		keys[ibctransfertypes.StoreKey],
		appKeepers.GetSubspace(ibctransfertypes.ModuleName),
		// The ICS4Wrapper is replaced by the PacketForwardKeeper instead of the channel so that sending can be overridden by the middleware
		appKeepers.PacketForwardKeeper,
		appKeepers.IBCKeeper.ChannelKeeper,
		&appKeepers.IBCKeeper.PortKeeper,
		appKeepers.AccountKeeper,
		appKeepers.CyberbankKeeper.Proxy,
		scopedTransferKeeper,
	)
	appKeepers.TransferKeeper = &transferKeeper

	// Must be called on PFMRouter AFTER TransferKeeper initialized
	appKeepers.PacketForwardKeeper.SetTransferKeeper(appKeepers.TransferKeeper)

	// ICQ Keeper
	icqKeeper := icqkeeper.NewKeeper(
		appCodec,
		appKeepers.keys[icqtypes.StoreKey],
		appKeepers.IBCKeeper.ChannelKeeper, // may be replaced with middleware
		appKeepers.IBCKeeper.ChannelKeeper,
		&appKeepers.IBCKeeper.PortKeeper,
		scopedICQKeeper,
		bApp.GRPCQueryRouter(),
		govModAddress,
	)
	appKeepers.ICQKeeper = &icqKeeper

	icaHostKeeper := icahostkeeper.NewKeeper(
		appCodec,
		keys[icahosttypes.StoreKey],
		appKeepers.GetSubspace(icahosttypes.SubModuleName),
		appKeepers.HooksICS4Wrapper,
		appKeepers.IBCKeeper.ChannelKeeper,
		&appKeepers.IBCKeeper.PortKeeper,
		appKeepers.AccountKeeper,
		scopedICAHostKeeper,
		bApp.MsgServiceRouter(),
	)
	appKeepers.ICAHostKeeper = &icaHostKeeper

	// required since ibc-go v7.5.0
	appKeepers.ICAHostKeeper.WithQueryRouter(bApp.GRPCQueryRouter())

	icaControllerKeeper := icacontrollerkeeper.NewKeeper(
		appCodec,
		keys[icacontrollertypes.StoreKey],
		appKeepers.GetSubspace(icacontrollertypes.SubModuleName),
		appKeepers.IBCFeeKeeper, // use ics29 fee as ics4Wrapper in middleware stack
		appKeepers.IBCKeeper.ChannelKeeper,
		&appKeepers.IBCKeeper.PortKeeper,
		scopedICAControllerKeeper,
		bApp.MsgServiceRouter(),
	)
	appKeepers.ICAControllerKeeper = &icaControllerKeeper

	// Create evidence Keeper for to register the IBC light client misbehaviour evidence route
	evidenceKeeper := evidencekeeper.NewKeeper(
		appCodec,
		keys[evidencetypes.StoreKey],
		stakingKeeper,
		appKeepers.SlashingKeeper,
	)
	// If evidence needs to be handled for the app, set routes in router here and seal
	appKeepers.EvidenceKeeper = *evidenceKeeper

	appKeepers.TokenFactoryKeeper = tokenfactorykeeper.NewKeeper(
		appCodec,
		appKeepers.keys[tokenfactorytypes.StoreKey],
		maccPerms,
		appKeepers.AccountKeeper,
		appKeepers.CyberbankKeeper.Proxy,
		appKeepers.DistrKeeper,
		tokenFactoryCapabilities,
		govModAddress,
	)

	// TODO update later to data (move wasm dir inside data directory)
	wasmDir := filepath.Join(homePath, "wasm")

	wasmConfig, err := wasm.ReadWasmConfig(appOpts)
	if err != nil {
		panic(fmt.Sprintf("error while reading wasm config: %s", err))
	}

	cyberOpts := wasmplugins.RegisterCustomPlugins(
		appKeepers.RankKeeper,
		appKeepers.GraphKeeper,
		appKeepers.DmnKeeper,
		&appKeepers.GridKeeper,
		appKeepers.BandwidthMeter,
		&appKeepers.ResourcesKeeper,
		appKeepers.IndexKeeper,
		&appKeepers.AccountKeeper,
		appKeepers.CyberbankKeeper,
		&appKeepers.BankKeeper,
		&appKeepers.TokenFactoryKeeper,
	)
	wasmOpts = append(wasmOpts, cyberOpts...)
	wasmOpts = append(wasmplugins.RegisterStargateQueries(*bApp.GRPCQueryRouter(), appCodec), wasmOpts...)

	wasmKeeper := wasmkeeper.NewKeeper(
		appCodec,
		keys[wasmtypes.StoreKey],
		appKeepers.AccountKeeper,
		appKeepers.CyberbankKeeper.Proxy,
		stakingKeeper,
		distrkeeper.NewQuerier(appKeepers.DistrKeeper),
		appKeepers.IBCFeeKeeper, // ISC4 Wrapper: fee IBC middleware
		appKeepers.IBCKeeper.ChannelKeeper,
		&appKeepers.IBCKeeper.PortKeeper,
		scopedWasmKeeper,
		appKeepers.TransferKeeper,
		bApp.MsgServiceRouter(),
		bApp.GRPCQueryRouter(),
		wasmDir,
		wasmConfig,
		wasmCapabilities,
		govModAddress,
		wasmOpts...,
	)
	appKeepers.WasmKeeper = &wasmKeeper

	// set the contract keeper for the Ics20WasmHooks
	appKeepers.ContractKeeper = wasmkeeper.NewDefaultPermissionKeeper(appKeepers.WasmKeeper)
	appKeepers.Ics20WasmHooks.ContractKeeper = appKeepers.WasmKeeper
	//appKeepers.IBCHooksKeeper.ContractKeeper = appKeepers.ContractKeeper

	appKeepers.ClockKeeper = clockkeeper.NewKeeper(
		appKeepers.keys[clocktypes.StoreKey],
		appCodec,
		*appKeepers.WasmKeeper,
		appKeepers.ContractKeeper,
		govModAddress,
	)

	appKeepers.DmnKeeper.SetWasmKeeper(*appKeepers.WasmKeeper)

	// register wasm gov proposal types
	// The gov proposal types can be individually enabled
	govRouter.AddRoute(wasm.RouterKey, wasmkeeper.NewLegacyWasmProposalHandler(appKeepers.WasmKeeper, wasmtypes.EnableAllProposals))
	// Set legacy router for backwards compatibility with gov v1beta1
	appKeepers.GovKeeper.SetLegacyRouter(govRouter)

	// Create Transfer Stack
	var transferStack porttypes.IBCModule
	transferStack = transfer.NewIBCModule(*appKeepers.TransferKeeper)
	transferStack = ibchooks.NewIBCMiddleware(transferStack, &appKeepers.HooksICS4Wrapper)
	transferStack = packetforward.NewIBCMiddleware(
		transferStack,
		appKeepers.PacketForwardKeeper,
		0,
		packetforwardkeeper.DefaultForwardTransferPacketTimeoutTimestamp,
		packetforwardkeeper.DefaultRefundTransferPacketTimeoutTimestamp,
	)
	// ibcfee must come after PFM since PFM does not understand IncentivizedAcknowlegements (ICS29)
	transferStack = ibcfee.NewIBCMiddleware(transferStack, appKeepers.IBCFeeKeeper)

	// Create Interchain Accounts Stack
	// SendPacket, since it is originating from the application to core IBC:
	// icaAuthModuleKeeper.SendTx -> icaController.SendPacket -> fee.SendPacket -> channel.SendPacket
	var icaControllerStack porttypes.IBCModule
	// integration point for custom authentication modules
	// see https://medium.com/the-interchain-foundation/ibc-go-v6-changes-to-interchain-accounts-and-how-it-impacts-your-chain-806c185300d7
	var noAuthzModule porttypes.IBCModule
	icaControllerStack = icacontroller.NewIBCMiddleware(noAuthzModule, *appKeepers.ICAControllerKeeper)
	icaControllerStack = ibcfee.NewIBCMiddleware(icaControllerStack, appKeepers.IBCFeeKeeper)

	// RecvPacket, message that originates from core IBC and goes down to app, the flow is:
	// channel.RecvPacket -> fee.OnRecvPacket -> icaHost.OnRecvPacket
	var icaHostStack porttypes.IBCModule
	icaHostStack = icahost.NewIBCModule(*appKeepers.ICAHostKeeper)
	icaHostStack = ibcfee.NewIBCMiddleware(icaHostStack, appKeepers.IBCFeeKeeper)

	// Create fee enabled wasm ibc Stack
	var wasmStack porttypes.IBCModule
	wasmStack = wasm.NewIBCHandler(appKeepers.WasmKeeper, appKeepers.IBCKeeper.ChannelKeeper, appKeepers.IBCFeeKeeper)
	wasmStack = ibcfee.NewIBCMiddleware(wasmStack, appKeepers.IBCFeeKeeper)

	// Create Async ICQ module
	icqModule := icq.NewIBCModule(*appKeepers.ICQKeeper)

	ibcRouter := porttypes.NewRouter().
		AddRoute(ibctransfertypes.ModuleName, transferStack).
		AddRoute(wasmtypes.ModuleName, wasmStack).
		AddRoute(icacontrollertypes.SubModuleName, icaControllerStack).
		AddRoute(icahosttypes.SubModuleName, icaHostStack).
		AddRoute(icqtypes.ModuleName, icqModule)
	appKeepers.IBCKeeper.SetRouter(ibcRouter)

	appKeepers.ScopedWasmKeeper = scopedWasmKeeper
	appKeepers.ScopedIBCKeeper = scopedIBCKeeper
	appKeepers.ScopedTransferKeeper = scopedTransferKeeper
	appKeepers.ScopedICQKeeper = scopedICQKeeper
	appKeepers.ScopedICAHostKeeper = scopedICAHostKeeper
	appKeepers.ScopedICAControllerKeeper = scopedICAControllerKeeper

	return appKeepers
}

func initParamsKeeper(appCodec codec.BinaryCodec, legacyAmino *codec.LegacyAmino, key, tkey storetypes.StoreKey) paramskeeper.Keeper {
	paramsKeeper := paramskeeper.NewKeeper(appCodec, legacyAmino, key, tkey)

	// https://github.com/cosmos/ibc-go/issues/2010
	// Will remove all of these in the future. For now we keep for legacy proposals to work properly.
	paramsKeeper.Subspace(authtypes.ModuleName)
	paramsKeeper.Subspace(banktypes.ModuleName)
	paramsKeeper.Subspace(distrtypes.ModuleName)
	paramsKeeper.Subspace(slashingtypes.ModuleName)
	paramsKeeper.Subspace(govtypes.ModuleName)
	paramsKeeper.Subspace(crisistypes.ModuleName)
	paramsKeeper.Subspace(stakingtypes.ModuleName)
	paramsKeeper.Subspace(minttypes.ModuleName)
	// custom
	paramsKeeper.Subspace(ibctransfertypes.ModuleName)
	paramsKeeper.Subspace(ibcexported.ModuleName)
	paramsKeeper.Subspace(icahosttypes.SubModuleName)
	paramsKeeper.Subspace(icacontrollertypes.SubModuleName)
	paramsKeeper.Subspace(icqtypes.ModuleName)
	// commented out because there are no more ParamKeyTable in packer forward module
	//paramsKeeper.Subspace(packetforwardtypes.ModuleName).WithKeyTable(packetforwardtypes.ParamKeyTable())
	paramsKeeper.Subspace(wasmtypes.ModuleName)
	paramsKeeper.Subspace(bandwidthtypes.ModuleName)
	paramsKeeper.Subspace(ranktypes.ModuleName)
	paramsKeeper.Subspace(gridtypes.ModuleName)
	paramsKeeper.Subspace(dmntypes.ModuleName)
	paramsKeeper.Subspace(resourcestypes.ModuleName)
	paramsKeeper.Subspace(liquiditytypes.ModuleName)
	paramsKeeper.Subspace(tokenfactorytypes.ModuleName)

	return paramsKeeper
}

// GetSubspace returns a param subspace for a given module name.
func (appKeepers *AppKeepers) GetSubspace(moduleName string) paramstypes.Subspace {
	subspace, _ := appKeepers.ParamsKeeper.GetSubspace(moduleName)
	return subspace
}

// BlockedAddresses returns all the app's blocked account addresses.
func BlockedAddresses() map[string]bool {
	modAccAddrs := make(map[string]bool)
	for acc := range GetMaccPerms() {
		modAccAddrs[authtypes.NewModuleAddress(acc).String()] = true
	}

	// allow the following addresses to receive funds
	delete(modAccAddrs, authtypes.NewModuleAddress(govtypes.ModuleName).String())

	return modAccAddrs
}

// GetMaccPerms returns a copy of the module account permissions
func GetMaccPerms() map[string][]string {
	dupMaccPerms := make(map[string][]string)
	for k, v := range maccPerms {
		dupMaccPerms[k] = v
	}

	return dupMaccPerms
}


================================================
FILE: app/keepers/keys.go
================================================
package keepers

import (
	wasmtypes "github.com/CosmWasm/wasmd/x/wasm/types"
	storetypes "github.com/cosmos/cosmos-sdk/store/types"
	sdk "github.com/cosmos/cosmos-sdk/types"
	authtypes "github.com/cosmos/cosmos-sdk/x/auth/types"
	authzkeeper "github.com/cosmos/cosmos-sdk/x/authz/keeper"
	banktypes "github.com/cosmos/cosmos-sdk/x/bank/types"
	capabilitytypes "github.com/cosmos/cosmos-sdk/x/capability/types"
	consensusparamtypes "github.com/cosmos/cosmos-sdk/x/consensus/types"
	crisistypes "github.com/cosmos/cosmos-sdk/x/crisis/types"
	distrtypes "github.com/cosmos/cosmos-sdk/x/distribution/types"
	evidencetypes "github.com/cosmos/cosmos-sdk/x/evidence/types"
	"github.com/cosmos/cosmos-sdk/x/feegrant"
	govtypes "github.com/cosmos/cosmos-sdk/x/gov/types"
	minttypes "github.com/cosmos/cosmos-sdk/x/mint/types"
	nftkeeper "github.com/cosmos/cosmos-sdk/x/nft/keeper"
	paramstypes "github.com/cosmos/cosmos-sdk/x/params/types"
	slashingtypes "github.com/cosmos/cosmos-sdk/x/slashing/types"
	stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types"
	upgradetypes "github.com/cosmos/cosmos-sdk/x/upgrade/types"
	packetforwardtypes "github.com/cosmos/ibc-apps/middleware/packet-forward-middleware/v7/packetforward/types"
	icqtypes "github.com/cosmos/ibc-apps/modules/async-icq/v7/types"
	ibchookstypes "github.com/cosmos/ibc-apps/modules/ibc-hooks/v7/types"
	icacontrollertypes "github.com/cosmos/ibc-go/v7/modules/apps/27-interchain-accounts/controller/types"
	icahosttypes "github.com/cosmos/ibc-go/v7/modules/apps/27-interchain-accounts/host/types"
	ibcfeetypes "github.com/cosmos/ibc-go/v7/modules/apps/29-fee/types"
	ibctransfertypes "github.com/cosmos/ibc-go/v7/modules/apps/transfer/types"
	ibcexported "github.com/cosmos/ibc-go/v7/modules/core/exported"
	clocktypes "github.com/cybercongress/go-cyber/v7/x/clock/types"
	tokenfactorytypes "github.com/cybercongress/go-cyber/v7/x/tokenfactory/types"

	liquiditytypes "github.com/cybercongress/go-cyber/v7/x/liquidity/types"

	bandwidthtypes "github.com/cybercongress/go-cyber/v7/x/bandwidth/types"
	dmntypes "github.com/cybercongress/go-cyber/v7/x/dmn/types"
	graphtypes "github.com/cybercongress/go-cyber/v7/x/graph/types"
	gridtypes "github.com/cybercongress/go-cyber/v7/x/grid/types"
	ranktypes "github.com/cybercongress/go-cyber/v7/x/rank/types"
	resourcestypes "github.com/cybercongress/go-cyber/v7/x/resources/types"
)

func (appKeepers *AppKeepers) GenerateKeys() {
	appKeepers.keys = sdk.NewKVStoreKeys(
		// defaults
		authtypes.StoreKey, banktypes.StoreKey, stakingtypes.StoreKey,
		minttypes.StoreKey, distrtypes.StoreKey, slashingtypes.StoreKey,
		govtypes.StoreKey, paramstypes.StoreKey, upgradetypes.StoreKey,
		evidencetypes.StoreKey, capabilitytypes.StoreKey,
		authzkeeper.StoreKey, feegrant.StoreKey, nftkeeper.StoreKey,
		consensusparamtypes.StoreKey, crisistypes.StoreKey,
		// non sdk store keys
		icahosttypes.StoreKey,
		icacontrollertypes.StoreKey,
		ibcexported.StoreKey,
		ibctransfertypes.StoreKey,
		ibcfeetypes.StoreKey,
		wasmtypes.StoreKey,
		packetforwardtypes.StoreKey,
		ibchookstypes.StoreKey,
		icqtypes.StoreKey,
		// our additions
		clocktypes.StoreKey,
		liquiditytypes.StoreKey,
		bandwidthtypes.StoreKey,
		graphtypes.StoreKey,
		ranktypes.StoreKey,
		gridtypes.StoreKey,
		dmntypes.StoreKey,
		resourcestypes.StoreKey,
		tokenfactorytypes.StoreKey,
	)

	appKeepers.tkeys = sdk.NewTransientStoreKeys(
		paramstypes.TStoreKey,
		graphtypes.TStoreKey,
		bandwidthtypes.TStoreKey,
	)
	appKeepers.memKeys = sdk.NewMemoryStoreKeys(capabilitytypes.MemStoreKey)
}

func (appKeepers *AppKeepers) GetKVStoreKey() map[string]*storetypes.KVStoreKey {
	return appKeepers.keys
}

func (appKeepers *AppKeepers) GetTransientStoreKey() map[string]*storetypes.TransientStoreKey {
	return appKeepers.tkeys
}

func (appKeepers *AppKeepers) GetMemoryStoreKey() map[string]*storetypes.MemoryStoreKey {
	return appKeepers.memKeys
}

// GetKey returns the KVStoreKey for the provided store key.
//
// NOTE: This is solely to be used for testing purposes.
func (appKeepers *AppKeepers) GetKey(storeKey string) *storetypes.KVStoreKey {
	return appKeepers.keys[storeKey]
}

// GetTKey returns the TransientStoreKey for the provided store key.
//
// NOTE: This is solely to be used for testing purposes.
func (appKeepers *AppKeepers) GetTKey(storeKey string) *storetypes.TransientStoreKey {
	return appKeepers.tkeys[storeKey]
}

// GetMemKey returns the MemStoreKey for the provided mem key.
//
// NOTE: This is solely used for testing purposes.
func (appKeepers *AppKeepers) GetMemKey(storeKey string) *storetypes.MemoryStoreKey {
	return appKeepers.memKeys[storeKey]
}


================================================
FILE: app/modules.go
================================================
package app

import (
	simappparams "cosmossdk.io/simapp/params"
	"github.com/CosmWasm/wasmd/x/wasm"
	wasmtypes "github.com/CosmWasm/wasmd/x/wasm/types"
	"github.com/cosmos/cosmos-sdk/types/module"
	"github.com/cosmos/cosmos-sdk/x/auth"
	authtypes "github.com/cosmos/cosmos-sdk/x/auth/types"
	"github.com/cosmos/cosmos-sdk/x/auth/vesting"
	vestingtypes "github.com/cosmos/cosmos-sdk/x/auth/vesting/types"
	"github.com/cosmos/cosmos-sdk/x/authz"
	authzmodule "github.com/cosmos/cosmos-sdk/x/authz/module"
	"github.com/cosmos/cosmos-sdk/x/bank"
	banktypes "github.com/cosmos/cosmos-sdk/x/bank/types"
	"github.com/cosmos/cosmos-sdk/x/capability"
	capabilitytypes "github.com/cosmos/cosmos-sdk/x/capability/types"
	"github.com/cosmos/cosmos-sdk/x/consensus"
	consensusparamtypes "github.com/cosmos/cosmos-sdk/x/consensus/types"
	"github.com/cosmos/cosmos-sdk/x/crisis"
	crisistypes "github.com/cosmos/cosmos-sdk/x/crisis/types"
	distr "github.com/cosmos/cosmos-sdk/x/distribution"
	distrtypes "github.com/cosmos/cosmos-sdk/x/distribution/types"
	"github.com/cosmos/cosmos-sdk/x/evidence"
	evidencetypes "github.com/cosmos/cosmos-sdk/x/evidence/types"
	"github.com/cosmos/cosmos-sdk/x/feegrant"
	feegrantmodule "github.com/cosmos/cosmos-sdk/x/feegrant/module"
	"github.com/cosmos/cosmos-sdk/x/genutil"
	genutiltypes "github.com/cosmos/cosmos-sdk/x/genutil/types"
	"github.com/cosmos/cosmos-sdk/x/gov"
	govtypes "github.com/cosmos/cosmos-sdk/x/gov/types"
	"github.com/cosmos/cosmos-sdk/x/mint"
	minttypes "github.com/cosmos/cosmos-sdk/x/mint/types"
	"github.com/cosmos/cosmos-sdk/x/nft"
	nftmodule "github.com/cosmos/cosmos-sdk/x/nft/module"
	sdkparams "github.com/cosmos/cosmos-sdk/x/params"
	paramstypes "github.com/cosmos/cosmos-sdk/x/params/types"
	"github.com/cosmos/cosmos-sdk/x/slashing"
	slashingtypes "github.com/cosmos/cosmos-sdk/x/slashing/types"
	"github.com/cosmos/cosmos-sdk/x/staking"
	stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types"
	"github.com/cosmos/cosmos-sdk/x/upgrade"
	upgradetypes "github.com/cosmos/cosmos-sdk/x/upgrade/types"
	packetforward "github.com/cosmos/ibc-apps/middleware/packet-forward-middleware/v7/packetforward"
	packetforwardtypes "github.com/cosmos/ibc-apps/middleware/packet-forward-middleware/v7/packetforward/types"
	ibchooks "github.com/cosmos/ibc-apps/modules/ibc-hooks/v7"
	ibchookstypes "github.com/cosmos/ibc-apps/modules/ibc-hooks/v7/types"
	ica "github.com/cosmos/ibc-go/v7/modules/apps/27-interchain-accounts"
	ibcfee "github.com/cosmos/ibc-go/v7/modules/apps/29-fee"
	ibcfeetypes "github.com/cosmos/ibc-go/v7/modules/apps/29-fee/types"
	"github.com/cosmos/ibc-go/v7/modules/apps/transfer"
	ibctransfertypes "github.com/cosmos/ibc-go/v7/modules/apps/transfer/types"
	ibc "github.com/cosmos/ibc-go/v7/modules/core"
	ibcexported "github.com/cosmos/ibc-go/v7/modules/core/exported"
	solomachine "github.com/cosmos/ibc-go/v7/modules/light-clients/06-solomachine"
	ibctm "github.com/cosmos/ibc-go/v7/modules/light-clients/07-tendermint"
	"github.com/cybercongress/go-cyber/v7/x/clock"
	"github.com/cybercongress/go-cyber/v7/x/tokenfactory"
	tokenfactorytypes "github.com/cybercongress/go-cyber/v7/x/tokenfactory/types"

	"github.com/cybercongress/go-cyber/v7/x/liquidity"
	liquiditytypes "github.com/cybercongress/go-cyber/v7/x/liquidity/types"

	"github.com/cybercongress/go-cyber/v7/x/bandwidth"
	bandwidthtypes "github.com/cybercongress/go-cyber/v7/x/bandwidth/types"
	"github.com/cybercongress/go-cyber/v7/x/cyberbank"
	cyberbanktypes "github.com/cybercongress/go-cyber/v7/x/cyberbank/types"
	"github.com/cybercongress/go-cyber/v7/x/dmn"
	dmntypes "github.com/cybercongress/go-cyber/v7/x/dmn/types"
	"github.com/cybercongress/go-cyber/v7/x/graph"
	graphtypes "github.com/cybercongress/go-cyber/v7/x/graph/types"
	grid "github.com/cybercongress/go-cyber/v7/x/grid"
	gridtypes "github.com/cybercongress/go-cyber/v7/x/grid/types"
	"github.com/cybercongress/go-cyber/v7/x/rank"
	ranktypes "github.com/cybercongress/go-cyber/v7/x/rank/types"
	"github.com/cybercongress/go-cyber/v7/x/resources"
	resourcestypes "github.com/cybercongress/go-cyber/v7/x/resources/types"
	stakingwrap "github.com/cybercongress/go-cyber/v7/x/staking"

	authsims "github.com/cosmos/cosmos-sdk/x/auth/simulation"
	icatypes "github.com/cosmos/ibc-go/v7/modules/apps/27-interchain-accounts/types"
	clocktypes "github.com/cybercongress/go-cyber/v7/x/clock/types"

	icq "github.com/cosmos/ibc-apps/modules/async-icq/v7"
	icqtypes "github.com/cosmos/ibc-apps/modules/async-icq/v7/types"
)

// ModuleBasics TODO add notes which modules have functional blockers
// ModuleBasics defines the module BasicManager is in charge of setting up basic,
// non-dependant module elements, such as codec registration
// and genesis verification.
var ModuleBasics = module.NewBasicManager(
	auth.AppModuleBasic{},
	genutil.NewAppModuleBasic(genutiltypes.DefaultMessageValidator),
	bank.AppModuleBasic{},
	capability.AppModuleBasic{},
	staking.AppModuleBasic{},
	mint.AppModuleBasic{},
	distr.AppModuleBasic{},
	gov.NewAppModuleBasic(getGovProposalHandlers()),
	sdkparams.AppModuleBasic{},
	crisis.AppModuleBasic{},
	slashing.AppModuleBasic{},
	upgrade.AppModuleBasic{},
	evidence.AppModuleBasic{},
	authzmodule.AppModuleBasic{},
	feegrantmodule.AppModuleBasic{},
	vesting.AppModuleBasic{},
	nftmodule.AppModuleBasic{},

	transfer.AppModuleBasic{},
	consensus.AppModuleBasic{},
	liquidity.AppModuleBasic{},
	wasm.AppModuleBasic{},
	bandwidth.AppModuleBasic{},
	cyberbank.AppModuleBasic{},
	graph.AppModuleBasic{},
	rank.AppModuleBasic{},
	grid.AppModuleBasic{},
	dmn.AppModuleBasic{},
	resources.AppModuleBasic{},
	tokenfactory.AppModuleBasic{},
	clock.AppModuleBasic{},

	ibctm.AppModuleBasic{},
	ibc.AppModuleBasic{},
	ica.AppModuleBasic{},
	ibcfee.AppModuleBasic{},
	icq.AppModuleBasic{},
	ibchooks.AppModuleBasic{},
	packetforward.AppModuleBasic{},
	solomachine.AppModuleBasic{},
)

func appModules(
	app *App,
	encodingConfig simappparams.EncodingConfig,
	skipGenesisInvariants bool,
) []module.AppModule {
	appCodec := encodingConfig.Codec

	return []module.AppModule{
		genutil.NewAppModule(
			app.AccountKeeper,
			app.StakingKeeper,
			app.BaseApp.DeliverTx,
			encodingConfig.TxConfig,
		),
		auth.NewAppModule(appCodec, app.AccountKeeper, nil, app.GetSubspace(authtypes.ModuleName)),
		vesting.NewAppModule(app.AccountKeeper, app.CyberbankKeeper.Proxy),
		bank.NewAppModule(appCodec, app.BankKeeper, app.AccountKeeper, app.GetSubspace(banktypes.ModuleName)),
		capability.NewAppModule(appCodec, *app.CapabilityKeeper, false),
		feegrantmodule.NewAppModule(appCodec, app.AccountKeeper, app.CyberbankKeeper.Proxy, app.FeeGrantKeeper, app.interfaceRegistry),
		gov.NewAppModule(appCodec, &app.GovKeeper, app.AccountKeeper, app.CyberbankKeeper.Proxy, app.GetSubspace(govtypes.ModuleName)),
		mint.NewAppModule(appCodec, app.MintKeeper, app.AccountKeeper, nil, app.GetSubspace(minttypes.ModuleName)),
		slashing.NewAppModule(appCodec, app.SlashingKeeper, app.AccountKeeper, app.CyberbankKeeper.Proxy, app.StakingKeeper, app.GetSubspace(slashingtypes.ModuleName)),
		distr.NewAppModule(appCodec, app.DistrKeeper, app.AccountKeeper, app.CyberbankKeeper.Proxy, app.StakingKeeper, app.GetSubspace(distrtypes.ModuleName)),
		upgrade.NewAppModule(app.UpgradeKeeper),
		evidence.NewAppModule(app.EvidenceKeeper),
		sdkparams.NewAppModule(app.ParamsKeeper),
		authzmodule.NewAppModule(appCodec, app.AuthzKeeper, app.AccountKeeper, app.CyberbankKeeper.Proxy, app.interfaceRegistry),
		nftmodule.NewAppModule(appCodec, app.AppKeepers.NFTKeeper, app.AppKeepers.AccountKeeper, app.CyberbankKeeper.Proxy, app.interfaceRegistry),
		crisis.NewAppModule(app.AppKeepers.CrisisKeeper, skipGenesisInvariants, app.GetSubspace(crisistypes.ModuleName)),
		consensus.NewAppModule(appCodec, app.AppKeepers.ConsensusParamsKeeper),

		wasm.NewAppModule(appCodec, app.WasmKeeper, app.StakingKeeper, app.AccountKeeper, app.CyberbankKeeper.Proxy, app.MsgServiceRouter(), app.GetSubspace(wasmtypes.ModuleName)),
		liquidity.NewAppModule(appCodec, app.LiquidityKeeper, app.AccountKeeper, app.CyberbankKeeper.Proxy, app.DistrKeeper, app.GetSubspace(liquiditytypes.ModuleName)),
		cyberbank.NewAppModule(appCodec, app.CyberbankKeeper),
		bandwidth.NewAppModule(appCodec, app.AccountKeeper, app.BandwidthMeter, app.GetSubspace(bandwidthtypes.ModuleName)),
		graph.NewAppModule(
			appCodec, app.GraphKeeper, app.IndexKeeper,
			app.AccountKeeper, app.CyberbankKeeper, app.BandwidthMeter,
		),
		rank.NewAppModule(appCodec, app.RankKeeper, app.GetSubspace(ranktypes.ModuleName)),
		grid.NewAppModule(appCodec, app.GridKeeper, app.GetSubspace(gridtypes.ModuleName)),
		dmn.NewAppModule(appCodec, *app.DmnKeeper, app.GetSubspace(dmntypes.ModuleName)),
		resources.NewAppModule(appCodec, app.ResourcesKeeper, app.GetSubspace(resourcestypes.ModuleName)),
		stakingwrap.NewAppModule(appCodec, app.StakingKeeper, app.AccountKeeper, app.CyberbankKeeper.Proxy, app.GetSubspace(stakingtypes.ModuleName)),
		// NOTE add Bank Proxy here to resolve issue when new neuron is created during token-factory token transfer
		// TODO add storage listener to update neurons memory index out of cyberbank proxy
		tokenfactory.NewAppModule(app.AppKeepers.TokenFactoryKeeper, app.AppKeepers.AccountKeeper, app.CyberbankKeeper.Proxy, app.GetSubspace(tokenfactorytypes.ModuleName)),
		clock.NewAppModule(appCodec, app.AppKeepers.ClockKeeper),

		ibc.NewAppModule(app.IBCKeeper),
		transfer.NewAppModule(*app.TransferKeeper),
		ibcfee.NewAppModule(app.IBCFeeKeeper),
		ica.NewAppModule(app.ICAControllerKeeper, app.ICAHostKeeper),
		ibchooks.NewAppModule(app.AppKeepers.AccountKeeper),
		packetforward.NewAppModule(app.PacketForwardKeeper, app.GetSubspace(packetforwardtypes.ModuleName)),
		icq.NewAppModule(*app.AppKeepers.ICQKeeper, app.GetSubspace(icqtypes.ModuleName)),
	}
}

// simulationModules returns modules for simulation manager
// define the order of the modules for deterministic simulationss
func simulationModules(
	app *App,
	encodingConfig simappparams.EncodingConfig,
	_ bool,
) []module.AppModuleSimulation {
	appCodec := encodingConfig.Codec

	return []module.AppModuleSimulation{
		auth.NewAppModule(appCodec, app.AppKeepers.AccountKeeper, authsims.RandomGenesisAccounts, app.GetSubspace(authtypes.ModuleName)),
		bank.NewAppModule(appCodec, app.AppKeepers.BankKeeper, app.AppKeepers.AccountKeeper, app.GetSubspace(banktypes.ModuleName)),
		capability.NewAppModule(appCodec, *app.AppKeepers.CapabilityKeeper, false),
		feegrantmodule.NewAppModule(appCodec, app.AppKeepers.AccountKeeper, app.AppKeepers.BankKeeper, app.AppKeepers.FeeGrantKeeper, app.interfaceRegistry),
		authzmodule.NewAppModule(appCodec, app.AppKeepers.AuthzKeeper, app.AppKeepers.AccountKeeper, app.AppKeepers.BankKeeper, app.interfaceRegistry),
		gov.NewAppModule(appCodec, &app.AppKeepers.GovKeeper, app.AppKeepers.AccountKeeper, app.AppKeepers.BankKeeper, app.GetSubspace(govtypes.ModuleName)),
		mint.NewAppModule(appCodec, app.AppKeepers.MintKeeper, app.AppKeepers.AccountKeeper, nil, app.GetSubspace(minttypes.ModuleName)),
		stakingwrap.NewAppModule(appCodec, app.AppKeepers.StakingKeeper, app.AppKeepers.AccountKeeper, app.AppKeepers.BankKeeper, app.GetSubspace(stakingtypes.ModuleName)),
		distr.NewAppModule(appCodec, app.AppKeepers.DistrKeeper, app.AppKeepers.AccountKeeper, app.AppKeepers.BankKeeper, app.AppKeepers.StakingKeeper, app.GetSubspace(distrtypes.ModuleName)),
		slashing.NewAppModule(appCodec, app.AppKeepers.SlashingKeeper, app.AppKeepers.AccountKeeper, app.AppKeepers.BankKeeper, app.AppKeepers.StakingKeeper, app.GetSubspace(stakingtypes.ModuleName)),
		sdkparams.NewAppModule(app.AppKeepers.ParamsKeeper),
		evidence.NewAppModule(app.AppKeepers.EvidenceKeeper),
		wasm.NewAppModule(appCodec, app.AppKeepers.WasmKeeper, app.AppKeepers.StakingKeeper, app.AppKeepers.AccountKeeper, app.AppKeepers.BankKeeper, app.MsgServiceRouter(), app.GetSubspace(wasmtypes.ModuleName)),
		ibc.NewAppModule(app.AppKeepers.IBCKeeper),
		transfer.NewAppModule(*app.AppKeepers.TransferKeeper),
		ibcfee.NewAppModule(app.IBCFeeKeeper),
		ica.NewAppModule(app.ICAControllerKeeper, app.ICAHostKeeper),
	}
}

// orderBeginBlockers tell the app's module manager how to set the order of
// BeginBlockers, which are run at the beginning of every block.
// NOTE: capability module's beginblocker must come before any modules using capabilities (e.g. IBC)
func orderBeginBlockers() []string {
	return []string{
		// upgrades should be run first
		upgradetypes.ModuleName,
		capabilitytypes.ModuleName,
		minttypes.ModuleName,
		distrtypes.ModuleName,
		slashingtypes.ModuleName,
		evidencetypes.ModuleName,
		stakingtypes.ModuleName,
		authtypes.ModuleName,
		banktypes.ModuleName,
		govtypes.ModuleName,
		crisistypes.ModuleName,
		ibcexported.ModuleName,
		ibctransfertypes.ModuleName,
		icatypes.ModuleName,
		packetforwardtypes.ModuleName,
		ibcfeetypes.ModuleName,
		genutiltypes.ModuleName,
		authz.ModuleName,
		feegrant.ModuleName,
		paramstypes.ModuleName,
		vestingtypes.ModuleName,
		consensusparamtypes.ModuleName,
		nft.ModuleName,
		icqtypes.ModuleName,
		ibchookstypes.ModuleName,
		// additional modules
		liquiditytypes.ModuleName,
		dmntypes.ModuleName,
		clocktypes.ModuleName,
		bandwidthtypes.ModuleName,
		cyberbanktypes.ModuleName,
		graphtypes.ModuleName,
		gridtypes.ModuleName,
		ranktypes.ModuleName,
		resourcestypes.ModuleName,
		tokenfactorytypes.ModuleName,
		wasm.ModuleName,
	}
}

func orderEndBlockers() []string {
	return []string{
		crisistypes.ModuleName,
		govtypes.ModuleName,
		stakingtypes.ModuleName,
		ibcexported.ModuleName,
		ibctransfertypes.ModuleName,
		icatypes.ModuleName,
		packetforwardtypes.ModuleName,
		capabilitytypes.ModuleName,
		ibcfeetypes.ModuleName,
		authtypes.ModuleName,
		banktypes.ModuleName,
		distrtypes.ModuleName,
		slashingtypes.ModuleName,
		minttypes.ModuleName,
		genutiltypes.ModuleName,
		evidencetypes.ModuleName,
		authz.ModuleName,
		feegrant.ModuleName,
		paramstypes.ModuleName,
		upgradetypes.ModuleName,
		vestingtypes.ModuleName,
		consensusparamtypes.ModuleName,
		nft.ModuleName,
		icqtypes.ModuleName,
		ibchookstypes.ModuleName,
		// additional modules
		clocktypes.ModuleName,
		tokenfactorytypes.ModuleName,
		dmntypes.ModuleName,
		gridtypes.ModuleName,
		resourcestypes.ModuleName,
		liquiditytypes.ModuleName,
		wasm.ModuleName,
		// TODO check end blocks
		cyberbanktypes.ModuleName,
		bandwidthtypes.ModuleName,
		graphtypes.ModuleName,
		ranktypes.ModuleName,
	}
}

// NOTE: The genutils module must occur after staking so that pools are
// properly initialized with tokens from genesis accounts.
// NOTE: The genutils module must also occur after auth so that it can access the params from auth.
// NOTE: Capability module must occur first so that it can initialize any capabilities
// so that other modules that want to create or claim capabilities afterwards in InitChain
// can do so safely.
// NOTE: wasm module should be at the end as it can call other module functionality direct or via message dispatching during
// genesis phase. For example bank transfer, auth account check, staking, ...
func orderInitBlockers() []string {
	return []string{
		capabilitytypes.ModuleName,
		authtypes.ModuleName,
		banktypes.ModuleName,
		distrtypes.ModuleName,
		govtypes.ModuleName,
		stakingtypes.ModuleName,
		slashingtypes.ModuleName,
		minttypes.ModuleName,
		crisistypes.ModuleName,
		genutiltypes.ModuleName,
		ibctransfertypes.ModuleName,
		ibcexported.ModuleName,
		icatypes.ModuleName,
		evidencetypes.ModuleName,
		authz.ModuleName,
		feegrant.ModuleName,
		packetforwardtypes.ModuleName,
		paramstypes.ModuleName,
		upgradetypes.ModuleName,
		vestingtypes.ModuleName,
		nft.ModuleName,
		consensusparamtypes.ModuleName,
		icqtypes.ModuleName,
		ibchookstypes.ModuleName,
		// additional modules
		liquiditytypes.ModuleName,
		ibcfeetypes.ModuleName,
		clocktypes.ModuleName,
		tokenfactorytypes.ModuleName,
		bandwidthtypes.ModuleName,
		ranktypes.ModuleName,
		gridtypes.ModuleName,
		resourcestypes.ModuleName,
		dmntypes.ModuleName,
		graphtypes.ModuleName,
		// NOTE: cyberbank will be initialized directly in InitChainer
		cyberbanktypes.ModuleName,
		wasm.ModuleName,
	}
}


================================================
FILE: app/params/const.go
================================================
package params

const (
	DefaultDenom = "boot"
	BondDenom    = "boot"
)


================================================
FILE: app/params/encoding.go
================================================
package params

import (
	simappparams "cosmossdk.io/simapp/params"
	"github.com/cosmos/cosmos-sdk/codec"
	"github.com/cosmos/cosmos-sdk/codec/types"
	"github.com/cosmos/cosmos-sdk/x/auth/tx"
)

// MakeEncodingConfig creates an EncodingConfig for an amino based test configuration.
func MakeEncodingConfig() simappparams.EncodingConfig {
	amino := codec.NewLegacyAmino()
	interfaceRegistry := types.NewInterfaceRegistry()
	marshaler := codec.NewProtoCodec(interfaceRegistry)
	txCfg := tx.NewTxConfig(marshaler, tx.DefaultSignModes)

	return simappparams.EncodingConfig{
		InterfaceRegistry: interfaceRegistry,
		Codec:             marshaler,
		TxConfig:          txCfg,
		Amino:             amino,
	}
}


================================================
FILE: app/params/weights.go
================================================
package params

// Simulation parameter constants
const (
	StakePerAccount           = "stake_per_account"
	InitiallyBondedValidators = "initially_bonded_validators"

	DefaultWeightMsgCreateDenom      int = 100
	DefaultWeightMsgMint             int = 100
	DefaultWeightMsgBurn             int = 100
	DefaultWeightMsgChangeAdmin      int = 100
	DefaultWeightMsgSetDenomMetadata int = 100
	DefaultWeightMsgForceTransfer    int = 100
)


================================================
FILE: app/prefix.go
================================================
package app

import (
	wasmtypes "github.com/CosmWasm/wasmd/x/wasm/types"
	sdk "github.com/cosmos/cosmos-sdk/types"
)

var (
	AccountAddressPrefix   = Bech32Prefix
	AccountPubKeyPrefix    = AccountAddressPrefix + "pub"
	ValidatorAddressPrefix = AccountAddressPrefix + "valoper"
	ValidatorPubKeyPrefix  = AccountAddressPrefix + "valoperpub"
	ConsNodeAddressPrefix  = AccountAddressPrefix + "valcons"
	ConsNodePubKeyPrefix   = AccountAddressPrefix + "valconspub"
	CoinType               = 118
)

// SetConfig sets the configuration for the network using mainnet or testnet
func SetConfig() {
	config := sdk.GetConfig()
	config.SetCoinType(uint32(CoinType))
	config.SetBech32PrefixForAccount(AccountAddressPrefix, AccountPubKeyPrefix)
	config.SetBech32PrefixForValidator(ValidatorAddressPrefix, ValidatorPubKeyPrefix)
	config.SetBech32PrefixForConsensusNode(ConsNodeAddressPrefix, ConsNodePubKeyPrefix)
	config.SetAddressVerifier(wasmtypes.VerifyAddressLen())
	config.Seal()
}


================================================
FILE: app/proof_exempt.go
================================================
package app

import (
	"encoding/json"

	wasmtypes "github.com/CosmWasm/wasmd/x/wasm/types"
	sdk "github.com/cosmos/cosmos-sdk/types"
	"github.com/cosmos/cosmos-sdk/x/auth/ante"
)

// ProofExemptDecorator conditionally skips fee deduction for
// PoW mining proof submissions to whitelisted contracts.
//
// When a transaction contains ONLY MsgExecuteContract calls
// targeting an exempt contract with a "submit_proof" message,
// the decorator bypasses DeductFeeDecorator entirely.
// This allows miners to submit proofs without holding any tokens
// for gas — the mining contract deducts gas cost from rewards.
//
// For all other transactions, normal fee deduction applies.
type ProofExemptDecorator struct {
	inner           ante.DeductFeeDecorator
	exemptContracts map[string]struct{}
}

func NewProofExemptDecorator(
	opts ante.HandlerOptions,
	exemptContracts []string,
) ProofExemptDecorator {
	contracts := make(map[string]struct{}, len(exemptContracts))
	for _, c := range exemptContracts {
		if c != "" {
			contracts[c] = struct{}{}
		}
	}
	return ProofExemptDecorator{
		inner:           ante.NewDeductFeeDecorator(opts.AccountKeeper, opts.BankKeeper, opts.FeegrantKeeper, opts.TxFeeChecker),
		exemptContracts: contracts,
	}
}

func (d ProofExemptDecorator) AnteHandle(
	ctx sdk.Context,
	tx sdk.Tx,
	simulate bool,
	next sdk.AnteHandler,
) (sdk.Context, error) {
	if d.isProofSubmission(tx) {
		// Skip fee deduction — gas cost is handled inside the contract.
		// Still call next to continue the ante chain (sig verification, etc.).
		return next(ctx, tx, simulate)
	}
	return d.inner.AnteHandle(ctx, tx, simulate, next)
}

// isProofSubmission returns true when ALL messages in the tx are
// MsgExecuteContract targeting an exempt contract with "submit_proof".
func (d ProofExemptDecorator) isProofSubmission(tx sdk.Tx) bool {
	if len(d.exemptContracts) == 0 {
		return false
	}

	msgs := tx.GetMsgs()
	if len(msgs) == 0 {
		return false
	}

	for _, msg := range msgs {
		execMsg, ok := msg.(*wasmtypes.MsgExecuteContract)
		if !ok {
			return false
		}

		if _, exempt := d.exemptContracts[execMsg.Contract]; !exempt {
			return false
		}

		// Parse just the top-level keys to check for "submit_proof"
		var payload map[string]json.RawMessage
		if err := json.Unmarshal(execMsg.Msg, &payload); err != nil {
			return false
		}
		if _, ok := payload["submit_proof"]; !ok {
			return false
		}
	}

	return true
}


================================================
FILE: app/proof_exempt_test.go
================================================
package app

import (
	"testing"

	wasmtypes "github.com/CosmWasm/wasmd/x/wasm/types"
	sdk "github.com/cosmos/cosmos-sdk/types"
	banktypes "github.com/cosmos/cosmos-sdk/x/bank/types"
)

// mockTx implements sdk.Tx for testing isProofSubmission.
type mockTx struct {
	msgs []sdk.Msg
}

func (m mockTx) GetMsgs() []sdk.Msg         { return m.msgs }
func (m mockTx) ValidateBasic() error        { return nil }

func newExecMsg(contract string, msgJSON string) *wasmtypes.MsgExecuteContract {
	return &wasmtypes.MsgExecuteContract{
		Sender:   "bostrom1sender",
		Contract: contract,
		Msg:      wasmtypes.RawContractMessage(msgJSON),
	}
}

const mineContract = "bostrom123mine"

func makeDecorator(contracts ...string) ProofExemptDecorator {
	m := make(map[string]struct{}, len(contracts))
	for _, c := range contracts {
		m[c] = struct{}{}
	}
	return ProofExemptDecorator{exemptContracts: m}
}

// --- isProofSubmission tests ---

func TestIsProofSubmission_ValidSingle(t *testing.T) {
	d := makeDecorator(mineContract)
	tx := mockTx{msgs: []sdk.Msg{
		newExecMsg(mineContract, `{"submit_proof":{"hash":"abc","nonce":1,"miner_address":"bostrom1m","challenge":"def","difficulty":8,"timestamp":1700000000}}`),
	}}
	if !d.isProofSubmission(tx) {
		t.Fatal("expected valid single submit_proof to be recognized")
	}
}

func TestIsProofSubmission_ValidBatch(t *testing.T) {
	d := makeDecorator(mineContract)
	tx := mockTx{msgs: []sdk.Msg{
		newExecMsg(mineContract, `{"submit_proof":{"hash":"a1","nonce":1,"miner_address":"m1","challenge":"c1","difficulty":8,"timestamp":1}}`),
		newExecMsg(mineContract, `{"submit_proof":{"hash":"a2","nonce":2,"miner_address":"m1","challenge":"c2","difficulty":8,"timestamp":2}}`),
	}}
	if !d.isProofSubmission(tx) {
		t.Fatal("expected batch of submit_proof to be recognized")
	}
}

func TestIsProofSubmission_WrongContract(t *testing.T) {
	d := makeDecorator(mineContract)
	tx := mockTx{msgs: []sdk.Msg{
		newExecMsg("bostrom1other", `{"submit_proof":{"hash":"abc"}}`),
	}}
	if d.isProofSubmission(tx) {
		t.Fatal("should reject non-exempt contract")
	}
}

func TestIsProofSubmission_WrongMessage(t *testing.T) {
	d := makeDecorator(mineContract)
	tx := mockTx{msgs: []sdk.Msg{
		newExecMsg(mineContract, `{"update_config":{"paused":true}}`),
	}}
	if d.isProofSubmission(tx) {
		t.Fatal("should reject non-submit_proof message")
	}
}

func TestIsProofSubmission_MixedMessages(t *testing.T) {
	d := makeDecorator(mineContract)
	tx := mockTx{msgs: []sdk.Msg{
		newExecMsg(mineContract, `{"submit_proof":{"hash":"abc"}}`),
		newExecMsg(mineContract, `{"update_config":{"paused":true}}`),
	}}
	if d.isProofSubmission(tx) {
		t.Fatal("should reject tx with mixed message types")
	}
}

func TestIsProofSubmission_NonWasmMessage(t *testing.T) {
	d := makeDecorator(mineContract)
	tx := mockTx{msgs: []sdk.Msg{
		&banktypes.MsgSend{FromAddress: "a", ToAddress: "b"},
	}}
	if d.isProofSubmission(tx) {
		t.Fatal("should reject non-wasm messages")
	}
}

func TestIsProofSubmission_ProofPlusNonWasm(t *testing.T) {
	d := makeDecorator(mineContract)
	tx := mockTx{msgs: []sdk.Msg{
		newExecMsg(mineContract, `{"submit_proof":{"hash":"abc"}}`),
		&banktypes.MsgSend{FromAddress: "a", ToAddress: "b"},
	}}
	if d.isProofSubmission(tx) {
		t.Fatal("should reject proof bundled with non-wasm message")
	}
}

func TestIsProofSubmission_EmptyTx(t *testing.T) {
	d := makeDecorator(mineContract)
	tx := mockTx{msgs: []sdk.Msg{}}
	if d.isProofSubmission(tx) {
		t.Fatal("should reject empty tx")
	}
}

func TestIsProofSubmission_NoExemptContracts(t *testing.T) {
	d := makeDecorator() // empty list
	tx := mockTx{msgs: []sdk.Msg{
		newExecMsg(mineContract, `{"submit_proof":{"hash":"abc"}}`),
	}}
	if d.isProofSubmission(tx) {
		t.Fatal("should reject when no contracts are exempt")
	}
}

func TestIsProofSubmission_InvalidJSON(t *testing.T) {
	d := makeDecorator(mineContract)
	tx := mockTx{msgs: []sdk.Msg{
		newExecMsg(mineContract, `not json`),
	}}
	if d.isProofSubmission(tx) {
		t.Fatal("should reject invalid JSON")
	}
}

func TestIsProofSubmission_MultipleExemptContracts(t *testing.T) {
	other := "bostrom456mine"
	d := makeDecorator(mineContract, other)

	tx1 := mockTx{msgs: []sdk.Msg{
		newExecMsg(mineContract, `{"submit_proof":{"hash":"abc"}}`),
	}}
	tx2 := mockTx{msgs: []sdk.Msg{
		newExecMsg(other, `{"submit_proof":{"hash":"def"}}`),
	}}
	if !d.isProofSubmission(tx1) {
		t.Fatal("should accept first exempt contract")
	}
	if !d.isProofSubmission(tx2) {
		t.Fatal("should accept second exempt contract")
	}
}


================================================
FILE: app/test_helpers.go
================================================
package app

import (
	"encoding/json"
	"path/filepath"
	"testing"
	"time"

	wasmkeeper "github.com/CosmWasm/wasmd/x/wasm/keeper"
	"github.com/stretchr/testify/require"

	dbm "github.com/cometbft/cometbft-db"
	abci "github.com/cometbft/cometbft/abci/types"
	"github.com/cometbft/cometbft/crypto"
	"github.com/cometbft/cometbft/crypto/ed25519"
	"github.com/cometbft/cometbft/libs/log"
	tmproto "github.com/cometbft/cometbft/proto/tendermint/types"
	tmtypes "github.com/cometbft/cometbft/types"

	"cosmossdk.io/math"

	bam "github.com/cosmos/cosmos-sdk/baseapp"
	"github.com/cosmos/cosmos-sdk/client/flags"
	codectypes "github.com/cosmos/cosmos-sdk/codec/types"
	cryptocodec "github.com/cosmos/cosmos-sdk/crypto/codec"
	"github.com/cosmos/cosmos-sdk/crypto/keys/secp256k1"
	"github.com/cosmos/cosmos-sdk/snapshots"
	snapshottypes "github.com/cosmos/cosmos-sdk/snapshots/types"
	simtestutil "github.com/cosmos/cosmos-sdk/testutil/sims"
	sdk "github.com/cosmos/cosmos-sdk/types"
	authtypes "github.com/cosmos/cosmos-sdk/x/auth/types"
	banktypes "github.com/cosmos/cosmos-sdk/x/bank/types"
	stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types"

	apphelpers "github.com/cybercongress/go-cyber/v7/app/helpers"
	appparams "github.com/cybercongress/go-cyber/v7/app/params"
)

// SimAppChainID hardcoded chainID for simulation
const (
	SimAppChainID = "testing"
)

// EmptyBaseAppOptions is a stub implementing AppOptions
type EmptyBaseAppOptions struct{}

// Get implements AppOptions
func (ao EmptyBaseAppOptions) Get(_ string) interface{} {
	return nil
}

// DefaultConsensusParams defines the default Tendermint consensus params used
// in junoApp testing.
var DefaultConsensusParams = &tmproto.ConsensusParams{
	Block: &tmproto.BlockParams{
		MaxBytes: 200000,
		MaxGas:   2000000,
	},
	Evidence: &tmproto.EvidenceParams{
		MaxAgeNumBlocks: 302400,
		MaxAgeDuration:  504 * time.Hour, // 3 weeks is the max duration
		MaxBytes:        10000,
	},
	Validator: &tmproto.ValidatorParams{
		PubKeyTypes: []string{
			tmtypes.ABCIPubKeyTypeEd25519,
		},
	},
}

type EmptyAppOptions struct{}

func (EmptyAppOptions) Get(_ string) interface{} { return nil }

func Setup(t *testing.T) *App {
	t.Helper()

	privVal := apphelpers.NewPV()
	pubKey, err := privVal.GetPubKey()
	require.NoError(t, err)

	// create validator set with single validator
	validator := tmtypes.NewValidator(pubKey, 1)
	valSet := tmtypes.NewValidatorSet([]*tmtypes.Validator{validator})

	// generate genesis account
	senderPrivKey := secp256k1.GenPrivKey()
	acc := authtypes.NewBaseAccount(senderPrivKey.PubKey().Address().Bytes(), senderPrivKey.PubKey(), 0, 0)
	balance := banktypes.Balance{
		Address: acc.GetAddress().String(),
		Coins:   sdk.NewCoins(sdk.NewCoin(appparams.BondDenom, sdk.NewInt(100000000000000))),
	}

	app := SetupWithGenesisValSet(t, valSet, []authtypes.GenesisAccount{acc}, balance)

	return app
}

// SetupWithGenesisValSet initializes a new junoApp with a validator set and genesis accounts
// that also act as delegators. For simplicity, each validator is bonded with a delegation
// of one consensus engine unit in the default token of the JunoApp from first genesis
// account. A Nop logger is set in JunoApp.
func SetupWithGenesisValSet(t *testing.T, valSet *tmtypes.ValidatorSet, genAccs []authtypes.GenesisAccount, balances ...banktypes.Balance) *App {
	t.Helper()

	junoApp, genesisState := setup(t, true)
	genesisState = genesisStateWithValSet(t, junoApp, genesisState, valSet, genAccs, balances...)

	stateBytes, err := json.MarshalIndent(genesisState, "", " ")
	require.NoError(t, err)

	// init chain will set the validator set and initialize the genesis accounts
	junoApp.InitChain(
		abci.RequestInitChain{
			Validators:      []abci.ValidatorUpdate{},
			ConsensusParams: DefaultConsensusParams,
			AppStateBytes:   stateBytes,
			ChainId:         "testing",
			Time:            time.Now().UTC(),
			InitialHeight:   1,
		},
	)

	// commit genesis changes
	junoApp.Commit()
	junoApp.BeginBlock(abci.RequestBeginBlock{Header: tmproto.Header{
		ChainID:            "testing",
		Height:             junoApp.LastBlockHeight() + 1,
		AppHash:            junoApp.LastCommitID().Hash,
		ValidatorsHash:     valSet.Hash(),
		NextValidatorsHash: valSet.Hash(),
		Time:               time.Now().UTC(),
	}})

	return junoApp
}

func setup(t *testing.T, withGenesis bool, opts ...wasmkeeper.Option) (*App, GenesisState) {
	db := dbm.NewMemDB()
	nodeHome := t.TempDir()
	snapshotDir := filepath.Join(nodeHome, "data", "snapshots")

	snapshotDB, err := dbm.NewDB("metadata", dbm.GoLevelDBBackend, snapshotDir)
	require.NoError(t, err)
	t.Cleanup(func() { snapshotDB.Close() })
	snapshotStore, err := snapshots.NewStore(snapshotDB, snapshotDir)
	require.NoError(t, err)

	// var emptyWasmOpts []wasm.Option
	appOptions := make(simtestutil.AppOptionsMap, 0)
	appOptions[flags.FlagHome] = nodeHome // ensure unique folder

	app := NewBostromApp(
		log.NewNopLogger(),
		db,
		nil,
		true,
		EmptyAppOptions{},
		opts,
		bam.SetChainID("testing"),
		bam.SetSnapshot(snapshotStore, snapshottypes.SnapshotOptions{KeepRecent: 2}),
	)
	if withGenesis {
		return app, NewDefaultGenesisState(app.AppCodec())
	}

	return app, GenesisState{}
}

func genesisStateWithValSet(t *testing.T,
	app *App, genesisState GenesisState,
	valSet *tmtypes.ValidatorSet, genAccs []authtypes.GenesisAccount,
	balances ...banktypes.Balance,
) GenesisState {
	codec := app.AppCodec()

	// set genesis accounts
	authGenesis := authtypes.NewGenesisState(authtypes.DefaultParams(), genAccs)
	genesisState[authtypes.ModuleName] = codec.MustMarshalJSON(authGenesis)

	validators := make([]stakingtypes.Validator, 0, len(valSet.Validators))
	delegations := make([]stakingtypes.Delegation, 0, len(valSet.Validators))

	bondAmt := sdk.DefaultPowerReduction

	for _, val := range valSet.Validators {
		pk, err := cryptocodec.FromTmPubKeyInterface(val.PubKey)
		require.NoError(t, err)
		pkAny, err := codectypes.NewAnyWithValue(pk)
		require.NoError(t, err)
		validator := stakingtypes.Validator{
			OperatorAddress:   sdk.ValAddress(val.Address).String(),
			ConsensusPubkey:   pkAny,
			Jailed:            false,
			Status:            stakingtypes.Bonded,
			Tokens:            bondAmt,
			DelegatorShares:   math.LegacyOneDec(),
			Description:       stakingtypes.Description{},
			UnbondingHeight:   int64(0),
			UnbondingTime:     time.Unix(0, 0).UTC(),
			Commission:        stakingtypes.NewCommission(math.LegacyZeroDec(), math.LegacyZeroDec(), math.LegacyZeroDec()),
			MinSelfDelegation: math.ZeroInt(),
		}
		validators = append(validators, validator)
		delegations = append(delegations, stakingtypes.NewDelegation(genAccs[0].GetAddress(), val.Address.Bytes(), math.LegacyOneDec()))

	}

	defaultStParams := stakingtypes.DefaultParams()
	stParams := stakingtypes.NewParams(
		defaultStParams.UnbondingTime,
		defaultStParams.MaxValidators,
		defaultStParams.MaxEntries,
		defaultStParams.HistoricalEntries,
		appparams.BondDenom,
		defaultStParams.MinCommissionRate, // 5%
	)

	// set validators and delegations
	stakingGenesis := stakingtypes.NewGenesisState(stParams, validators, delegations)
	genesisState[stakingtypes.ModuleName] = codec.MustMarshalJSON(stakingGenesis)

	// add bonded amount to bonded pool module account
	balances = append(balances, banktypes.Balance{
		Address: authtypes.NewModuleAddress(stakingtypes.BondedPoolName).String(),
		Coins:   sdk.Coins{sdk.NewCoin(appparams.BondDenom, bondAmt.MulRaw(int64(len(valSet.Validators))))},
	})

	totalSupply := sdk.NewCoins()
	for _, b := range balances {
		// add genesis acc tokens to total supply
		totalSupply = totalSupply.Add(b.Coins...)
	}

	// update total supply
	bankGenesis := banktypes.NewGenesisState(banktypes.DefaultGenesisState().Params, balances, totalSupply, []banktypes.Metadata{}, []banktypes.SendEnabled{})
	genesisState[banktypes.ModuleName] = codec.MustMarshalJSON(bankGenesis)
	// println("genesisStateWithValSet bankState:", string(genesisState[banktypes.ModuleName]))

	return genesisState
}

func keyPubAddr() (crypto.PrivKey, crypto.PubKey, sdk.AccAddress) {
	key := ed25519.GenPrivKey()
	pub := key.PubKey()
	addr := sdk.AccAddress(pub.Address())
	return key, pub, addr
}

func RandomAccountAddress() sdk.AccAddress {
	_, _, addr := keyPubAddr()
	return addr
}

func ExecuteRawCustom(t *testing.T, ctx sdk.Context, app *App, contract sdk.AccAddress, sender sdk.AccAddress, msg json.RawMessage, funds sdk.Coin) error {
	t.Helper()
	oracleBz, err := json.Marshal(msg)
	require.NoError(t, err)
	// no funds sent if amount is 0
	var coins sdk.Coins
	if !funds.Amount.IsNil() {
		coins = sdk.Coins{funds}
	}

	contractKeeper := wasmkeeper.NewDefaultPermissionKeeper(app.AppKeepers.WasmKeeper)
	_, err = contractKeeper.Execute(ctx, contract, sender, oracleBz, coins)
	return err
}


================================================
FILE: app/upgrades/types.go
================================================
package upgrades

import (
	tmproto "github.com/cometbft/cometbft/proto/tendermint/types"
	store "github.com/cosmos/cosmos-sdk/store/types"
	sdk "github.com/cosmos/cosmos-sdk/types"
	"github.com/cosmos/cosmos-sdk/types/module"
	upgradetypes "github.com/cosmos/cosmos-sdk/x/upgrade/types"

	"github.com/cybercongress/go-cyber/v7/app/keepers"
)

// BaseAppParamManager defines an interrace that BaseApp is expected to fullfil
// that allows upgrade handlers to modify BaseApp parameters.
type BaseAppParamManager interface {
	GetConsensusParams(ctx sdk.Context) *tmproto.ConsensusParams
	StoreConsensusParams(ctx sdk.Context, cp *tmproto.ConsensusParams)
}

// Upgrade defines a struct containing necessary fields that a SoftwareUpgradeProposal
// must have written, in order for the state migration to go smoothly.
// An upgrade must implement this struct, and then set it in the app.go.
// The app.go will then define the handler.
type Upgrade struct {
	// Upgrade version name, for the upgrade handler, e.g. `v7`
	UpgradeName string

	// CreateUpgradeHandler defines the function that creates an upgrade handler
	CreateUpgradeHandler func(
		*module.Manager,
		module.Configurator,
		*keepers.AppKeepers,
	) upgradetypes.UpgradeHandler

	// Store upgrades, should be used for any new modules introduced, new modules deleted, or store names renamed.
	StoreUpgrades store.StoreUpgrades
}

// Fork defines a struct containing the requisite fields for a non-software upgrade proposal
// Hard Fork at a given height to implement.
// There is one time code that can be added for the start of the Fork, in `BeginForkLogic`.
// Any other change in the code should be height-gated, if the goal is to have old and new binaries
// to be compatible prior to the upgrade height.
type Fork struct {
	// Upgrade version name, for the upgrade handler, e.g. `v7`
	UpgradeName string
	// heig
Download .txt
gitextract__ww5i2x0/

├── .dockerignore
├── .gitattributes
├── .github/
│   ├── ISSUE_TEMPLATE/
│   │   ├── bug_report.md
│   │   ├── feature_request.md
│   │   └── gitcoin-issue-template.md
│   └── tests.yml
├── .gitignore
├── .golangci.yml
├── .goreleaser.yml
├── CHANGELOG.md
├── CONTRIBUTING.md
├── Dockerfile
├── LICENSE
├── Makefile
├── README.md
├── app/
│   ├── ante.go
│   ├── app.go
│   ├── apptesting/
│   │   ├── events.go
│   │   └── test_suite.go
│   ├── encoding.go
│   ├── export.go
│   ├── forks.go
│   ├── genesis.go
│   ├── helpers/
│   │   ├── contracts.go
│   │   ├── global_errors.go
│   │   └── mock.go
│   ├── keepers/
│   │   ├── keepers.go
│   │   └── keys.go
│   ├── modules.go
│   ├── params/
│   │   ├── const.go
│   │   ├── encoding.go
│   │   └── weights.go
│   ├── prefix.go
│   ├── proof_exempt.go
│   ├── proof_exempt_test.go
│   ├── test_helpers.go
│   └── upgrades/
│       ├── types.go
│       ├── v2/
│       │   ├── constants.go
│       │   └── upgrades.go
│       ├── v3/
│       │   ├── constants.go
│       │   └── upgrades.go
│       ├── v4/
│       │   ├── constants.go
│       │   └── upgrades.go
│       ├── v5/
│       │   ├── constants.go
│       │   └── forks.go
│       ├── v6/
│       │   ├── burn.go
│       │   ├── constants.go
│       │   └── upgrades.go
│       └── v7/
│           ├── constants.go
│           └── upgrades.go
├── buf.work.yaml
├── client/
│   └── docs/
│       ├── docs.go
│       ├── static/
│       │   └── openapi.yml
│       ├── swagger.yaml
│       └── template/
│           └── index.tpl
├── cmd/
│   ├── cyber/
│   │   ├── cmd/
│   │   │   └── root.go
│   │   └── main.go
│   └── iavltool/
│       ├── README.md
│       ├── cmd/
│       │   └── root.go
│       └── main.go
├── contrib/
│   ├── Dockerfile
│   ├── devtools/
│   │   ├── Makefile
│   │   ├── dockerfile
│   │   └── proto-tools-installer.sh
│   ├── links-load.sh
│   ├── localnet-blocks-test.sh
│   ├── reset-chain.sh
│   └── single-node.sh
├── docker-compose.yml
├── docs/
│   ├── README.md
│   ├── cyber_ledger_guide.md
│   ├── cyberlink_content.md
│   ├── deploy_contract.md
│   ├── help/
│   │   └── problem_to_install_drivers.md
│   ├── keystore.md
│   ├── menu/
│   │   └── index.md
│   ├── multisig_guide.md
│   ├── port_forwarding_guide.md
│   ├── proto/
│   │   ├── proto-docs.md
│   │   └── protodoc-markdown.tmpl
│   ├── rpc.md
│   ├── run_validator.md
│   ├── send_txs.md
│   ├── setup_cyber_configuration.md
│   ├── setup_dev_env.md
│   ├── soft2-soft3-concepts.md
│   ├── supported_gpu_list.md
│   ├── ultimate_commands_guide.md
│   └── upgrade-plan.md
├── entrypoint.sh
├── go.mod
├── go.sum
├── merkle/
│   ├── node.go
│   ├── proof.go
│   ├── subtree.go
│   ├── tree.go
│   ├── tree_test.go
│   └── util.go
├── networks/
│   ├── bostrom/
│   │   ├── cyberfrey-upgrade-guide.md
│   │   ├── deploy_node_from_snapshot.md
│   │   ├── genesis-validator.md
│   │   ├── genesis.json
│   │   ├── gentxs/
│   │   │   ├── bloqhub.json
│   │   │   ├── gentx-0base.vc.json
│   │   │   ├── gentx-39a20a7d84c6e91c6638f5a685a13f655e050ee0.json
│   │   │   ├── gentx-5b59d7daadd971a9613b2efcc3c6eab0777f5f29.json
│   │   │   ├── gentx-5e8522bef5ceca507e05aa0d5f67f37a70222c73.json
│   │   │   ├── gentx-77d27615009fc703ece46901792cc8750cccd0de.json
│   │   │   ├── gentx-822b374bf2ca56c49fd565d149cd7cb6d175d8cb.json
│   │   │   ├── gentx-902fb751851e474133ee4ba1e646f49237b50edf.json
│   │   │   ├── gentx-Amber.json
│   │   │   ├── gentx-Bro_n_Bro.json
│   │   │   ├── gentx-Hailbiafra.json
│   │   │   ├── gentx-MindPool.json
│   │   │   ├── gentx-Nett.json
│   │   │   ├── gentx-NodeMarsel.json
│   │   │   ├── gentx-Node_masters.json
│   │   │   ├── gentx-P2P.ORG.json
│   │   │   ├── gentx-PLap.json
│   │   │   ├── gentx-POSTHUMAN.json
│   │   │   ├── gentx-StakeAngle.json
│   │   │   ├── gentx-a99b8bcb07d027895bcc2abe6baa866174b5ec23.json
│   │   │   ├── gentx-alinode.json
│   │   │   ├── gentx-blue.json
│   │   │   ├── gentx-citizen-cosmos.json
│   │   │   ├── gentx-csaxial.json
│   │   │   ├── gentx-dd4dd317f85209964232cbbe772c242c50bbbe58.json
│   │   │   ├── gentx-dobry.json
│   │   │   ├── gentx-f1b4b596730ed81d33dbcf051870f0b7b50d6306.json
│   │   │   ├── gentx-goto5k.json
│   │   │   ├── gentx-kiwi.json
│   │   │   ├── gentx-qwertys318.json
│   │   │   ├── gentx-spectrum.json
│   │   │   ├── gentx-sta.json
│   │   │   └── gentx.json
│   │   ├── peers.md
│   │   ├── unsigned-genesis.json
│   │   ├── v3-upgrade-guide.md
│   │   └── v4-upgrade-guide.md
│   └── space-pussy/
│       ├── deploy_node_from_snapshot.md
│       ├── genesis-validator.md
│       ├── genesis.json
│       ├── gentxs/
│       │   ├── bloqhub.json
│       │   ├── gentx-Citizen-Cosmos.json
│       │   ├── gentx-Developer.json
│       │   ├── gentx-Kerman.json
│       │   ├── gentx-MikeLitoris.json
│       │   ├── gentx-POSTHUMAN.json
│       │   ├── gentx-Papsan.json
│       │   ├── gentx-SAMPLE.json
│       │   ├── gentx-Stigga.json
│       │   ├── gentx-ToTheMars.json
│       │   ├── gentx-Traneco.json
│       │   ├── gentx-bro-n-bro.json
│       │   ├── gentx-chainmaniacs.json
│       │   ├── gentx-cyberG.json
│       │   ├── gentx-denwer.json
│       │   ├── gentx-goto5k.json
│       │   ├── gentx-joy_prophet.json
│       │   ├── gentx-linak.json
│       │   ├── gentx-lux8net.json
│       │   ├── gentx-space.json
│       │   ├── gentx-web34ever.json
│       │   └── mimino.json
│       ├── get_peers/
│       │   ├── getpeers.nu
│       │   └── getpeers.sh
│       ├── peers.md
│       ├── pussy_snapshot_deploy_guide.md
│       └── unsigned-genesis.json
├── plugins/
│   ├── types/
│   │   ├── custom_querier.go
│   │   ├── dispatch_msg.go
│   │   ├── stargate_querier.go
│   │   ├── stargate_queries.go
│   │   └── types.go
│   └── wasm.go
├── proto/
│   ├── buf.gen.doc.yaml
│   ├── buf.gen.gogo.yaml
│   ├── buf.gen.swagger.yaml
│   ├── buf.yaml
│   ├── cyber/
│   │   ├── bandwidth/
│   │   │   └── v1beta1/
│   │   │       ├── genesis.proto
│   │   │       ├── query.proto
│   │   │       ├── tx.proto
│   │   │       └── types.proto
│   │   ├── clock/
│   │   │   └── v1/
│   │   │       ├── clock.proto
│   │   │       ├── genesis.proto
│   │   │       ├── query.proto
│   │   │       └── tx.proto
│   │   ├── dmn/
│   │   │   └── v1beta1/
│   │   │       ├── genesis.proto
│   │   │       ├── query.proto
│   │   │       ├── tx.proto
│   │   │       └── types.proto
│   │   ├── graph/
│   │   │   └── v1beta1/
│   │   │       ├── query.proto
│   │   │       ├── tx.proto
│   │   │       └── types.proto
│   │   ├── grid/
│   │   │   └── v1beta1/
│   │   │       ├── genesis.proto
│   │   │       ├── query.proto
│   │   │       ├── tx.proto
│   │   │       └── types.proto
│   │   ├── liquidity/
│   │   │   └── v1beta1/
│   │   │       ├── genesis.proto
│   │   │       ├── liquidity.proto
│   │   │       ├── query.proto
│   │   │       └── tx.proto
│   │   ├── rank/
│   │   │   └── v1beta1/
│   │   │       ├── genesis.proto
│   │   │       ├── pagination.proto
│   │   │       ├── query.proto
│   │   │       ├── tx.proto
│   │   │       └── types.proto
│   │   └── resources/
│   │       └── v1beta1/
│   │           ├── genesis.proto
│   │           ├── query.proto
│   │           ├── tx.proto
│   │           └── types.proto
│   └── osmosis/
│       └── tokenfactory/
│           └── v1beta1/
│               ├── authority_metadata.proto
│               ├── genesis.proto
│               ├── params.proto
│               ├── query.proto
│               └── tx.proto
├── scripts/
│   ├── install_cyber.sh
│   ├── merge_protoc.py
│   ├── protoc_swagger_openapi_gen.sh
│   └── protocgen.sh
├── start_script.sh
├── types/
│   ├── account.go
│   └── coins.go
├── utils/
│   ├── context.go
│   └── io.go
└── x/
    ├── bandwidth/
    │   ├── abci.go
    │   ├── client/
    │   │   └── cli/
    │   │       └── query.go
    │   ├── exported/
    │   │   └── exported.go
    │   ├── keeper/
    │   │   ├── blocks.go
    │   │   ├── genesis.go
    │   │   ├── grpc_query.go
    │   │   ├── keeper.go
    │   │   ├── migrator.go
    │   │   ├── msg_server.go
    │   │   └── snapshotter.go
    │   ├── migrations/
    │   │   └── v2/
    │   │       └── migrate.go
    │   ├── module.go
    │   ├── spec/
    │   │   ├── 00_concepts.md
    │   │   ├── 01_api.md
    │   │   ├── 02_state.md
    │   │   ├── 03_state_transitions.md
    │   │   ├── 06_params.md
    │   │   ├── 07_wasm.md
    │   │   ├── 08_errors.md
    │   │   ├── 09_cli.md
    │   │   └── README.md
    │   ├── types/
    │   │   ├── codec.go
    │   │   ├── errors.go
    │   │   ├── expected_keepers.go
    │   │   ├── genesis.go
    │   │   ├── genesis.pb.go
    │   │   ├── keys.go
    │   │   ├── msgs.go
    │   │   ├── params.go
    │   │   ├── params_legacy.go
    │   │   ├── query.pb.go
    │   │   ├── query.pb.gw.go
    │   │   ├── tx.pb.go
    │   │   └── types.pb.go
    │   └── wasm/
    │       └── interface.go
    ├── clock/
    │   ├── README.md
    │   ├── abci.go
    │   ├── abci_test.go
    │   ├── client/
    │   │   └── cli/
    │   │       ├── query.go
    │   │       └── tx.go
    │   ├── genesis.go
    │   ├── genesis_test.go
    │   ├── keeper/
    │   │   ├── clock.go
    │   │   ├── keeper.go
    │   │   ├── keeper_test.go
    │   │   ├── msg_server.go
    │   │   ├── msg_server_test.go
    │   │   ├── querier.go
    │   │   └── querier_test.go
    │   ├── module.go
    │   ├── spec/
    │   │   ├── 01_concepts.md
    │   │   ├── 02_state.md
    │   │   ├── 03_integration.md
    │   │   ├── 04_clients.md
    │   │   └── README.md
    │   └── types/
    │       ├── clock.pb.go
    │       ├── codec.go
    │       ├── codec_test.go
    │       ├── errors.go
    │       ├── genesis.pb.go
    │       ├── keys.go
    │       ├── msgs.go
    │       ├── msgs_test.go
    │       ├── params.go
    │       ├── params_test.go
    │       ├── query.pb.go
    │       ├── query.pb.gw.go
    │       ├── tx.pb.go
    │       └── tx.pb.gw.go
    ├── cyberbank/
    │   ├── abci.go
    │   ├── keeper/
    │   │   ├── genesis.go
    │   │   ├── keeper.go
    │   │   ├── proxy.go
    │   │   └── snapshotter.go
    │   ├── module.go
    │   ├── spec/
    │   │   ├── 00_concepts.md
    │   │   ├── 02_state.md
    │   │   ├── 03_state_transitions.md
    │   │   └── README.md
    │   └── types/
    │       ├── expected_keepers.go
    │       ├── hook.go
    │       └── keys.go
    ├── dmn/
    │   ├── abci.go
    │   ├── client/
    │   │   └── cli/
    │   │       └── query.go
    │   ├── exported/
    │   │   └── exported.go
    │   ├── keeper/
    │   │   ├── genesis.go
    │   │   ├── grpc_query.go
    │   │   ├── keeper.go
    │   │   ├── migrator.go
    │   │   └── msg_server.go
    │   ├── migrations/
    │   │   └── v2/
    │   │       └── migrate.go
    │   ├── module.go
    │   ├── types/
    │   │   ├── codec.go
    │   │   ├── errors.go
    │   │   ├── events.go
    │   │   ├── expected_keepers.go
    │   │   ├── genesis.go
    │   │   ├── genesis.pb.go
    │   │   ├── keys.go
    │   │   ├── msgs.go
    │   │   ├── params.go
    │   │   ├── params_legacy.go
    │   │   ├── querier.go
    │   │   ├── query.pb.go
    │   │   ├── query.pb.gw.go
    │   │   ├── thought.go
    │   │   ├── tx.pb.go
    │   │   └── types.pb.go
    │   └── wasm/
    │       └── interface.go
    ├── graph/
    │   ├── abci.go
    │   ├── client/
    │   │   └── cli/
    │   │       ├── query.go
    │   │       └── tx.go
    │   ├── keeper/
    │   │   ├── genesis.go
    │   │   ├── graph.go
    │   │   ├── grpc_query.go
    │   │   ├── index.go
    │   │   ├── msg_server.go
    │   │   ├── neudeg.go
    │   │   ├── particles.go
    │   │   └── snapshotter.go
    │   ├── module.go
    │   ├── types/
    │   │   ├── codec.go
    │   │   ├── compact_link.go
    │   │   ├── cyberlinks.go
    │   │   ├── errors.go
    │   │   ├── events.go
    │   │   ├── keys.go
    │   │   ├── msgs.go
    │   │   ├── particles_filter.go
    │   │   ├── querier.go
    │   │   ├── query.pb.go
    │   │   ├── query.pb.gw.go
    │   │   ├── tx.pb.go
    │   │   └── types.pb.go
    │   └── wasm/
    │       └── interface.go
    ├── grid/
    │   ├── client/
    │   │   └── cli/
    │   │       ├── query.go
    │   │       └── tx.go
    │   ├── exported/
    │   │   └── exported.go
    │   ├── keeper/
    │   │   ├── genesis.go
    │   │   ├── grpc_query.go
    │   │   ├── keeper.go
    │   │   ├── migrator.go
    │   │   └── msg_server.go
    │   ├── migrations/
    │   │   └── v2/
    │   │       └── migrate.go
    │   ├── module.go
    │   ├── spec/
    │   │   ├── 00_concepts.md
    │   │   ├── 01_api.md
    │   │   ├── 02_state.md
    │   │   ├── 03_state_transitions.md
    │   │   ├── 04_messages.md
    │   │   ├── 05_events.md
    │   │   ├── 06_params.md
    │   │   ├── 07_wasm.md
    │   │   ├── 08_errors.md
    │   │   ├── 09_cli.md
    │   │   └── README.md
    │   ├── types/
    │   │   ├── codec.go
    │   │   ├── errors.go
    │   │   ├── events.go
    │   │   ├── expected_keepers.go
    │   │   ├── genesis.go
    │   │   ├── genesis.pb.go
    │   │   ├── keys.go
    │   │   ├── msgs.go
    │   │   ├── params.go
    │   │   ├── params_legacy.go
    │   │   ├── query.pb.go
    │   │   ├── query.pb.gw.go
    │   │   ├── route.go
    │   │   ├── tx.pb.go
    │   │   └── types.pb.go
    │   └── wasm/
    │       └── interface.go
    ├── liquidity/
    │   ├── abci.go
    │   ├── client/
    │   │   └── cli/
    │   │       ├── flags.go
    │   │       ├── query.go
    │   │       └── tx.go
    │   ├── exported/
    │   │   └── exported.go
    │   ├── genesis.go
    │   ├── handler.go
    │   ├── keeper/
    │   │   ├── batch.go
    │   │   ├── genesis.go
    │   │   ├── grpc_query.go
    │   │   ├── invariants.go
    │   │   ├── keeper.go
    │   │   ├── liquidity_pool.go
    │   │   ├── migrator.go
    │   │   ├── msg_server.go
    │   │   ├── store.go
    │   │   └── swap.go
    │   ├── migrations/
    │   │   └── v3/
    │   │       └── migrate.go
    │   ├── module.go
    │   ├── spec/
    │   │   ├── 01_concepts.md
    │   │   ├── 02_state.md
    │   │   ├── 03_state_transitions.md
    │   │   ├── 04_messages.md
    │   │   ├── 05_begin_block.md
    │   │   ├── 06_end_block.md
    │   │   ├── 07_events.md
    │   │   ├── 08_params.md
    │   │   └── README.md
    │   ├── types/
    │   │   ├── codec.go
    │   │   ├── codec_test.go
    │   │   ├── errors.go
    │   │   ├── events.go
    │   │   ├── expected_keepers.go
    │   │   ├── genesis.go
    │   │   ├── genesis.pb.go
    │   │   ├── keys.go
    │   │   ├── liquidity.pb.go
    │   │   ├── liquidity_pool.go
    │   │   ├── msgs.go
    │   │   ├── params.go
    │   │   ├── params_legacy.go
    │   │   ├── querier.go
    │   │   ├── query.pb.go
    │   │   ├── query.pb.gw.go
    │   │   ├── swap.go
    │   │   ├── tx.pb.go
    │   │   └── utils.go
    │   └── wasm/
    │       └── liquidity.go
    ├── rank/
    │   ├── abci.go
    │   ├── client/
    │   │   └── cli/
    │   │       └── query.go
    │   ├── cuda/
    │   │   ├── Makefile
    │   │   ├── cbdrank.h
    │   │   ├── rank.cu
    │   │   ├── test_rank.cu
    │   │   └── types.h
    │   ├── exported/
    │   │   └── exported.go
    │   ├── keeper/
    │   │   ├── calculate.go
    │   │   ├── calculate_cpu.go
    │   │   ├── calculate_gpu.go
    │   │   ├── calculate_gpu_nop.go
    │   │   ├── calculate_mock.go
    │   │   ├── genesis.go
    │   │   ├── grpc_query.go
    │   │   ├── keeper.go
    │   │   ├── migrator.go
    │   │   ├── msg_server.go
    │   │   └── snapshotter.go
    │   ├── migrations/
    │   │   └── v2/
    │   │       └── migrate.go
    │   ├── module.go
    │   ├── types/
    │   │   ├── codec.go
    │   │   ├── compute.go
    │   │   ├── context.go
    │   │   ├── expected_keepers.go
    │   │   ├── genesis.go
    │   │   ├── genesis.pb.go
    │   │   ├── index.go
    │   │   ├── index_types.go
    │   │   ├── keys.go
    │   │   ├── msgs.go
    │   │   ├── pagination.pb.go
    │   │   ├── params.go
    │   │   ├── params_legacy.go
    │   │   ├── querier.go
    │   │   ├── query.pb.go
    │   │   ├── query.pb.gw.go
    │   │   ├── rank.go
    │   │   ├── tx.pb.go
    │   │   └── types.pb.go
    │   └── wasm/
    │       └── interface.go
    ├── resources/
    │   ├── client/
    │   │   └── cli/
    │   │       ├── query.go
    │   │       └── tx.go
    │   ├── exported/
    │   │   └── exported.go
    │   ├── keeper/
    │   │   ├── genesis.go
    │   │   ├── grpc_query.go
    │   │   ├── keeper.go
    │   │   ├── migrator.go
    │   │   └── msg_server.go
    │   ├── migrations/
    │   │   └── v2/
    │   │       └── migrate.go
    │   ├── module.go
    │   ├── spec/
    │   │   ├── 00_concepts.md
    │   │   ├── 01_api.md
    │   │   ├── 02_state.md
    │   │   ├── 03_state_transitions.md
    │   │   ├── 04_messages.md
    │   │   ├── 05_events.md
    │   │   ├── 06_params.md
    │   │   ├── 07_wasm.md
    │   │   ├── 08_errors.md
    │   │   ├── 09_cli.md
    │   │   └── README.md
    │   ├── types/
    │   │   ├── account.go
    │   │   ├── codec.go
    │   │   ├── errors.go
    │   │   ├── events.go
    │   │   ├── expected_keepers.go
    │   │   ├── genesis.go
    │   │   ├── genesis.pb.go
    │   │   ├── keys.go
    │   │   ├── msgs.go
    │   │   ├── params.go
    │   │   ├── params_legacy.go
    │   │   ├── period.go
    │   │   ├── query.pb.go
    │   │   ├── query.pb.gw.go
    │   │   ├── tx.pb.go
    │   │   └── types.pb.go
    │   └── wasm/
    │       └── interface.go
    ├── staking/
    │   ├── module.go
    │   └── msg_server.go
    └── tokenfactory/
        ├── README.md
        ├── client/
        │   └── cli/
        │       ├── query.go
        │       └── tx.go
        ├── exported/
        │   └── exported.go
        ├── keeper/
        │   ├── admins.go
        │   ├── admins_test.go
        │   ├── bankactions.go
        │   ├── createdenom.go
        │   ├── createdenom_test.go
        │   ├── creators.go
        │   ├── genesis.go
        │   ├── genesis_test.go
        │   ├── grpc_query.go
        │   ├── keeper.go
        │   ├── keeper_test.go
        │   ├── migrator.go
        │   ├── msg_server.go
        │   ├── msg_server_test.go
        │   └── params.go
        ├── migrations/
        │   └── v2/
        │       ├── migrate.go
        │       └── migrate_test.go
        ├── module.go
        ├── testhelpers/
        │   └── authz.go
        ├── types/
        │   ├── authorityMetadata.go
        │   ├── authorityMetadata.pb.go
        │   ├── capabilities.go
        │   ├── codec.go
        │   ├── codec_test.go
        │   ├── denoms.go
        │   ├── denoms_test.go
        │   ├── errors.go
        │   ├── events.go
        │   ├── expected_keepers.go
        │   ├── genesis.go
        │   ├── genesis.pb.go
        │   ├── genesis_test.go
        │   ├── keys.go
        │   ├── msgs.go
        │   ├── msgs_test.go
        │   ├── params.go
        │   ├── params.pb.go
        │   ├── params_legacy.go
        │   ├── query.pb.go
        │   ├── query.pb.gw.go
        │   └── tx.pb.go
        └── wasm/
            ├── custom_msg_test.go
            ├── custom_query_test.go
            ├── helpers_test.go
            ├── message_plugin.go
            ├── queries.go
            ├── query_plugin.go
            ├── types/
            │   ├── msg.go
            │   ├── query.go
            │   └── types.go
            ├── validate_msg_test.go
            └── validate_queries_test.go
Download .txt
Showing preview only (591K chars total). Download the full file or copy to clipboard to get everything.
SYMBOL INDEX (6107 symbols across 349 files)

FILE: app/ante.go
  type HandlerOptions (line 18) | type HandlerOptions struct
  function NewAnteHandler (line 34) | func NewAnteHandler(options HandlerOptions) (sdk.AnteHandler, error) {

FILE: app/app.go
  constant appName (line 90) | appName = "BostromHub"
  constant Name (line 91) | Name    = "bostrom"
  function getGovProposalHandlers (line 111) | func getGovProposalHandlers() []govclient.ProposalHandler {
  type App (line 134) | type App struct
    method setPostHandler (line 340) | func (app *App) setPostHandler() {
    method Name (line 352) | func (app *App) Name() string {
    method BeginBlocker (line 357) | func (app *App) BeginBlocker(ctx sdk.Context, req abci.RequestBeginBlo...
    method EndBlocker (line 363) | func (app *App) EndBlocker(ctx sdk.Context, req abci.RequestEndBlock) ...
    method InitChainer (line 368) | func (app *App) InitChainer(ctx sdk.Context, req abci.RequestInitChain...
    method LoadHeight (line 394) | func (app *App) LoadHeight(height int64) error {
    method ModuleAccountAddrs (line 399) | func (app *App) ModuleAccountAddrs() map[string]bool {
    method LegacyAmino (line 412) | func (app *App) LegacyAmino() *codec.LegacyAmino {
    method AppCodec (line 420) | func (app *App) AppCodec() codec.Codec {
    method InterfaceRegistry (line 425) | func (app *App) InterfaceRegistry() types.InterfaceRegistry {
    method GetSubspace (line 432) | func (app *App) GetSubspace(moduleName string) paramstypes.Subspace {
    method RegisterAPIRoutes (line 439) | func (app *App) RegisterAPIRoutes(apiSvr *api.Server, apiConfig config...
    method RegisterTxService (line 458) | func (app *App) RegisterTxService(clientCtx client.Context) {
    method RegisterTendermintService (line 463) | func (app *App) RegisterTendermintService(clientCtx client.Context) {
    method RegisterNodeService (line 472) | func (app *App) RegisterNodeService(clientCtx client.Context) {
    method setupUpgradeStoreLoaders (line 477) | func (app *App) setupUpgradeStoreLoaders() {
    method setupUpgradeHandlers (line 497) | func (app *App) setupUpgradeHandlers(cfg module.Configurator) {
    method SimulationManager (line 511) | func (app *App) SimulationManager() *module.SimulationManager {
    method loadContexts (line 523) | func (app *App) loadContexts(db dbm.DB, ctx sdk.Context) {
  function NewBostromApp (line 153) | func NewBostromApp(
  function MakeCodecs (line 518) | func MakeCodecs() (codec.Codec, *codec.LegacyAmino) {
  function InitAppForTestnet (line 572) | func InitAppForTestnet(app *App, newValAddr bytes.HexBytes, newValPubKey...

FILE: app/apptesting/events.go
  method AssertEventEmitted (line 7) | func (s *KeeperTestHelper) AssertEventEmitted(ctx sdk.Context, eventType...

FILE: app/apptesting/test_suite.go
  type KeeperTestHelper (line 42) | type KeeperTestHelper struct
    method Setup (line 59) | func (s *KeeperTestHelper) Setup() {
    method SetupTestForInitGenesis (line 73) | func (s *KeeperTestHelper) SetupTestForInitGenesis() {
    method CreateTestContext (line 83) | func (s *KeeperTestHelper) CreateTestContext() sdk.Context {
    method CreateTestContextWithMultiStore (line 89) | func (s *KeeperTestHelper) CreateTestContextWithMultiStore() (sdk.Cont...
    method Commit (line 99) | func (s *KeeperTestHelper) Commit() {
    method FundAcc (line 109) | func (s *KeeperTestHelper) FundAcc(acc sdk.AccAddress, amounts sdk.Coi...
    method FundModuleAcc (line 115) | func (s *KeeperTestHelper) FundModuleAcc(moduleName string, amounts sd...
    method MintCoins (line 120) | func (s *KeeperTestHelper) MintCoins(coins sdk.Coins) {
    method SetupValidator (line 126) | func (s *KeeperTestHelper) SetupValidator(bondStatus stakingtypes.Bond...
    method BeginNewBlock (line 163) | func (s *KeeperTestHelper) BeginNewBlock() {
    method BeginNewBlockWithProposer (line 182) | func (s *KeeperTestHelper) BeginNewBlockWithProposer(proposer sdk.ValA...
    method EndBlock (line 210) | func (s *KeeperTestHelper) EndBlock() {
    method AllocateRewardsToValidator (line 216) | func (s *KeeperTestHelper) AllocateRewardsToValidator(valAddr sdk.ValA...
    method BuildTx (line 232) | func (s *KeeperTestHelper) BuildTx(
    method ConfirmUpgradeSucceeded (line 252) | func (s *KeeperTestHelper) ConfirmUpgradeSucceeded(upgradeName string,...
  function CreateRandomAccounts (line 268) | func CreateRandomAccounts(numAccts int) []sdk.AccAddress {
  function TestMessageAuthzSerialization (line 278) | func TestMessageAuthzSerialization(t *testing.T, msg sdk.Msg) {
  function GenerateTestAddrs (line 318) | func GenerateTestAddrs() (string, string) {

FILE: app/encoding.go
  function MakeEncodingConfig (line 10) | func MakeEncodingConfig() simappparams.EncodingConfig {

FILE: app/export.go
  method ExportAppStateAndValidators (line 14) | func (app *App) ExportAppStateAndValidators(forZeroHeight bool, jailAllo...

FILE: app/forks.go
  function BeginBlockForks (line 8) | func BeginBlockForks(ctx sdk.Context, app *App) {

FILE: app/genesis.go
  type GenesisState (line 16) | type GenesisState
  function NewDefaultGenesisState (line 19) | func NewDefaultGenesisState(cdc codec.JSONCodec) GenesisState {

FILE: app/helpers/contracts.go
  function ExecuteContract (line 11) | func ExecuteContract(k wasmtypes.ContractOpsKeeper, childCtx sdk.Context...
  function IsOutOfGasError (line 29) | func IsOutOfGasError(err any) (bool, string) {

FILE: app/helpers/global_errors.go
  constant codespace (line 9) | codespace = "cyber-global"

FILE: app/helpers/mock.go
  type PV (line 17) | type PV struct
    method GetPubKey (line 26) | func (pv PV) GetPubKey() (crypto.PubKey, error) {
    method SignVote (line 31) | func (pv PV) SignVote(chainID string, vote *tmproto.Vote) error {
    method SignProposal (line 42) | func (pv PV) SignProposal(chainID string, proposal *tmproto.Proposal) ...
  function NewPV (line 21) | func NewPV() PV {

FILE: app/keepers/keepers.go
  type AppKeepers (line 147) | type AppKeepers struct
    method GetSubspace (line 766) | func (appKeepers *AppKeepers) GetSubspace(moduleName string) paramstyp...
  function NewAppKeepers (line 208) | func NewAppKeepers(
  function initParamsKeeper (line 732) | func initParamsKeeper(appCodec codec.BinaryCodec, legacyAmino *codec.Leg...
  function BlockedAddresses (line 772) | func BlockedAddresses() map[string]bool {
  function GetMaccPerms (line 785) | func GetMaccPerms() map[string][]string {

FILE: app/keepers/keys.go
  method GenerateKeys (line 44) | func (appKeepers *AppKeepers) GenerateKeys() {
  method GetKVStoreKey (line 83) | func (appKeepers *AppKeepers) GetKVStoreKey() map[string]*storetypes.KVS...
  method GetTransientStoreKey (line 87) | func (appKeepers *AppKeepers) GetTransientStoreKey() map[string]*storety...
  method GetMemoryStoreKey (line 91) | func (appKeepers *AppKeepers) GetMemoryStoreKey() map[string]*storetypes...
  method GetKey (line 98) | func (appKeepers *AppKeepers) GetKey(storeKey string) *storetypes.KVStor...
  method GetTKey (line 105) | func (appKeepers *AppKeepers) GetTKey(storeKey string) *storetypes.Trans...
  method GetMemKey (line 112) | func (appKeepers *AppKeepers) GetMemKey(storeKey string) *storetypes.Mem...

FILE: app/modules.go
  function appModules (line 135) | func appModules(
  function simulationModules (line 196) | func simulationModules(
  function orderBeginBlockers (line 227) | func orderBeginBlockers() []string {
  function orderEndBlockers (line 270) | func orderEndBlockers() []string {
  function orderInitBlockers (line 321) | func orderInitBlockers() []string {

FILE: app/params/const.go
  constant DefaultDenom (line 4) | DefaultDenom = "boot"
  constant BondDenom (line 5) | BondDenom    = "boot"

FILE: app/params/encoding.go
  function MakeEncodingConfig (line 11) | func MakeEncodingConfig() simappparams.EncodingConfig {

FILE: app/params/weights.go
  constant StakePerAccount (line 5) | StakePerAccount           = "stake_per_account"
  constant InitiallyBondedValidators (line 6) | InitiallyBondedValidators = "initially_bonded_validators"
  constant DefaultWeightMsgCreateDenom (line 8) | DefaultWeightMsgCreateDenom      int = 100
  constant DefaultWeightMsgMint (line 9) | DefaultWeightMsgMint             int = 100
  constant DefaultWeightMsgBurn (line 10) | DefaultWeightMsgBurn             int = 100
  constant DefaultWeightMsgChangeAdmin (line 11) | DefaultWeightMsgChangeAdmin      int = 100
  constant DefaultWeightMsgSetDenomMetadata (line 12) | DefaultWeightMsgSetDenomMetadata int = 100
  constant DefaultWeightMsgForceTransfer (line 13) | DefaultWeightMsgForceTransfer    int = 100

FILE: app/prefix.go
  function SetConfig (line 19) | func SetConfig() {

FILE: app/proof_exempt.go
  type ProofExemptDecorator (line 21) | type ProofExemptDecorator struct
    method AnteHandle (line 42) | func (d ProofExemptDecorator) AnteHandle(
    method isProofSubmission (line 58) | func (d ProofExemptDecorator) isProofSubmission(tx sdk.Tx) bool {
  function NewProofExemptDecorator (line 26) | func NewProofExemptDecorator(

FILE: app/proof_exempt_test.go
  type mockTx (line 12) | type mockTx struct
    method GetMsgs (line 16) | func (m mockTx) GetMsgs() []sdk.Msg         { return m.msgs }
    method ValidateBasic (line 17) | func (m mockTx) ValidateBasic() error        { return nil }
  function newExecMsg (line 19) | func newExecMsg(contract string, msgJSON string) *wasmtypes.MsgExecuteCo...
  constant mineContract (line 27) | mineContract = "bostrom123mine"
  function makeDecorator (line 29) | func makeDecorator(contracts ...string) ProofExemptDecorator {
  function TestIsProofSubmission_ValidSingle (line 39) | func TestIsProofSubmission_ValidSingle(t *testing.T) {
  function TestIsProofSubmission_ValidBatch (line 49) | func TestIsProofSubmission_ValidBatch(t *testing.T) {
  function TestIsProofSubmission_WrongContract (line 60) | func TestIsProofSubmission_WrongContract(t *testing.T) {
  function TestIsProofSubmission_WrongMessage (line 70) | func TestIsProofSubmission_WrongMessage(t *testing.T) {
  function TestIsProofSubmission_MixedMessages (line 80) | func TestIsProofSubmission_MixedMessages(t *testing.T) {
  function TestIsProofSubmission_NonWasmMessage (line 91) | func TestIsProofSubmission_NonWasmMessage(t *testing.T) {
  function TestIsProofSubmission_ProofPlusNonWasm (line 101) | func TestIsProofSubmission_ProofPlusNonWasm(t *testing.T) {
  function TestIsProofSubmission_EmptyTx (line 112) | func TestIsProofSubmission_EmptyTx(t *testing.T) {
  function TestIsProofSubmission_NoExemptContracts (line 120) | func TestIsProofSubmission_NoExemptContracts(t *testing.T) {
  function TestIsProofSubmission_InvalidJSON (line 130) | func TestIsProofSubmission_InvalidJSON(t *testing.T) {
  function TestIsProofSubmission_MultipleExemptContracts (line 140) | func TestIsProofSubmission_MultipleExemptContracts(t *testing.T) {

FILE: app/test_helpers.go
  constant SimAppChainID (line 41) | SimAppChainID = "testing"
  type EmptyBaseAppOptions (line 45) | type EmptyBaseAppOptions struct
    method Get (line 48) | func (ao EmptyBaseAppOptions) Get(_ string) interface{} {
  type EmptyAppOptions (line 71) | type EmptyAppOptions struct
    method Get (line 73) | func (EmptyAppOptions) Get(_ string) interface{} { return nil }
  function Setup (line 75) | func Setup(t *testing.T) *App {
  function SetupWithGenesisValSet (line 103) | func SetupWithGenesisValSet(t *testing.T, valSet *tmtypes.ValidatorSet, ...
  function setup (line 138) | func setup(t *testing.T, withGenesis bool, opts ...wasmkeeper.Option) (*...
  function genesisStateWithValSet (line 170) | func genesisStateWithValSet(t *testing.T,
  function keyPubAddr (line 243) | func keyPubAddr() (crypto.PrivKey, crypto.PubKey, sdk.AccAddress) {
  function RandomAccountAddress (line 250) | func RandomAccountAddress() sdk.AccAddress {
  function ExecuteRawCustom (line 255) | func ExecuteRawCustom(t *testing.T, ctx sdk.Context, app *App, contract ...

FILE: app/upgrades/types.go
  type BaseAppParamManager (line 15) | type BaseAppParamManager interface
  type Upgrade (line 24) | type Upgrade struct
  type Fork (line 44) | type Fork struct

FILE: app/upgrades/v2/constants.go
  constant UpgradeName (line 9) | UpgradeName = "cyberfrey"

FILE: app/upgrades/v2/upgrades.go
  function CreateV2UpgradeHandler (line 11) | func CreateV2UpgradeHandler(

FILE: app/upgrades/v3/constants.go
  constant UpgradeName (line 10) | UpgradeName = "v3"

FILE: app/upgrades/v3/upgrades.go
  function CreateV3UpgradeHandler (line 15) | func CreateV3UpgradeHandler(

FILE: app/upgrades/v4/constants.go
  constant UpgradeName (line 21) | UpgradeName = "v4"

FILE: app/upgrades/v4/upgrades.go
  constant NewDenomCreationGasConsume (line 42) | NewDenomCreationGasConsume uint64 = 2_000_000
  function CreateV4UpgradeHandler (line 44) | func CreateV4UpgradeHandler(

FILE: app/upgrades/v5/constants.go
  constant UpgradeName (line 8) | UpgradeName = "v5"
  constant UpgradeHeight (line 10) | UpgradeHeight = 15_700_805

FILE: app/upgrades/v5/forks.go
  function RunForkLogic (line 8) | func RunForkLogic(ctx sdk.Context, keepers *keepers.AppKeepers) {

FILE: app/upgrades/v6/burn.go
  type burnEntry (line 3) | type burnEntry struct

FILE: app/upgrades/v6/constants.go
  constant UpgradeName (line 8) | UpgradeName = "v6"

FILE: app/upgrades/v6/upgrades.go
  function CreateV6UpgradeHandler (line 20) | func CreateV6UpgradeHandler(

FILE: app/upgrades/v7/constants.go
  constant UpgradeName (line 8) | UpgradeName = "v7"

FILE: app/upgrades/v7/upgrades.go
  function CreateV7UpgradeHandler (line 13) | func CreateV7UpgradeHandler(

FILE: client/docs/docs.go
  constant apiFile (line 12) | apiFile   = "/static/openapi.yml"
  constant indexFile (line 13) | indexFile = "template/index.tpl"
  function RegisterOpenAPIService (line 22) | func RegisterOpenAPIService(appName string, rtr *mux.Router) {
  function handler (line 28) | func handler(title string) http.HandlerFunc {

FILE: cmd/cyber/cmd/root.go
  function NewRootCmd (line 64) | func NewRootCmd() (*cobra.Command, params.EncodingConfig) {
  function initTendermintConfig (line 113) | func initTendermintConfig() *tmcfg.Config {
  type ProofExemptConfig (line 127) | type ProofExemptConfig struct
  constant proofExemptConfigTemplate (line 133) | proofExemptConfigTemplate = `
  function initAppConfig (line 146) | func initAppConfig() (string, interface{}) {
  function initRootCmd (line 171) | func initRootCmd(rootCmd *cobra.Command, encodingConfig params.EncodingC...
  function addModuleInitFlags (line 202) | func addModuleInitFlags(startCmd *cobra.Command) {
  function genesisCommand (line 209) | func genesisCommand(encodingConfig params.EncodingConfig, cmds ...*cobra...
  function queryCommand (line 218) | func queryCommand() *cobra.Command {
  function txCommand (line 242) | func txCommand() *cobra.Command {
  type appCreator (line 270) | type appCreator struct
    method appExport (line 357) | func (ac appCreator) appExport(
  function newApp (line 274) | func newApp(
  function newTestnetApp (line 396) | func newTestnetApp(logger log.Logger, db dbm.DB, traceStore io.Writer, a...

FILE: cmd/cyber/main.go
  function main (line 13) | func main() {

FILE: cmd/iavltool/cmd/root.go
  constant DefaultCacheSize (line 20) | DefaultCacheSize int = 16000
  function Execute (line 54) | func Execute() error {
  function init (line 58) | func init() {
  function OpenDB (line 244) | func OpenDB(dir string) (dbm.DB, error) {
  function PrintDBStats (line 249) | func PrintDBStats(db dbm.DB) {
  function ReadTree (line 270) | func ReadTree(db dbm.DB, version int64, name string) (*iavl.MutableTree,...
  function GetTree (line 281) | func GetTree(db dbm.DB, name string) (*iavl.MutableTree, error) {
  function PrintKeys (line 293) | func PrintKeys(tree *iavl.MutableTree, hashing bool) {
  function parseWeaveKey (line 312) | func parseWeaveKey(key []byte) string {
  function encodeID (line 323) | func encodeID(id []byte) string {
  function PrintShape (line 332) | func PrintShape(tree *iavl.MutableTree) {
  function nodeEncoder (line 338) | func nodeEncoder(id []byte, depth int, isLeaf bool) string {
  function PrintVersions (line 349) | func PrintVersions(tree *iavl.MutableTree) {

FILE: cmd/iavltool/main.go
  function main (line 7) | func main() {

FILE: merkle/node.go
  type Node (line 3) | type Node struct
    method GetIndexProofs (line 16) | func (n *Node) GetIndexProofs(i int) []Proof {

FILE: merkle/proof.go
  type Proof (line 7) | type Proof struct
    method SumWith (line 13) | func (p *Proof) SumWith(hashF hash.Hash, hash []byte) []byte {

FILE: merkle/subtree.go
  type Subtree (line 8) | type Subtree struct
    method GetRootProofs (line 20) | func (t *Subtree) GetRootProofs() []Proof {
    method getLeftSubtreesProof (line 29) | func (t *Subtree) getLeftSubtreesProof() []Proof {
    method getRightSubtreesProof (line 41) | func (t *Subtree) getRightSubtreesProof() []Proof {

FILE: merkle/tree.go
  type Tree (line 13) | type Tree struct
    method joinAllSubtrees (line 34) | func (t *Tree) joinAllSubtrees() {
    method Reset (line 67) | func (t *Tree) Reset() {
    method BuildNew (line 75) | func (t *Tree) BuildNew(data [][]byte) {
    method Push (line 107) | func (t *Tree) Push(data []byte) {
    method GetIndexProofs (line 136) | func (t *Tree) GetIndexProofs(i int) []Proof {
    method ValidateIndex (line 158) | func (t *Tree) ValidateIndex(i int, data []byte) bool {
    method ValidateIndexByProofs (line 165) | func (t *Tree) ValidateIndexByProofs(i int, data []byte, proofs []Proo...
    method RootHash (line 175) | func (t *Tree) RootHash() []byte {
    method ExportSubtreesRoots (line 194) | func (t *Tree) ExportSubtreesRoots() []byte {
    method ImportSubtreesRoots (line 218) | func (t *Tree) ImportSubtreesRoots(subTreesRoots []byte) {
  function NewTree (line 30) | func NewTree(hashF hash.Hash, full bool) *Tree {

FILE: merkle/tree_test.go
  function TestPushAndProofs (line 11) | func TestPushAndProofs(t *testing.T) {
  function TestBuildNewAndProofs (line 29) | func TestBuildNewAndProofs(t *testing.T) {
  function TestEqualityOfBuildNewAndPush (line 51) | func TestEqualityOfBuildNewAndPush(t *testing.T) {
  function TestNotFull (line 76) | func TestNotFull(t *testing.T) {
  function TestExportImport (line 109) | func TestExportImport(t *testing.T) {

FILE: merkle/util.go
  function sum (line 8) | func sum(h hash.Hash, data ...[]byte) []byte {
  function buildSubTree (line 19) | func buildSubTree(h hash.Hash, full bool, startIndex int, data [][]byte)...
  function sumNodes (line 40) | func sumNodes(h hash.Hash, full bool, nodes []*Node) []*Node {
  function joinNodes (line 53) | func joinNodes(h hash.Hash, full bool, left *Node, right *Node) *Node {

FILE: plugins/types/custom_querier.go
  type ModuleQuerier (line 24) | type ModuleQuerier interface
  type QueryPlugin (line 30) | type QueryPlugin struct
  function NewQueryPlugin (line 41) | func NewQueryPlugin(
  function CustomQuerier (line 63) | func CustomQuerier(qp *QueryPlugin) func(ctx sdk.Context, request json.R...

FILE: plugins/types/dispatch_msg.go
  type ModuleMessenger (line 29) | type ModuleMessenger interface
  type CustomMessenger (line 33) | type CustomMessenger struct
    method DispatchMsg (line 67) | func (m *CustomMessenger) DispatchMsg(ctx sdk.Context, contractAddr sd...
  function CustomMessageDecorator (line 44) | func CustomMessageDecorator(

FILE: plugins/types/stargate_querier.go
  function StargateQuerier (line 13) | func StargateQuerier(queryRouter baseapp.GRPCQueryRouter, cdc codec.Code...
  function ConvertProtoToJSONMarshal (line 53) | func ConvertProtoToJSONMarshal(protoResponseType codec.ProtoMarshaler, b...

FILE: plugins/types/stargate_queries.go
  function init (line 32) | func init() {
  function IsWhitelistedQuery (line 76) | func IsWhitelistedQuery(queryPath string) error {
  function GetWhitelistedQuery (line 87) | func GetWhitelistedQuery(queryPath string) (codec.ProtoMarshaler, error) {
  type protoTypeG (line 99) | type protoTypeG interface
  function setWhitelistedQuery (line 108) | func setWhitelistedQuery[T any, PT protoTypeG[T]](queryPath string, _ PT) {
  function ReturnStargateResponseToPool (line 117) | func ReturnStargateResponseToPool(queryPath string, pb codec.ProtoMarsha...
  function GetStargateWhitelistedPaths (line 121) | func GetStargateWhitelistedPaths() (keys []string) {

FILE: plugins/types/types.go
  type CyberQuery (line 13) | type CyberQuery struct
  type CyberMsg (line 48) | type CyberMsg struct

FILE: plugins/wasm.go
  function RegisterCustomPlugins (line 38) | func RegisterCustomPlugins(
  function RegisterStargateQueries (line 114) | func RegisterStargateQueries(queryRouter baseapp.GRPCQueryRouter, codec ...

FILE: types/account.go
  type AccNumber (line 3) | type AccNumber

FILE: types/coins.go
  constant CYB (line 6) | CYB    = "boot"
  constant VOLT (line 7) | VOLT   = "millivolt"
  constant AMPERE (line 8) | AMPERE = "milliampere"
  constant SCYB (line 9) | SCYB   = "hydrogen"
  constant Deca (line 13) | Deca int64 = 1
  constant Kilo (line 14) | Kilo       = Deca * 1000
  constant Mega (line 15) | Mega       = Kilo * 1000
  constant Giga (line 16) | Giga       = Mega * 1000
  constant Tera (line 17) | Tera       = Giga * 1000
  constant Peta (line 18) | Peta       = Tera * 1000
  function NewCybCoin (line 21) | func NewCybCoin(amount int64) sdk.Coin {
  function NewSCybCoin (line 25) | func NewSCybCoin(amount int64) sdk.Coin {
  function NewVoltCoin (line 29) | func NewVoltCoin(amount int64) sdk.Coin {
  function NewAmpereCoin (line 33) | func NewAmpereCoin(amount int64) sdk.Coin {

FILE: utils/context.go
  function NewContextWithMSVersion (line 23) | func NewContextWithMSVersion(db db.DB, version int64, keys map[string]*s...

FILE: utils/io.go
  function RootifyPath (line 12) | func RootifyPath(path string) string {
  function ReadExactlyNBytes (line 20) | func ReadExactlyNBytes(reader io.Reader, n uint64) ([]byte, error) {

FILE: x/bandwidth/abci.go
  function EndBlocker (line 13) | func EndBlocker(ctx sdk.Context, bm *keeper.BandwidthMeter) {

FILE: x/bandwidth/client/cli/query.go
  function GetQueryCmd (line 16) | func GetQueryCmd() *cobra.Command {
  function GetCmdQueryParams (line 36) | func GetCmdQueryParams() *cobra.Command {
  function GetCmdQueryLoad (line 65) | func GetCmdQueryLoad() *cobra.Command {
  function GetCmdQueryPrice (line 94) | func GetCmdQueryPrice() *cobra.Command {
  function GetCmdQueryTotalBandwidth (line 123) | func GetCmdQueryTotalBandwidth() *cobra.Command {
  function GetCmdQueryNeuron (line 152) | func GetCmdQueryNeuron() *cobra.Command {

FILE: x/bandwidth/exported/exported.go
  type Subspace (line 15) | type Subspace interface

FILE: x/bandwidth/keeper/blocks.go
  method SetBlockBandwidth (line 9) | func (bm BandwidthMeter) SetBlockBandwidth(ctx sdk.Context, blockNumber ...
  method GetValuesForPeriod (line 14) | func (bm BandwidthMeter) GetValuesForPeriod(ctx sdk.Context, period uint...

FILE: x/bandwidth/keeper/genesis.go
  function InitGenesis (line 10) | func InitGenesis(ctx sdk.Context, bm *BandwidthMeter, _ authkeeper.Accou...
  function ExportGenesis (line 18) | func ExportGenesis(ctx sdk.Context, bm *BandwidthMeter) *types.GenesisSt...

FILE: x/bandwidth/keeper/grpc_query.go
  method Params (line 15) | func (bm BandwidthMeter) Params(goCtx context.Context, request *types.Qu...
  method Load (line 22) | func (bm *BandwidthMeter) Load(goCtx context.Context, request *types.Que...
  method Price (line 29) | func (bm *BandwidthMeter) Price(_ context.Context, _ *types.QueryPriceRe...
  method TotalBandwidth (line 35) | func (bm *BandwidthMeter) TotalBandwidth(goCtx context.Context, _ *types...
  method NeuronBandwidth (line 42) | func (bm *BandwidthMeter) NeuronBandwidth(goCtx context.Context, request...

FILE: x/bandwidth/keeper/keeper.go
  type BandwidthMeter (line 18) | type BandwidthMeter struct
    method GetAuthority (line 48) | func (bm BandwidthMeter) GetAuthority() string { return bm.authority }
    method Logger (line 50) | func (bm BandwidthMeter) Logger(ctx sdk.Context) log.Logger {
    method SetParams (line 54) | func (bm BandwidthMeter) SetParams(ctx sdk.Context, p types.Params) er...
    method GetParams (line 66) | func (bm BandwidthMeter) GetParams(ctx sdk.Context) (p types.Params) {
    method LoadState (line 77) | func (bm *BandwidthMeter) LoadState(ctx sdk.Context) {
    method InitState (line 88) | func (bm *BandwidthMeter) InitState() {
    method GetBandwidthPrice (line 96) | func (bm BandwidthMeter) GetBandwidthPrice(ctx sdk.Context, basePrice ...
    method StoreBandwidthPrice (line 107) | func (bm BandwidthMeter) StoreBandwidthPrice(ctx sdk.Context, price sd...
    method GetDesirableBandwidth (line 112) | func (bm BandwidthMeter) GetDesirableBandwidth(ctx sdk.Context) uint64 {
    method AddToDesirableBandwidth (line 121) | func (bm BandwidthMeter) AddToDesirableBandwidth(ctx sdk.Context, toAd...
    method SetDesirableBandwidth (line 127) | func (bm BandwidthMeter) SetDesirableBandwidth(ctx sdk.Context, value ...
    method AddToBlockBandwidth (line 132) | func (bm *BandwidthMeter) AddToBlockBandwidth(ctx sdk.Context, value u...
    method CommitBlockBandwidth (line 146) | func (bm *BandwidthMeter) CommitBlockBandwidth(ctx sdk.Context) {
    method GetCurrentBlockSpentBandwidth (line 189) | func (bm *BandwidthMeter) GetCurrentBlockSpentBandwidth(ctx sdk.Contex...
    method GetCurrentNetworkLoad (line 194) | func (bm *BandwidthMeter) GetCurrentNetworkLoad(ctx sdk.Context) sdk.D...
    method GetMaxBlockBandwidth (line 198) | func (bm *BandwidthMeter) GetMaxBlockBandwidth(ctx sdk.Context) uint64 {
    method GetCurrentCreditPrice (line 204) | func (bm *BandwidthMeter) GetCurrentCreditPrice() sdk.Dec {
    method AdjustPrice (line 209) | func (bm *BandwidthMeter) AdjustPrice(ctx sdk.Context) {
    method GetTotalCyberlinksCost (line 229) | func (bm *BandwidthMeter) GetTotalCyberlinksCost(ctx sdk.Context, tx s...
    method BurnAccountBandwidthVolt (line 238) | func (bm *BandwidthMeter) BurnAccountBandwidthVolt(ctx sdk.Context, am...
    method GetCurrentVoltsAccountBandwidth (line 249) | func (bm *BandwidthMeter) GetCurrentVoltsAccountBandwidth(ctx sdk.Cont...
    method SetZeroAccountBandwidth (line 259) | func (bm *BandwidthMeter) SetZeroAccountBandwidth(ctx sdk.Context, add...
    method HasEnoughAccountBandwidthVolt (line 270) | func (bm *BandwidthMeter) HasEnoughAccountBandwidthVolt(ctx sdk.Contex...
  function NewBandwidthMeter (line 31) | func NewBandwidthMeter(

FILE: x/bandwidth/keeper/migrator.go
  type Migrator (line 11) | type Migrator struct
    method Migrate1to2 (line 23) | func (m Migrator) Migrate1to2(ctx sdk.Context) error {
  function NewMigrator (line 16) | func NewMigrator(bm BandwidthMeter, ss exported.Subspace) Migrator {

FILE: x/bandwidth/keeper/msg_server.go
  type msgServer (line 14) | type msgServer struct
    method UpdateParams (line 24) | func (server msgServer) UpdateParams(goCtx context.Context, req *types...
  function NewMsgServerImpl (line 18) | func NewMsgServerImpl(meter BandwidthMeter) types.MsgServer {

FILE: x/bandwidth/keeper/snapshotter.go
  constant SnapshotFormat (line 13) | SnapshotFormat = 1
  type BandwidthSnapshotter (line 15) | type BandwidthSnapshotter struct
    method SnapshotName (line 27) | func (bs *BandwidthSnapshotter) SnapshotName() string {
    method SnapshotFormat (line 31) | func (bs *BandwidthSnapshotter) SnapshotFormat() uint32 {
    method SupportedFormats (line 35) | func (bs *BandwidthSnapshotter) SupportedFormats() []uint32 {
    method SnapshotExtension (line 40) | func (bs *BandwidthSnapshotter) SnapshotExtension(_ uint64, _ snapshot...
    method RestoreExtension (line 44) | func (bs *BandwidthSnapshotter) RestoreExtension(height uint64, format...
  function NewBandwidthSnapshotter (line 20) | func NewBandwidthSnapshotter(cms sdk.MultiStore, keeper *BandwidthMeter)...

FILE: x/bandwidth/migrations/v2/migrate.go
  function Migrate (line 11) | func Migrate(

FILE: x/bandwidth/module.go
  type AppModuleBasic (line 30) | type AppModuleBasic struct
    method Name (line 35) | func (AppModuleBasic) Name() string { return types.ModuleName }
    method RegisterLegacyAminoCodec (line 37) | func (AppModuleBasic) RegisterLegacyAminoCodec(cdc *codec.LegacyAmino) {
    method DefaultGenesis (line 41) | func (AppModuleBasic) DefaultGenesis(cdc codec.JSONCodec) json.RawMess...
    method ValidateGenesis (line 47) | func (b AppModuleBasic) ValidateGenesis(marshaler codec.JSONCodec, _ c...
    method RegisterGRPCGatewayRoutes (line 56) | func (b AppModuleBasic) RegisterGRPCGatewayRoutes(clientCtx client.Con...
    method GetTxCmd (line 63) | func (AppModuleBasic) GetTxCmd() *cobra.Command { return nil }
    method GetQueryCmd (line 65) | func (AppModuleBasic) GetQueryCmd() *cobra.Command {
    method RegisterInterfaces (line 69) | func (AppModuleBasic) RegisterInterfaces(registry codectypes.Interface...
  type AppModule (line 73) | type AppModule struct
    method Name (line 96) | func (AppModule) Name() string { return types.ModuleName }
    method RegisterInvariants (line 98) | func (am AppModule) RegisterInvariants(_ sdk.InvariantRegistry) {}
    method RegisterServices (line 100) | func (am AppModule) RegisterServices(cfg module.Configurator) {
    method InitGenesis (line 110) | func (am AppModule) InitGenesis(ctx sdk.Context, cdc codec.JSONCodec, ...
    method ExportGenesis (line 117) | func (am AppModule) ExportGenesis(ctx sdk.Context, cdc codec.JSONCodec...
    method ConsensusVersion (line 122) | func (am AppModule) ConsensusVersion() uint64 {
    method BeginBlock (line 126) | func (am AppModule) BeginBlock(_ sdk.Context, _ abci.RequestBeginBlock...
    method EndBlock (line 128) | func (am AppModule) EndBlock(ctx sdk.Context, _ abci.RequestEndBlock) ...
  function NewAppModule (line 81) | func NewAppModule(

FILE: x/bandwidth/types/codec.go
  function RegisterLegacyAminoCodec (line 14) | func RegisterLegacyAminoCodec(cdc *codec.LegacyAmino) {
  function RegisterInterfaces (line 20) | func RegisterInterfaces(registry types.InterfaceRegistry) {
  function init (line 33) | func init() {

FILE: x/bandwidth/types/expected_keepers.go
  type AccountStakeProvider (line 7) | type AccountStakeProvider interface

FILE: x/bandwidth/types/genesis.go
  function NewGenesisState (line 3) | func NewGenesisState(params Params) *GenesisState {
  function DefaultGenesisState (line 9) | func DefaultGenesisState() *GenesisState {
  function ValidateGenesis (line 13) | func ValidateGenesis(data GenesisState) error {

FILE: x/bandwidth/types/genesis.pb.go
  constant _ (line 27) | _ = proto.GoGoProtoPackageIsVersion3
  type GenesisState (line 29) | type GenesisState struct
    method Reset (line 33) | func (m *GenesisState) Reset()         { *m = GenesisState{} }
    method String (line 34) | func (m *GenesisState) String() string { return proto.CompactTextStrin...
    method ProtoMessage (line 35) | func (*GenesisState) ProtoMessage()    {}
    method Descriptor (line 36) | func (*GenesisState) Descriptor() ([]byte, []int) {
    method XXX_Unmarshal (line 40) | func (m *GenesisState) XXX_Unmarshal(b []byte) error {
    method XXX_Marshal (line 44) | func (m *GenesisState) XXX_Marshal(b []byte, deterministic bool) ([]by...
    method XXX_Merge (line 57) | func (m *GenesisState) XXX_Merge(src proto.Message) {
    method XXX_Size (line 61) | func (m *GenesisState) XXX_Size() int {
    method XXX_DiscardUnknown (line 65) | func (m *GenesisState) XXX_DiscardUnknown() {
    method GetParams (line 71) | func (m *GenesisState) GetParams() Params {
    method Marshal (line 104) | func (m *GenesisState) Marshal() (dAtA []byte, err error) {
    method MarshalTo (line 114) | func (m *GenesisState) MarshalTo(dAtA []byte) (int, error) {
    method MarshalToSizedBuffer (line 119) | func (m *GenesisState) MarshalToSizedBuffer(dAtA []byte) (int, error) {
    method Size (line 149) | func (m *GenesisState) Size() (n int) {
    method Unmarshal (line 168) | func (m *GenesisState) Unmarshal(dAtA []byte) error {
  function init (line 78) | func init() {
  function init (line 82) | func init() {
  function encodeVarintGenesis (line 137) | func encodeVarintGenesis(dAtA []byte, offset int, v uint64) int {
  function sovGenesis (line 160) | func sovGenesis(x uint64) (n int) {
  function sozGenesis (line 164) | func sozGenesis(x uint64) (n int) {
  function skipGenesis (line 252) | func skipGenesis(dAtA []byte) (n int, err error) {

FILE: x/bandwidth/types/keys.go
  constant ModuleName (line 8) | ModuleName    = "bandwidth"
  constant StoreKey (line 9) | StoreKey      = ModuleName
  constant TStoreKey (line 10) | TStoreKey     = "transient_bandwidth"
  constant BandwidthName (line 11) | BandwidthName = "bandwidth"
  function AccountStoreKey (line 25) | func AccountStoreKey(addr string) []byte {
  function BlockStoreKey (line 29) | func BlockStoreKey(blockNumber uint64) []byte {

FILE: x/bandwidth/types/msgs.go
  method GetSignBytes (line 11) | func (m MsgUpdateParams) GetSignBytes() []byte {
  method GetSigners (line 16) | func (m *MsgUpdateParams) GetSigners() []sdk.AccAddress {
  method ValidateBasic (line 22) | func (m *MsgUpdateParams) ValidateBasic() error {

FILE: x/bandwidth/types/params.go
  function DefaultParams (line 11) | func DefaultParams() Params {
  function NewParams (line 21) | func NewParams(
  method Validate (line 37) | func (p Params) Validate() error {
  function validateRecoveryPeriod (line 57) | func validateRecoveryPeriod(i interface{}) error {
  function validateAdjustPricePeriod (line 71) | func validateAdjustPricePeriod(i interface{}) error {
  function validateBasePrice (line 85) | func validateBasePrice(i interface{}) error {
  function validateBaseLoad (line 103) | func validateBaseLoad(i interface{}) error {
  function validateMaxBlockBandwidth (line 125) | func validateMaxBlockBandwidth(i interface{}) error {

FILE: x/bandwidth/types/params_legacy.go
  function ParamKeyTable (line 14) | func ParamKeyTable() paramstypes.KeyTable {
  method ParamSetPairs (line 18) | func (p *Params) ParamSetPairs() paramstypes.ParamSetPairs {

FILE: x/bandwidth/types/query.pb.go
  constant _ (line 34) | _ = proto.GoGoProtoPackageIsVersion3
  type QueryLoadRequest (line 36) | type QueryLoadRequest struct
    method Reset (line 38) | func (m *QueryLoadRequest) Reset()         { *m = QueryLoadRequest{} }
    method String (line 39) | func (m *QueryLoadRequest) String() string { return proto.CompactTextS...
    method ProtoMessage (line 40) | func (*QueryLoadRequest) ProtoMessage()    {}
    method Descriptor (line 41) | func (*QueryLoadRequest) Descriptor() ([]byte, []int) {
    method XXX_Unmarshal (line 45) | func (m *QueryLoadRequest) XXX_Unmarshal(b []byte) error {
    method XXX_Marshal (line 49) | func (m *QueryLoadRequest) XXX_Marshal(b []byte, deterministic bool) (...
    method XXX_Merge (line 62) | func (m *QueryLoadRequest) XXX_Merge(src proto.Message) {
    method XXX_Size (line 66) | func (m *QueryLoadRequest) XXX_Size() int {
    method XXX_DiscardUnknown (line 70) | func (m *QueryLoadRequest) XXX_DiscardUnknown() {
    method Marshal (line 763) | func (m *QueryLoadRequest) Marshal() (dAtA []byte, err error) {
    method MarshalTo (line 773) | func (m *QueryLoadRequest) MarshalTo(dAtA []byte) (int, error) {
    method MarshalToSizedBuffer (line 778) | func (m *QueryLoadRequest) MarshalToSizedBuffer(dAtA []byte) (int, err...
    method Size (line 1057) | func (m *QueryLoadRequest) Size() (n int) {
    method Unmarshal (line 1170) | func (m *QueryLoadRequest) Unmarshal(dAtA []byte) error {
  type QueryLoadResponse (line 76) | type QueryLoadResponse struct
    method Reset (line 80) | func (m *QueryLoadResponse) Reset()         { *m = QueryLoadResponse{} }
    method String (line 81) | func (m *QueryLoadResponse) String() string { return proto.CompactText...
    method ProtoMessage (line 82) | func (*QueryLoadResponse) ProtoMessage()    {}
    method Descriptor (line 83) | func (*QueryLoadResponse) Descriptor() ([]byte, []int) {
    method XXX_Unmarshal (line 87) | func (m *QueryLoadResponse) XXX_Unmarshal(b []byte) error {
    method XXX_Marshal (line 91) | func (m *QueryLoadResponse) XXX_Marshal(b []byte, deterministic bool) ...
    method XXX_Merge (line 104) | func (m *QueryLoadResponse) XXX_Merge(src proto.Message) {
    method XXX_Size (line 108) | func (m *QueryLoadResponse) XXX_Size() int {
    method XXX_DiscardUnknown (line 112) | func (m *QueryLoadResponse) XXX_DiscardUnknown() {
    method Marshal (line 786) | func (m *QueryLoadResponse) Marshal() (dAtA []byte, err error) {
    method MarshalTo (line 796) | func (m *QueryLoadResponse) MarshalTo(dAtA []byte) (int, error) {
    method MarshalToSizedBuffer (line 801) | func (m *QueryLoadResponse) MarshalToSizedBuffer(dAtA []byte) (int, er...
    method Size (line 1066) | func (m *QueryLoadResponse) Size() (n int) {
    method Unmarshal (line 1221) | func (m *QueryLoadResponse) Unmarshal(dAtA []byte) error {
  type QueryPriceRequest (line 118) | type QueryPriceRequest struct
    method Reset (line 120) | func (m *QueryPriceRequest) Reset()         { *m = QueryPriceRequest{} }
    method String (line 121) | func (m *QueryPriceRequest) String() string { return proto.CompactText...
    method ProtoMessage (line 122) | func (*QueryPriceRequest) ProtoMessage()    {}
    method Descriptor (line 123) | func (*QueryPriceRequest) Descriptor() ([]byte, []int) {
    method XXX_Unmarshal (line 127) | func (m *QueryPriceRequest) XXX_Unmarshal(b []byte) error {
    method XXX_Marshal (line 131) | func (m *QueryPriceRequest) XXX_Marshal(b []byte, deterministic bool) ...
    method XXX_Merge (line 144) | func (m *QueryPriceRequest) XXX_Merge(src proto.Message) {
    method XXX_Size (line 148) | func (m *QueryPriceRequest) XXX_Size() int {
    method XXX_DiscardUnknown (line 152) | func (m *QueryPriceRequest) XXX_DiscardUnknown() {
    method Marshal (line 819) | func (m *QueryPriceRequest) Marshal() (dAtA []byte, err error) {
    method MarshalTo (line 829) | func (m *QueryPriceRequest) MarshalTo(dAtA []byte) (int, error) {
    method MarshalToSizedBuffer (line 834) | func (m *QueryPriceRequest) MarshalToSizedBuffer(dAtA []byte) (int, er...
    method Size (line 1077) | func (m *QueryPriceRequest) Size() (n int) {
    method Unmarshal (line 1306) | func (m *QueryPriceRequest) Unmarshal(dAtA []byte) error {
  type QueryPriceResponse (line 158) | type QueryPriceResponse struct
    method Reset (line 162) | func (m *QueryPriceResponse) Reset()         { *m = QueryPriceResponse...
    method String (line 163) | func (m *QueryPriceResponse) String() string { return proto.CompactTex...
    method ProtoMessage (line 164) | func (*QueryPriceResponse) ProtoMessage()    {}
    method Descriptor (line 165) | func (*QueryPriceResponse) Descriptor() ([]byte, []int) {
    method XXX_Unmarshal (line 169) | func (m *QueryPriceResponse) XXX_Unmarshal(b []byte) error {
    method XXX_Marshal (line 173) | func (m *QueryPriceResponse) XXX_Marshal(b []byte, deterministic bool)...
    method XXX_Merge (line 186) | func (m *QueryPriceResponse) XXX_Merge(src proto.Message) {
    method XXX_Size (line 190) | func (m *QueryPriceResponse) XXX_Size() int {
    method XXX_DiscardUnknown (line 194) | func (m *QueryPriceResponse) XXX_DiscardUnknown() {
    method Marshal (line 842) | func (m *QueryPriceResponse) Marshal() (dAtA []byte, err error) {
    method MarshalTo (line 852) | func (m *QueryPriceResponse) MarshalTo(dAtA []byte) (int, error) {
    method MarshalToSizedBuffer (line 857) | func (m *QueryPriceResponse) MarshalToSizedBuffer(dAtA []byte) (int, e...
    method Size (line 1086) | func (m *QueryPriceResponse) Size() (n int) {
    method Unmarshal (line 1357) | func (m *QueryPriceResponse) Unmarshal(dAtA []byte) error {
  type QueryTotalBandwidthRequest (line 200) | type QueryTotalBandwidthRequest struct
    method Reset (line 202) | func (m *QueryTotalBandwidthRequest) Reset()         { *m = QueryTotal...
    method String (line 203) | func (m *QueryTotalBandwidthRequest) String() string { return proto.Co...
    method ProtoMessage (line 204) | func (*QueryTotalBandwidthRequest) ProtoMessage()    {}
    method Descriptor (line 205) | func (*QueryTotalBandwidthRequest) Descriptor() ([]byte, []int) {
    method XXX_Unmarshal (line 209) | func (m *QueryTotalBandwidthRequest) XXX_Unmarshal(b []byte) error {
    method XXX_Marshal (line 213) | func (m *QueryTotalBandwidthRequest) XXX_Marshal(b []byte, determinist...
    method XXX_Merge (line 226) | func (m *QueryTotalBandwidthRequest) XXX_Merge(src proto.Message) {
    method XXX_Size (line 230) | func (m *QueryTotalBandwidthRequest) XXX_Size() int {
    method XXX_DiscardUnknown (line 234) | func (m *QueryTotalBandwidthRequest) XXX_DiscardUnknown() {
    method Marshal (line 875) | func (m *QueryTotalBandwidthRequest) Marshal() (dAtA []byte, err error) {
    method MarshalTo (line 885) | func (m *QueryTotalBandwidthRequest) MarshalTo(dAtA []byte) (int, erro...
    method MarshalToSizedBuffer (line 890) | func (m *QueryTotalBandwidthRequest) MarshalToSizedBuffer(dAtA []byte)...
    method Size (line 1097) | func (m *QueryTotalBandwidthRequest) Size() (n int) {
    method Unmarshal (line 1442) | func (m *QueryTotalBandwidthRequest) Unmarshal(dAtA []byte) error {
  type QueryTotalBandwidthResponse (line 240) | type QueryTotalBandwidthResponse struct
    method Reset (line 244) | func (m *QueryTotalBandwidthResponse) Reset()         { *m = QueryTota...
    method String (line 245) | func (m *QueryTotalBandwidthResponse) String() string { return proto.C...
    method ProtoMessage (line 246) | func (*QueryTotalBandwidthResponse) ProtoMessage()    {}
    method Descriptor (line 247) | func (*QueryTotalBandwidthResponse) Descriptor() ([]byte, []int) {
    method XXX_Unmarshal (line 251) | func (m *QueryTotalBandwidthResponse) XXX_Unmarshal(b []byte) error {
    method XXX_Marshal (line 255) | func (m *QueryTotalBandwidthResponse) XXX_Marshal(b []byte, determinis...
    method XXX_Merge (line 268) | func (m *QueryTotalBandwidthResponse) XXX_Merge(src proto.Message) {
    method XXX_Size (line 272) | func (m *QueryTotalBandwidthResponse) XXX_Size() int {
    method XXX_DiscardUnknown (line 276) | func (m *QueryTotalBandwidthResponse) XXX_DiscardUnknown() {
    method GetTotalBandwidth (line 282) | func (m *QueryTotalBandwidthResponse) GetTotalBandwidth() uint64 {
    method Marshal (line 898) | func (m *QueryTotalBandwidthResponse) Marshal() (dAtA []byte, err erro...
    method MarshalTo (line 908) | func (m *QueryTotalBandwidthResponse) MarshalTo(dAtA []byte) (int, err...
    method MarshalToSizedBuffer (line 913) | func (m *QueryTotalBandwidthResponse) MarshalToSizedBuffer(dAtA []byte...
    method Size (line 1106) | func (m *QueryTotalBandwidthResponse) Size() (n int) {
    method Unmarshal (line 1493) | func (m *QueryTotalBandwidthResponse) Unmarshal(dAtA []byte) error {
  type QueryNeuronBandwidthRequest (line 289) | type QueryNeuronBandwidthRequest struct
    method Reset (line 293) | func (m *QueryNeuronBandwidthRequest) Reset()         { *m = QueryNeur...
    method String (line 294) | func (m *QueryNeuronBandwidthRequest) String() string { return proto.C...
    method ProtoMessage (line 295) | func (*QueryNeuronBandwidthRequest) ProtoMessage()    {}
    method Descriptor (line 296) | func (*QueryNeuronBandwidthRequest) Descriptor() ([]byte, []int) {
    method XXX_Unmarshal (line 300) | func (m *QueryNeuronBandwidthRequest) XXX_Unmarshal(b []byte) error {
    method XXX_Marshal (line 304) | func (m *QueryNeuronBandwidthRequest) XXX_Marshal(b []byte, determinis...
    method XXX_Merge (line 317) | func (m *QueryNeuronBandwidthRequest) XXX_Merge(src proto.Message) {
    method XXX_Size (line 321) | func (m *QueryNeuronBandwidthRequest) XXX_Size() int {
    method XXX_DiscardUnknown (line 325) | func (m *QueryNeuronBandwidthRequest) XXX_DiscardUnknown() {
    method GetNeuron (line 331) | func (m *QueryNeuronBandwidthRequest) GetNeuron() string {
    method Marshal (line 926) | func (m *QueryNeuronBandwidthRequest) Marshal() (dAtA []byte, err erro...
    method MarshalTo (line 936) | func (m *QueryNeuronBandwidthRequest) MarshalTo(dAtA []byte) (int, err...
    method MarshalToSizedBuffer (line 941) | func (m *QueryNeuronBandwidthRequest) MarshalToSizedBuffer(dAtA []byte...
    method Size (line 1118) | func (m *QueryNeuronBandwidthRequest) Size() (n int) {
    method Unmarshal (line 1563) | func (m *QueryNeuronBandwidthRequest) Unmarshal(dAtA []byte) error {
  type QueryNeuronBandwidthResponse (line 338) | type QueryNeuronBandwidthResponse struct
    method Reset (line 342) | func (m *QueryNeuronBandwidthResponse) Reset()         { *m = QueryNeu...
    method String (line 343) | func (m *QueryNeuronBandwidthResponse) String() string { return proto....
    method ProtoMessage (line 344) | func (*QueryNeuronBandwidthResponse) ProtoMessage()    {}
    method Descriptor (line 345) | func (*QueryNeuronBandwidthResponse) Descriptor() ([]byte, []int) {
    method XXX_Unmarshal (line 349) | func (m *QueryNeuronBandwidthResponse) XXX_Unmarshal(b []byte) error {
    method XXX_Marshal (line 353) | func (m *QueryNeuronBandwidthResponse) XXX_Marshal(b []byte, determini...
    method XXX_Merge (line 366) | func (m *QueryNeuronBandwidthResponse) XXX_Merge(src proto.Message) {
    method XXX_Size (line 370) | func (m *QueryNeuronBandwidthResponse) XXX_Size() int {
    method XXX_DiscardUnknown (line 374) | func (m *QueryNeuronBandwidthResponse) XXX_DiscardUnknown() {
    method GetNeuronBandwidth (line 380) | func (m *QueryNeuronBandwidthResponse) GetNeuronBandwidth() NeuronBand...
    method Marshal (line 956) | func (m *QueryNeuronBandwidthResponse) Marshal() (dAtA []byte, err err...
    method MarshalTo (line 966) | func (m *QueryNeuronBandwidthResponse) MarshalTo(dAtA []byte) (int, er...
    method MarshalToSizedBuffer (line 971) | func (m *QueryNeuronBandwidthResponse) MarshalToSizedBuffer(dAtA []byt...
    method Size (line 1131) | func (m *QueryNeuronBandwidthResponse) Size() (n int) {
    method Unmarshal (line 1646) | func (m *QueryNeuronBandwidthResponse) Unmarshal(dAtA []byte) error {
  type QueryParamsRequest (line 387) | type QueryParamsRequest struct
    method Reset (line 389) | func (m *QueryParamsRequest) Reset()         { *m = QueryParamsRequest...
    method String (line 390) | func (m *QueryParamsRequest) String() string { return proto.CompactTex...
    method ProtoMessage (line 391) | func (*QueryParamsRequest) ProtoMessage()    {}
    method Descriptor (line 392) | func (*QueryParamsRequest) Descriptor() ([]byte, []int) {
    method XXX_Unmarshal (line 396) | func (m *QueryParamsRequest) XXX_Unmarshal(b []byte) error {
    method XXX_Marshal (line 400) | func (m *QueryParamsRequest) XXX_Marshal(b []byte, deterministic bool)...
    method XXX_Merge (line 413) | func (m *QueryParamsRequest) XXX_Merge(src proto.Message) {
    method XXX_Size (line 417) | func (m *QueryParamsRequest) XXX_Size() int {
    method XXX_DiscardUnknown (line 421) | func (m *QueryParamsRequest) XXX_DiscardUnknown() {
    method Marshal (line 989) | func (m *QueryParamsRequest) Marshal() (dAtA []byte, err error) {
    method MarshalTo (line 999) | func (m *QueryParamsRequest) MarshalTo(dAtA []byte) (int, error) {
    method MarshalToSizedBuffer (line 1004) | func (m *QueryParamsRequest) MarshalToSizedBuffer(dAtA []byte) (int, e...
    method Size (line 1142) | func (m *QueryParamsRequest) Size() (n int) {
    method Unmarshal (line 1730) | func (m *QueryParamsRequest) Unmarshal(dAtA []byte) error {
  type QueryParamsResponse (line 427) | type QueryParamsResponse struct
    method Reset (line 431) | func (m *QueryParamsResponse) Reset()         { *m = QueryParamsRespon...
    method String (line 432) | func (m *QueryParamsResponse) String() string { return proto.CompactTe...
    method ProtoMessage (line 433) | func (*QueryParamsResponse) ProtoMessage()    {}
    method Descriptor (line 434) | func (*QueryParamsResponse) Descriptor() ([]byte, []int) {
    method XXX_Unmarshal (line 438) | func (m *QueryParamsResponse) XXX_Unmarshal(b []byte) error {
    method XXX_Marshal (line 442) | func (m *QueryParamsResponse) XXX_Marshal(b []byte, deterministic bool...
    method XXX_Merge (line 455) | func (m *QueryParamsResponse) XXX_Merge(src proto.Message) {
    method XXX_Size (line 459) | func (m *QueryParamsResponse) XXX_Size() int {
    method XXX_DiscardUnknown (line 463) | func (m *QueryParamsResponse) XXX_DiscardUnknown() {
    method GetParams (line 469) | func (m *QueryParamsResponse) GetParams() Params {
    method Marshal (line 1012) | func (m *QueryParamsResponse) Marshal() (dAtA []byte, err error) {
    method MarshalTo (line 1022) | func (m *QueryParamsResponse) MarshalTo(dAtA []byte) (int, error) {
    method MarshalToSizedBuffer (line 1027) | func (m *QueryParamsResponse) MarshalToSizedBuffer(dAtA []byte) (int, ...
    method Size (line 1151) | func (m *QueryParamsResponse) Size() (n int) {
    method Unmarshal (line 1781) | func (m *QueryParamsResponse) Unmarshal(dAtA []byte) error {
  function init (line 476) | func init() {
  function init (line 489) | func init() {
  constant _ (line 542) | _ = grpc.SupportPackageIsVersion4
  type QueryClient (line 547) | type QueryClient interface
  type queryClient (line 555) | type queryClient struct
    method Load (line 563) | func (c *queryClient) Load(ctx context.Context, in *QueryLoadRequest, ...
    method Price (line 572) | func (c *queryClient) Price(ctx context.Context, in *QueryPriceRequest...
    method TotalBandwidth (line 581) | func (c *queryClient) TotalBandwidth(ctx context.Context, in *QueryTot...
    method NeuronBandwidth (line 590) | func (c *queryClient) NeuronBandwidth(ctx context.Context, in *QueryNe...
    method Params (line 599) | func (c *queryClient) Params(ctx context.Context, in *QueryParamsReque...
  function NewQueryClient (line 559) | func NewQueryClient(cc grpc1.ClientConn) QueryClient {
  type QueryServer (line 609) | type QueryServer interface
  type UnimplementedQueryServer (line 618) | type UnimplementedQueryServer struct
    method Load (line 620) | func (*UnimplementedQueryServer) Load(ctx context.Context, req *QueryL...
    method Price (line 624) | func (*UnimplementedQueryServer) Price(ctx context.Context, req *Query...
    method TotalBandwidth (line 628) | func (*UnimplementedQueryServer) TotalBandwidth(ctx context.Context, r...
    method NeuronBandwidth (line 632) | func (*UnimplementedQueryServer) NeuronBandwidth(ctx context.Context, ...
    method Params (line 636) | func (*UnimplementedQueryServer) Params(ctx context.Context, req *Quer...
  function RegisterQueryServer (line 640) | func RegisterQueryServer(s grpc1.Server, srv QueryServer) {
  function _Query_Load_Handler (line 644) | func _Query_Load_Handler(srv interface{}, ctx context.Context, dec func(...
  function _Query_Price_Handler (line 662) | func _Query_Price_Handler(srv interface{}, ctx context.Context, dec func...
  function _Query_TotalBandwidth_Handler (line 680) | func _Query_TotalBandwidth_Handler(srv interface{}, ctx context.Context,...
  function _Query_NeuronBandwidth_Handler (line 698) | func _Query_NeuronBandwidth_Handler(srv interface{}, ctx context.Context...
  function _Query_Params_Handler (line 716) | func _Query_Params_Handler(srv interface{}, ctx context.Context, dec fun...
  function encodeVarintQuery (line 1045) | func encodeVarintQuery(dAtA []byte, offset int, v uint64) int {
  function sovQuery (line 1162) | func sovQuery(x uint64) (n int) {
  function sozQuery (line 1166) | func sozQuery(x uint64) (n int) {
  function skipQuery (line 1865) | func skipQuery(dAtA []byte) (n int, err error) {

FILE: x/bandwidth/types/query.pb.gw.go
  function request_Query_Load_0 (line 38) | func request_Query_Load_0(ctx context.Context, marshaler runtime.Marshal...
  function local_request_Query_Load_0 (line 46) | func local_request_Query_Load_0(ctx context.Context, marshaler runtime.M...
  function request_Query_Price_0 (line 54) | func request_Query_Price_0(ctx context.Context, marshaler runtime.Marsha...
  function local_request_Query_Price_0 (line 62) | func local_request_Query_Price_0(ctx context.Context, marshaler runtime....
  function request_Query_TotalBandwidth_0 (line 70) | func request_Query_TotalBandwidth_0(ctx context.Context, marshaler runti...
  function local_request_Query_TotalBandwidth_0 (line 78) | func local_request_Query_TotalBandwidth_0(ctx context.Context, marshaler...
  function request_Query_NeuronBandwidth_0 (line 86) | func request_Query_NeuronBandwidth_0(ctx context.Context, marshaler runt...
  function local_request_Query_NeuronBandwidth_0 (line 112) | func local_request_Query_NeuronBandwidth_0(ctx context.Context, marshale...
  function request_Query_Params_0 (line 138) | func request_Query_Params_0(ctx context.Context, marshaler runtime.Marsh...
  function local_request_Query_Params_0 (line 146) | func local_request_Query_Params_0(ctx context.Context, marshaler runtime...
  function RegisterQueryHandlerServer (line 158) | func RegisterQueryHandlerServer(ctx context.Context, mux *runtime.ServeM...
  function RegisterQueryHandlerFromEndpoint (line 274) | func RegisterQueryHandlerFromEndpoint(ctx context.Context, mux *runtime....
  function RegisterQueryHandler (line 299) | func RegisterQueryHandler(ctx context.Context, mux *runtime.ServeMux, co...
  function RegisterQueryHandlerClient (line 308) | func RegisterQueryHandlerClient(ctx context.Context, mux *runtime.ServeM...

FILE: x/bandwidth/types/tx.pb.go
  constant _ (line 34) | _ = proto.GoGoProtoPackageIsVersion3
  type MsgUpdateParams (line 36) | type MsgUpdateParams struct
    method Reset (line 41) | func (m *MsgUpdateParams) Reset()         { *m = MsgUpdateParams{} }
    method String (line 42) | func (m *MsgUpdateParams) String() string { return proto.CompactTextSt...
    method ProtoMessage (line 43) | func (*MsgUpdateParams) ProtoMessage()    {}
    method Descriptor (line 44) | func (*MsgUpdateParams) Descriptor() ([]byte, []int) {
    method XXX_Unmarshal (line 48) | func (m *MsgUpdateParams) XXX_Unmarshal(b []byte) error {
    method XXX_Marshal (line 52) | func (m *MsgUpdateParams) XXX_Marshal(b []byte, deterministic bool) ([...
    method XXX_Merge (line 65) | func (m *MsgUpdateParams) XXX_Merge(src proto.Message) {
    method XXX_Size (line 69) | func (m *MsgUpdateParams) XXX_Size() int {
    method XXX_DiscardUnknown (line 73) | func (m *MsgUpdateParams) XXX_DiscardUnknown() {
    method GetAuthority (line 79) | func (m *MsgUpdateParams) GetAuthority() string {
    method GetParams (line 86) | func (m *MsgUpdateParams) GetParams() Params {
    method Marshal (line 246) | func (m *MsgUpdateParams) Marshal() (dAtA []byte, err error) {
    method MarshalTo (line 256) | func (m *MsgUpdateParams) MarshalTo(dAtA []byte) (int, error) {
    method MarshalToSizedBuffer (line 261) | func (m *MsgUpdateParams) MarshalToSizedBuffer(dAtA []byte) (int, erro...
    method Size (line 321) | func (m *MsgUpdateParams) Size() (n int) {
    method Unmarshal (line 353) | func (m *MsgUpdateParams) Unmarshal(dAtA []byte) error {
  type MsgUpdateParamsResponse (line 93) | type MsgUpdateParamsResponse struct
    method Reset (line 95) | func (m *MsgUpdateParamsResponse) Reset()         { *m = MsgUpdatePara...
    method String (line 96) | func (m *MsgUpdateParamsResponse) String() string { return proto.Compa...
    method ProtoMessage (line 97) | func (*MsgUpdateParamsResponse) ProtoMessage()    {}
    method Descriptor (line 98) | func (*MsgUpdateParamsResponse) Descriptor() ([]byte, []int) {
    method XXX_Unmarshal (line 102) | func (m *MsgUpdateParamsResponse) XXX_Unmarshal(b []byte) error {
    method XXX_Marshal (line 106) | func (m *MsgUpdateParamsResponse) XXX_Marshal(b []byte, deterministic ...
    method XXX_Merge (line 119) | func (m *MsgUpdateParamsResponse) XXX_Merge(src proto.Message) {
    method XXX_Size (line 123) | func (m *MsgUpdateParamsResponse) XXX_Size() int {
    method XXX_DiscardUnknown (line 127) | func (m *MsgUpdateParamsResponse) XXX_DiscardUnknown() {
    method Marshal (line 286) | func (m *MsgUpdateParamsResponse) Marshal() (dAtA []byte, err error) {
    method MarshalTo (line 296) | func (m *MsgUpdateParamsResponse) MarshalTo(dAtA []byte) (int, error) {
    method MarshalToSizedBuffer (line 301) | func (m *MsgUpdateParamsResponse) MarshalToSizedBuffer(dAtA []byte) (i...
    method Size (line 336) | func (m *MsgUpdateParamsResponse) Size() (n int) {
    method Unmarshal (line 469) | func (m *MsgUpdateParamsResponse) Unmarshal(dAtA []byte) error {
  function init (line 133) | func init() {
  function init (line 138) | func init() { proto.RegisterFile("cyber/bandwidth/v1beta1/tx.proto", fil...
  constant _ (line 173) | _ = grpc.SupportPackageIsVersion4
  type MsgClient (line 178) | type MsgClient interface
  type msgClient (line 182) | type msgClient struct
    method UpdateParams (line 190) | func (c *msgClient) UpdateParams(ctx context.Context, in *MsgUpdatePar...
  function NewMsgClient (line 186) | func NewMsgClient(cc grpc1.ClientConn) MsgClient {
  type MsgServer (line 200) | type MsgServer interface
  type UnimplementedMsgServer (line 205) | type UnimplementedMsgServer struct
    method UpdateParams (line 207) | func (*UnimplementedMsgServer) UpdateParams(ctx context.Context, req *...
  function RegisterMsgServer (line 211) | func RegisterMsgServer(s grpc1.Server, srv MsgServer) {
  function _Msg_UpdateParams_Handler (line 215) | func _Msg_UpdateParams_Handler(srv interface{}, ctx context.Context, dec...
  function encodeVarintTx (line 309) | func encodeVarintTx(dAtA []byte, offset int, v uint64) int {
  function sovTx (line 345) | func sovTx(x uint64) (n int) {
  function sozTx (line 349) | func sozTx(x uint64) (n int) {
  function skipTx (line 520) | func skipTx(dAtA []byte) (n int, err error) {

FILE: x/bandwidth/types/types.pb.go
  constant _ (line 28) | _ = proto.GoGoProtoPackageIsVersion3
  type Params (line 30) | type Params struct
    method Reset (line 38) | func (m *Params) Reset()         { *m = Params{} }
    method String (line 39) | func (m *Params) String() string { return proto.CompactTextString(m) }
    method ProtoMessage (line 40) | func (*Params) ProtoMessage()    {}
    method Descriptor (line 41) | func (*Params) Descriptor() ([]byte, []int) {
    method XXX_Unmarshal (line 45) | func (m *Params) XXX_Unmarshal(b []byte) error {
    method XXX_Marshal (line 49) | func (m *Params) XXX_Marshal(b []byte, deterministic bool) ([]byte, er...
    method XXX_Merge (line 62) | func (m *Params) XXX_Merge(src proto.Message) {
    method XXX_Size (line 66) | func (m *Params) XXX_Size() int {
    method XXX_DiscardUnknown (line 70) | func (m *Params) XXX_DiscardUnknown() {
    method GetRecoveryPeriod (line 76) | func (m *Params) GetRecoveryPeriod() uint64 {
    method GetAdjustPricePeriod (line 83) | func (m *Params) GetAdjustPricePeriod() uint64 {
    method GetMaxBlockBandwidth (line 90) | func (m *Params) GetMaxBlockBandwidth() uint64 {
    method Equal (line 226) | func (this *Params) Equal(that interface{}) bool {
    method Marshal (line 263) | func (m *Params) Marshal() (dAtA []byte, err error) {
    method MarshalTo (line 273) | func (m *Params) MarshalTo(dAtA []byte) (int, error) {
    method MarshalToSizedBuffer (line 278) | func (m *Params) MarshalToSizedBuffer(dAtA []byte) (int, error) {
    method Size (line 411) | func (m *Params) Size() (n int) {
    method Unmarshal (line 474) | func (m *Params) Unmarshal(dAtA []byte) error {
  type NeuronBandwidth (line 97) | type NeuronBandwidth struct
    method Reset (line 104) | func (m *NeuronBandwidth) Reset()         { *m = NeuronBandwidth{} }
    method String (line 105) | func (m *NeuronBandwidth) String() string { return proto.CompactTextSt...
    method ProtoMessage (line 106) | func (*NeuronBandwidth) ProtoMessage()    {}
    method Descriptor (line 107) | func (*NeuronBandwidth) Descriptor() ([]byte, []int) {
    method XXX_Unmarshal (line 111) | func (m *NeuronBandwidth) XXX_Unmarshal(b []byte) error {
    method XXX_Marshal (line 115) | func (m *NeuronBandwidth) XXX_Marshal(b []byte, deterministic bool) ([...
    method XXX_Merge (line 128) | func (m *NeuronBandwidth) XXX_Merge(src proto.Message) {
    method XXX_Size (line 132) | func (m *NeuronBandwidth) XXX_Size() int {
    method XXX_DiscardUnknown (line 136) | func (m *NeuronBandwidth) XXX_DiscardUnknown() {
    method Marshal (line 321) | func (m *NeuronBandwidth) Marshal() (dAtA []byte, err error) {
    method MarshalTo (line 331) | func (m *NeuronBandwidth) MarshalTo(dAtA []byte) (int, error) {
    method MarshalToSizedBuffer (line 336) | func (m *NeuronBandwidth) MarshalToSizedBuffer(dAtA []byte) (int, erro...
    method Size (line 433) | func (m *NeuronBandwidth) Size() (n int) {
    method Unmarshal (line 650) | func (m *NeuronBandwidth) Unmarshal(dAtA []byte) error {
  type Price (line 142) | type Price struct
    method Reset (line 146) | func (m *Price) Reset()         { *m = Price{} }
    method String (line 147) | func (m *Price) String() string { return proto.CompactTextString(m) }
    method ProtoMessage (line 148) | func (*Price) ProtoMessage()    {}
    method Descriptor (line 149) | func (*Price) Descriptor() ([]byte, []int) {
    method XXX_Unmarshal (line 153) | func (m *Price) XXX_Unmarshal(b []byte) error {
    method XXX_Marshal (line 157) | func (m *Price) XXX_Marshal(b []byte, deterministic bool) ([]byte, err...
    method XXX_Merge (line 170) | func (m *Price) XXX_Merge(src proto.Message) {
    method XXX_Size (line 174) | func (m *Price) XXX_Size() int {
    method XXX_DiscardUnknown (line 178) | func (m *Price) XXX_DiscardUnknown() {
    method Marshal (line 366) | func (m *Price) Marshal() (dAtA []byte, err error) {
    method MarshalTo (line 376) | func (m *Price) MarshalTo(dAtA []byte) (int, error) {
    method MarshalToSizedBuffer (line 381) | func (m *Price) MarshalToSizedBuffer(dAtA []byte) (int, error) {
    method Size (line 455) | func (m *Price) Size() (n int) {
    method Unmarshal (line 790) | func (m *Price) Unmarshal(dAtA []byte) error {
  function init (line 184) | func init() {
  function init (line 190) | func init() {
  function encodeVarintTypes (line 399) | func encodeVarintTypes(dAtA []byte, offset int, v uint64) int {
  function sovTypes (line 466) | func sovTypes(x uint64) (n int) {
  function sozTypes (line 470) | func sozTypes(x uint64) (n int) {
  function skipTypes (line 875) | func skipTypes(dAtA []byte) (n int, err error) {

FILE: x/bandwidth/wasm/interface.go
  type Querier (line 15) | type Querier struct
    method HandleQuery (line 23) | func (querier *Querier) HandleQuery(ctx sdk.Context, query pluginstype...
  function NewWasmQuerier (line 19) | func NewWasmQuerier(keeper *keeper.BandwidthMeter) *Querier {

FILE: x/clock/abci.go
  function BeginBlocker (line 20) | func BeginBlocker(ctx sdk.Context, k keeper.Keeper) {
  function EndBlocker (line 26) | func EndBlocker(ctx sdk.Context, k keeper.Keeper) []abci.ValidatorUpdate {
  function CallContracts (line 33) | func CallContracts(ctx sdk.Context, k keeper.Keeper, msg []byte) {
  function handleError (line 87) | func handleError(

FILE: x/clock/abci_test.go
  type EndBlockerTestSuite (line 25) | type EndBlockerTestSuite struct
    method SetupTest (line 37) | func (s *EndBlockerTestSuite) SetupTest() {
    method StoreCode (line 55) | func (s *EndBlockerTestSuite) StoreCode(wasmContract []byte) {
    method InstantiateContract (line 76) | func (s *EndBlockerTestSuite) InstantiateContract(sender string, admin...
    method FundAccount (line 101) | func (s *EndBlockerTestSuite) FundAccount(ctx sdk.Context, addr sdk.Ac...
    method registerContract (line 110) | func (s *EndBlockerTestSuite) registerContract() string {
    method TestEndBlocker (line 138) | func (s *EndBlockerTestSuite) TestEndBlocker() {
    method TestInvalidContract (line 190) | func (s *EndBlockerTestSuite) TestInvalidContract() {
    method TestPerformance (line 206) | func (s *EndBlockerTestSuite) TestPerformance() {
    method updateGasLimit (line 235) | func (s *EndBlockerTestSuite) updateGasLimit(gasLimit uint64) {
    method callEndBlocker (line 248) | func (s *EndBlockerTestSuite) callEndBlocker() {
    method queryContract (line 254) | func (s *EndBlockerTestSuite) queryContract(contractAddress string) in...
  function TestEndBlockerTestSuite (line 33) | func TestEndBlockerTestSuite(t *testing.T) {

FILE: x/clock/client/cli/query.go
  function GetQueryCmd (line 12) | func GetQueryCmd() *cobra.Command {
  function GetCmdShowContracts (line 28) | func GetCmdShowContracts() *cobra.Command {
  function GetCmdShowContract (line 60) | func GetCmdShowContract() *cobra.Command {
  function GetCmdParams (line 89) | func GetCmdParams() *cobra.Command {

FILE: x/clock/client/cli/tx.go
  function NewTxCmd (line 15) | func NewTxCmd() *cobra.Command {
  function NewRegisterClockContract (line 34) | func NewRegisterClockContract() *cobra.Command {
  function NewUnregisterClockContract (line 68) | func NewUnregisterClockContract() *cobra.Command {
  function NewUnjailClockContract (line 102) | func NewUnjailClockContract() *cobra.Command {

FILE: x/clock/genesis.go
  function NewGenesisState (line 14) | func NewGenesisState(params types.Params) *types.GenesisState {
  function DefaultGenesisState (line 21) | func DefaultGenesisState() *types.GenesisState {
  function GetGenesisStateFromAppState (line 27) | func GetGenesisStateFromAppState(cdc codec.Codec, appState map[string]js...
  function ValidateGenesis (line 37) | func ValidateGenesis(data types.GenesisState) error {
  function InitGenesis (line 47) | func InitGenesis(
  function ExportGenesis (line 64) | func ExportGenesis(ctx sdk.Context, k keeper.Keeper) *types.GenesisState {

FILE: x/clock/genesis_test.go
  type GenesisTestSuite (line 18) | type GenesisTestSuite struct
    method SetupTest (line 30) | func (suite *GenesisTestSuite) SetupTest() {
    method TestClockInitGenesis (line 40) | func (suite *GenesisTestSuite) TestClockInitGenesis() {
  function TestGenesisTestSuite (line 26) | func TestGenesisTestSuite(t *testing.T) {

FILE: x/clock/keeper/clock.go
  method getContractsStore (line 18) | func (k Keeper) getContractsStore(ctx sdk.Context) prefix.Store {
  method SetClockContract (line 23) | func (k Keeper) SetClockContract(ctx sdk.Context, contract types.ClockCo...
  method IsClockContract (line 37) | func (k Keeper) IsClockContract(ctx sdk.Context, contractAddress string)...
  method GetClockContract (line 43) | func (k Keeper) GetClockContract(ctx sdk.Context, contractAddress string...
  method GetAllContracts (line 65) | func (k Keeper) GetAllContracts(ctx sdk.Context) ([]types.ClockContract,...
  method GetPaginatedContracts (line 92) | func (k Keeper) GetPaginatedContracts(ctx sdk.Context, pag *query.PageRe...
  method RemoveContract (line 125) | func (k Keeper) RemoveContract(ctx sdk.Context, contractAddress string) {
  method RegisterContract (line 135) | func (k Keeper) RegisterContract(ctx sdk.Context, senderAddress string, ...
  method UnregisterContract (line 154) | func (k Keeper) UnregisterContract(ctx sdk.Context, senderAddress string...
  method SetJailStatus (line 171) | func (k Keeper) SetJailStatus(ctx sdk.Context, contractAddress string, i...
  method SetJailStatusBySender (line 195) | func (k Keeper) SetJailStatusBySender(ctx sdk.Context, senderAddress str...
  method IsContractManager (line 207) | func (k Keeper) IsContractManager(ctx sdk.Context, senderAddress string,...

FILE: x/clock/keeper/keeper.go
  type Keeper (line 17) | type Keeper struct
    method Logger (line 44) | func (k Keeper) Logger(ctx sdk.Context) log.Logger {
    method GetAuthority (line 49) | func (k Keeper) GetAuthority() string {
    method SetParams (line 54) | func (k Keeper) SetParams(ctx sdk.Context, p types.Params) error {
    method GetParams (line 67) | func (k Keeper) GetParams(ctx sdk.Context) (p types.Params) {
    method GetContractKeeper (line 79) | func (k Keeper) GetContractKeeper() wasmtypes.ContractOpsKeeper {
    method GetCdc (line 84) | func (k Keeper) GetCdc() codec.BinaryCodec {
    method GetStore (line 89) | func (k Keeper) GetStore() storetypes.StoreKey {
  function NewKeeper (line 27) | func NewKeeper(

FILE: x/clock/keeper/keeper_test.go
  type IntegrationTestSuite (line 26) | type IntegrationTestSuite struct
    method SetupTest (line 36) | func (s *IntegrationTestSuite) SetupTest() {
    method FundAccount (line 54) | func (s *IntegrationTestSuite) FundAccount(ctx sdk.Context, addr sdk.A...
    method StoreCode (line 69) | func (s *IntegrationTestSuite) StoreCode() {
    method InstantiateContract (line 90) | func (s *IntegrationTestSuite) InstantiateContract(sender string, admi...
    method RegisterClockContract (line 116) | func (s *IntegrationTestSuite) RegisterClockContract(senderAddress str...
    method UnregisterClockContract (line 122) | func (s *IntegrationTestSuite) UnregisterClockContract(senderAddress s...
    method JailClockContract (line 128) | func (s *IntegrationTestSuite) JailClockContract(contractAddress strin...
    method UnjailClockContract (line 134) | func (s *IntegrationTestSuite) UnjailClockContract(senderAddress strin...
  function TestKeeperTestSuite (line 62) | func TestKeeperTestSuite(t *testing.T) {

FILE: x/clock/keeper/msg_server.go
  type msgServer (line 17) | type msgServer struct
    method RegisterClockContract (line 29) | func (k msgServer) RegisterClockContract(goCtx context.Context, req *t...
    method UnregisterClockContract (line 41) | func (k msgServer) UnregisterClockContract(goCtx context.Context, req ...
    method UnjailClockContract (line 53) | func (k msgServer) UnjailClockContract(goCtx context.Context, req *typ...
    method UpdateParams (line 64) | func (k msgServer) UpdateParams(goCtx context.Context, req *types.MsgU...
  function NewMsgServerImpl (line 22) | func NewMsgServerImpl(k Keeper) types.MsgServer {

FILE: x/clock/keeper/msg_server_test.go
  method TestRegisterClockContract (line 13) | func (s *IntegrationTestSuite) TestRegisterClockContract() {
  method TestUnregisterClockContract (line 109) | func (s *IntegrationTestSuite) TestUnregisterClockContract() {
  method TestDuplicateRegistrationChecks (line 192) | func (s *IntegrationTestSuite) TestDuplicateRegistrationChecks() {
  method TestUnjailClockContract (line 227) | func (s *IntegrationTestSuite) TestUnjailClockContract() {

FILE: x/clock/keeper/querier.go
  type Querier (line 14) | type Querier struct
    method ClockContracts (line 25) | func (q Querier) ClockContracts(stdCtx context.Context, req *types.Que...
    method ClockContract (line 37) | func (q Querier) ClockContract(stdCtx context.Context, req *types.Quer...
    method Params (line 56) | func (q Querier) Params(stdCtx context.Context, _ *types.QueryParamsRe...
  function NewQuerier (line 18) | func NewQuerier(k Keeper) Querier {

FILE: x/clock/keeper/querier_test.go
  method TestQueryClockParams (line 11) | func (s *IntegrationTestSuite) TestQueryClockParams() {
  method TestQueryClockContracts (line 52) | func (s *IntegrationTestSuite) TestQueryClockContracts() {
  method TestQueryJailedClockContracts (line 109) | func (s *IntegrationTestSuite) TestQueryJailedClockContracts() {
  method TestQueryClockContract (line 167) | func (s *IntegrationTestSuite) TestQueryClockContract() {

FILE: x/clock/module.go
  constant ModuleName (line 27) | ModuleName = types.ModuleName
  constant ConsensusVersion (line 30) | ConsensusVersion = 1
  type AppModuleBasic (line 40) | type AppModuleBasic struct
    method Name (line 44) | func (a AppModuleBasic) Name() string {
    method DefaultGenesis (line 48) | func (a AppModuleBasic) DefaultGenesis(cdc codec.JSONCodec) json.RawMe...
    method ValidateGenesis (line 54) | func (a AppModuleBasic) ValidateGenesis(marshaler codec.JSONCodec, _ c...
    method RegisterRESTRoutes (line 66) | func (a AppModuleBasic) RegisterRESTRoutes(_ client.Context, _ *mux.Ro...
    method RegisterGRPCGatewayRoutes (line 69) | func (a AppModuleBasic) RegisterGRPCGatewayRoutes(clientCtx client.Con...
    method GetTxCmd (line 77) | func (a AppModuleBasic) GetTxCmd() *cobra.Command {
    method GetQueryCmd (line 81) | func (a AppModuleBasic) GetQueryCmd() *cobra.Command {
    method RegisterLegacyAminoCodec (line 85) | func (AppModuleBasic) RegisterLegacyAminoCodec(cdc *codec.LegacyAmino) {
    method RegisterInterfaces (line 89) | func (a AppModuleBasic) RegisterInterfaces(r codectypes.InterfaceRegis...
  type AppModule (line 93) | type AppModule struct
    method RegisterServices (line 110) | func (a AppModule) RegisterServices(cfg module.Configurator) {
    method RegisterInvariants (line 115) | func (a AppModule) RegisterInvariants(_ sdk.InvariantRegistry) {
    method InitGenesis (line 118) | func (a AppModule) InitGenesis(ctx sdk.Context, marshaler codec.JSONCo...
    method ExportGenesis (line 125) | func (a AppModule) ExportGenesis(ctx sdk.Context, marshaler codec.JSON...
    method ConsensusVersion (line 134) | func (a AppModule) ConsensusVersion() uint64 {
    method BeginBlock (line 138) | func (a AppModule) BeginBlock(ctx sdk.Context, _ abci.RequestBeginBloc...
    method EndBlock (line 142) | func (a AppModule) EndBlock(ctx sdk.Context, _ abci.RequestEndBlock) [...
    method IsOnePerModuleType (line 148) | func (am AppModule) IsOnePerModuleType() {}
    method IsAppModule (line 151) | func (am AppModule) IsAppModule() {}
  function NewAppModule (line 100) | func NewAppModule(

FILE: x/clock/types/clock.pb.go
  constant _ (line 23) | _ = proto.GoGoProtoPackageIsVersion3
  type ClockContract (line 27) | type ClockContract struct
    method Reset (line 34) | func (m *ClockContract) Reset()         { *m = ClockContract{} }
    method String (line 35) | func (m *ClockContract) String() string { return proto.CompactTextStri...
    method ProtoMessage (line 36) | func (*ClockContract) ProtoMessage()    {}
    method Descriptor (line 37) | func (*ClockContract) Descriptor() ([]byte, []int) {
    method XXX_Unmarshal (line 40) | func (m *ClockContract) XXX_Unmarshal(b []byte) error {
    method XXX_Marshal (line 43) | func (m *ClockContract) XXX_Marshal(b []byte, deterministic bool) ([]b...
    method XXX_Merge (line 55) | func (m *ClockContract) XXX_Merge(src proto.Message) {
    method XXX_Size (line 58) | func (m *ClockContract) XXX_Size() int {
    method XXX_DiscardUnknown (line 61) | func (m *ClockContract) XXX_DiscardUnknown() {
    method GetContractAddress (line 67) | func (m *ClockContract) GetContractAddress() string {
    method GetIsJailed (line 74) | func (m *ClockContract) GetIsJailed() bool {
    method Marshal (line 104) | func (m *ClockContract) Marshal() (dAtA []byte, err error) {
    method MarshalTo (line 114) | func (m *ClockContract) MarshalTo(dAtA []byte) (int, error) {
    method MarshalToSizedBuffer (line 119) | func (m *ClockContract) MarshalToSizedBuffer(dAtA []byte) (int, error) {
    method Size (line 155) | func (m *ClockContract) Size() (n int) {
    method Unmarshal (line 177) | func (m *ClockContract) Unmarshal(dAtA []byte) error {
  function init (line 81) | func init() {
  function init (line 85) | func init() { proto.RegisterFile("cyber/clock/v1/clock.proto", fileDescr...
  function encodeVarintClock (line 144) | func encodeVarintClock(dAtA []byte, offset int, v uint64) int {
  function sovClock (line 171) | func sovClock(x uint64) (n int) {
  function sozClock (line 174) | func sozClock(x uint64) (n int) {
  function skipClock (line 279) | func skipClock(dAtA []byte) (n int, err error) {

FILE: x/clock/types/codec.go
  function init (line 18) | func init() {
  function RegisterLegacyAminoCodec (line 31) | func RegisterLegacyAminoCodec(cdc *codec.LegacyAmino) {
  function RegisterInterfaces (line 38) | func RegisterInterfaces(registry types.InterfaceRegistry) {

FILE: x/clock/types/codec_test.go
  type CodecTestSuite (line 12) | type CodecTestSuite struct
    method TestRegisterInterfaces (line 20) | func (suite *CodecTestSuite) TestRegisterInterfaces() {
  function TestCodecSuite (line 16) | func TestCodecSuite(t *testing.T) {

FILE: x/clock/types/genesis.pb.go
  constant _ (line 24) | _ = proto.GoGoProtoPackageIsVersion3
  type GenesisState (line 27) | type GenesisState struct
    method Reset (line 32) | func (m *GenesisState) Reset()         { *m = GenesisState{} }
    method String (line 33) | func (m *GenesisState) String() string { return proto.CompactTextStrin...
    method ProtoMessage (line 34) | func (*GenesisState) ProtoMessage()    {}
    method Descriptor (line 35) | func (*GenesisState) Descriptor() ([]byte, []int) {
    method XXX_Unmarshal (line 38) | func (m *GenesisState) XXX_Unmarshal(b []byte) error {
    method XXX_Marshal (line 41) | func (m *GenesisState) XXX_Marshal(b []byte, deterministic bool) ([]by...
    method XXX_Merge (line 53) | func (m *GenesisState) XXX_Merge(src proto.Message) {
    method XXX_Size (line 56) | func (m *GenesisState) XXX_Size() int {
    method XXX_DiscardUnknown (line 59) | func (m *GenesisState) XXX_DiscardUnknown() {
    method GetParams (line 65) | func (m *GenesisState) GetParams() Params {
    method Marshal (line 148) | func (m *GenesisState) Marshal() (dAtA []byte, err error) {
    method MarshalTo (line 158) | func (m *GenesisState) MarshalTo(dAtA []byte) (int, error) {
    method MarshalToSizedBuffer (line 163) | func (m *GenesisState) MarshalToSizedBuffer(dAtA []byte) (int, error) {
    method Size (line 220) | func (m *GenesisState) Size() (n int) {
    method Unmarshal (line 249) | func (m *GenesisState) Unmarshal(dAtA []byte) error {
  type Params (line 73) | type Params struct
    method Reset (line 79) | func (m *Params) Reset()         { *m = Params{} }
    method String (line 80) | func (m *Params) String() string { return proto.CompactTextString(m) }
    method ProtoMessage (line 81) | func (*Params) ProtoMessage()    {}
    method Descriptor (line 82) | func (*Params) Descriptor() ([]byte, []int) {
    method XXX_Unmarshal (line 85) | func (m *Params) XXX_Unmarshal(b []byte) error {
    method XXX_Marshal (line 88) | func (m *Params) XXX_Marshal(b []byte, deterministic bool) ([]byte, er...
    method XXX_Merge (line 100) | func (m *Params) XXX_Merge(src proto.Message) {
    method XXX_Size (line 103) | func (m *Params) XXX_Size() int {
    method XXX_DiscardUnknown (line 106) | func (m *Params) XXX_DiscardUnknown() {
    method GetContractGasLimit (line 112) | func (m *Params) GetContractGasLimit() uint64 {
    method Marshal (line 181) | func (m *Params) Marshal() (dAtA []byte, err error) {
    method MarshalTo (line 191) | func (m *Params) MarshalTo(dAtA []byte) (int, error) {
    method MarshalToSizedBuffer (line 196) | func (m *Params) MarshalToSizedBuffer(dAtA []byte) (int, error) {
    method Size (line 231) | func (m *Params) Size() (n int) {
    method Unmarshal (line 332) | func (m *Params) Unmarshal(dAtA []byte) error {
  function init (line 119) | func init() {
  function init (line 124) | func init() { proto.RegisterFile("cyber/clock/v1/genesis.proto", fileDes...
  function encodeVarintGenesis (line 209) | func encodeVarintGenesis(dAtA []byte, offset int, v uint64) int {
  function sovGenesis (line 243) | func sovGenesis(x uint64) (n int) {
  function sozGenesis (line 246) | func sozGenesis(x uint64) (n int) {
  function skipGenesis (line 401) | func skipGenesis(dAtA []byte) (n int, err error) {

FILE: x/clock/types/keys.go
  constant ModuleName (line 6) | ModuleName = "clock"
  constant RouterKey (line 8) | RouterKey = ModuleName
  constant StoreKey (line 10) | StoreKey = ModuleName

FILE: x/clock/types/msgs.go
  constant BeginBlockSudoMessage (line 13) | BeginBlockSudoMessage = `{"clock_begin_block":{}}`
  constant EndBlockSudoMessage (line 14) | EndBlockSudoMessage   = `{"clock_end_block":{}}`
  constant TypeMsgRegisterFeePayContract (line 19) | TypeMsgRegisterFeePayContract   = "register_clock_contract"
  constant TypeMsgUnregisterFeePayContract (line 20) | TypeMsgUnregisterFeePayContract = "unregister_clock_contract"
  constant TypeMsgUnjailFeePayContract (line 21) | TypeMsgUnjailFeePayContract     = "unjail_clock_contract"
  constant TypeMsgUpdateParams (line 22) | TypeMsgUpdateParams             = "update_clock_params"
  method Route (line 33) | func (msg MsgRegisterClockContract) Route() string { return RouterKey }
  method Type (line 36) | func (msg MsgRegisterClockContract) Type() string { return TypeMsgRegist...
  method ValidateBasic (line 39) | func (msg MsgRegisterClockContract) ValidateBasic() error {
  method GetSignBytes (line 44) | func (msg *MsgRegisterClockContract) GetSignBytes() []byte {
  method GetSigners (line 49) | func (msg MsgRegisterClockContract) GetSigners() []sdk.AccAddress {
  method Route (line 55) | func (msg MsgUnregisterClockContract) Route() string { return RouterKey }
  method Type (line 58) | func (msg MsgUnregisterClockContract) Type() string { return TypeMsgRegi...
  method ValidateBasic (line 61) | func (msg MsgUnregisterClockContract) ValidateBasic() error {
  method GetSignBytes (line 66) | func (msg *MsgUnregisterClockContract) GetSignBytes() []byte {
  method GetSigners (line 71) | func (msg MsgUnregisterClockContract) GetSigners() []sdk.AccAddress {
  method Route (line 77) | func (msg MsgUnjailClockContract) Route() string { return RouterKey }
  method Type (line 80) | func (msg MsgUnjailClockContract) Type() string { return TypeMsgRegister...
  method ValidateBasic (line 83) | func (msg MsgUnjailClockContract) ValidateBasic() error {
  method GetSignBytes (line 88) | func (msg *MsgUnjailClockContract) GetSignBytes() []byte {
  method GetSigners (line 93) | func (msg MsgUnjailClockContract) GetSigners() []sdk.AccAddress {
  function NewMsgUpdateParams (line 99) | func NewMsgUpdateParams(
  method Route (line 110) | func (msg MsgUpdateParams) Route() string { return RouterKey }
  method Type (line 113) | func (msg MsgUpdateParams) Type() string { return TypeMsgUpdateParams }
  method GetSignBytes (line 116) | func (msg MsgUpdateParams) GetSignBytes() []byte {
  method GetSigners (line 121) | func (msg *MsgUpdateParams) GetSigners() []sdk.AccAddress {
  method ValidateBasic (line 127) | func (msg *MsgUpdateParams) ValidateBasic() error {
  function validateAddresses (line 136) | func validateAddresses(addresses ...string) error {

FILE: x/clock/types/msgs_test.go
  type MsgsTestSuite (line 11) | type MsgsTestSuite struct
    method SetupTest (line 20) | func (suite *MsgsTestSuite) SetupTest() {
    method TestMsgUpdateParams (line 24) | func (suite *MsgsTestSuite) TestMsgUpdateParams() {
  function TestMsgsTestSuite (line 16) | func TestMsgsTestSuite(t *testing.T) {

FILE: x/clock/types/params.go
  function DefaultParams (line 10) | func DefaultParams() Params {
  function NewParams (line 17) | func NewParams(
  method Validate (line 26) | func (p Params) Validate() error {

FILE: x/clock/types/params_test.go
  function TestParamsValidate (line 11) | func TestParamsValidate(t *testing.T) {

FILE: x/clock/types/query.pb.go
  constant _ (line 31) | _ = proto.GoGoProtoPackageIsVersion3
  type QueryClockContracts (line 34) | type QueryClockContracts struct
    method Reset (line 39) | func (m *QueryClockContracts) Reset()         { *m = QueryClockContrac...
    method String (line 40) | func (m *QueryClockContracts) String() string { return proto.CompactTe...
    method ProtoMessage (line 41) | func (*QueryClockContracts) ProtoMessage()    {}
    method Descriptor (line 42) | func (*QueryClockContracts) Descriptor() ([]byte, []int) {
    method XXX_Unmarshal (line 45) | func (m *QueryClockContracts) XXX_Unmarshal(b []byte) error {
    method XXX_Marshal (line 48) | func (m *QueryClockContracts) XXX_Marshal(b []byte, deterministic bool...
    method XXX_Merge (line 60) | func (m *QueryClockContracts) XXX_Merge(src proto.Message) {
    method XXX_Size (line 63) | func (m *QueryClockContracts) XXX_Size() int {
    method XXX_DiscardUnknown (line 66) | func (m *QueryClockContracts) XXX_DiscardUnknown() {
    method GetPagination (line 72) | func (m *QueryClockContracts) GetPagination() *query.PageRequest {
    method Marshal (line 518) | func (m *QueryClockContracts) Marshal() (dAtA []byte, err error) {
    method MarshalTo (line 528) | func (m *QueryClockContracts) MarshalTo(dAtA []byte) (int, error) {
    method MarshalToSizedBuffer (line 533) | func (m *QueryClockContracts) MarshalToSizedBuffer(dAtA []byte) (int, ...
    method Size (line 734) | func (m *QueryClockContracts) Size() (n int) {
    method Unmarshal (line 818) | func (m *QueryClockContracts) Unmarshal(dAtA []byte) error {
  type QueryClockContractsResponse (line 81) | type QueryClockContractsResponse struct
    method Reset (line 88) | func (m *QueryClockContractsResponse) Reset()         { *m = QueryCloc...
    method String (line 89) | func (m *QueryClockContractsResponse) String() string { return proto.C...
    method ProtoMessage (line 90) | func (*QueryClockContractsResponse) ProtoMessage()    {}
    method Descriptor (line 91) | func (*QueryClockContractsResponse) Descriptor() ([]byte, []int) {
    method XXX_Unmarshal (line 94) | func (m *QueryClockContractsResponse) XXX_Unmarshal(b []byte) error {
    method XXX_Marshal (line 97) | func (m *QueryClockContractsResponse) XXX_Marshal(b []byte, determinis...
    method XXX_Merge (line 109) | func (m *QueryClockContractsResponse) XXX_Merge(src proto.Message) {
    method XXX_Size (line 112) | func (m *QueryClockContractsResponse) XXX_Size() int {
    method XXX_DiscardUnknown (line 115) | func (m *QueryClockContractsResponse) XXX_DiscardUnknown() {
    method GetClockContracts (line 121) | func (m *QueryClockContractsResponse) GetClockContracts() []ClockContr...
    method GetPagination (line 128) | func (m *QueryClockContractsResponse) GetPagination() *query.PageRespo...
    method Marshal (line 553) | func (m *QueryClockContractsResponse) Marshal() (dAtA []byte, err erro...
    method MarshalTo (line 563) | func (m *QueryClockContractsResponse) MarshalTo(dAtA []byte) (int, err...
    method MarshalToSizedBuffer (line 568) | func (m *QueryClockContractsResponse) MarshalToSizedBuffer(dAtA []byte...
    method Size (line 747) | func (m *QueryClockContractsResponse) Size() (n int) {
    method Unmarshal (line 904) | func (m *QueryClockContractsResponse) Unmarshal(dAtA []byte) error {
  type QueryClockContract (line 136) | type QueryClockContract struct
    method Reset (line 141) | func (m *QueryClockContract) Reset()         { *m = QueryClockContract...
    method String (line 142) | func (m *QueryClockContract) String() string { return proto.CompactTex...
    method ProtoMessage (line 143) | func (*QueryClockContract) ProtoMessage()    {}
    method Descriptor (line 144) | func (*QueryClockContract) Descriptor() ([]byte, []int) {
    method XXX_Unmarshal (line 147) | func (m *QueryClockContract) XXX_Unmarshal(b []byte) error {
    method XXX_Marshal (line 150) | func (m *QueryClockContract) XXX_Marshal(b []byte, deterministic bool)...
    method XXX_Merge (line 162) | func (m *QueryClockContract) XXX_Merge(src proto.Message) {
    method XXX_Size (line 165) | func (m *QueryClockContract) XXX_Size() int {
    method XXX_DiscardUnknown (line 168) | func (m *QueryClockContract) XXX_DiscardUnknown() {
    method GetContractAddress (line 174) | func (m *QueryClockContract) GetContractAddress() string {
    method Marshal (line 602) | func (m *QueryClockContract) Marshal() (dAtA []byte, err error) {
    method MarshalTo (line 612) | func (m *QueryClockContract) MarshalTo(dAtA []byte) (int, error) {
    method MarshalToSizedBuffer (line 617) | func (m *QueryClockContract) MarshalToSizedBuffer(dAtA []byte) (int, e...
    method Size (line 766) | func (m *QueryClockContract) Size() (n int) {
    method Unmarshal (line 1024) | func (m *QueryClockContract) Unmarshal(dAtA []byte) error {
  type QueryClockContractResponse (line 183) | type QueryClockContractResponse struct
    method Reset (line 188) | func (m *QueryClockContractResponse) Reset()         { *m = QueryClock...
    method String (line 189) | func (m *QueryClockContractResponse) String() string { return proto.Co...
    method ProtoMessage (line 190) | func (*QueryClockContractResponse) ProtoMessage()    {}
    method Descriptor (line 191) | func (*QueryClockContractResponse) Descriptor() ([]byte, []int) {
    method XXX_Unmarshal (line 194) | func (m *QueryClockContractResponse) XXX_Unmarshal(b []byte) error {
    method XXX_Marshal (line 197) | func (m *QueryClockContractResponse) XXX_Marshal(b []byte, determinist...
    method XXX_Merge (line 209) | func (m *QueryClockContractResponse) XXX_Merge(src proto.Message) {
    method XXX_Size (line 212) | func (m *QueryClockContractResponse) XXX_Size() int {
    method XXX_DiscardUnknown (line 215) | func (m *QueryClockContractResponse) XXX_DiscardUnknown() {
    method GetClockContract (line 221) | func (m *QueryClockContractResponse) GetClockContract() ClockContract {
    method Marshal (line 632) | func (m *QueryClockContractResponse) Marshal() (dAtA []byte, err error) {
    method MarshalTo (line 642) | func (m *QueryClockContractResponse) MarshalTo(dAtA []byte) (int, erro...
    method MarshalToSizedBuffer (line 647) | func (m *QueryClockContractResponse) MarshalToSizedBuffer(dAtA []byte)...
    method Size (line 779) | func (m *QueryClockContractResponse) Size() (n int) {
    method Unmarshal (line 1106) | func (m *QueryClockContractResponse) Unmarshal(dAtA []byte) error {
  type QueryParamsRequest (line 229) | type QueryParamsRequest struct
    method Reset (line 232) | func (m *QueryParamsRequest) Reset()         { *m = QueryParamsRequest...
    method String (line 233) | func (m *QueryParamsRequest) String() string { return proto.CompactTex...
    method ProtoMessage (line 234) | func (*QueryParamsRequest) ProtoMessage()    {}
    method Descriptor (line 235) | func (*QueryParamsRequest) Descriptor() ([]byte, []int) {
    method XXX_Unmarshal (line 238) | func (m *QueryParamsRequest) XXX_Unmarshal(b []byte) error {
    method XXX_Marshal (line 241) | func (m *QueryParamsRequest) XXX_Marshal(b []byte, deterministic bool)...
    method XXX_Merge (line 253) | func (m *QueryParamsRequest) XXX_Merge(src proto.Message) {
    method XXX_Size (line 256) | func (m *QueryParamsRequest) XXX_Size() int {
    method XXX_DiscardUnknown (line 259) | func (m *QueryParamsRequest) XXX_DiscardUnknown() {
    method Marshal (line 665) | func (m *QueryParamsRequest) Marshal() (dAtA []byte, err error) {
    method MarshalTo (line 675) | func (m *QueryParamsRequest) MarshalTo(dAtA []byte) (int, error) {
    method MarshalToSizedBuffer (line 680) | func (m *QueryParamsRequest) MarshalToSizedBuffer(dAtA []byte) (int, e...
    method Size (line 790) | func (m *QueryParamsRequest) Size() (n int) {
    method Unmarshal (line 1189) | func (m *QueryParamsRequest) Unmarshal(dAtA []byte) error {
  type QueryParamsResponse (line 267) | type QueryParamsResponse struct
    method Reset (line 271) | func (m *QueryParamsResponse) Reset()         { *m = QueryParamsRespon...
    method String (line 272) | func (m *QueryParamsResponse) String() string { return proto.CompactTe...
    method ProtoMessage (line 273) | func (*QueryParamsResponse) ProtoMessage()    {}
    method Descriptor (line 274) | func (*QueryParamsResponse) Descriptor() ([]byte, []int) {
    method XXX_Unmarshal (line 277) | func (m *QueryParamsResponse) XXX_Unmarshal(b []byte) error {
    method XXX_Marshal (line 280) | func (m *QueryParamsResponse) XXX_Marshal(b []byte, deterministic bool...
    method XXX_Merge (line 292) | func (m *QueryParamsResponse) XXX_Merge(src proto.Message) {
    method XXX_Size (line 295) | func (m *QueryParamsResponse) XXX_Size() int {
    method XXX_DiscardUnknown (line 298) | func (m *QueryParamsResponse) XXX_DiscardUnknown() {
    method GetParams (line 304) | func (m *QueryParamsResponse) GetParams() *Params {
    method Marshal (line 688) | func (m *QueryParamsResponse) Marshal() (dAtA []byte, err error) {
    method MarshalTo (line 698) | func (m *QueryParamsResponse) MarshalTo(dAtA []byte) (int, error) {
    method MarshalToSizedBuffer (line 703) | func (m *QueryParamsResponse) MarshalToSizedBuffer(dAtA []byte) (int, ...
    method Size (line 799) | func (m *QueryParamsResponse) Size() (n int) {
    method Unmarshal (line 1239) | func (m *QueryParamsResponse) Unmarshal(dAtA []byte) error {
  function init (line 311) | func init() {
  function init (line 320) | func init() { proto.RegisterFile("cyber/clock/v1/query.proto", fileDescr...
  constant _ (line 366) | _ = grpc.SupportPackageIsVersion4
  type QueryClient (line 371) | type QueryClient interface
  type queryClient (line 380) | type queryClient struct
    method ClockContracts (line 388) | func (c *queryClient) ClockContracts(ctx context.Context, in *QueryClo...
    method ClockContract (line 397) | func (c *queryClient) ClockContract(ctx context.Context, in *QueryCloc...
    method Params (line 406) | func (c *queryClient) Params(ctx context.Context, in *QueryParamsReque...
  function NewQueryClient (line 384) | func NewQueryClient(cc grpc1.ClientConn) QueryClient {
  type QueryServer (line 416) | type QueryServer interface
  type UnimplementedQueryServer (line 426) | type UnimplementedQueryServer struct
    method ClockContracts (line 429) | func (*UnimplementedQueryServer) ClockContracts(ctx context.Context, r...
    method ClockContract (line 432) | func (*UnimplementedQueryServer) ClockContract(ctx context.Context, re...
    method Params (line 435) | func (*UnimplementedQueryServer) Params(ctx context.Context, req *Quer...
  function RegisterQueryServer (line 439) | func RegisterQueryServer(s grpc1.Server, srv QueryServer) {
  function _Query_ClockContracts_Handler (line 443) | func _Query_ClockContracts_Handler(srv interface{}, ctx context.Context,...
  function _Query_ClockContract_Handler (line 461) | func _Query_ClockContract_Handler(srv interface{}, ctx context.Context, ...
  function _Query_Params_Handler (line 479) | func _Query_Params_Handler(srv interface{}, ctx context.Context, dec fun...
  function encodeVarintQuery (line 723) | func encodeVarintQuery(dAtA []byte, offset int, v uint64) int {
  function sovQuery (line 812) | func sovQuery(x uint64) (n int) {
  function sozQuery (line 815) | func sozQuery(x uint64) (n int) {
  function skipQuery (line 1325) | func skipQuery(dAtA []byte) (n int, err error) {

FILE: x/clock/types/query.pb.gw.go
  function request_Query_ClockContracts_0 (line 40) | func request_Query_ClockContracts_0(ctx context.Context, marshaler runti...
  function local_request_Query_ClockContracts_0 (line 56) | func local_request_Query_ClockContracts_0(ctx context.Context, marshaler...
  function request_Query_ClockContract_0 (line 72) | func request_Query_ClockContract_0(ctx context.Context, marshaler runtim...
  function local_request_Query_ClockContract_0 (line 99) | func local_request_Query_ClockContract_0(ctx context.Context, marshaler ...
  function request_Query_Params_0 (line 126) | func request_Query_Params_0(ctx context.Context, marshaler runtime.Marsh...
  function local_request_Query_Params_0 (line 135) | func local_request_Query_Params_0(ctx context.Context, marshaler runtime...
  function RegisterQueryHandlerServer (line 148) | func RegisterQueryHandlerServer(ctx context.Context, mux *runtime.ServeM...
  function RegisterQueryHandlerFromEndpoint (line 224) | func RegisterQueryHandlerFromEndpoint(ctx context.Context, mux *runtime....
  function RegisterQueryHandler (line 249) | func RegisterQueryHandler(ctx context.Context, mux *runtime.ServeMux, co...
  function RegisterQueryHandlerClient (line 258) | func RegisterQueryHandlerClient(ctx context.Context, mux *runtime.ServeM...

FILE: x/clock/types/tx.pb.go
  constant _ (line 32) | _ = proto.GoGoProtoPackageIsVersion3
  type MsgRegisterClockContract (line 35) | type MsgRegisterClockContract struct
    method Reset (line 42) | func (m *MsgRegisterClockContract) Reset()         { *m = MsgRegisterC...
    method String (line 43) | func (m *MsgRegisterClockContract) String() string { return proto.Comp...
    method ProtoMessage (line 44) | func (*MsgRegisterClockContract) ProtoMessage()    {}
    method Descriptor (line 45) | func (*MsgRegisterClockContract) Descriptor() ([]byte, []int) {
    method XXX_Unmarshal (line 48) | func (m *MsgRegisterClockContract) XXX_Unmarshal(b []byte) error {
    method XXX_Marshal (line 51) | func (m *MsgRegisterClockContract) XXX_Marshal(b []byte, deterministic...
    method XXX_Merge (line 63) | func (m *MsgRegisterClockContract) XXX_Merge(src proto.Message) {
    method XXX_Size (line 66) | func (m *MsgRegisterClockContract) XXX_Size() int {
    method XXX_DiscardUnknown (line 69) | func (m *MsgRegisterClockContract) XXX_DiscardUnknown() {
    method GetSenderAddress (line 75) | func (m *MsgRegisterClockContract) GetSenderAddress() string {
    method GetContractAddress (line 82) | func (m *MsgRegisterClockContract) GetContractAddress() string {
    method Marshal (line 671) | func (m *MsgRegisterClockContract) Marshal() (dAtA []byte, err error) {
    method MarshalTo (line 681) | func (m *MsgRegisterClockContract) MarshalTo(dAtA []byte) (int, error) {
    method MarshalToSizedBuffer (line 686) | func (m *MsgRegisterClockContract) MarshalToSizedBuffer(dAtA []byte) (...
    method Size (line 925) | func (m *MsgRegisterClockContract) Size() (n int) {
    method Unmarshal (line 1033) | func (m *MsgRegisterClockContract) Unmarshal(dAtA []byte) error {
  type MsgRegisterClockContractResponse (line 91) | type MsgRegisterClockContractResponse struct
    method Reset (line 94) | func (m *MsgRegisterClockContractResponse) Reset()         { *m = MsgR...
    method String (line 95) | func (m *MsgRegisterClockContractResponse) String() string { return pr...
    method ProtoMessage (line 96) | func (*MsgRegisterClockContractResponse) ProtoMessage()    {}
    method Descriptor (line 97) | func (*MsgRegisterClockContractResponse) Descriptor() ([]byte, []int) {
    method XXX_Unmarshal (line 100) | func (m *MsgRegisterClockContractResponse) XXX_Unmarshal(b []byte) err...
    method XXX_Marshal (line 103) | func (m *MsgRegisterClockContractResponse) XXX_Marshal(b []byte, deter...
    method XXX_Merge (line 115) | func (m *MsgRegisterClockContractResponse) XXX_Merge(src proto.Message) {
    method XXX_Size (line 118) | func (m *MsgRegisterClockContractResponse) XXX_Size() int {
    method XXX_DiscardUnknown (line 121) | func (m *MsgRegisterClockContractResponse) XXX_DiscardUnknown() {
    method Marshal (line 708) | func (m *MsgRegisterClockContractResponse) Marshal() (dAtA []byte, err...
    method MarshalTo (line 718) | func (m *MsgRegisterClockContractResponse) MarshalTo(dAtA []byte) (int...
    method MarshalToSizedBuffer (line 723) | func (m *MsgRegisterClockContractResponse) MarshalToSizedBuffer(dAtA [...
    method Size (line 942) | func (m *MsgRegisterClockContractResponse) Size() (n int) {
    method Unmarshal (line 1147) | func (m *MsgRegisterClockContractResponse) Unmarshal(dAtA []byte) error {
  type MsgUnregisterClockContract (line 128) | type MsgUnregisterClockContract struct
    method Reset (line 135) | func (m *MsgUnregisterClockContract) Reset()         { *m = MsgUnregis...
    method String (line 136) | func (m *MsgUnregisterClockContract) String() string { return proto.Co...
    method ProtoMessage (line 137) | func (*MsgUnregisterClockContract) ProtoMessage()    {}
    method Descriptor (line 138) | func (*MsgUnregisterClockContract) Descriptor() ([]byte, []int) {
    method XXX_Unmarshal (line 141) | func (m *MsgUnregisterClockContract) XXX_Unmarshal(b []byte) error {
    method XXX_Marshal (line 144) | func (m *MsgUnregisterClockContract) XXX_Marshal(b []byte, determinist...
    method XXX_Merge (line 156) | func (m *MsgUnregisterClockContract) XXX_Merge(src proto.Message) {
    method XXX_Size (line 159) | func (m *MsgUnregisterClockContract) XXX_Size() int {
    method XXX_DiscardUnknown (line 162) | func (m *MsgUnregisterClockContract) XXX_DiscardUnknown() {
    method GetSenderAddress (line 168) | func (m *MsgUnregisterClockContract) GetSenderAddress() string {
    method GetContractAddress (line 175) | func (m *MsgUnregisterClockContract) GetContractAddress() string {
    method Marshal (line 731) | func (m *MsgUnregisterClockContract) Marshal() (dAtA []byte, err error) {
    method MarshalTo (line 741) | func (m *MsgUnregisterClockContract) MarshalTo(dAtA []byte) (int, erro...
    method MarshalToSizedBuffer (line 746) | func (m *MsgUnregisterClockContract) MarshalToSizedBuffer(dAtA []byte)...
    method Size (line 951) | func (m *MsgUnregisterClockContract) Size() (n int) {
    method Unmarshal (line 1197) | func (m *MsgUnregisterClockContract) Unmarshal(dAtA []byte) error {
  type MsgUnregisterClockContractResponse (line 184) | type MsgUnregisterClockContractResponse struct
    method Reset (line 187) | func (m *MsgUnregisterClockContractResponse) Reset()         { *m = Ms...
    method String (line 188) | func (m *MsgUnregisterClockContractResponse) String() string { return ...
    method ProtoMessage (line 189) | func (*MsgUnregisterClockContractResponse) ProtoMessage()    {}
    method Descriptor (line 190) | func (*MsgUnregisterClockContractResponse) Descriptor() ([]byte, []int) {
    method XXX_Unmarshal (line 193) | func (m *MsgUnregisterClockContractResponse) XXX_Unmarshal(b []byte) e...
    method XXX_Marshal (line 196) | func (m *MsgUnregisterClockContractResponse) XXX_Marshal(b []byte, det...
    method XXX_Merge (line 208) | func (m *MsgUnregisterClockContractResponse) XXX_Merge(src proto.Messa...
    method XXX_Size (line 211) | func (m *MsgUnregisterClockContractResponse) XXX_Size() int {
    method XXX_DiscardUnknown (line 214) | func (m *MsgUnregisterClockContractResponse) XXX_DiscardUnknown() {
    method Marshal (line 768) | func (m *MsgUnregisterClockContractResponse) Marshal() (dAtA []byte, e...
    method MarshalTo (line 778) | func (m *MsgUnregisterClockContractResponse) MarshalTo(dAtA []byte) (i...
    method MarshalToSizedBuffer (line 783) | func (m *MsgUnregisterClockContractResponse) MarshalToSizedBuffer(dAtA...
    method Size (line 968) | func (m *MsgUnregisterClockContractResponse) Size() (n int) {
    method Unmarshal (line 1311) | func (m *MsgUnregisterClockContractResponse) Unmarshal(dAtA []byte) er...
  type MsgUnjailClockContract (line 221) | type MsgUnjailClockContract struct
    method Reset (line 228) | func (m *MsgUnjailClockContract) Reset()         { *m = MsgUnjailClock...
    method String (line 229) | func (m *MsgUnjailClockContract) String() string { return proto.Compac...
    method ProtoMessage (line 230) | func (*MsgUnjailClockContract) ProtoMessage()    {}
    method Descriptor (line 231) | func (*MsgUnjailClockContract) Descriptor() ([]byte, []int) {
    method XXX_Unmarshal (line 234) | func (m *MsgUnjailClockContract) XXX_Unmarshal(b []byte) error {
    method XXX_Marshal (line 237) | func (m *MsgUnjailClockContract) XXX_Marshal(b []byte, deterministic b...
    method XXX_Merge (line 249) | func (m *MsgUnjailClockContract) XXX_Merge(src proto.Message) {
    method XXX_Size (line 252) | func (m *MsgUnjailClockContract) XXX_Size() int {
    method XXX_DiscardUnknown (line 255) | func (m *MsgUnjailClockContract) XXX_DiscardUnknown() {
    method GetSenderAddress (line 261) | func (m *MsgUnjailClockContract) GetSenderAddress() string {
    method GetContractAddress (line 268) | func (m *MsgUnjailClockContract) GetContractAddress() string {
    method Marshal (line 791) | func (m *MsgUnjailClockContract) Marshal() (dAtA []byte, err error) {
    method MarshalTo (line 801) | func (m *MsgUnjailClockContract) MarshalTo(dAtA []byte) (int, error) {
    method MarshalToSizedBuffer (line 806) | func (m *MsgUnjailClockContract) MarshalToSizedBuffer(dAtA []byte) (in...
    method Size (line 977) | func (m *MsgUnjailClockContract) Size() (n int) {
    method Unmarshal (line 1361) | func (m *MsgUnjailClockContract) Unmarshal(dAtA []byte) error {
  type MsgUnjailClockContractResponse (line 277) | type MsgUnjailClockContractResponse struct
    method Reset (line 280) | func (m *MsgUnjailClockContractResponse) Reset()         { *m = MsgUnj...
    method String (line 281) | func (m *MsgUnjailClockContractResponse) String() string { return prot...
    method ProtoMessage (line 282) | func (*MsgUnjailClockContractResponse) ProtoMessage()    {}
    method Descriptor (line 283) | func (*MsgUnjailClockContractResponse) Descriptor() ([]byte, []int) {
    method XXX_Unmarshal (line 286) | func (m *MsgUnjailClockContractResponse) XXX_Unmarshal(b []byte) error {
    method XXX_Marshal (line 289) | func (m *MsgUnjailClockContractResponse) XXX_Marshal(b []byte, determi...
    method XXX_Merge (line 301) | func (m *MsgUnjailClockContractResponse) XXX_Merge(src proto.Message) {
    method XXX_Size (line 304) | func (m *MsgUnjailClockContractResponse) XXX_Size() int {
    method XXX_DiscardUnknown (line 307) | func (m *MsgUnjailClockContractResponse) XXX_DiscardUnknown() {
    method Marshal (line 828) | func (m *MsgUnjailClockContractResponse) Marshal() (dAtA []byte, err e...
    method MarshalTo (line 838) | func (m *MsgUnjailClockContractResponse) MarshalTo(dAtA []byte) (int, ...
    method MarshalToSizedBuffer (line 843) | func (m *MsgUnjailClockContractResponse) MarshalToSizedBuffer(dAtA []b...
    method Size (line 994) | func (m *MsgUnjailClockContractResponse) Size() (n int) {
    method Unmarshal (line 1475) | func (m *MsgUnjailClockContractResponse) Unmarshal(dAtA []byte) error {
  type MsgUpdateParams (line 316) | type MsgUpdateParams struct
    method Reset (line 325) | func (m *MsgUpdateParams) Reset()         { *m = MsgUpdateParams{} }
    method String (line 326) | func (m *MsgUpdateParams) String() string { return proto.CompactTextSt...
    method ProtoMessage (line 327) | func (*MsgUpdateParams) ProtoMessage()    {}
    method Descriptor (line 328) | func (*MsgUpdateParams) Descriptor() ([]byte, []int) {
    method XXX_Unmarshal (line 331) | func (m *MsgUpdateParams) XXX_Unmarshal(b []byte) error {
    method XXX_Marshal (line 334) | func (m *MsgUpdateParams) XXX_Marshal(b []byte, deterministic bool) ([...
    method XXX_Merge (line 346) | func (m *MsgUpdateParams) XXX_Merge(src proto.Message) {
    method XXX_Size (line 349) | func (m *MsgUpdateParams) XXX_Size() int {
    method XXX_DiscardUnknown (line 352) | func (m *MsgUpdateParams) XXX_DiscardUnknown() {
    method GetAuthority (line 358) | func (m *MsgUpdateParams) GetAuthority() string {
    method GetParams (line 365) | func (m *MsgUpdateParams) GetParams() Params {
    method Marshal (line 851) | func (m *MsgUpdateParams) Marshal() (dAtA []byte, err error) {
    method MarshalTo (line 861) | func (m *MsgUpdateParams) MarshalTo(dAtA []byte) (int, error) {
    method MarshalToSizedBuffer (line 866) | func (m *MsgUpdateParams) MarshalToSizedBuffer(dAtA []byte) (int, erro...
    method Size (line 1003) | func (m *MsgUpdateParams) Size() (n int) {
    method Unmarshal (line 1525) | func (m *MsgUpdateParams) Unmarshal(dAtA []byte) error {
  type MsgUpdateParamsResponse (line 376) | type MsgUpdateParamsResponse struct
    method Reset (line 379) | func (m *MsgUpdateParamsResponse) Reset()         { *m = MsgUpdatePara...
    method String (line 380) | func (m *MsgUpdateParamsResponse) String() string { return proto.Compa...
    method ProtoMessage (line 381) | func (*MsgUpdateParamsResponse) ProtoMessage()    {}
    method Descriptor (line 382) | func (*MsgUpdateParamsResponse) Descriptor() ([]byte, []int) {
    method XXX_Unmarshal (line 385) | func (m *MsgUpdateParamsResponse) XXX_Unmarshal(b []byte) error {
    method XXX_Marshal (line 388) | func (m *MsgUpdateParamsResponse) XXX_Marshal(b []byte, deterministic ...
    method XXX_Merge (line 400) | func (m *MsgUpdateParamsResponse) XXX_Merge(src proto.Message) {
    method XXX_Size (line 403) | func (m *MsgUpdateParamsResponse) XXX_Size() int {
    method XXX_DiscardUnknown (line 406) | func (m *MsgUpdateParamsResponse) XXX_DiscardUnknown() {
    method Marshal (line 891) | func (m *MsgUpdateParamsResponse) Marshal() (dAtA []byte, err error) {
    method MarshalTo (line 901) | func (m *MsgUpdateParamsResponse) MarshalTo(dAtA []byte) (int, error) {
    method MarshalToSizedBuffer (line 906) | func (m *MsgUpdateParamsResponse) MarshalToSizedBuffer(dAtA []byte) (i...
    method Size (line 1018) | func (m *MsgUpdateParamsResponse) Size() (n int) {
    method Unmarshal (line 1640) | func (m *MsgUpdateParamsResponse) Unmarshal(dAtA []byte) error {
  function init (line 412) | func init() {
  function init (line 423) | func init() { proto.RegisterFile("cyber/clock/v1/tx.proto", fileDescript...
  constant _ (line 469) | _ = grpc.SupportPackageIsVersion4
  type MsgClient (line 474) | type MsgClient interface
  type msgClient (line 491) | type msgClient struct
    method RegisterClockContract (line 499) | func (c *msgClient) RegisterClockContract(ctx context.Context, in *Msg...
    method UnregisterClockContract (line 508) | func (c *msgClient) UnregisterClockContract(ctx context.Context, in *M...
    method UnjailClockContract (line 517) | func (c *msgClient) UnjailClockContract(ctx context.Context, in *MsgUn...
    method UpdateParams (line 526) | func (c *msgClient) UpdateParams(ctx context.Context, in *MsgUpdatePar...
  function NewMsgClient (line 495) | func NewMsgClient(cc grpc1.ClientConn) MsgClient {
  type MsgServer (line 536) | type MsgServer interface
  type UnimplementedMsgServer (line 554) | type UnimplementedMsgServer struct
    method RegisterClockContract (line 557) | func (*UnimplementedMsgServer) RegisterClockContract(ctx context.Conte...
    method UnregisterClockContract (line 560) | func (*UnimplementedMsgServer) UnregisterClockContract(ctx context.Con...
    method UnjailClockContract (line 563) | func (*UnimplementedMsgServer) UnjailClockContract(ctx context.Context...
    method UpdateParams (line 566) | func (*UnimplementedMsgServer) UpdateParams(ctx context.Context, req *...
  function RegisterMsgServer (line 570) | func RegisterMsgServer(s grpc1.Server, srv MsgServer) {
  function _Msg_RegisterClockContract_Handler (line 574) | func _Msg_RegisterClockContract_Handler(srv interface{}, ctx context.Con...
  function _Msg_UnregisterClockContract_Handler (line 592) | func _Msg_UnregisterClockContract_Handler(srv interface{}, ctx context.C...
  function _Msg_UnjailClockContract_Handler (line 610) | func _Msg_UnjailClockContract_Handler(srv interface{}, ctx context.Conte...
  function _Msg_UpdateParams_Handler (line 628) | func _Msg_UpdateParams_Handler(srv interface{}, ctx context.Context, dec...
  function encodeVarintTx (line 914) | func encodeVarintTx(dAtA []byte, offset int, v uint64) int {
  function sovTx (line 1027) | func sovTx(x uint64) (n int) {
  function sozTx (line 1030) | func sozTx(x uint64) (n int) {
  function skipTx (line 1690) | func skipTx(dAtA []byte) (n int, err error) {

FILE: x/clock/types/tx.pb.gw.go
  function request_Msg_RegisterClockContract_0 (line 40) | func request_Msg_RegisterClockContract_0(ctx context.Context, marshaler ...
  function local_request_Msg_RegisterClockContract_0 (line 56) | func local_request_Msg_RegisterClockContract_0(ctx context.Context, mars...
  function request_Msg_UnregisterClockContract_0 (line 76) | func request_Msg_UnregisterClockContract_0(ctx context.Context, marshale...
  function local_request_Msg_UnregisterClockContract_0 (line 92) | func local_request_Msg_UnregisterClockContract_0(ctx context.Context, ma...
  function request_Msg_UnjailClockContract_0 (line 112) | func request_Msg_UnjailClockContract_0(ctx context.Context, marshaler ru...
  function local_request_Msg_UnjailClockContract_0 (line 128) | func local_request_Msg_UnjailClockContract_0(ctx context.Context, marsha...
  function RegisterMsgHandlerServer (line 148) | func RegisterMsgHandlerServer(ctx context.Context, mux *runtime.ServeMux...
  function RegisterMsgHandlerFromEndpoint (line 224) | func RegisterMsgHandlerFromEndpoint(ctx context.Context, mux *runtime.Se...
  function RegisterMsgHandler (line 249) | func RegisterMsgHandler(ctx context.Context, mux *runtime.ServeMux, conn...
  function RegisterMsgHandlerClient (line 258) | func RegisterMsgHandlerClient(ctx context.Context, mux *runtime.ServeMux...

FILE: x/cyberbank/abci.go
  function EndBlocker (line 13) | func EndBlocker(ctx sdk.Context, k *keeper.IndexedKeeper) {

FILE: x/cyberbank/keeper/genesis.go
  method InitGenesis (line 7) | func (k *IndexedKeeper) InitGenesis(ctx sdk.Context) {

FILE: x/cyberbank/keeper/keeper.go
  type IndexedKeeper (line 19) | type IndexedKeeper struct
    method Logger (line 56) | func (k IndexedKeeper) Logger(ctx sdk.Context) log.Logger {
    method LoadState (line 60) | func (k *IndexedKeeper) LoadState(rankCtx sdk.Context, freshCtx sdk.Co...
    method getCollectFunc (line 68) | func (k *IndexedKeeper) getCollectFunc(ctx sdk.Context, userStake map[...
    method InitializeStakeAmpere (line 76) | func (k *IndexedKeeper) InitializeStakeAmpere(account uint64, stake ui...
    method GetTotalStakesAmpere (line 81) | func (k *IndexedKeeper) GetTotalStakesAmpere() map[uint64]uint64 {
    method DetectUsersStakeAmpereChange (line 85) | func (k *IndexedKeeper) DetectUsersStakeAmpereChange(ctx sdk.Context) ...
    method UpdateAccountsStakeAmpere (line 101) | func (k *IndexedKeeper) UpdateAccountsStakeAmpere(ctx sdk.Context) {
    method GetNextAccountNumber (line 134) | func (k IndexedKeeper) GetNextAccountNumber(ctx sdk.Context) uint64 {
  function NewIndexedKeeper (line 30) | func NewIndexedKeeper(

FILE: x/cyberbank/keeper/proxy.go
  constant ResourcesTransferBurnPercentage (line 19) | ResourcesTransferBurnPercentage = int64(2)
  type Proxy (line 21) | type Proxy struct
    method SpendableCoin (line 30) | func (p *Proxy) SpendableCoin(ctx sdk.Context, addr sdk.AccAddress, de...
    method IsSendEnabledDenom (line 34) | func (p *Proxy) IsSendEnabledDenom(ctx sdk.Context, denom string) bool {
    method GetSendEnabledEntry (line 38) | func (p *Proxy) GetSendEnabledEntry(ctx sdk.Context, denom string) (ba...
    method SetSendEnabled (line 42) | func (p *Proxy) SetSendEnabled(ctx sdk.Context, denom string, value bo...
    method SetAllSendEnabled (line 46) | func (p *Proxy) SetAllSendEnabled(ctx sdk.Context, sendEnableds []*ban...
    method DeleteSendEnabled (line 50) | func (p *Proxy) DeleteSendEnabled(ctx sdk.Context, denoms ...string) {
    method IterateSendEnabledEntries (line 54) | func (p *Proxy) IterateSendEnabledEntries(ctx sdk.Context, cb func(den...
    method GetAllSendEnabledEntries (line 58) | func (p *Proxy) GetAllSendEnabledEntries(ctx sdk.Context) []banktypes....
    method GetBlockedAddresses (line 62) | func (p *Proxy) GetBlockedAddresses() map[string]bool {
    method GetAuthority (line 66) | func (p *Proxy) GetAuthority() string {
    method WithMintCoinsRestriction (line 70) | func (p *Proxy) WithMintCoinsRestriction(fn bank.MintingRestrictionFn)...
    method HasDenomMetaData (line 74) | func (p *Proxy) HasDenomMetaData(ctx sdk.Context, denom string) bool {
    method GetAllDenomMetaData (line 78) | func (p *Proxy) GetAllDenomMetaData(ctx sdk.Context) []banktypes.Metad...
    method SpendableBalanceByDenom (line 82) | func (p *Proxy) SpendableBalanceByDenom(ctx context.Context, request *...
    method DenomOwners (line 86) | func (p *Proxy) DenomOwners(ctx context.Context, request *banktypes.Qu...
    method SendEnabled (line 90) | func (p *Proxy) SendEnabled(ctx context.Context, request *banktypes.Qu...
    method AddHook (line 101) | func (p *Proxy) AddHook(hook types.CoinsTransferHook) {
    method SetGridKeeper (line 105) | func (p *Proxy) SetGridKeeper(ek types.EnergyKeeper) {
    method SetAccountKeeper (line 109) | func (p *Proxy) SetAccountKeeper(ak authkeeper.AccountKeeper) {
    method SetGraphKeeper (line 113) | func (p *Proxy) SetGraphKeeper(gk types.GraphKeeper) {
    method OnCoinsTransfer (line 117) | func (p *Proxy) OnCoinsTransfer(ctx sdk.Context, from sdk.AccAddress, ...
    method GetTotalSupplyVolt (line 123) | func (p Proxy) GetTotalSupplyVolt(ctx sdk.Context) int64 {
    method GetTotalSupplyAmper (line 127) | func (p Proxy) GetTotalSupplyAmper(ctx sdk.Context) int64 {
    method GetAccountStakeVolt (line 131) | func (p Proxy) GetAccountStakeVolt(ctx sdk.Context, addr sdk.AccAddres...
    method GetAccountStakeAmperPlusRouted (line 135) | func (p Proxy) GetAccountStakeAmperPlusRouted(ctx sdk.Context, addr sd...
    method GetRoutedTo (line 139) | func (p Proxy) GetRoutedTo(ctx sdk.Context, addr sdk.AccAddress) sdk.C...
    method InputOutputCoins (line 145) | func (p *Proxy) InputOutputCoins(ctx sdk.Context, inputs []banktypes.I...
    method SendCoins (line 160) | func (p *Proxy) SendCoins(ctx sdk.Context, fromAddr sdk.AccAddress, to...
    method DenomMetadata (line 207) | func (p *Proxy) DenomMetadata(ctx context.Context, request *banktypes....
    method DenomsMetadata (line 211) | func (p *Proxy) DenomsMetadata(ctx context.Context, request *banktypes...
    method SendCoinsFromModuleToAccount (line 215) | func (p *Proxy) SendCoinsFromModuleToAccount(ctx sdk.Context, senderMo...
    method SendCoinsFromModuleToModule (line 224) | func (p *Proxy) SendCoinsFromModuleToModule(ctx sdk.Context, senderMod...
    method SendCoinsFromAccountToModule (line 229) | func (p *Proxy) SendCoinsFromAccountToModule(ctx sdk.Context, senderAd...
    method ValidateBalance (line 238) | func (p *Proxy) ValidateBalance(ctx sdk.Context, addr sdk.AccAddress) ...
    method HasBalance (line 242) | func (p *Proxy) HasBalance(ctx sdk.Context, addr sdk.AccAddress, amt s...
    method GetAllBalances (line 246) | func (p *Proxy) GetAllBalances(ctx sdk.Context, addr sdk.AccAddress) s...
    method GetAccountsBalances (line 250) | func (p *Proxy) GetAccountsBalances(ctx sdk.Context) []banktypes.Balan...
    method GetBalance (line 254) | func (p *Proxy) GetBalance(ctx sdk.Context, addr sdk.AccAddress, denom...
    method LockedCoins (line 258) | func (p *Proxy) LockedCoins(ctx sdk.Context, addr sdk.AccAddress) sdk....
    method SpendableCoins (line 262) | func (p *Proxy) SpendableCoins(ctx sdk.Context, addr sdk.AccAddress) s...
    method IterateAccountBalances (line 266) | func (p *Proxy) IterateAccountBalances(ctx sdk.Context, addr sdk.AccAd...
    method IterateAllBalances (line 270) | func (p *Proxy) IterateAllBalances(ctx sdk.Context, cb func(address sd...
    method GetParams (line 274) | func (p *Proxy) GetParams(ctx sdk.Context) banktypes.Params {
    method SetParams (line 278) | func (p *Proxy) SetParams(ctx sdk.Context, params banktypes.Params) er...
    method BlockedAddr (line 282) | func (p *Proxy) BlockedAddr(addr sdk.AccAddress) bool {
    method InitGenesis (line 286) | func (p *Proxy) InitGenesis(context sdk.Context, state *banktypes.Gene...
    method ExportGenesis (line 290) | func (p *Proxy) ExportGenesis(context sdk.Context) *banktypes.GenesisS...
    method GetSupply (line 294) | func (p *Proxy) GetSupply(ctx sdk.Context, denom string) sdk.Coin {
    method IsSendEnabledCoin (line 298) | func (p *Proxy) IsSendEnabledCoin(ctx sdk.Context, coin sdk.Coin) bool {
    method IsSendEnabledCoins (line 302) | func (p *Proxy) IsSendEnabledCoins(ctx sdk.Context, coins ...sdk.Coin)...
    method GetPaginatedTotalSupply (line 306) | func (p *Proxy) GetPaginatedTotalSupply(ctx sdk.Context, pagination *q...
    method IterateTotalSupply (line 310) | func (p *Proxy) IterateTotalSupply(ctx sdk.Context, cb func(sdk.Coin) ...
    method GetDenomMetaData (line 314) | func (p *Proxy) GetDenomMetaData(ctx sdk.Context, denom string) (bankt...
    method SetDenomMetaData (line 318) | func (p *Proxy) SetDenomMetaData(ctx sdk.Context, denomMetaData bankty...
    method IterateAllDenomMetaData (line 322) | func (p *Proxy) IterateAllDenomMetaData(ctx sdk.Context, cb func(bankt...
    method DelegateCoinsFromAccountToModule (line 326) | func (p *Proxy) DelegateCoinsFromAccountToModule(ctx sdk.Context, send...
    method UndelegateCoinsFromModuleToAccount (line 330) | func (p *Proxy) UndelegateCoinsFromModuleToAccount(ctx sdk.Context, se...
    method MintCoins (line 334) | func (p *Proxy) MintCoins(ctx sdk.Context, moduleName string, amt sdk....
    method BurnCoins (line 338) | func (p *Proxy) BurnCoins(ctx sdk.Context, moduleName string, amt sdk....
    method DelegateCoins (line 342) | func (p *Proxy) DelegateCoins(ctx sdk.Context, delegatorAddr, moduleAc...
    method UndelegateCoins (line 346) | func (p *Proxy) UndelegateCoins(ctx sdk.Context, moduleAccAddr, delega...
    method Balance (line 350) | func (p *Proxy) Balance(ctx context.Context, request *banktypes.QueryB...
    method AllBalances (line 354) | func (p *Proxy) AllBalances(ctx context.Context, request *banktypes.Qu...
    method TotalSupply (line 358) | func (p *Proxy) TotalSupply(ctx context.Context, request *banktypes.Qu...
    method SupplyOf (line 362) | func (p *Proxy) SupplyOf(ctx context.Context, request *banktypes.Query...
    method Params (line 366) | func (p *Proxy) Params(ctx context.Context, request *banktypes.QueryPa...
    method SpendableBalances (line 370) | func (p *Proxy) SpendableBalances(ctx context.Context, request *bankty...
    method HasSupply (line 374) | func (p *Proxy) HasSupply(ctx sdk.Context, denom string) bool {
  function Wrap (line 94) | func Wrap(bk bank.Keeper) *Proxy {

FILE: x/cyberbank/keeper/snapshotter.go
  constant SnapshotFormat (line 13) | SnapshotFormat = 1
  type CyberbankSnapshotter (line 15) | type CyberbankSnapshotter struct
    method SnapshotName (line 27) | func (cs *CyberbankSnapshotter) SnapshotName() string {
    method SnapshotFormat (line 31) | func (cs *CyberbankSnapshotter) SnapshotFormat() uint32 {
    method SupportedFormats (line 35) | func (cs *CyberbankSnapshotter) SupportedFormats() []uint32 {
    method SnapshotExtension (line 40) | func (cs *CyberbankSnapshotter) SnapshotExtension(_ uint64, _ snapshot...
    method RestoreExtension (line 44) | func (cs *CyberbankSnapshotter) RestoreExtension(height uint64, format...
  function NewCyberbankSnapshotter (line 20) | func NewCyberbankSnapshotter(cms sdk.MultiStore, indexedKeeper *IndexedK...

FILE: x/cyberbank/module.go
  type AppModuleBasic (line 27) | type AppModuleBasic struct
    method Name (line 31) | func (AppModuleBasic) Name() string { return types.ModuleName }
    method RegisterLegacyAminoCodec (line 33) | func (AppModuleBasic) RegisterLegacyAminoCodec(_ *codec.LegacyAmino) {}
    method DefaultGenesis (line 35) | func (AppModuleBasic) DefaultGenesis(_ codec.JSONCodec) json.RawMessage {
    method ValidateGenesis (line 39) | func (AppModuleBasic) ValidateGenesis(_ codec.JSONCodec, _ client.TxEn...
    method RegisterRESTRoutes (line 43) | func (AppModuleBasic) RegisterRESTRoutes(_ client.Context, _ *mux.Rout...
    method RegisterGRPCGatewayRoutes (line 45) | func (AppModuleBasic) RegisterGRPCGatewayRoutes(_ client.Context, _ *r...
    method GetTxCmd (line 47) | func (AppModuleBasic) GetTxCmd() *cobra.Command { return nil }
    method GetQueryCmd (line 49) | func (AppModuleBasic) GetQueryCmd() *cobra.Command { return nil }
    method RegisterInterfaces (line 51) | func (AppModuleBasic) RegisterInterfaces(_ codectypes.InterfaceRegistr...
  type AppModule (line 53) | type AppModule struct
    method Name (line 69) | func (AppModule) Name() string { return types.ModuleName }
    method RegisterInvariants (line 71) | func (AppModule) RegisterInvariants(_ sdk.InvariantRegistry) {}
    method RegisterServices (line 73) | func (AppModule) RegisterServices(_ module.Configurator) {}
    method InitGenesis (line 75) | func (am AppModule) InitGenesis(ctx sdk.Context, _ codec.JSONCodec, _ ...
    method ExportGenesis (line 81) | func (AppModule) ExportGenesis(_ sdk.Context, _ codec.JSONCodec) json....
    method ConsensusVersion (line 83) | func (am AppModule) ConsensusVersion() uint64 {
    method BeginBlock (line 87) | func (AppModule) BeginBlock(_ sdk.Context, _ abci.RequestBeginBlock) {}
    method EndBlock (line 89) | func (am AppModule) EndBlock(ctx sdk.Context, _ abci.RequestEndBlock) ...
  function NewAppModule (line 59) | func NewAppModule(

FILE: x/cyberbank/types/expected_keepers.go
  type AccountKeeper (line 8) | type AccountKeeper interface
  type EnergyKeeper (line 14) | type EnergyKeeper interface
  type GraphKeeper (line 18) | type GraphKeeper interface

FILE: x/cyberbank/types/keys.go
  constant ModuleName (line 4) | ModuleName = "cyberbank"

FILE: x/dmn/abci.go
  function BeginBlock (line 13) | func BeginBlock(ctx sdk.Context, k keeper.Keeper) {

FILE: x/dmn/client/cli/query.go
  function GetQueryCmd (line 16) | func GetQueryCmd() *cobra.Command {
  function GetCmdQueryParams (line 36) | func GetCmdQueryParams() *cobra.Command {
  function GetCmdQueryThought (line 65) | func GetCmdQueryThought() *cobra.Command {
  function GetCmdQueryThoughtStats (line 101) | func GetCmdQueryThoughtStats() *cobra.Command {
  function GetCmdQueryThoughts (line 137) | func GetCmdQueryThoughts() *cobra.Command {
  function GetCmdQueryThoughtsStats (line 166) | func GetCmdQueryThoughtsStats() *cobra.Command {

FILE: x/dmn/exported/exported.go
  type Subspace (line 15) | type Subspace interface

FILE: x/dmn/keeper/genesis.go
  function InitGenesis (line 9) | func InitGenesis(ctx sdk.Context, k Keeper, data types.GenesisState) {
  function ExportGenesis (line 16) | func ExportGenesis(ctx sdk.Context, k Keeper) *types.GenesisState {

FILE: x/dmn/keeper/grpc_query.go
  method Params (line 17) | func (k Keeper) Params(goCtx context.Context, request *types.QueryParams...
  method Thought (line 24) | func (k Keeper) Thought(goCtx context.Context, request *types.QueryThoug...
  method ThoughtStats (line 52) | func (k Keeper) ThoughtStats(goCtx context.Context, request *types.Query...
  method Thoughts (line 80) | func (k Keeper) Thoughts(goCtx context.Context, _ *types.QueryThoughtsRe...
  method ThoughtsStats (line 88) | func (k Keeper) ThoughtsStats(goCtx context.Context, _ *types.QueryThoug...
  method ThoughtsFees (line 96) | func (k Keeper) ThoughtsFees(goCtx context.Context, _ *types.QueryThough...

FILE: x/dmn/keeper/keeper.go
  type Keeper (line 27) | type Keeper struct
    method SetWasmKeeper (line 54) | func (k *Keeper) SetWasmKeeper(ws wasm.Keeper) {
    method GetAuthority (line 59) | func (k Keeper) GetAuthority() string { return k.authority }
    method Logger (line 61) | func (k Keeper) Logger(ctx sdk.Context) log.Logger {
    method SetParams (line 65) | func (k Keeper) SetParams(ctx sdk.Context, p types.Params) error {
    method GetParams (line 77) | func (k Keeper) GetParams(ctx sdk.Context) (p types.Params) {
    method SaveThought (line 88) | func (k Keeper) SaveThought(
    method RemoveThoughtFull (line 127) | func (k Keeper) RemoveThoughtFull(
    method UpdateThoughtParticle (line 141) | func (k Keeper) UpdateThoughtParticle(
    method UpdateThoughtName (line 159) | func (k Keeper) UpdateThoughtName(
    method UpdateThoughtCallData (line 191) | func (k Keeper) UpdateThoughtCallData(
    method UpdateThoughtGasPrice (line 209) | func (k Keeper) UpdateThoughtGasPrice(
    method UpdateThoughtPeriod (line 227) | func (k Keeper) UpdateThoughtPeriod(
    method UpdateThoughtBlock (line 249) | func (k Keeper) UpdateThoughtBlock(
    method MaxThougths (line 275) | func (k Keeper) MaxThougths(ctx sdk.Context) (res uint32) {
    method MaxGas (line 279) | func (k Keeper) MaxGas(ctx sdk.Context) (res uint32) {
    method FeeTTL (line 283) | func (k Keeper) FeeTTL(ctx sdk.Context) (res uint32) {
    method SetThought (line 287) | func (k Keeper) SetThought(ctx sdk.Context, thought types.Thought) {
    method DeleteThought (line 295) | func (k Keeper) DeleteThought(ctx sdk.Context, program sdk.AccAddress,...
    method SetThoughts (line 300) | func (k Keeper) SetThoughts(ctx sdk.Context, thoughts types.Thoughts) ...
    method SetThoughtStats (line 311) | func (k Keeper) SetThoughtStats(ctx sdk.Context, program sdk.AccAddres...
    method DeleteThoughtStats (line 317) | func (k Keeper) DeleteThoughtStats(ctx sdk.Context, program sdk.AccAdd...
    method GetThought (line 322) | func (k Keeper) GetThought(ctx sdk.Context, program sdk.AccAddress, na...
    method GetAllThoughts (line 336) | func (k Keeper) GetAllThoughts(ctx sdk.Context) (thoughts types.Though...
    method GetAllThoughtsStats (line 345) | func (k Keeper) GetAllThoughtsStats(ctx sdk.Context) (thoughtsStats ty...
    method IterateAllThoughtsStats (line 354) | func (k Keeper) IterateAllThoughtsStats(ctx sdk.Context, cb func(thoug...
    method IterateAllThoughts (line 369) | func (k Keeper) IterateAllThoughts(ctx sdk.Context, cb func(thought ty...
    method GetThoughtStats (line 384) | func (k Keeper) GetThoughtStats(ctx sdk.Context, program sdk.AccAddres...
    method ExecuteThoughtsQueue (line 398) | func (k Keeper) ExecuteThoughtsQueue(ctx sdk.Context) {
    method executeThoughtWithSudo (line 520) | func (k Keeper) executeThoughtWithSudo(ctx sdk.Context, program sdk.Ac...
  function NewKeeper (line 38) | func NewKeeper(

FILE: x/dmn/keeper/migrator.go
  type Migrator (line 11) | type Migrator struct
    method Migrate1to2 (line 23) | func (m Migrator) Migrate1to2(ctx sdk.Context) error {
  function NewMigrator (line 16) | func NewMigrator(k Keeper, ss exported.Subspace) Migrator {

FILE: x/dmn/keeper/msg_server.go
  type msgServer (line 15) | type msgServer struct
    method CreateThought (line 29) | func (k msgServer) CreateThought(goCtx context.Context, msg *types.Msg...
    method ForgetThought (line 62) | func (k msgServer) ForgetThought(goCtx context.Context, msg *types.Msg...
    method ChangeThoughtParticle (line 87) | func (k msgServer) ChangeThoughtParticle(goCtx context.Context, msg *t...
    method ChangeThoughtName (line 113) | func (k msgServer) ChangeThoughtName(goCtx context.Context, msg *types...
    method ChangeThoughtInput (line 139) | func (k msgServer) ChangeThoughtInput(goCtx context.Context, msg *type...
    method ChangeThoughtGasPrice (line 165) | func (k msgServer) ChangeThoughtGasPrice(goCtx context.Context, msg *t...
    method ChangeThoughtPeriod (line 191) | func (k msgServer) ChangeThoughtPeriod(goCtx context.Context, msg *typ...
    method ChangeThoughtBlock (line 218) | func (k msgServer) ChangeThoughtBlock(goCtx context.Context, msg *type...
    method UpdateParams (line 245) | func (server msgServer) UpdateParams(goCtx context.Context, req *types...
  function NewMsgServerImpl (line 19) | func NewMsgServerImpl(

FILE: x/dmn/migrations/v2/migrate.go
  function Migrate (line 11) | func Migrate(

FILE: x/dmn/module.go
  type AppModuleBasic (line 30) | type AppModuleBasic struct
    method Name (line 34) | func (AppModuleBasic) Name() string { return types.ModuleName }
    method RegisterLegacyAminoCodec (line 36) | func (AppModuleBasic) RegisterLegacyAminoCodec(cdc *codec.LegacyAmino) {
    method DefaultGenesis (line 40) | func (AppModuleBasic) DefaultGenesis(cdc codec.JSONCodec) json.RawMess...
    method ValidateGenesis (line 44) | func (AppModuleBasic) ValidateGenesis(cdc codec.JSONCodec, _ client.Tx...
    method RegisterGRPCGatewayRoutes (line 53) | func (AppModuleBasic) RegisterGRPCGatewayRoutes(clientCtx client.Conte...
    method GetTxCmd (line 59) | func (AppModuleBasic) GetTxCmd() *cobra.Command { return nil }
    method GetQueryCmd (line 61) | func (AppModuleBasic) GetQueryCmd() *cobra.Command {
    method RegisterInterfaces (line 65) | func (AppModuleBasic) RegisterInterfaces(registry codectypes.Interface...
  type AppModule (line 69) | type AppModule struct
    method Name (line 90) | func (AppModule) Name() string { return types.ModuleName }
    method RegisterInvariants (line 92) | func (am AppModule) RegisterInvariants(_ sdk.InvariantRegistry) {}
    method RegisterServices (line 94) | func (am AppModule) RegisterServices(cfg module.Configurator) {
    method InitGenesis (line 104) | func (am AppModule) InitGenesis(ctx sdk.Context, cdc codec.JSONCodec, ...
    method ExportGenesis (line 111) | func (am AppModule) ExportGenesis(ctx sdk.Context, cdc codec.JSONCodec...
    method ConsensusVersion (line 116) | func (am AppModule) ConsensusVersion() uint64 {
    method BeginBlock (line 120) | func (am AppModule) BeginBlock(ctx sdk.Context, _ abci.RequestBeginBlo...
    method EndBlock (line 124) | func (am AppModule) EndBlock(_ sdk.Context, _ abci.RequestEndBlock) []...
  function NewAppModule (line 77) | func NewAppModule(

FILE: x/dmn/types/codec.go
  function RegisterLegacyAminoCodec (line 14) | func RegisterLegacyAminoCodec(cdc *codec.LegacyAmino) {
  function RegisterInterfaces (line 20) | func RegisterInterfaces(registry types.InterfaceRegistry) {
  function init (line 43) | func init() {

FILE: x/dmn/types/events.go
  constant EventTypeCreateThought (line 4) | EventTypeCreateThought         = "create_thought"
  constant EventTypeForgetThought (line 5) | EventTypeForgetThought         = "forget_thought"
  constant EventTypeChangeThoughtParticle (line 6) | EventTypeChangeThoughtParticle = "change_thought_particle"
  constant EventTypeChangeThoughtName (line 7) | EventTypeChangeThoughtName     = "change_thought_name"
  constant EventTypeChangeThoughtInput (line 8) | EventTypeChangeThoughtInput    = "change_thought_input"
  constant EventTypeChangeThoughtGasPrice (line 9) | EventTypeChangeThoughtGasPrice = "change_thought_gas_price"
  constant EventTypeChangeThoughtPeriod (line 10) | EventTypeChangeThoughtPeriod   = "change_thought_period"
  constant EventTypeChangeThoughtBlock (line 11) | EventTypeChangeThoughtBlock    = "change_thought_block"
  constant AttributeKeyThoughtProgram (line 13) | AttributeKeyThoughtProgram  = "program"
  constant AttributeKeyThoughtTrigger (line 14) | AttributeKeyThoughtTrigger  = "trigger"
  constant AttributeKeyThoughtLoad (line 15) | AttributeKeyThoughtLoad     = "load"
  constant AttributeKeyThoughtName (line 16) | AttributeKeyThoughtName     = "name"
  constant AttributeKeyThoughtParticle (line 17) | AttributeKeyThoughtParticle = "particle"
  constant AttributeKeyThoughtInput (line 18) | AttributeKeyThoughtInput    = "input"
  constant AttributeKeyThoughtGasPrice (line 19) | AttributeKeyThoughtGasPrice = "gas_price"
  constant AttributeKeyThoughtPeriod (line 20) | AttributeKeyThoughtPeriod   = "period"
  constant AttributeKeyThoughtBlock (line 21) | AttributeKeyThoughtBlock    = "block"
  constant AttributeValueCategory (line 23) | AttributeValueCategory = ModuleName

FILE: x/dmn/types/expected_keepers.go
  type BankKeeper (line 7) | type BankKeeper interface
  type AccountKeeper (line 12) | type AccountKeeper interface

FILE: x/dmn/types/genesis.go
  function NewGenesisState (line 3) | func NewGenesisState(params Params) *GenesisState {
  function DefaultGenesisState (line 9) | func DefaultGenesisState() *GenesisState {
  function ValidateGenesis (line 15) | func ValidateGenesis(_ GenesisState) error {

FILE: x/dmn/types/genesis.pb.go
  constant _ (line 27) | _ = proto.GoGoProtoPackageIsVersion3
  type GenesisState (line 29) | type GenesisState struct
    method Reset (line 33) | func (m *GenesisState) Reset()         { *m = GenesisState{} }
    method String (line 34) | func (m *GenesisState) String() string { return proto.CompactTextStrin...
    method ProtoMessage (line 35) | func (*GenesisState) ProtoMessage()    {}
    method Descriptor (line 36) | func (*GenesisState) Descriptor() ([]byte, []int) {
    method XXX_Unmarshal (line 40) | func (m *GenesisState) XXX_Unmarshal(b []byte) error {
    method XXX_Marshal (line 44) | func (m *GenesisState) XXX_Marshal(b []byte, deterministic bool) ([]by...
    method XXX_Merge (line 57) | func (m *GenesisState) XXX_Merge(src proto.Message) {
    method XXX_Size (line 61) | func (m *GenesisState) XXX_Size() int {
    method XXX_DiscardUnknown (line 65) | func (m *GenesisState) XXX_DiscardUnknown() {
    method GetParams (line 71) | func (m *GenesisState) GetParams() Params {
    method Marshal (line 101) | func (m *GenesisState) Marshal() (dAtA []byte, err error) {
    method MarshalTo (line 111) | func (m *GenesisState) MarshalTo(dAtA []byte) (int, error) {
    method MarshalToSizedBuffer (line 116) | func (m *GenesisState) MarshalToSizedBuffer(dAtA []byte) (int, error) {
    method Size (line 146) | func (m *GenesisState) Size() (n int) {
    method Unmarshal (line 165) | func (m *GenesisState) Unmarshal(dAtA []byte) error {
  function init (line 78) | func init() {
  function init (line 82) | func init() { proto.RegisterFile("cyber/dmn/v1beta1/genesis.proto", file...
  function encodeVarintGenesis (line 134) | func encodeVarintGenesis(dAtA []byte, offset int, v uint64) int {
  function sovGenesis (line 157) | func sovGenesis(x uint64) (n int) {
  function sozGenesis (line 161) | func sozGenesis(x uint64) (n int) {
  function skipGenesis (line 249) | func skipGenesis(dAtA []byte) (n int, err error) {

FILE: x/dmn/types/keys.go
  constant ModuleName (line 6) | ModuleName = "dmn"
  constant StoreKey (line 7) | StoreKey   = ModuleName
  constant RouterKey (line 8) | RouterKey  = ModuleName
  function GetThoughtKey (line 17) | func GetThoughtKey(program sdk.AccAddress, name string) []byte {
  function GetThoughtStatsKey (line 22) | func GetThoughtStatsKey(program sdk.AccAddress, name string) []byte {

FILE: x/dmn/types/msgs.go
  constant TypeMsgCreateThought (line 16) | TypeMsgCreateThought         = "create_thought"
  constant TypeMsgForgetThought (line 17) | TypeMsgForgetThought         = "forget_thought"
  constant TypeMsgChangeThoughtName (line 18) | TypeMsgChangeThoughtName     = "change_thought_name"
  constant TypeMsgChangeThoughtParticle (line 19) | TypeMsgChangeThoughtParticle = "change_thought_particle"
  constant TypeMsgChangeThoughtInput (line 20) | TypeMsgChangeThoughtInput    = "change_thought_input"
  constant TypeMsgChangeThoughtGasPrice (line 21) | TypeMsgChangeThoughtGasPrice = "change_thought_gas_price"
  constant TypeMsgChangeThoughtPeriod (line 22) | TypeMsgChangeThoughtPeriod   = "change_thought_period"
  constant TypeMsgChangeThoughtBlock (line 23) | TypeMsgChangeThoughtBlock    = "change_thought_block"
  function NewMsgCreateThought (line 26) | func NewMsgCreateThought(
  method Route (line 42) | func (msg MsgCreateThought) Route() string { return RouterKey }
  method Type (line 44) | func (msg MsgCreateThought) Type() string { return TypeMsgCreateThought }
  method ValidateBasic (line 46) | func (msg MsgCreateThought) ValidateBasic() error {
  method GetSignBytes (line 80) | func (msg MsgCreateThought) GetSignBytes() []byte {
  method GetSigners (line 85) | func (msg MsgCreateThought) GetSigners() []sdk.AccAddress {
  function NewMsgForgetThought (line 93) | func NewMsgForgetThought(program sdk.AccAddress, label string) *MsgForge...
  method Route (line 100) | func (msg MsgForgetThought) Route() string { return RouterKey }
  method Type (line 102) | func (msg MsgForgetThought) Type() string { return TypeMsgForgetThought }
  method ValidateBasic (line 104) | func (msg MsgForgetThought) ValidateBasic() error {
  method GetSignBytes (line 116) | func (msg MsgForgetThought) GetSignBytes() []byte {
  method GetSigners (line 121) | func (msg MsgForgetThought) GetSigners() []sdk.AccAddress {
  function NewMsgChangeThoughtName (line 129) | func NewMsgChangeThoughtName(
  method Route (line 140) | func (msg MsgChangeThoughtName) Route() string { return RouterKey }
  method Type (line 142) | func (msg MsgChangeThoughtName) Type() string { return TypeMsgChangeThou...
  method ValidateBasic (line 144) | func (msg MsgChangeThoughtName) ValidateBasic() error {
  method GetSignBytes (line 159) | func (msg MsgChangeThoughtName) GetSignBytes() []byte {
  method GetSigners (line 164) | func (msg MsgChangeThoughtName) GetSigners() []sdk.AccAddress {
  function NewMsgChangeThoughtParticle (line 172) | func NewMsgChangeThoughtParticle(
  method Route (line 184) | func (msg MsgChangeThoughtParticle) Route() string { return RouterKey }
  method Type (line 186) | func (msg MsgChangeThoughtParticle) Type() string { return TypeMsgChange...
  method ValidateBasic (line 188) | func (msg MsgChangeThoughtParticle) ValidateBasic() error {
  method GetSignBytes (line 207) | func (msg MsgChangeThoughtParticle) GetSignBytes() []byte {
  method GetSigners (line 212) | func (msg MsgChangeThoughtParticle) GetSigners() []sdk.AccAddress {
  function NewMsgChangeCallInput (line 220) | func NewMsgChangeCallInput(
  method Route (line 232) | func (msg MsgChangeThoughtInput) Route() string { return RouterKey }
  method Type (line 234) | func (msg MsgChangeThoughtInput) Type() string { return TypeMsgChangeTho...
  method ValidateBasic (line 236) | func (msg MsgChangeThoughtInput) ValidateBasic() error {
  method GetSignBytes (line 251) | func (msg MsgChangeThoughtInput) GetSignBytes() []byte {
  method GetSigners (line 256) | func (msg MsgChangeThoughtInput) GetSigners() []sdk.AccAddress {
  function NewMsgChangeThoughtGasPrice (line 264) | func NewMsgChangeThoughtGasPrice(
  method Route (line 276) | func (msg MsgChangeThoughtGasPrice) Route() string { return RouterKey }
  method Type (line 278) | func (msg MsgChangeThoughtGasPrice) Type() string { return TypeMsgChange...
  method ValidateBasic (line 280) | func (msg MsgChangeThoughtGasPrice) ValidateBasic() error {
  method GetSignBytes (line 298) | func (msg MsgChangeThoughtGasPrice) GetSignBytes() []byte {
  method GetSigners (line 303) | func (msg MsgChangeThoughtGasPrice) GetSigners() []sdk.AccAddress {
  function NewMsgChangeThoughtPeriod (line 311) | func NewMsgChangeThoughtPeriod(
  method Route (line 323) | func (msg MsgChangeThoughtPeriod) Route() string { return RouterKey }
  method Type (line 325) | func (msg MsgChangeThoughtPeriod) Type() string { return TypeMsgChangeTh...
  method ValidateBasic (line 327) | func (msg MsgChangeThoughtPeriod) ValidateBasic() error {
  method GetSignBytes (line 342) | func (msg MsgChangeThoughtPeriod) GetSignBytes() []byte {
  method GetSigners (line 347) | func (msg MsgChangeThoughtPeriod) GetSigners() []sdk.AccAddress {
  function NewMsgChangeThoughtBlock (line 355) | func NewMsgChangeThoughtBlock(
  method Route (line 367) | func (msg MsgChangeThoughtBlock) Route() string { return RouterKey }
  method Type (line 369) | func (msg MsgChangeThoughtBlock) Type() string { return TypeMsgChangeTho...
  method ValidateBasic (line 371) | func (msg MsgChangeThoughtBlock) ValidateBasic() error {
  method GetSigners (line 386) | func (msg MsgChangeThoughtBlock) GetSigners() []sdk.AccAddress {
  method GetSignBytes (line 394) | func (msg MsgChangeThoughtBlock) GetSignBytes() []byte {
  method GetSignBytes (line 402) | func (m MsgUpdateParams) GetSignBytes() []byte {
  method GetSigners (line 407) | func (m *MsgUpdateParams) GetSigners() []sdk.AccAddress {
  method ValidateBasic (line 413) | func (m *MsgUpdateParams) ValidateBasic() error {

FILE: x/dmn/types/params.go
  constant DefaultMaxSlots (line 8) | DefaultMaxSlots uint32 = 4
  constant DefaultMaxGas (line 9) | DefaultMaxGas   uint32 = 2000000
  constant DefaultFeeTTL (line 10) | DefaultFeeTTL   uint32 = 50
  function DefaultParams (line 13) | func DefaultParams() Params {
  function NewParams (line 21) | func NewParams(
  method Validate (line 33) | func (p Params) Validate() error {
  function validateMaxSlots (line 47) | func validateMaxSlots(i interface{}) error {
  function validateMaxGas (line 60) | func validateMaxGas(i interface{}) error {
  function validateFeeTTL (line 73) | func validateFeeTTL(i interface{}) error {

FILE: x/dmn/types/params_legacy.go
  function ParamKeyTable (line 12) | func ParamKeyTable() paramstypes.KeyTable {
  method ParamSetPairs (line 16) | func (p *Params) ParamSetPairs() paramstypes.ParamSetPairs {

FILE: x/dmn/types/querier.go
  constant QueryParams (line 6) | QueryParams        = "params"
  constant QueryThought (line 7) | QueryThought       = "thought"
  constant QueryThoughtStats (line 8) | QueryThoughtStats  = "thought_stats"
  constant QueryThoughts (line 9) | QueryThoughts      = "thoughts"
  constant QueryThoughtsStats (line 10) | QueryThoughtsStats = "thoughts_stats"
  type QueryThoughtParams (line 13) | type QueryThoughtParams struct
  function NewQueryThoughtParams (line 18) | func NewQueryThoughtParams(program sdk.AccAddress, name string) QueryTho...

FILE: x/dmn/types/query.pb.go
  constant _ (line 35) | _ = proto.GoGoProtoPackageIsVersion3
  type QueryParamsRequest (line 37) | type QueryParamsRequest struct
    method Reset (line 39) | func (m *QueryParamsRequest) Reset()         { *m = QueryParamsRequest...
    method String (line 40) | func (m *QueryParamsRequest) String() string { return proto.CompactTex...
    method ProtoMessage (line 41) | func (*QueryParamsRequest) ProtoMessage()    {}
    method Descriptor (line 42) | func (*QueryParamsRequest) Descriptor() ([]byte, []int) {
    method XXX_Unmarshal (line 46) | func (m *QueryParamsRequest) XXX_Unmarshal(b []byte) error {
    method XXX_Marshal (line 50) | func (m *QueryParamsRequest) XXX_Marshal(b []byte, deterministic bool)...
    method XXX_Merge (line 63) | func (m *QueryParamsRequest) XXX_Merge(src proto.Message) {
    method XXX_Size (line 67) | func (m *QueryParamsRequest) XXX_Size() int {
    method XXX_DiscardUnknown (line 71) | func (m *QueryParamsRequest) XXX_DiscardUnknown() {
    method Marshal (line 876) | func (m *QueryParamsRequest) Marshal() (dAtA []byte, err error) {
    method MarshalTo (line 886) | func (m *QueryParamsRequest) MarshalTo(dAtA []byte) (int, error) {
    method MarshalToSizedBuffer (line 891) | func (m *QueryParamsRequest) MarshalToSizedBuffer(dAtA []byte) (int, e...
    method Size (line 1227) | func (m *QueryParamsRequest) Size() (n int) {
    method Unmarshal (line 1366) | func (m *QueryParamsRequest) Unmarshal(dAtA []byte) error {
  type QueryParamsResponse (line 77) | type QueryParamsResponse struct
    method Reset (line 81) | func (m *QueryParamsResponse) Reset()         { *m = QueryParamsRespon...
    method String (line 82) | func (m *QueryParamsResponse) String() string { return proto.CompactTe...
    method ProtoMessage (line 83) | func (*QueryParamsResponse) ProtoMessage()    {}
    method Descriptor (line 84) | func (*QueryParamsResponse) Descriptor() ([]byte, []int) {
    method XXX_Unmarshal (line 88) | func (m *QueryParamsResponse) XXX_Unmarshal(b []byte) error {
    method XXX_Marshal (line 92) | func (m *QueryParamsResponse) XXX_Marshal(b []byte, deterministic bool...
    method XXX_Merge (line 105) | func (m *QueryParamsResponse) XXX_Merge(src proto.Message) {
    method XXX_Size (line 109) | func (m *QueryParamsResponse) XXX_Size() int {
    method XXX_DiscardUnknown (line 113) | func (m *QueryParamsResponse) XXX_DiscardUnknown() {
    method GetParams (line 119) | func (m *QueryParamsResponse) GetParams() Params {
    method Marshal (line 899) | func (m *QueryParamsResponse) Marshal() (dAtA []byte, err error) {
    method MarshalTo (line 909) | func (m *QueryParamsResponse) MarshalTo(dAtA []byte) (int, error) {
    method MarshalToSizedBuffer (line 914) | func (m *QueryParamsResponse) MarshalToSizedBuffer(dAtA []byte) (int, ...
    method Size (line 1236) | func (m *QueryParamsResponse) Size() (n int) {
    method Unmarshal (line 1417) | func (m *QueryParamsResponse) Unmarshal(dAtA []byte) error {
  type QueryThoughtParamsRequest (line 126) | type QueryThoughtParamsRequest struct
    method Reset (line 131) | func (m *QueryThoughtParamsRequest) Reset()         { *m = QueryThough...
    method String (line 132) | func (m *QueryThoughtParamsRequest) String() string { return proto.Com...
    method ProtoMessage (line 133) | func (*QueryThoughtParamsRequest) ProtoMessage()    {}
    method Descriptor (line 134) | func (*QueryThoughtParamsRequest) Descriptor() ([]byte, []int) {
    method XXX_Unmarshal (line 138) | func (m *QueryThoughtParamsRequest) XXX_Unmarshal(b []byte) error {
    method XXX_Marshal (line 142) | func (m *QueryThoughtParamsRequest) XXX_Marshal(b []byte, deterministi...
    method XXX_Merge (line 155) | func (m *QueryThoughtParamsRequest) XXX_Merge(src proto.Message) {
    method XXX_Size (line 159) | func (m *QueryThoughtParamsRequest) XXX_Size() int {
    method XXX_DiscardUnknown (line 163) | func (m *QueryThoughtParamsRequest) XXX_DiscardUnknown() {
    method GetProgram (line 169) | func (m *QueryThoughtParamsRequest) GetProgram() string {
    method GetName (line 176) | func (m *QueryThoughtParamsRequest) GetName() string {
    method Marshal (line 932) | func (m *QueryThoughtParamsRequest) Marshal() (dAtA []byte, err error) {
    method MarshalTo (line 942) | func (m *QueryThoughtParamsRequest) MarshalTo(dAtA []byte) (int, error) {
    method MarshalToSizedBuffer (line 947) | func (m *QueryThoughtParamsRequest) MarshalToSizedBuffer(dAtA []byte) ...
    method Size (line 1247) | func (m *QueryThoughtParamsRequest) Size() (n int) {
    method Unmarshal (line 1501) | func (m *QueryThoughtParamsRequest) Unmarshal(dAtA []byte) error {
  type QueryThoughtResponse (line 183) | type QueryThoughtResponse struct
    method Reset (line 187) | func (m *QueryThoughtResponse) Reset()         { *m = QueryThoughtResp...
    method String (line 188) | func (m *QueryThoughtResponse) String() string { return proto.CompactT...
    method ProtoMessage (line 189) | func (*QueryThoughtResponse) ProtoMessage()    {}
    method Descriptor (line 190) | func (*QueryThoughtResponse) Descriptor() ([]byte, []int) {
    method XXX_Unmarshal (line 194) | func (m *QueryThoughtResponse) XXX_Unmarshal(b []byte) error {
    method XXX_Marshal (line 198) | func (m *QueryThoughtResponse) XXX_Marshal(b []byte, deterministic boo...
    method XXX_Merge (line 211) | func (m *QueryThoughtResponse) XXX_Merge(src proto.Message) {
    method XXX_Size (line 215) | func (m *QueryThoughtResponse) XXX_Size() int {
    method XXX_DiscardUnknown (line 219) | func (m *QueryThoughtResponse) XXX_DiscardUnknown() {
    method GetThought (line 225) | func (m *QueryThoughtResponse) GetThought() Thought {
    method Marshal (line 969) | func (m *QueryThoughtResponse) Marshal() (dAtA []byte, err error) {
    method MarshalTo (line 979) | func (m *QueryThoughtResponse) MarshalTo(dAtA []byte) (int, error) {
    method MarshalToSizedBuffer (line 984) | func (m *QueryThoughtResponse) MarshalToSizedBuffer(dAtA []byte) (int,...
    method Size (line 1264) | func (m *QueryThoughtResponse) Size() (n int) {
    method Unmarshal (line 1616) | func (m *QueryThoughtResponse) Unmarshal(dAtA []byte) error {
  type QueryThoughtStatsResponse (line 232) | type QueryThoughtStatsResponse struct
    method Reset (line 236) | func (m *QueryThoughtStatsResponse) Reset()         { *m = QueryThough...
    method String (line 237) | func (m *QueryThoughtStatsResponse) String() string { return proto.Com...
    method ProtoMessage (line 238) | func (*QueryThoughtStatsResponse) ProtoMessage()    {}
    method Descriptor (line 239) | func (*QueryThoughtStatsResponse) Descriptor() ([]byte, []int) {
    method XXX_Unmarshal (line 243) | func (m *QueryThoughtStatsResponse) XXX_Unmarshal(b []byte) error {
    method XXX_Marshal (line 247) | func (m *QueryThoughtStatsResponse) XXX_Marshal(b []byte, deterministi...
    method XXX_Merge (line 260) | func (m *QueryThoughtStatsResponse) XXX_Merge(src proto.Message) {
    method XXX_Size (line 264) | func (m *QueryThoughtStatsResponse) XXX_Size() int {
    method XXX_DiscardUnknown (line 268) | func (m *QueryThoughtStatsResponse) XXX_DiscardUnknown() {
    method GetThoughtStats (line 274) | func (m *QueryThoughtStatsResponse) GetThoughtStats() ThoughtStats {
    method Marshal (line 1002) | func (m *QueryThoughtStatsResponse) Marshal() (dAtA []byte, err error) {
    method MarshalTo (line 1012) | func (m *QueryThoughtStatsResponse) MarshalTo(dAtA []byte) (int, error) {
    method MarshalToSizedBuffer (line 1017) | func (m *QueryThoughtStatsResponse) MarshalToSizedBuffer(dAtA []byte) ...
    method Size (line 1275) | func (m *QueryThoughtStatsResponse) Size() (n int) {
    method Unmarshal (line 1700) | func (m *QueryThoughtStatsResponse) Unmarshal(dAtA []byte) error {
  type QueryThoughtsRequest (line 281) | type QueryThoughtsRequest struct
    method Reset (line 283) | func (m *QueryThoughtsRequest) Reset()         { *m = QueryThoughtsReq...
    method String (line 284) | func (m *QueryThoughtsRequest) String() string { return proto.CompactT...
    method ProtoMessage (line 285) | func (*QueryThoughtsRequest) ProtoMessage()    {}
    method Descriptor (line 286) | func (*QueryThoughtsRequest) Descriptor() ([]byte, []int) {
    method XXX_Unmarshal (line 290) | func (m *QueryThoughtsRequest) XXX_Unmarshal(b []byte) error {
    method XXX_Marshal (line 294) | func (m *QueryThoughtsRequest) XXX_Marshal(b []byte, deterministic boo...
    method XXX_Merge (line 307) | func (m *QueryThoughtsRequest) XXX_Merge(src proto.Message) {
    method XXX_Size (line 311) | func (m *QueryThoughtsRequest) XXX_Size() int {
    method XXX_DiscardUnknown (line 315) | func (m *QueryThoughtsRequest) XXX_DiscardUnknown() {
    method Marshal (line 1035) | func (m *QueryThoughtsRequest) Marshal() (dAtA []byte, err error) {
    method MarshalTo (line 1045) | func (m *QueryThoughtsRequest) MarshalTo(dAtA []byte) (int, error) {
    method MarshalToSizedBuffer (line 1050) | func (m *QueryThoughtsRequest) MarshalToSizedBuffer(dAtA []byte) (int,...
    method Size (line 1286) | func (m *QueryThoughtsRequest) Size() (n int) {
    method Unmarshal (line 1784) | func (m *QueryThoughtsRequest) Unmarshal(dAtA []byte) error {
  type QueryThoughtsResponse (line 321) | type QueryThoughtsResponse struct
    method Reset (line 325) | func (m *QueryThoughtsResponse) Reset()         { *m = QueryThoughtsRe...
    method String (line 326) | func (m *QueryThoughtsResponse) String() string { return proto.Compact...
    method ProtoMessage (line 327) | func (*QueryThoughtsResponse) ProtoMessage()    {}
    method Descriptor (line 328) | func (*QueryThoughtsResponse) Descriptor() ([]byte, []int) {
    method XXX_Unmarshal (line 332) | func (m *QueryThoughtsResponse) XXX_Unmarshal(b []byte) error {
    method XXX_Marshal (line 336) | func (m *QueryThoughtsResponse) XXX_Marshal(b []byte, deterministic bo...
    method XXX_Merge (line 349) | func (m *QueryThoughtsResponse) XXX_Merge(src proto.Message) {
    method XXX_Size (line 353) | func (m *QueryThoughtsResponse) XXX_Size() int {
    method XXX_DiscardUnknown (line 357) | func (m *QueryThoughtsResponse) XXX_DiscardUnknown() {
    method GetThoughts (line 363) | func (m *QueryThoughtsResponse) GetThoughts() Thoughts {
    method Marshal (line 1058) | func (m *QueryThoughtsResponse) Marshal() (dAtA []byte, err error) {
    method MarshalTo (line 1068) | func (m *QueryThoughtsResponse) MarshalTo(dAtA []byte) (int, error) {
    method MarshalToSizedBuffer (line 1073) | func (m *QueryThoughtsResponse) MarshalToSizedBuffer(dAtA []byte) (int...
    method Size (line 1295) | func (m *QueryThoughtsResponse) Size() (n int) {
    method Unmarshal (line 1835) | func (m *QueryThoughtsResponse) Unmarshal(dAtA []byte) error {
  type QueryThoughtsStatsRequest (line 370) | type QueryThoughtsStatsRequest struct
    method Reset (line 372) | func (m *QueryThoughtsStatsRequest) Reset()         { *m = QueryThough...
    method String (line 373) | func (m *QueryThoughtsStatsRequest) String() string { return proto.Com...
    method ProtoMessage (line 374) | func (*QueryThoughtsStatsRequest) ProtoMessage()    {}
    method Descriptor (line 375) | func (*QueryThoughtsStatsRequest) Descriptor() ([]byte, []int) {
    method XXX_Unmarshal (line 379) | func (m *QueryThoughtsStatsRequest) XXX_Unmarshal(b []byte) error {
    method XXX_Marshal (line 383) | func (m *QueryThoughtsStatsRequest) XXX_Marshal(b []byte, deterministi...
    method XXX_Merge (line 396) | func (m *QueryThoughtsStatsRequest) XXX_Merge(src proto.Message) {
    method XXX_Size (line 400) | func (m *QueryThoughtsStatsRequest) XXX_Size() int {
    method XXX_DiscardUnknown (line 404) | func (m *QueryThoughtsStatsRequest) XXX_DiscardUnknown() {
    method Marshal (line 1095) | func (m *QueryThoughtsStatsRequest) Marshal() (dAtA []byte, err error) {
    method MarshalTo (line 1105) | func (m *QueryThoughtsStatsRequest) MarshalTo(dAtA []byte) (int, error) {
    method MarshalToSizedBuffer (line 1110) | func (m *QueryThoughtsStatsRequest) MarshalToSizedBuffer(dAtA []byte) ...
    method Size (line 1310) | func (m *QueryThoughtsStatsRequest) Size() (n int) {
    method Unmarshal (line 1920) | func (m *QueryThoughtsStatsRequest) Unmarshal(dAtA []byte) error {
  type QueryThoughtsStatsResponse (line 410) | type QueryThoughtsStatsResponse struct
    method Reset (line 414) | func (m *QueryThoughtsStatsResponse) Reset()         { *m = QueryThoug...
    method String (line 415) | func (m *QueryThoughtsStatsResponse) String() string { return proto.Co...
    method ProtoMessage (line 416) | func (*QueryThoughtsStatsResponse) ProtoMessage()    {}
    method Descriptor (line 417) | func (*QueryThoughtsStatsResponse) Descriptor() ([]byte, []int) {
    method XXX_Unmarshal (line 421) | func (m *QueryThoughtsStatsResponse) XXX_Unmarshal(b []byte) error {
    method XXX_Marshal (line 425) | func (m *QueryThoughtsStatsResponse) XXX_Marshal(b []byte, determinist...
    method XXX_Merge (line 438) | func (m *QueryThoughtsStatsResponse) XXX_Merge(src proto.Message) {
    method XXX_Size (line 442) | func (m *QueryThoughtsStatsResponse) XXX_Size() int {
    method XXX_DiscardUnknown (line 446) | func (m *QueryThoughtsStatsResponse) XXX_DiscardUnknown() {
    method GetThoughtsStats (line 452) | func (m *QueryThoughtsStatsResponse) GetThoughtsStats() ThoughtsStats {
    method Marshal (line 1118) | func (m *QueryThoughtsStatsResponse) Marshal() (dAtA []byte, err error) {
    method MarshalTo (line 1128) | func (m *QueryThoughtsStatsResponse) MarshalTo(dAtA []byte) (int, erro...
    method MarshalToSizedBuffer (line 1133) | func (m *QueryThoughtsStatsResponse) MarshalToSizedBuffer(dAtA []byte)...
    method Size (line 1319) | func (m *QueryThoughtsStatsResponse) Size() (n int) {
    method Unmarshal (line 1971) | func (m *QueryThoughtsStatsResponse) Unmarshal(dAtA []byte) error {
  type QueryThoughtsFeesRequest (line 459) | type QueryThoughtsFeesRequest struct
    method Reset (line 461) | func (m *QueryThoughtsFeesRequest) Reset()         { *m = QueryThought...
    method String (line 462) | func (m *QueryThoughtsFeesRequest) String() string { return proto.Comp...
    method ProtoMessage (line 463) | func (*QueryThoughtsFeesRequest) ProtoMessage()    {}
    method Descriptor (line 464) | func (*QueryThoughtsFeesRequest) Descriptor() ([]byte, []int) {
    method XXX_Unmarshal (line 468) | func (m *QueryThoughtsFeesRequest) XXX_Unmarshal(b []byte) error {
    method XXX_Marshal (line 472) | func (m *QueryThoughtsFeesRequest) XXX_Marshal(b []byte, deterministic...
    method XXX_Merge (line 485) | func (m *QueryThoughtsFeesRequest) XXX_Merge(src proto.Message) {
    method XXX_Size (line 489) | func (m *QueryThoughtsFeesRequest) XXX_Size() int {
    method XXX_DiscardUnknown (line 493) | func (m *QueryThoughtsFeesRequest) XXX_DiscardUnknown() {
    method Marshal (line 1155) | func (m *QueryThoughtsFeesRequest) Marshal() (dAtA []byte, err error) {
    method MarshalTo (line 1165) | func (m *QueryThoughtsFeesRequest) MarshalTo(dAtA []byte) (int, error) {
    method MarshalToSizedBuffer (line 1170) | func (m *QueryThoughtsFeesRequest) MarshalToSizedBuffer(dAtA []byte) (...
    method Size (line 1334) | func (m *QueryThoughtsFeesRequest) Size() (n int) {
    method Unmarshal (line 2056) | func (m *QueryThoughtsFeesRequest) Unmarshal(dAtA []byte) error {
  type QueryThoughtsFeesResponse (line 499) | type QueryThoughtsFeesResponse struct
    method Reset (line 503) | func (m *QueryThoughtsFeesResponse) Reset()         { *m = QueryThough...
    method String (line 504) | func (m *QueryThoughtsFeesResponse) String() string { return proto.Com...
    method ProtoMessage (line 505) | func (*QueryThoughtsFeesResponse) ProtoMessage()    {}
    method Descriptor (line 506) | func (*QueryThoughtsFeesResponse) Descriptor() ([]byte, []int) {
    method XXX_Unmarshal (line 510) | func (m *QueryThoughtsFeesResponse) XXX_Unmarshal(b []byte) error {
    method XXX_Marshal (line 514) | func (m *QueryThoughtsFeesResponse) XXX_Marshal(b []byte, deterministi...
    method XXX_Merge (line 527) | func (m *QueryThoughtsFeesResponse) XXX_Merge(src proto.Message) {
    method XXX_Size (line 531) | func (m *QueryThoughtsFeesResponse) XXX_Size() int {
    method XXX_DiscardUnknown (line 535) | func (m *QueryThoughtsFeesResponse) XXX_DiscardUnknown() {
    method GetFees (line 541) | func (m *QueryThoughtsFeesResponse) GetFees() github_com_cosmos_cosmos...
    method Marshal (line 1178) | func (m *QueryThoughtsFeesResponse) Marshal() (dAtA []byte, err error) {
    method MarshalTo (line 1188) | func (m *QueryThoughtsFeesResponse) MarshalTo(dAtA []byte) (int, error) {
    method MarshalToSizedBuffer (line 1193) | func (m *QueryThoughtsFeesResponse) MarshalToSizedBuffer(dAtA []byte) ...
    method Size (line 1343) | func (m *QueryThoughtsFeesResponse) Size() (n int) {
    method Unmarshal (line 2107) | func (m *QueryThoughtsFeesResponse) Unmarshal(dAtA []byte) error {
  function init (line 548) | func init() {
  function init (line 562) | func init() { proto.RegisterFile("cyber/dmn/v1beta1/query.proto", fileDe...
  constant _ (line 618) | _ = grpc.SupportPackageIsVersion4
  type QueryClient (line 623) | type QueryClient interface
  type queryClient (line 632) | type queryClient struct
    method Params (line 640) | func (c *queryClient) Params(ctx context.Context, in *QueryParamsReque...
    method Thought (line 649) | func (c *queryClient) Thought(ctx context.Context, in *QueryThoughtPar...
    method ThoughtStats (line 658) | func (c *queryClient) ThoughtStats(ctx context.Context, in *QueryThoug...
    method Thoughts (line 667) | func (c *queryClient) Thoughts(ctx context.Context, in *QueryThoughtsR...
    method ThoughtsStats (line 676) | func (c *queryClient) ThoughtsStats(ctx context.Context, in *QueryThou...
    method ThoughtsFees (line 685) | func (c *queryClient) ThoughtsFees(ctx context.Context, in *QueryThoug...
  function NewQueryClient (line 636) | func NewQueryClient(cc grpc1.ClientConn) QueryClient {
  type QueryServer (line 695) | type QueryServer interface
  type UnimplementedQueryServer (line 705) | type UnimplementedQueryServer struct
    method Params (line 707) | func (*UnimplementedQueryServer) Params(ctx context.Context, req *Quer...
    method Thought (line 711) | func (*UnimplementedQueryServer) Thought(ctx context.Context, req *Que...
    method ThoughtStats (line 715) | func (*UnimplementedQueryServer) ThoughtStats(ctx context.Context, req...
    method Thoughts (line 719) | func (*UnimplementedQueryServer) Thoughts(ctx context.Context, req *Qu...
    method ThoughtsStats (line 723) | func (*UnimplementedQueryServer) ThoughtsStats(ctx context.Context, re...
    method ThoughtsFees (line 727) | func (*UnimplementedQueryServer) ThoughtsFees(ctx context.Context, req...
  function RegisterQueryServer (line 731) | func RegisterQueryServer(s grpc1.Server, srv QueryServer) {
  function _Query_Params_Handler (line 735) | func _Query_Params_Handler(srv interface{}, ctx context.Context, dec fun...
  function _Query_Thought_Handler (line 753) | func _Query_Thought_Handler(srv interface{}, ctx context.Context, dec fu...
  function _Query_ThoughtStats_Handler (line 771) | func _Query_ThoughtStats_Handler(srv interface{}, ctx context.Context, d...
  function _Query_Thoughts_Handler (line 789) | func _Query_Thoughts_Handler(srv interface{}, ctx context.Context, dec f...
  function _Query_ThoughtsStats_Handler (line 807) | func _Query_ThoughtsStats_Handler(srv interface{}, ctx context.Context, ...
  function _Query_ThoughtsFees_Handler (line 825) | func _Query_ThoughtsFees_Handler(srv interface{}, ctx context.Context, d...
  function encodeVarintQuery (line 1215) | func encodeVarintQuery(dAtA []byte, offset int, v uint64) int {
  function sovQuery (line 1358) | func sovQuery(x uint64) (n int) {
  function sozQuery (line 1362) | func sozQuery(x uint64) (n int) {
  function skipQuery (line 2192) | func skipQuery(dAtA []byte) (n int, err error) {

FILE: x/dmn/types/query.pb.gw.go
  function request_Query_Params_0 (line 38) | func request_Query_Params_0(ctx context.Context, marshaler runtime.Marsh...
  function local_request_Query_Params_0 (line 46) | func local_request_Query_Params_0(ctx context.Context, marshaler runtime...
  function request_Query_Thought_0 (line 56) | func request_Query_Thought_0(ctx context.Context, marshaler runtime.Mars...
  function local_request_Query_Thought_0 (line 71) | func local_request_Query_Thought_0(ctx context.Context, marshaler runtim...
  function request_Query_ThoughtStats_0 (line 88) | func request_Query_ThoughtStats_0(ctx context.Context, marshaler runtime...
  function local_request_Query_ThoughtStats_0 (line 103) | func local_request_Query_ThoughtStats_0(ctx context.Context, marshaler r...
  function request_Query_Thoughts_0 (line 118) | func request_Query_Thoughts_0(ctx context.Context, marshaler runtime.Mar...
  function local_request_Query_Thoughts_0 (line 126) | func local_request_Query_Thoughts_0(ctx context.Context, marshaler runti...
  function request_Query_ThoughtsStats_0 (line 134) | func request_Query_ThoughtsStats_0(ctx context.Context, marshaler runtim...
  function local_request_Query_ThoughtsStats_0 (line 142) | func local_request_Query_ThoughtsStats_0(ctx context.Context, marshaler ...
  function request_Query_ThoughtsFees_0 (line 150) | func request_Query_ThoughtsFees_0(ctx context.Context, marshaler runtime...
  function local_request_Query_ThoughtsFees_0 (line 158) | func local_request_Query_ThoughtsFees_0(ctx context.Context, marshaler r...
  function RegisterQueryHandlerServer (line 170) | func RegisterQueryHandlerServer(ctx context.Context, mux *runtime.ServeM...
  function RegisterQueryHandlerFromEndpoint (line 308) | func RegisterQueryHandlerFromEndpoint(ctx context.Context, mux *runtime....
  function RegisterQueryHandler (line 333) | func RegisterQueryHandler(ctx context.Context, mux *runtime.ServeMux, co...
  function RegisterQueryHandlerClient (line 342) | func RegisterQueryHandlerClient(ctx context.Context, mux *runtime.ServeM...

FILE: x/dmn/types/thought.go
  function NewThought (line 9) | func NewThought(
  type Thoughts (line 25) | type Thoughts
    method Sort (line 29) | func (js Thoughts) Sort() {
    method Len (line 33) | func (js Thoughts) Len() int { return len(js) }
    method Less (line 35) | func (js Thoughts) Less(i, j int) bool {
    method Swap (line 40) | func (js Thoughts) Swap(i, j int) { js[i], js[j] = js[j], js[i] }
  type ThoughtsStats (line 27) | type ThoughtsStats
  function NewTrigger (line 42) | func NewTrigger(period, block uint64) Trigger {
  function NewStats (line 49) | func NewStats(
  function NewLoad (line 63) | func NewLoad(calldata string, gasprice sdk.Coin) Load {

FILE: x/dmn/types/tx.pb.go
  constant _ (line 36) | _ = proto.GoGoProtoPackageIsVersion3
  type MsgCreateThought (line 38) | type MsgCreateThought struct
    method Reset (line 46) | func (m *MsgCreateThought) Reset()         { *m = MsgCreateThought{} }
    method String (line 47) | func (m *MsgCreateThought) String() string { return proto.CompactTextS...
    method ProtoMessage (line 48) | func (*MsgCreateThought) ProtoMessage()    {}
    method Descriptor (line 49) | func (*MsgCreateThought) Descriptor() ([]byte, []int) {
    method XXX_Unmarshal (line 53) | func (m *MsgCreateThought) XXX_Unmarshal(b []byte) error {
    method XXX_Marshal (line 57) | func (m *MsgCreateThought) XXX_Marshal(b []byte, deterministic bool) (...
    method XXX_Merge (line 70) | func (m *MsgCreateThought) XXX_Merge(src proto.Message) {
    method XXX_Size (line 74) | func (m *MsgCreateThought) XXX_Size() int {
    method XXX_DiscardUnknown (line 78) | func (m *MsgCreateThought) XXX_DiscardUnknown() {
    method GetProgram (line 84) | func (m *MsgCreateThought) GetProgram() string {
    method GetTrigger (line 91) | func (m *MsgCreateThought) GetTrigger() Trigger {
    method GetLoad (line 98) | func (m *MsgCreateThought) GetLoad() Load {
    method GetName (line 105) | func (m *MsgCreateThought) GetName() string {
    method GetParticle (line 112) | func (m *MsgCreateThought) GetParticle() string {
    method Marshal (line 1438) | func (m *MsgCreateThought) Marshal() (dAtA []byte, err error) {
    method MarshalTo (line 1448) | func (m *MsgCreateThought) MarshalTo(dAtA []byte) (int, error) {
    method MarshalToSizedBuffer (line 1453) | func (m *MsgCreateThought) MarshalToSizedBuffer(dAtA []byte) (int, err...
    method Size (line 2061) | func (m *MsgCreateThought) Size() (n int) {
    method Unmarshal (line 2329) | func (m *MsgCreateThought) Unmarshal(dAtA []byte) error {
  type MsgForgetThought (line 119) | type MsgForgetThought struct
    method Reset (line 124) | func (m *MsgForgetThought) Reset()         { *m = MsgForgetThought{} }
    method String (line 125) | func (m *MsgForgetThought) String() string { return proto.CompactTextS...
    method ProtoMessage (line 126) | func (*MsgForgetThought) ProtoMessage()    {}
    method Descriptor (line 127) | func (*MsgForgetThought) Descriptor() ([]byte, []int) {
    method XXX_Unmarshal (line 131) | func (m *MsgForgetThought) XXX_Unmarshal(b []byte) error {
    method XXX_Marshal (line 135) | func (m *MsgForgetThought) XXX_Marshal(b []byte, deterministic bool) (...
    method XXX_Merge (line 148) | func (m *MsgForgetThought) XXX_Merge(src proto.Message) {
    method XXX_Size (line 152) | func (m *MsgForgetThought) XXX_Size() int {
    method XXX_DiscardUnknown (line 156) | func (m *MsgForgetThought) XXX_DiscardUnknown() {
    method GetProgram (line 162) | func (m *MsgForgetThought) GetProgram() string {
    method GetName (line 169) | func (m *MsgForgetThought) GetName() string {
    method Marshal (line 1502) | func (m *MsgForgetThought) Marshal() (dAtA []byte, err error) {
    method MarshalTo (line 1512) | func (m *MsgForgetThought) MarshalTo(dAtA []byte) (int, error) {
    method MarshalToSizedBuffer (line 1517) | func (m *MsgForgetThought) MarshalToSizedBuffer(dAtA []byte) (int, err...
    method Size (line 2086) | func (m *MsgForgetThought) Size() (n int) {
    method Unmarshal (line 2542) | func (m *MsgForgetThought) Unmarshal(dAtA []byte) error {
  type MsgChangeThoughtParticle (line 176) | type MsgChangeThoughtParticle struct
    method Reset (line 182) | func (m *MsgChangeThoughtParticle) Reset()         { *m = MsgChangeTho...
    method String (line 183) | func (m *MsgChangeThoughtParticle) String() string { return proto.Comp...
    method ProtoMessage (line 184) | func (*MsgChangeThoughtParticle) ProtoMessage()    {}
    method Descriptor (line 185) | func (*MsgChangeThoughtParticle) Descriptor() ([]byte, []int) {
    method XXX_Unmarshal (line 189) | func (m *MsgChangeThoughtParticle) XXX_Unmarshal(b []byte) error {
    method XXX_Marshal (line 193) | func (m *MsgChangeThoughtParticle) XXX_Marshal(b []byte, deterministic...
    method XXX_Merge (line 206) | func (m *MsgChangeThoughtParticle) XXX_Merge(src proto.Message) {
    method XXX_Size (line 210) | func (m *MsgChangeThoughtParticle) XXX_Size() int {
    method XXX_DiscardUnknown (line 214) | func (m *MsgChangeThoughtParticle) XXX_DiscardUnknown() {
    method GetProgram (line 220) | func (m *MsgChangeThoughtParticle) GetProgram() string {
    method GetName (line 227) | func (m *MsgChangeThoughtParticle) GetName() string {
    method GetParticle (line 234) | func (m *MsgChangeThoughtParticle) GetParticle() string {
    method Marshal (line 1539) | func (m *MsgChangeThoughtParticle) Marshal() (dAtA []byte, err error) {
    method MarshalTo (line 1549) | func (m *MsgChangeThoughtParticle) MarshalTo(dAtA []byte) (int, error) {
    method MarshalToSizedBuffer (line 1554) | func (m *MsgChangeThoughtParticle) MarshalToSizedBuffer(dAtA []byte) (...
    method Size (line 2103) | func (m *MsgChangeThoughtParticle) Size() (n int) {
    method Unmarshal (line 2657) | func (m *MsgChangeThoughtParticle) Unmarshal(dAtA []byte) error {
  type MsgChangeThoughtName (line 241) | type MsgChangeThoughtName struct
    method Reset (line 247) | func (m *MsgChangeThoughtName) Reset()         { *m = MsgChangeThought...
    method String (line 248) | func (m *MsgChangeThoughtName) String() string { return proto.CompactT...
    method ProtoMessage (line 249) | func (*MsgChangeThoughtName) ProtoMessage()    {}
    method Descriptor (line 250) | func (*MsgChangeThoughtName) Descriptor() ([]byte, []int) {
    method XXX_Unmarshal (line 254) | func (m *MsgChangeThoughtName) XXX_Unmarshal(b []byte) error {
    method XXX_Marshal (line 258) | func (m *MsgChangeThoughtName) XXX_Marshal(b []byte, deterministic boo...
    method XXX_Merge (line 271) | func (m *MsgChangeThoughtName) XXX_Merge(src proto.Message) {
    method XXX_Size (line 275) | func (m *MsgChangeThoughtName) XXX_Size() int {
    method XXX_DiscardUnknown (line 279) | func (m *MsgChangeThoughtName) XXX_DiscardUnknown() {
    method GetProgram (line 285) | func (m *MsgChangeThoughtName) GetProgram() string {
    method GetName (line 292) | func (m *MsgChangeThoughtName) GetName() string {
    method GetNewName (line 299) | func (m *MsgChangeThoughtName) GetNewName() string {
    method Marshal (line 1583) | func (m *MsgChangeThoughtName) Marshal() (dAtA []byte, err error) {
    method MarshalTo (line 1593) | func (m *MsgChangeThoughtName) MarshalTo(dAtA []byte) (int, error) {
    method MarshalToSizedBuffer (line 1598) | func (m *MsgChangeThoughtName) MarshalToSizedBuffer(dAtA []byte) (int,...
    method Size (line 2124) | func (m *MsgChangeThoughtName) Size() (n int) {
    method Unmarshal (line 2804) | func (m *MsgChangeThoughtName) Unmarshal(dAtA []byte) error {
  type MsgChangeThoughtInput (line 306) | type MsgChangeThoughtInput struct
    method Reset (line 312) | func (m *MsgChangeThoughtInput) Reset()         { *m = MsgChangeThough...
    method String (line 313) | func (m *MsgChangeThoughtInput) String() string { return proto.Compact...
    method ProtoMessage (line 314) | func (*MsgChangeThoughtInput) ProtoMessage()    {}
    method Descriptor (line 315) | func (*MsgChangeThoughtInput) Descriptor() ([]byte, []int) {
    method XXX_Unmarshal (line 319) | func (m *MsgChangeThoughtInput) XXX_Unmarshal(b []byte) error {
    method XXX_Marshal (line 323) | func (m *MsgChangeThoughtInput) XXX_Marshal(b []byte, deterministic bo...
    method XXX_Merge (line 336) | func (m *MsgChangeThoughtInput) XXX_Merge(src proto.Message) {
    method XXX_Size (line 340) | func (m *MsgChangeThoughtInput) XXX_Size() int {
    method XXX_DiscardUnknown (line 344) | func (m *MsgChangeThoughtInput) XXX_DiscardUnknown() {
    method GetProgram (line 350) | func (m *MsgChangeThoughtInput) GetProgram() string {
    method GetName (line 357) | func (m *MsgChangeThoughtInput) GetName() string {
    method GetInput (line 364) | func (m *MsgChangeThoughtInput) GetInput() string {
    method Marshal (line 1627) | func (m *MsgChangeThoughtInput) Marshal() (dAtA []byte, err error) {
    method MarshalTo (line 1637) | func (m *MsgChangeThoughtInput) MarshalTo(dAtA []byte) (int, error) {
    method MarshalToSizedBuffer (line 1642) | func (m *MsgChangeThoughtInput) MarshalToSizedBuffer(dAtA []byte) (int...
    method Size (line 2145) | func (m *MsgChangeThoughtInput) Size() (n int) {
    method Unmarshal (line 2951) | func (m *MsgChangeThoughtInput) Unmarshal(dAtA []byte) error {
  type MsgChangeThoughtGasPrice (line 371) | type MsgChangeThoughtGasPrice struct
    method Reset (line 377) | func (m *MsgChangeThoughtGasPrice) Reset()         { *m = MsgChangeTho...
    method String (line 378) | func (m *MsgChangeThoughtGasPrice) String() string { return proto.Comp...
    method ProtoMessage (line 379) | func (*MsgChangeThoughtGasPrice) ProtoMessage()    {}
    method Descriptor (line 380) | func (*MsgChangeThoughtGasPrice) Descriptor() ([]byte, []int) {
    method XXX_Unmarshal (line 384) | func (m *MsgChangeThoughtGasPrice) XXX_Unmarshal(b []byte) error {
    method XXX_Marshal (line 388) | func (m *MsgChangeThoughtGasPrice) XXX_Marshal(b []byte, deterministic...
    method XXX_Merge (line 401) | func (m *MsgChangeThoughtGasPrice) XXX_Merge(src proto.Message) {
    method XXX_Size (line 405) | func (m *MsgChangeThoughtGasPrice) XXX_Size() int {
    method XXX_DiscardUnknown (line 409) | func (m *MsgChangeThoughtGasPrice) XXX_DiscardUnknown() {
    method GetProgram (line 415) | func (m *MsgChangeThoughtGasPrice) GetProgram() string {
    method GetName (line 422) | func (m *MsgChangeThoughtGasPrice) GetName() string {
    method GetGasPrice (line 429) | func (m *MsgChangeThoughtGasPrice) GetGasPrice() github_com_cosmos_cos...
    method Marshal (line 1671) | func (m *MsgChangeThoughtGasPrice) Marshal() (dAtA []byte, err error) {
    method MarshalTo (line 1681) | func (m *MsgChangeThoughtGasPrice) MarshalTo(dAtA []byte) (int, error) {
    method MarshalToSizedBuffer (line 1686) | func (m *MsgChangeThoughtGasPrice) MarshalToSizedBuffer(dAtA []byte) (...
    method Size (line 2166) | func (m *MsgChangeThoughtGasPrice) Size() (n int) {
    method Unmarshal (line 3098) | func (m *MsgChangeThoughtGasPrice) Unmarshal(dAtA []byte) error {
  type MsgChangeThoughtPeriod (line 436) | type MsgChangeThoughtPeriod struct
    method Reset (line 442) | func (m *MsgChangeThoughtPeriod) Reset()         { *m = MsgChangeThoug...
    method String (line 443) | func (m *MsgChangeThoughtPeriod) String() string { return proto.Compac...
    method ProtoMessage (line 444) | func (*MsgChangeThoughtPeriod) ProtoMessage()    {}
    method Descriptor (line 445) | func (*MsgChangeThoughtPeriod) Descriptor() ([]byte, []int) {
    method XXX_Unmarshal (line 449) | func (m *MsgChangeThoughtPeriod) XXX_Unmarshal(b []byte) error {
    method XXX_Marshal (line 453) | func (m *MsgChangeThoughtPeriod) XXX_Marshal(b []byte, deterministic b...
    method XXX_Merge (line 466) | func (m *MsgChangeThoughtPeriod) XXX_Merge(src proto.Message) {
    method XXX_Size (line 470) | func (m *MsgChangeThoughtPeriod) XXX_Size() int {
    method XXX_DiscardUnknown (line 474) | func (m *MsgChangeThoughtPeriod) XXX_DiscardUnknown() {
    method GetProgram (line 480) | func (m *MsgChangeThoughtPeriod) GetProgram() string {
    method GetName (line 487) | func (m *MsgChangeThoughtPeriod) GetName() string {
    method GetPeriod (line 494) | func (m *MsgChangeThoughtPeriod) GetPeriod() uint64 {
    method Marshal (line 1718) | func (m *MsgChangeThoughtPeriod) Marshal() (dAtA []byte, err error) {
    method MarshalTo (line 1728) | func (m *MsgChangeThoughtPeriod) MarshalTo(dAtA []byte) (int, error) {
    method MarshalToSizedBuffer (line 1733) | func (m *MsgChangeThoughtPeriod) MarshalToSizedBuffer(dAtA []byte) (in...
    method Size (line 2185) | func (m *MsgChangeThoughtPeriod) Size() (n int) {
    method Unmarshal (line 3246) | func (m *MsgChangeThoughtPeriod) Unmarshal(dAtA []byte) error {
  type MsgChangeThoughtBlock (line 501) | type MsgChangeThoughtBlock struct
    method Reset (line 507) | func (m *MsgChangeThoughtBlock) Reset()         { *m = MsgChangeThough...
    method String (line 508) | func (m *MsgChangeThoughtBlock) String() string { return proto.Compact...
    method ProtoMessage (line 509) | func (*MsgChangeThoughtBlock) ProtoMessage()    {}
    method Descriptor (line 510) | func (*MsgChangeThoughtBlock) Descriptor() ([]byte, []int) {
    method XXX_Unmarshal (line 514) | func (m *MsgChangeThoughtBlock) XXX_Unmarshal(b []byte) error {
    method XXX_Marshal (line 518) | func (m *MsgChangeThoughtBlock) XXX_Marshal(b []byte, deterministic bo...
    method XXX_Merge (line 531) | func (m *MsgChangeThoughtBlock) XXX_Merge(src proto.Message) {
    method XXX_Size (line 535) | func (m *MsgChangeThoughtBlock) XXX_Size() int {
    method XXX_DiscardUnknown (line 539) | func (m *MsgChangeThoughtBlock) XXX_DiscardUnknown() {
    method GetProgram (line 545) | func (m *MsgChangeThoughtBlock) GetProgram() string {
    method GetName (line 552) | func (m *MsgChangeThoughtBlock) GetName() string {
    method GetBlock (line 559) | func (m *MsgChangeThoughtBlock) GetBlock() uint64 {
    method Marshal (line 1760) | func (m *MsgChangeThoughtBlock) Marshal() (dAtA []byte, err error) {
    method MarshalTo (line 1770) | func (m *MsgChangeThoughtBlock) MarshalTo(dAtA []byte) (int, error) {
    method MarshalToSizedBuffer (line 1775) | func (m *MsgChangeThoughtBlock) MarshalToSizedBuffer(dAtA []byte) (int...
    method Size (line 2205) | func (m *MsgChangeThoughtBlock) Size() (n int) {
    method Unmarshal (line 3380) | func (m *MsgChangeThoughtBlock) Unmarshal(dAtA []byte) error {
  type MsgUpdateParams (line 566) | type MsgUpdateParams struct
    method Reset (line 571) | func (m *MsgUpdateParams) Reset()         { *m = MsgUpdateParams{} }
    method String (line 572) | func (m *MsgUpdateParams) String() string { return proto.CompactTextSt...
    method ProtoMessage (line 573) | func (*MsgUpdateParams) ProtoMessage()    {}
    method Descriptor (line 574) | func (*MsgUpdateParams) Descriptor() ([]byte, []int) {
    method XXX_Unmarshal (line 578) | func (m *MsgUpdateParams) XXX_Unmarshal(b []byte) error {
    method XXX_Marshal (line 582) | func (m *MsgUpdateParams) XXX_Marshal(b []byte, deterministic bool) ([...
    method XXX_Merge (line 595) | func (m *MsgUpdateParams) XXX_Merge(src proto.Message) {
    method XXX_Size (line 599) | func (m *MsgUpdateParams) XXX_Size() int {
    method XXX_DiscardUnknown (line 603) | func (m *MsgUpdateParams) XXX_DiscardUnknown() {
    method GetAuthority (line 609) | func (m *MsgUpdateParams) GetAuthority() string {
    method GetParams (line 616) | func (m *MsgUpdateParams) GetParams() Params {
    method Marshal (line 1802) | func (m *MsgUpdateParams) Marshal() (dAtA []byte, err error) {
    method MarshalTo (line 1812) | func (m *MsgUpdateParams) MarshalTo(dAtA []byte) (int, error) {
    method MarshalToSizedBuffer (line 1817) | func (m *MsgUpdateParams) MarshalToSizedBuffer(dAtA []byte) (int, erro...
    method Size (line 2225) | func (m *MsgUpdateParams) Size() (n int) {
    method Unmarshal (line 3514) | func (m *MsgUpdateParams) Unmarshal(dAtA []byte) error {
  type MsgCreateThoughtResponse (line 623) | type MsgCreateThoughtResponse struct
    method Reset (line 625) | func (m *MsgCreateThoughtResponse) Reset()         { *m = MsgCreateTho...
    method String (line 626) | func (m *MsgCreateThoughtResponse) String() string { return proto.Comp...
    method ProtoMessage (line 627) | func (*MsgCreateThoughtResponse) ProtoMessage()    {}
    method Descriptor (line 628) | func (*MsgCreateThoughtResponse) Descriptor() ([]byte, []int) {
    method XXX_Unmarshal (line 632) | func (m *MsgCreateThoughtResponse) XXX_Unmarshal(b []byte) error {
    method XXX_Marshal (line 636) | func (m *MsgCreateThoughtResponse) XXX_Marshal(b []byte, deterministic...
    method XXX_Merge (line 649) | func (m *MsgCreateThoughtResponse) XXX_Merge(src proto.Message) {
    method XXX_Size (line 653) | func (m *MsgCreateThoughtResponse) XXX_Size() int {
    method XXX_DiscardUnknown (line 657) | func (m *MsgCreateThoughtResponse) XXX_DiscardUnknown() {
    method Marshal (line 1842) | func (m *MsgCreateThoughtResponse) Marshal() (dAtA []byte, err error) {
    method MarshalTo (line 1852) | func (m *MsgCreateThoughtResponse) MarshalTo(dAtA []byte) (int, error) {
    method MarshalToSizedBuffer (line 1857) | func (m *MsgCreateThoughtResponse) MarshalToSizedBuffer(dAtA []byte) (...
    method Size (line 2240) | func (m *MsgCreateThoughtResponse) Size() (n int) {
    method Unmarshal (line 3630) | func (m *MsgCreateThoughtResponse) Unmarshal(dAtA []byte) error {
  type MsgForgetThoughtResponse (line 663) | type MsgForgetThoughtResponse struct
    method Reset (line 665) | func (m *MsgForgetThoughtResponse) Reset()         { *m = MsgForgetTho...
    method String (line 666) | func (m *MsgForgetThoughtResponse) String() string { return proto.Comp...
    method ProtoMessage (line 667) | func (*MsgForgetThoughtResponse) ProtoMessage()    {}
    method Descriptor (line 668) | func (*MsgForgetThoughtResponse) Descriptor() ([]byte, []int) {
    method XXX_Unmarshal (line 672) | func (m *MsgForgetThoughtResponse) XXX_Unmarshal(b []byte) error {
    method XXX_Marshal (line 676) | func (m *MsgForgetThoughtResponse) XXX_Marshal(b []byte, deterministic...
    method XXX_Merge (line 689) | func (m *MsgForgetThoughtResponse) XXX_Merge(src proto.Message) {
    method XXX_Size (line 693) | func (m *MsgForgetThoughtResponse) XXX_Size() int {
    method XXX_DiscardUnknown (line 697) | func (m *MsgForgetThoughtResponse) XXX_DiscardUnknown() {
    method Marshal (line 1865) | func (m *MsgForgetThoughtResponse) Marshal() (dAtA []byte, err error) {
    method MarshalTo (line 1875) | func (m *MsgForgetThoughtResponse) MarshalTo(dAtA []byte) (int, error) {
    method MarshalToSizedBuffer (line 1880) | func (m *MsgForgetThoughtResponse) MarshalToSizedBuffer(dAtA []byte) (...
    method Size (line 2249) | func (m *MsgForgetThoughtResponse) Size() (n int) {
    method Unmarshal (line 3681) | func (m *MsgForgetThoughtResponse) Unmarshal(dAtA []byte) error {
  type MsgChangeThoughtParticleResponse (line 703) | type MsgChangeThoughtParticleResponse struct
    method Reset (line 705) | func (m *MsgChangeThoughtParticleResponse) Reset()         { *m = MsgC...
    method String (line 706) | func (m *MsgChangeThoughtParticleResponse) String() string { return pr...
    method ProtoMessage (line 707) | func (*MsgChangeThoughtParticleResponse) ProtoMessage()    {}
    method Descriptor (line 708) | func (*MsgChangeThoughtParticleResponse) Descriptor() ([]byte, []int) {
    method XXX_Unmarshal (line 712) | func (m *MsgChangeThoughtParticleResponse) XXX_Unmarshal(b []byte) err...
    method XXX_Marshal (line 716) | func (m *MsgChangeThoughtParticleResponse) XXX_Marshal(b []byte, deter...
    method XXX_Merge (line 729) | func (m *MsgChangeThoughtParticleResponse) XXX_Merge(src proto.Message) {
    method XXX_Size (line 733) | func (m *MsgChangeThoughtParticleResponse) XXX_Size() int {
    method XXX_DiscardUnknown (line 737) | func (m *MsgChangeThoughtParticleResponse) XXX_DiscardUnknown() {
    method Marshal (line 1888) | func (m *MsgChangeThoughtParticleResponse) Marshal() (dAtA []byte, err...
    method MarshalTo (line 1898) | func (m *MsgChangeThoughtParticleResponse) MarshalTo(dAtA []byte) (int...
    method MarshalToSizedBuffer (line 1903) | func (m *MsgChangeThoughtParticleResponse) MarshalToSizedBuffer(dAtA [...
    method Size (line 2258) | func (m *MsgChangeThoughtParticleResponse) Size() (n int) {
    method Unmarshal (line 3732) | func (m *MsgChangeThoughtParticleResponse) Unmarshal(dAtA []byte) error {
  type MsgChangeThoughtNameResponse (line 743) | type MsgChangeThoughtNameResponse struct
    method Reset (line 745) | func (m *MsgChangeThoughtNameResponse) Reset()         { *m = MsgChang...
    method String (line 746) | func (m *MsgChangeThoughtNameResponse) String() string { return proto....
    method ProtoMessage (line 747) | func (*MsgChangeThoughtNameResponse) ProtoMessage()    {}
    method Descriptor (line 748) | func (*MsgChangeThoughtNameResponse) Descriptor() ([]byte, []int) {
    method XXX_Unmarshal (line 752) | func (m *MsgChangeThoughtNameResponse) XXX_Unmarshal(b []byte) error {
    method XXX_Marshal (line 756) | func (m *MsgChangeThoughtNameResponse) XXX_Marshal(b []byte, determini...
    method XXX_Merge (line 769) | func (m *MsgChangeThoughtNameResponse) XXX_Merge(src proto.Message) {
    method XXX_Size (line 773) | func (m *MsgChangeThoughtNameResponse) XXX_Size() int {
    method XXX_DiscardUnknown (line 777) | func (m *MsgChangeThoughtNameResponse) XXX_DiscardUnknown() {
    method Marshal (line 1911) | func (m *MsgChangeThoughtNameResponse) Marshal() (dAtA []byte, err err...
    method MarshalTo (line 1921) | func (m *MsgChangeThoughtNameResponse) MarshalTo(dAtA []byte) (int, er...
    method MarshalToSizedBuffer (line 1926) | func (m *MsgChangeThoughtNameResponse) MarshalToSizedBuffer(dAtA []byt...
    method Size (line 2267) | func (m *MsgChangeThoughtNameResponse) Size() (n int) {
    method Unmarshal (line 3783) | func (m *MsgChangeThoughtNameResponse) Unmarshal(dAtA []byte) error {
  type MsgChangeThoughtInputResponse (line 783) | type MsgChangeThoughtInputResponse struct
    method Reset (line 785) | func (m *MsgChangeThoughtInputResponse) Reset()         { *m = MsgChan...
    method String (line 786) | func (m *MsgChangeThoughtInputResponse) String() string { return proto...
    method ProtoMessage (line 787) | func (*MsgChangeThoughtInputResponse) ProtoMessage()    {}
    method Descriptor (line 788) | func (*MsgChangeThoughtInputResponse) Descriptor() ([]byte, []int) {
    method XXX_Unmarshal (line 792) | func (m *MsgChangeThoughtInputResponse) XXX_Unmarshal(b []byte) error {
    method XXX_Marshal (line 796) | func (m *MsgChangeThoughtInputResponse) XXX_Marshal(b []byte, determin...
    method XXX_Merge (line 809) | func (m *MsgChangeThoughtInputResponse) XXX_Merge(src proto.Message) {
    method XXX_Size (line 813) | func (m *MsgChangeThoughtInputResponse) XXX_Size() int {
    method XXX_DiscardUnknown (line 817) | func (m *MsgChangeThoughtInputResponse) XXX_DiscardUnknown() {
    method Marshal (line 1934) | func (m *MsgChangeThoughtInputResponse) Marshal() (dAtA []byte, err er...
    method MarshalTo (line 1944) | func (m *MsgChangeThoughtInputResponse) MarshalTo(dAtA []byte) (int, e...
    method MarshalToSizedBuffer (line 1949) | func (m *MsgChangeThoughtInputResponse) MarshalToSizedBuffer(dAtA []by...
    method Size (line 2276) | func (m *MsgChangeThoughtInputResponse) Size() (n int) {
    method Unmarshal (line 3834) | func (m *MsgChangeThoughtInputResponse) Unmarshal(dAtA []byte) error {
  type MsgChangeThoughtGasPriceResponse (line 823) | type MsgChangeThoughtGasPriceResponse struct
    method Reset (line 825) | func (m *MsgChangeThoughtGasPriceResponse) Reset()         { *m = MsgC...
    method String (line 826) | func (m *MsgChangeThoughtGasPriceResponse) String() string { return pr...
    method ProtoMessage (line 827) | func (*MsgChangeThoughtGasPriceResponse) ProtoMessage()    {}
    method Descriptor (line 828) | func (*MsgChangeThoughtGasPriceResponse) Descriptor() ([]byte, []int) {
    method XXX_Unmarshal (line 832) | func (m *MsgChangeThoughtGasPriceResponse) XXX_Unmarshal(b []byte) err...
    method XXX_Marshal (line 836) | func (m *MsgChangeThoughtGasPriceResponse) XXX_Marshal(b []byte, deter...
    method XXX_Merge (line 849) | func (m *MsgChangeThoughtGasPriceResponse) XXX_Merge(src proto.Message) {
    method XXX_Size (line 853) | func (m *MsgChangeThoughtGasPriceResponse) XXX_Size() int {
    method XXX_DiscardUnknown (line 857) | func (m *MsgChangeThoughtGasPriceResponse) XXX_DiscardUnknown() {
    method Marshal (line 1957) | func (m *MsgChangeThoughtGasPriceResponse) Marshal() (dAtA []byte, err...
    method MarshalTo (line 1967) | func (m *MsgChangeThoughtGasPriceResponse) MarshalTo(dAtA []byte) (int...
    method MarshalToSizedBuffer (line 1972) | func (m *MsgChangeThoughtGasPriceResponse) MarshalToSizedBuffer(dAtA [...
    method Size (line 2285) | func (m *MsgChangeThoughtGasPriceResponse) Size() (n int) {
    method Unmarshal (line 3885) | func (m *MsgChangeThoughtGasPriceResponse) Unmarshal(dAtA []byte) error {
  type MsgChangeThoughtPeriodResponse (line 863) | type MsgChangeThoughtPeriodResponse struct
    method Reset (line 865) | func (m *MsgChangeThoughtPeriodResponse) Reset()         { *m = MsgCha...
    method String (line 866) | func (m *MsgChangeThoughtPeriodResponse) String() string { return prot...
    method ProtoMessage (line 867) | func (*MsgChangeThoughtPeriodResponse) ProtoMessage()    {}
    method Descriptor (line 868) | func (*MsgChangeThoughtPeriodResponse) Descriptor() ([]byte, []int) {
    method XXX_Unmarshal (line 872) | func (m *MsgChangeThoughtPeriodResponse) XXX_Unmarshal(b []byte) error {
    method XXX_Marshal (line 876) | func (m *MsgChangeThoughtPeriodResponse) XXX_Marshal(b []byte, determi...
    method XXX_Merge (line 889) | func (m *MsgChangeThoughtPeriodResponse) XXX_Merge(src proto.Message) {
    method XXX_Size (line 893) | func (m *MsgChangeThoughtPeriodResponse) XXX_Size() int {
    method XXX_DiscardUnknown (line 897) | func (m *MsgChangeThoughtPeriodResponse) XXX_DiscardUnknown() {
    method Marshal (line 1980) | func (m *MsgChangeThoughtPeriodResponse) Marshal() (dAtA []byte, err e...
    method MarshalTo (line 1990) | func (m *MsgChangeThoughtPeriodResponse) MarshalTo(dAtA []byte) (int, ...
    method MarshalToSizedBuffer (line 1995) | func (m *MsgChangeThoughtPeriodResponse) MarshalToSizedBuffer(dAtA []b...
    method Size (line 2294) | func (m *MsgChangeThoughtPeriodResponse) Size() (n int) {
    method Unmarshal (line 3936) | func (m *MsgChangeThoughtPeriodResponse) Unmarshal(dAtA []byte) error {
  type MsgChangeThoughtBlockResponse (line 903) | type MsgChangeThoughtBlockResponse struct
    method Reset (line 905) | func (m *MsgChangeThoughtBlockResponse) Reset()         { *m = MsgChan...
    method String (line 906) | func (m *MsgChangeThoughtBlockResponse) String() string { return proto...
    method ProtoMessage (line 907) | func (*MsgChangeThoughtBlockResponse) ProtoMessage()    {}
    method Descriptor (line 908) | func (*MsgChangeThoughtBlockResponse) Descriptor() ([]byte, []int) {
    method XXX_Unmarshal (line 912) | func (m *MsgChangeThoughtBlockResponse) XXX_Unmarshal(b []byte) error {
    method XXX_Marshal (line 916) | func (m *MsgChangeThoughtBlockResponse) XXX_Marshal(b []byte, determin...
    method XXX_Merge (line 929) | func (m *MsgChangeThoughtBlockResponse) XXX_Merge(src proto.Message) {
    method XXX_Size (line 933) | func (m *MsgChangeThoughtBlockResponse) XXX_Size() int {
    method XXX_DiscardUnknown (line 937) | func (m *MsgChangeThoughtBlockResponse) XXX_DiscardUnknown() {
    method Marshal (line 2003) | func (m *MsgChangeThoughtBlockResponse) Marshal() (dAtA []byte, err er...
    method MarshalTo (line 2013) | func (m *MsgChangeThoughtBlockResponse) MarshalTo(dAtA []byte) (int, e...
    method MarshalToSizedBuffer (line 2018) | func (m *MsgChangeThoughtBlockResponse) MarshalToSizedBuffer(dAtA []by...
    method Size (line 2303) | func (m *MsgChangeThoughtBlockResponse) Size() (n int) {
    method Unmarshal (line 3987) | func (m *MsgChangeThoughtBlockResponse) Unmarshal(dAtA []byte) error {
  type MsgUpdateParamsResponse (line 943) | type MsgUpdateParamsResponse struct
    method Reset (line 945) | func (m *MsgUpdateParamsResponse) Reset()         { *m = MsgUpdatePara...
    method String (line 946) | func (m *MsgUpdateParamsResponse) String() string { return proto.Compa...
    method ProtoMessage (line 947) | func (*MsgUpdateParamsResponse) ProtoMessage()    {}
    method Descriptor (line 948) | func (*MsgUpdateParamsResponse) Descriptor() ([]byte, []int) {
    method XXX_Unmarshal (line 952) | func (m *MsgUpdateParamsResponse) XXX_Unmarshal(b []byte) error {
    method XXX_Marshal (line 956) | func (m *MsgUpdateParamsResponse) XXX_Marshal(b []byte, deterministic ...
    method XXX_Merge (line 969) | func (m *MsgUpdateParamsResponse) XXX_Merge(src proto.Message) {
    method XXX_Size (line 973) | func (m *MsgUpdateParamsResponse) XXX_Size() int {
    method XXX_DiscardUnknown (line 977) | func (m *MsgUpdateParamsResponse) XXX_DiscardUnknown() {
    method Marshal (line 2026) | func (m *MsgUpdateParamsResponse) Marshal() (dAtA []byte, err error) {
    method MarshalTo (line 2036) | func (m *MsgUpdateParamsResponse) MarshalTo(dAtA []byte) (int, error) {
    method MarshalToSizedBuffer (line 2041) | func (m *MsgUpdateParamsResponse) MarshalToSizedBuffer(dAtA []byte) (i...
    method Size (line 2312) | func (m *MsgUpdateParamsResponse) Size() (n int) {
    method Unmarshal (line 4038) | func (m *MsgUpdateParamsResponse) Unmarshal(dAtA []byte) error {
  function init (line 983) | func init() {
  function init (line 1004) | func init() { proto.RegisterFile("cyber/dmn/v1beta1/tx.proto", fileDescr...
  constant _ (line 1069) | _ = grpc.SupportPackageIsVersion4
  type MsgClient (line 1074) | type MsgClient interface
  type msgClient (line 1086) | type msgClient struct
    method CreateThought (line 1094) | func (c *msgClient) CreateThought(ctx context.Context, in *MsgCreateTh...
    method ForgetThought (line 1103) | func (c *msgClient) ForgetThought(ctx context.Context, in *MsgForgetTh...
    method ChangeThoughtParticle (line 1112) | func (c *msgClient) ChangeThoughtParticle(ctx context.Context, in *Msg...
    method ChangeThoughtName (line 1121) | func (c *msgClient) ChangeThoughtName(ctx context.Context, in *MsgChan...
    method ChangeThoughtInput (line 1130) | func (c *msgClient) ChangeThoughtInput(ctx context.Context, in *MsgCha...
    method ChangeThoughtGasPrice (line 1139) | func (c *msgClient) ChangeThoughtGasPrice(ctx context.Context, in *Msg...
    method ChangeThoughtPeriod (line 1148) | func (c *msgClient) ChangeThoughtPeriod(ctx context.Context, in *MsgCh...
    method ChangeThoughtBlock (line 1157) | func (c *msgClient) ChangeThoughtBlock(ctx context.Context, in *MsgCha...
    method UpdateParams (line 1166) | func (c *msgClient) UpdateParams(ctx context.Context, in *MsgUpdatePar...
  function NewMsgClient (line 1090) | func NewMsgClient(cc grpc1.ClientConn) MsgClient {
  type MsgServer (line 1176) | type MsgServer interface
  type UnimplementedMsgServer (line 1189) | type UnimplementedMsgServer struct
    method CreateThought (line 1191) | func (*UnimplementedMsgServer) CreateThought(ctx context.Context, req ...
    method ForgetThought (line 1195) | func (*UnimplementedMsgServer) ForgetThought(ctx context.Context, req ...
    method ChangeThoughtParticle (line 1199) | func (*UnimplementedMsgServer) ChangeThoughtParticle(ctx context.Conte...
    method ChangeThoughtName (line 1203) | func (*UnimplementedMsgServer) ChangeThoughtName(ctx context.Context, ...
    method ChangeThoughtInput (line 1207) | func (*UnimplementedMsgServer) ChangeThoughtInput(ctx context.Context,...
    method ChangeThoughtGasPrice (line 1211) | func (*UnimplementedMsgServer) ChangeThoughtGasPrice(ctx context.Conte...
    method ChangeThoughtPeriod (line 1215) | func (*Unimplem
Condensed preview — 582 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (8,815K chars).
[
  {
    "path": ".dockerignore",
    "chars": 17,
    "preview": "eulet-5\nmytestnet"
  },
  {
    "path": ".gitattributes",
    "chars": 44,
    "preview": "client/docs/swagger-ui/* linguist-vendored\n\n"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/bug_report.md",
    "chars": 668,
    "preview": "---\nname: Bug report\nabout: Create a report to help us improve\n\n---\n\n<!--\nHi!\n\nPlease use the template below for issue b"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/feature_request.md",
    "chars": 763,
    "preview": "---\nname: Feature request\nabout: Suggest an idea for this project\n\n---\n\n<!--\nHi!\n\nPlease use the template below for shar"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/gitcoin-issue-template.md",
    "chars": 1030,
    "preview": "---\nname: Add Issue to Gitcoin\nabout: This is recommended issue template for gitcoin\n\n---\n\n#### Overview\n[Here](https://"
  },
  {
    "path": ".github/tests.yml",
    "chars": 409,
    "preview": "# https://github.com/mvdan/github-actions-golang\non: [push, pull_request]\nname: Test\njobs:\n  test:\n    strategy:\n      m"
  },
  {
    "path": ".gitignore",
    "chars": 608,
    "preview": "# OS\n.DS_Store\n*.swp\n*.swo\n*.swl\n*.swm\n*.swn\n.vscode\n.idea\n\n# Build\nvendor\nbuild\ntools/bin/*\nexamples/build/*\ndocs/_buil"
  },
  {
    "path": ".golangci.yml",
    "chars": 515,
    "preview": "run:\n  # timeout for analysis, e.g. 30s, 5m, default is 1m\n  timeout: 10m\n  tests: true\n\nlinters:\n  disable-all: true\n  "
  },
  {
    "path": ".goreleaser.yml",
    "chars": 1082,
    "preview": "builds:\n  -\n    main: ./cyberdcli\n    binary: cyberdcli\n    env:\n      - CGO_ENABLED=0\n      - GO111MODULE=on\n    goos:\n"
  },
  {
    "path": "CHANGELOG.md",
    "chars": 60421,
    "preview": "# Change Log\n\n## [Unreleased](https://github.com/cybercongress/go-cyber/tree/HEAD)\n\n[Full Changelog](https://github.com/"
  },
  {
    "path": "CONTRIBUTING.md",
    "chars": 1930,
    "preview": "# Contributing to go-cyber\nThank you for considering a contribution to **go-cyber**! This guide explains how to:\n* Get s"
  },
  {
    "path": "Dockerfile",
    "chars": 4865,
    "preview": "###########################################################################################\n# Build cyber\n##############"
  },
  {
    "path": "LICENSE",
    "chars": 53,
    "preview": "Cyber License\n\nDon’t believe, don’t fear, don’t ask.\n"
  },
  {
    "path": "Makefile",
    "chars": 6715,
    "preview": "#!/usr/bin/make -f\nCUDA_ENABLED ?= false\nLEDGER_ENABLED ?= true\nVERSION := $(shell echo $(shell git describe --tags) | s"
  },
  {
    "path": "README.md",
    "chars": 1561,
    "preview": "# go-cyber\n\nCollective intelligence substrate. Convergent computation over a knowledge graph with on-chain diffusion mod"
  },
  {
    "path": "app/ante.go",
    "chars": 3195,
    "preview": "package app\n\nimport (\n\terrorsmod \"cosmossdk.io/errors\"\n\twasmkeeper \"github.com/CosmWasm/wasmd/x/wasm/keeper\"\n\twasmtypes "
  },
  {
    "path": "app/app.go",
    "chars": 23914,
    "preview": "package app\n\nimport (\n\tautocliv1 \"cosmossdk.io/api/cosmos/autocli/v1\"\n\t\"cosmossdk.io/math\"\n\t\"fmt\"\n\t\"github.com/cometbft/"
  },
  {
    "path": "app/apptesting/events.go",
    "chars": 584,
    "preview": "package apptesting\n\nimport sdk \"github.com/cosmos/cosmos-sdk/types\"\n\n// AssertEventEmitted asserts that ctx's event mana"
  },
  {
    "path": "app/apptesting/test_suite.go",
    "chars": 10940,
    "preview": "package apptesting\n\nimport (\n\t\"encoding/json\"\n\t\"fmt\"\n\t\"testing\"\n\t\"time\"\n\n\t\"github.com/stretchr/testify/require\"\n\t\"github"
  },
  {
    "path": "app/encoding.go",
    "chars": 522,
    "preview": "package app\n\nimport (\n\tsimappparams \"cosmossdk.io/simapp/params\"\n\t\"github.com/cosmos/cosmos-sdk/std\"\n\n\t\"github.com/cyber"
  },
  {
    "path": "app/export.go",
    "chars": 1314,
    "preview": "package app\n\nimport (\n\t\"encoding/json\"\n\t\"fmt\"\n\ttmproto \"github.com/cometbft/cometbft/proto/tendermint/types\"\n\n\tservertyp"
  },
  {
    "path": "app/forks.go",
    "chars": 319,
    "preview": "package app\n\nimport (\n\tsdk \"github.com/cosmos/cosmos-sdk/types\"\n)\n\n// BeginBlockForks is intended to be ran in a chain u"
  },
  {
    "path": "app/genesis.go",
    "chars": 750,
    "preview": "package app\n\nimport (\n\t\"encoding/json\"\n\n\t\"github.com/cosmos/cosmos-sdk/codec\"\n)\n\n// The genesis state of the blockchain "
  },
  {
    "path": "app/helpers/contracts.go",
    "chars": 1055,
    "preview": "package helpers\n\nimport (\n\twasmtypes \"github.com/CosmWasm/wasmd/x/wasm/types\"\n\n\tstoretypes \"github.com/cosmos/cosmos-sdk"
  },
  {
    "path": "app/helpers/global_errors.go",
    "chars": 904,
    "preview": "package helpers\n\nimport (\n\terrorsmod \"cosmossdk.io/errors\"\n\n\tsdkerrors \"github.com/cosmos/cosmos-sdk/types/errors\"\n)\n\nco"
  },
  {
    "path": "app/helpers/mock.go",
    "chars": 1314,
    "preview": "package helpers\n\nimport (\n\t\"github.com/cometbft/cometbft/crypto\"\n\ttmproto \"github.com/cometbft/cometbft/proto/tendermint"
  },
  {
    "path": "app/keepers/keepers.go",
    "chars": 29148,
    "preview": "package keepers\n\nimport (\n\t\"fmt\"\n\t\"github.com/cosmos/cosmos-sdk/store/streaming\"\n\tsdk \"github.com/cosmos/cosmos-sdk/type"
  },
  {
    "path": "app/keepers/keys.go",
    "chars": 4646,
    "preview": "package keepers\n\nimport (\n\twasmtypes \"github.com/CosmWasm/wasmd/x/wasm/types\"\n\tstoretypes \"github.com/cosmos/cosmos-sdk/"
  },
  {
    "path": "app/modules.go",
    "chars": 16224,
    "preview": "package app\n\nimport (\n\tsimappparams \"cosmossdk.io/simapp/params\"\n\t\"github.com/CosmWasm/wasmd/x/wasm\"\n\twasmtypes \"github."
  },
  {
    "path": "app/params/const.go",
    "chars": 72,
    "preview": "package params\n\nconst (\n\tDefaultDenom = \"boot\"\n\tBondDenom    = \"boot\"\n)\n"
  },
  {
    "path": "app/params/encoding.go",
    "chars": 703,
    "preview": "package params\n\nimport (\n\tsimappparams \"cosmossdk.io/simapp/params\"\n\t\"github.com/cosmos/cosmos-sdk/codec\"\n\t\"github.com/c"
  },
  {
    "path": "app/params/weights.go",
    "chars": 433,
    "preview": "package params\n\n// Simulation parameter constants\nconst (\n\tStakePerAccount           = \"stake_per_account\"\n\tInitiallyBon"
  },
  {
    "path": "app/prefix.go",
    "chars": 974,
    "preview": "package app\n\nimport (\n\twasmtypes \"github.com/CosmWasm/wasmd/x/wasm/types\"\n\tsdk \"github.com/cosmos/cosmos-sdk/types\"\n)\n\nv"
  },
  {
    "path": "app/proof_exempt.go",
    "chars": 2430,
    "preview": "package app\n\nimport (\n\t\"encoding/json\"\n\n\twasmtypes \"github.com/CosmWasm/wasmd/x/wasm/types\"\n\tsdk \"github.com/cosmos/cosm"
  },
  {
    "path": "app/proof_exempt_test.go",
    "chars": 4535,
    "preview": "package app\n\nimport (\n\t\"testing\"\n\n\twasmtypes \"github.com/CosmWasm/wasmd/x/wasm/types\"\n\tsdk \"github.com/cosmos/cosmos-sdk"
  },
  {
    "path": "app/test_helpers.go",
    "chars": 8832,
    "preview": "package app\n\nimport (\n\t\"encoding/json\"\n\t\"path/filepath\"\n\t\"testing\"\n\t\"time\"\n\n\twasmkeeper \"github.com/CosmWasm/wasmd/x/was"
  },
  {
    "path": "app/upgrades/types.go",
    "chars": 2076,
    "preview": "package upgrades\n\nimport (\n\ttmproto \"github.com/cometbft/cometbft/proto/tendermint/types\"\n\tstore \"github.com/cosmos/cosm"
  },
  {
    "path": "app/upgrades/v2/constants.go",
    "chars": 340,
    "preview": "package v2\n\nimport (\n\tstore \"github.com/cosmos/cosmos-sdk/store/types\"\n\n\t\"github.com/cybercongress/go-cyber/v7/app/upgra"
  },
  {
    "path": "app/upgrades/v2/upgrades.go",
    "chars": 478,
    "preview": "package v2\n\nimport (\n\tsdk \"github.com/cosmos/cosmos-sdk/types\"\n\t\"github.com/cosmos/cosmos-sdk/types/module\"\n\tupgradetype"
  },
  {
    "path": "app/upgrades/v3/constants.go",
    "chars": 432,
    "preview": "package v3\n\nimport (\n\tstore \"github.com/cosmos/cosmos-sdk/store/types\"\n\tibcfeetypes \"github.com/cosmos/ibc-go/v7/modules"
  },
  {
    "path": "app/upgrades/v3/upgrades.go",
    "chars": 1041,
    "preview": "package v3\n\nimport (\n\t\"fmt\"\n\t\"time\"\n\n\tsdk \"github.com/cosmos/cosmos-sdk/types\"\n\t\"github.com/cosmos/cosmos-sdk/types/modu"
  },
  {
    "path": "app/upgrades/v4/constants.go",
    "chars": 1462,
    "preview": "package v4\n\nimport (\n\tstore \"github.com/cosmos/cosmos-sdk/store/types\"\n\tconsensustypes \"github.com/cosmos/cosmos-sdk/x/c"
  },
  {
    "path": "app/upgrades/v4/upgrades.go",
    "chars": 7772,
    "preview": "package v4\n\nimport (\n\t\"fmt\"\n\ticqtypes \"github.com/cosmos/ibc-apps/modules/async-icq/v7/types\"\n\ticacontrollertypes \"githu"
  },
  {
    "path": "app/upgrades/v5/constants.go",
    "chars": 258,
    "preview": "package v5\n\nimport (\n\t\"github.com/cybercongress/go-cyber/v7/app/upgrades\"\n)\n\nconst (\n\tUpgradeName = \"v5\"\n\n\tUpgradeHeight"
  },
  {
    "path": "app/upgrades/v5/forks.go",
    "chars": 751,
    "preview": "package v5\n\nimport (\n\tsdk \"github.com/cosmos/cosmos-sdk/types\"\n\t\"github.com/cybercongress/go-cyber/v7/app/keepers\"\n)\n\nfu"
  },
  {
    "path": "app/upgrades/v6/burn.go",
    "chars": 11371,
    "preview": "package v6\n\ntype burnEntry struct {\n\taddr   string\n\tdenom  string\n\tamount string\n}\n\nvar hfrBurnEntries = []burnEntry{\n\t{"
  },
  {
    "path": "app/upgrades/v6/constants.go",
    "chars": 332,
    "preview": "package v6\n\nimport (\n\tstore \"github.com/cosmos/cosmos-sdk/store/types\"\n\t\"github.com/cybercongress/go-cyber/v7/app/upgrad"
  },
  {
    "path": "app/upgrades/v6/upgrades.go",
    "chars": 13244,
    "preview": "package v6\n\nimport (\n\t\"fmt\"\n\t\"time\"\n\n\tsdkmath \"cosmossdk.io/math\"\n\tliquiditytypes \"github.com/cybercongress/go-cyber/v7/"
  },
  {
    "path": "app/upgrades/v7/constants.go",
    "chars": 332,
    "preview": "package v7\n\nimport (\n\tstore \"github.com/cosmos/cosmos-sdk/store/types\"\n\t\"github.com/cybercongress/go-cyber/v7/app/upgrad"
  },
  {
    "path": "app/upgrades/v7/upgrades.go",
    "chars": 1214,
    "preview": "package v7\n\nimport (\n\t\"fmt\"\n\t\"time\"\n\n\tsdk \"github.com/cosmos/cosmos-sdk/types\"\n\t\"github.com/cosmos/cosmos-sdk/types/modu"
  },
  {
    "path": "buf.work.yaml",
    "chars": 242,
    "preview": "# Generated by \"buf config migrate-v1beta1\". Edit as necessary, and\n# remove this comment when you're finished.\n#\n# This"
  },
  {
    "path": "client/docs/docs.go",
    "chars": 770,
    "preview": "package docs\n\nimport (\n\t\"embed\"\n\thttptemplate \"html/template\"\n\t\"net/http\"\n\n\t\"github.com/gorilla/mux\"\n)\n\nconst (\n\tapiFile"
  },
  {
    "path": "client/docs/static/openapi.yml",
    "chars": 1956846,
    "preview": "openapi: 3.0.0\ninfo:\n  title: Bostrom network\n  version: v4\npaths:\n  /cosmos/consensus/v1/params:\n    get:\n      summary"
  },
  {
    "path": "client/docs/swagger.yaml",
    "chars": 1878668,
    "preview": "swagger: '2.0'\ninfo:\n  title: Bostrom network\n  version: v4\nconsumes:\n  - application/json\nproduces:\n  - application/jso"
  },
  {
    "path": "client/docs/template/index.tpl",
    "chars": 889,
    "preview": "<!DOCTYPE html>\n<html lang=\"en\">\n    <head>\n        <meta charset=\"utf-8\" />\n        <title>{{ .Title }}</title>\n       "
  },
  {
    "path": "cmd/cyber/cmd/root.go",
    "chars": 13402,
    "preview": "package cmd\n\nimport (\n\t\"errors\"\n\t\"io\"\n\t\"os\"\n\t\"path/filepath\"\n\n\t\"github.com/cometbft/cometbft/crypto\"\n\t\"github.com/cometb"
  },
  {
    "path": "cmd/cyber/main.go",
    "chars": 448,
    "preview": "package main\n\nimport (\n\t\"os\"\n\n\t\"github.com/cosmos/cosmos-sdk/server\"\n\tsvrcmd \"github.com/cosmos/cosmos-sdk/server/cmd\"\n\n"
  },
  {
    "path": "cmd/iavltool/README.md",
    "chars": 55,
    "preview": "## IAVL TOOL\n\n```\ngo run main.go data ~/.cyber/data\n```"
  },
  {
    "path": "cmd/iavltool/cmd/root.go",
    "chars": 8053,
    "preview": "package cmd\n\nimport (\n\t\"bytes\"\n\t\"crypto/sha256\"\n\t\"encoding/hex\"\n\t\"fmt\"\n\t\"os\"\n\t\"strconv\"\n\t\"strings\"\n\n\tdbm \"github.com/com"
  },
  {
    "path": "cmd/iavltool/main.go",
    "chars": 150,
    "preview": "package main\n\nimport (\n\t\"github.com/cybercongress/go-cyber/v7/cmd/iavltool/cmd\"\n)\n\nfunc main() {\n\terr := cmd.Execute()\n\t"
  },
  {
    "path": "contrib/Dockerfile",
    "chars": 1083,
    "preview": "# Simple usage with a mounted data directory:\n# > docker build -t cyber .\n# > docker run -it -p 46657:46657 -p 46656:466"
  },
  {
    "path": "contrib/devtools/Makefile",
    "chars": 2990,
    "preview": "###\n# Find OS and Go environment\n# GO contains the Go binary\n# FS contains the OS file separator\n###\nifeq ($(OS),Windows"
  },
  {
    "path": "contrib/devtools/dockerfile",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "contrib/devtools/proto-tools-installer.sh",
    "chars": 3153,
    "preview": "#!/bin/bash\n\nset -ue\n\nDESTDIR=${DESTDIR:-}\nPREFIX=${PREFIX:-/usr/local}\nUNAME_S=\"$(uname -s 2>/dev/null)\"\nUNAME_M=\"$(una"
  },
  {
    "path": "contrib/links-load.sh",
    "chars": 1353,
    "preview": "#!/bin/sh\n\nCNT=0\nITER=$1\nSLEEP=$2\nNUMBLOCKS=$3\nNODEADDR=$4\nCHAINID=$5\n\nif [ -z \"$1\" ]; then\n  echo \"Need to input number"
  },
  {
    "path": "contrib/localnet-blocks-test.sh",
    "chars": 1250,
    "preview": "#!/bin/bash\n\nCNT=0\nITER=$1\nSLEEP=$2\nNUMBLOCKS=$3\nNODEADDR=$4\n\nif [ -z \"$1\" ]; then\n  echo \"Need to input number of itera"
  },
  {
    "path": "contrib/reset-chain.sh",
    "chars": 93,
    "preview": "#!/bin/sh\n\nfor OUTPUT in ../build/node*\ndo\n  cyber unsafe-reset-all --home $OUTPUT/cyber\ndone"
  },
  {
    "path": "contrib/single-node.sh",
    "chars": 854,
    "preview": "#!/bin/sh\n\nset -o errexit -o nounset\n\nCHAINID=$1\nHMDIR=$2\n\nif [ -z \"$1\" ]; then\n  echo \"Need to input chain id\"\n  exit 1"
  },
  {
    "path": "docker-compose.yml",
    "chars": 1320,
    "preview": "version: '3'\n\nservices:\n  cybernode0:\n    container_name: cybernode0\n    image: \"cybercongress/cyber\"\n    ports:\n      -"
  },
  {
    "path": "docs/README.md",
    "chars": 1675,
    "preview": "# Concepts (WIP)\n\n## soft2 and soft3\n- [soft2 and soft3](soft2-soft3-concepts.md)\n- content from presentation\n- knowledg"
  },
  {
    "path": "docs/cyber_ledger_guide.md",
    "chars": 3628,
    "preview": "# Ledger Support\n\nIt is possible to use your Ledger device with cyber to store keys and sign transactions.\n\n## Cyberd CL"
  },
  {
    "path": "docs/cyberlink_content.md",
    "chars": 14814,
    "preview": "# Cyberlink content with Cyber-js\n\n## Script preparation\n\nA small, ready-made repository exists so you can experiment wi"
  },
  {
    "path": "docs/deploy_contract.md",
    "chars": 12532,
    "preview": "# Deploy contract with Cyber-js\n\n## Script preparation\n\nA small, ready-made repository exists so you can experiment with"
  },
  {
    "path": "docs/help/problem_to_install_drivers.md",
    "chars": 612,
    "preview": "# Possible issue during drivers install\n\nIn an installation from 0 we can find an error that forces us to restart and mo"
  },
  {
    "path": "docs/keystore.md",
    "chars": 6204,
    "preview": "# Keystore management\n\n## Key types\n\nKey types can be conditionally divided into two groups: **agents** and **validators"
  },
  {
    "path": "docs/menu/index.md",
    "chars": 1211,
    "preview": "---\nheadless: true\n---\n- [Whitepaper]({{< relref \"/docs/go-cyber/cyber.md\" >}})\n- Usage:\n  - [Run the validator]({{< rel"
  },
  {
    "path": "docs/multisig_guide.md",
    "chars": 3449,
    "preview": "# A guide for creating a 2 of 3 multisig account and sending transactions\n\nTo follow this guide you'll need `cyber` inst"
  },
  {
    "path": "docs/port_forwarding_guide.md",
    "chars": 6016,
    "preview": "# Decentralization must be decentralized\n\nJanuary 3, 2019, we've launched first public testnet Euler-3. Since this time "
  },
  {
    "path": "docs/proto/proto-docs.md",
    "chars": 115431,
    "preview": "<!-- This file is auto-generated. Please do not modify it yourself. -->\n# Protobuf Documentation\n<a name=\"top\"></a>\n\n## "
  },
  {
    "path": "docs/proto/protodoc-markdown.tmpl",
    "chars": 3273,
    "preview": "<!-- This file is auto-generated. Please do not modify it yourself. -->\n# Protobuf Documentation\n<a name=\"top\"></a>\n\n## "
  },
  {
    "path": "docs/rpc.md",
    "chars": 5528,
    "preview": "# API reference\n\n** TODO upgrade for bostrom network **\n\nCyberd provides a [JSON-RPC](http://json-rpc.org/wiki/specifica"
  },
  {
    "path": "docs/run_validator.md",
    "chars": 16525,
    "preview": "\n# Join cyber as a Validator\n\n## Prepare your server\n\nFirst, you should set up a server.\nYour node should be online cons"
  },
  {
    "path": "docs/send_txs.md",
    "chars": 13112,
    "preview": "# Your First Cyber-js Actions - Send Tokens\n\n<HighlightBox type=\"learning\">\n\nTake your first steps with cyber-js. Use it"
  },
  {
    "path": "docs/setup_cyber_configuration.md",
    "chars": 9680,
    "preview": "# Setup config.toml\n\nCorrect configuration is one of the main keys to consistent and proper functioning of your node no "
  },
  {
    "path": "docs/setup_dev_env.md",
    "chars": 11671,
    "preview": "# Setup development environment\n\n## Prestart\n* Install [Golang 1.11+](https://golang.org/doc/install)\n* Install [GoLand "
  },
  {
    "path": "docs/soft2-soft3-concepts.md",
    "chars": 1274,
    "preview": "# soft2 and soft3\n\n## content from presentation\n\n## particle\n\nA particle is a content identifier (CID) of the file in IP"
  },
  {
    "path": "docs/supported_gpu_list.md",
    "chars": 4333,
    "preview": "# Supported GPU list for cyber validators\n\nIn our `cyber protocol` implementation on `GO` proof of relevance root hash i"
  },
  {
    "path": "docs/ultimate_commands_guide.md",
    "chars": 24362,
    "preview": "# Ultimate cyber CLI guide. Chain: bostrom\n\n## Install cyber client\n\nIt is possible to interact with cyber even if you d"
  },
  {
    "path": "docs/upgrade-plan.md",
    "chars": 131212,
    "preview": "# go-cyber Dependency Upgrade Plan\n\nThis document describes the upgrade path for go-cyber's core dependencies from the c"
  },
  {
    "path": "entrypoint.sh",
    "chars": 1222,
    "preview": "#!/bin/sh\n\nln -s /root/.cyber/cosmovisor/current/bin/cyber /usr/bin/cyber\n\nif [ ! -d \"/root/.cyber/\" ]\nthen\n  mkdir /roo"
  },
  {
    "path": "go.mod",
    "chars": 10910,
    "preview": "module github.com/cybercongress/go-cyber/v7\n\ngo 1.22.7\n\nrequire (\n\tcosmossdk.io/api v0.3.1\n\tcosmossdk.io/errors v1.0.1\n\t"
  },
  {
    "path": "go.sum",
    "chars": 164412,
    "preview": "cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=\ncloud.google.com/go v0.34.0/go.mod h1"
  },
  {
    "path": "merkle/node.go",
    "chars": 706,
    "preview": "package merkle\n\ntype Node struct {\n\thash []byte\n\n\tparent *Node\n\tleft   *Node\n\tright  *Node\n\n\t// first index of elements "
  },
  {
    "path": "merkle/proof.go",
    "chars": 369,
    "preview": "package merkle\n\nimport (\n\t\"hash\"\n)\n\ntype Proof struct {\n\tLeftSide bool   `json:\"leftSide\"` // where proof should be plac"
  },
  {
    "path": "merkle/subtree.go",
    "chars": 1519,
    "preview": "package merkle\n\nimport \"hash\"\n\n// subtrees always should have power of 2 number of elements.\n// tree could contain few o"
  },
  {
    "path": "merkle/tree.go",
    "chars": 5934,
    "preview": "package merkle\n\nimport (\n\t\"bytes\"\n\t\"encoding/binary\"\n\t\"hash\"\n\t\"math\"\n)\n\n// Merkle tree data structure based on RFC-6962 "
  },
  {
    "path": "merkle/tree_test.go",
    "chars": 2764,
    "preview": "package merkle\n\nimport (\n\t\"crypto/sha256\"\n\t\"encoding/binary\"\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/require\"\n)\n\nfunc "
  },
  {
    "path": "merkle/util.go",
    "chars": 1414,
    "preview": "package merkle\n\nimport (\n\t\"hash\"\n\t\"math\"\n)\n\nfunc sum(h hash.Hash, data ...[]byte) []byte {\n\th.Reset()\n\tfor _, d := range"
  },
  {
    "path": "networks/bostrom/cyberfrey-upgrade-guide.md",
    "chars": 3193,
    "preview": "# How to prepare your node for Cyberfrey upgrade\n\nThis guide includes all the steps you need to get ready for the `Cyber"
  },
  {
    "path": "networks/bostrom/deploy_node_from_snapshot.md",
    "chars": 2099,
    "preview": "# Deploy bostrom node from snapshot\n\n## Download snapshot\nFirst, go to [Cyber Snapshot Robot](https://cyb.ai/network/bos"
  },
  {
    "path": "networks/bostrom/genesis-validator.md",
    "chars": 14169,
    "preview": "# Setting up cyber Genesis Validator\n\nThis guide will provide detailed instructions on how to submit gentx for the bostr"
  },
  {
    "path": "networks/bostrom/genesis.json",
    "chars": 391285,
    "preview": "{\n  \"genesis_time\": \"2021-11-05T13:22:42Z\",\n  \"chain_id\": \"bostrom\",\n  \"initial_height\": \"1\",\n  \"consensus_params\": {\n  "
  },
  {
    "path": "networks/bostrom/gentxs/bloqhub.json",
    "chars": 1174,
    "preview": "{\"body\":{\"messages\":[{\"@type\":\"/cosmos.staking.v1beta1.MsgCreateValidator\",\"description\":{\"moniker\":\"bloqhub\",\"identity\""
  },
  {
    "path": "networks/bostrom/gentxs/gentx-0base.vc.json",
    "chars": 1285,
    "preview": "{\"body\":{\"messages\":[{\"@type\":\"/cosmos.staking.v1beta1.MsgCreateValidator\",\"description\":{\"moniker\":\"0base.vc\",\"identity"
  },
  {
    "path": "networks/bostrom/gentxs/gentx-39a20a7d84c6e91c6638f5a685a13f655e050ee0.json",
    "chars": 1156,
    "preview": "{\"body\":{\"messages\":[{\"@type\":\"/cosmos.staking.v1beta1.MsgCreateValidator\",\"description\":{\"moniker\":\"cyberG\",\"identity\":"
  },
  {
    "path": "networks/bostrom/gentxs/gentx-5b59d7daadd971a9613b2efcc3c6eab0777f5f29.json",
    "chars": 1427,
    "preview": "{\"body\":{\"messages\":[{\"@type\":\"/cosmos.staking.v1beta1.MsgCreateValidator\",\"description\":{\"moniker\":\"Citadel.one\",\"ident"
  },
  {
    "path": "networks/bostrom/gentxs/gentx-5e8522bef5ceca507e05aa0d5f67f37a70222c73.json",
    "chars": 1161,
    "preview": "{\"body\":{\"messages\":[{\"@type\":\"/cosmos.staking.v1beta1.MsgCreateValidator\",\"description\":{\"moniker\":\"web34ever\",\"identit"
  },
  {
    "path": "networks/bostrom/gentxs/gentx-77d27615009fc703ece46901792cc8750cccd0de.json",
    "chars": 1161,
    "preview": "{\"body\":{\"messages\":[{\"@type\":\"/cosmos.staking.v1beta1.MsgCreateValidator\",\"description\":{\"moniker\":\"Developer\",\"identit"
  },
  {
    "path": "networks/bostrom/gentxs/gentx-822b374bf2ca56c49fd565d149cd7cb6d175d8cb.json",
    "chars": 1157,
    "preview": "{\"body\":{\"messages\":[{\"@type\":\"/cosmos.staking.v1beta1.MsgCreateValidator\",\"description\":{\"moniker\":\"Kerman\",\"identity\":"
  },
  {
    "path": "networks/bostrom/gentxs/gentx-902fb751851e474133ee4ba1e646f49237b50edf.json",
    "chars": 1158,
    "preview": "{\"body\":{\"messages\":[{\"@type\":\"/cosmos.staking.v1beta1.MsgCreateValidator\",\"description\":{\"moniker\":\"papsan\",\"identity\":"
  },
  {
    "path": "networks/bostrom/gentxs/gentx-Amber.json",
    "chars": 1160,
    "preview": "{\"body\":{\"messages\":[{\"@type\":\"/cosmos.staking.v1beta1.MsgCreateValidator\",\"description\":{\"moniker\":\"Godzilla\",\"identity"
  },
  {
    "path": "networks/bostrom/gentxs/gentx-Bro_n_Bro.json",
    "chars": 1358,
    "preview": "{\"body\":{\"messages\":[{\"@type\":\"/cosmos.staking.v1beta1.MsgCreateValidator\",\"description\":{\"moniker\":\"Bro_n_Bro\",\"identit"
  },
  {
    "path": "networks/bostrom/gentxs/gentx-Hailbiafra.json",
    "chars": 1160,
    "preview": "{\"body\":{\"messages\":[{\"@type\":\"/cosmos.staking.v1beta1.MsgCreateValidator\",\"description\":{\"moniker\":\"Hailbiafra\",\"identi"
  },
  {
    "path": "networks/bostrom/gentxs/gentx-MindPool.json",
    "chars": 1158,
    "preview": "{\"body\":{\"messages\":[{\"@type\":\"/cosmos.staking.v1beta1.MsgCreateValidator\",\"description\":{\"moniker\":\"MindPool\",\"identity"
  },
  {
    "path": "networks/bostrom/gentxs/gentx-Nett.json",
    "chars": 1155,
    "preview": "{\"body\":{\"messages\":[{\"@type\":\"/cosmos.staking.v1beta1.MsgCreateValidator\",\"description\":{\"moniker\":\"Nett\",\"identity\":\"\""
  },
  {
    "path": "networks/bostrom/gentxs/gentx-NodeMarsel.json",
    "chars": 1163,
    "preview": "{\"body\":{\"messages\":[{\"@type\":\"/cosmos.staking.v1beta1.MsgCreateValidator\",\"description\":{\"moniker\":\"NodeMarsel\",\"identi"
  },
  {
    "path": "networks/bostrom/gentxs/gentx-Node_masters.json",
    "chars": 1163,
    "preview": "{\"body\":{\"messages\":[{\"@type\":\"/cosmos.staking.v1beta1.MsgCreateValidator\",\"description\":{\"moniker\":\"Node_masters\",\"iden"
  },
  {
    "path": "networks/bostrom/gentxs/gentx-P2P.ORG.json",
    "chars": 1175,
    "preview": "{\"body\":{\"messages\":[{\"@type\":\"/cosmos.staking.v1beta1.MsgCreateValidator\",\"description\":{\"moniker\":\"P2P.ORG - P2P Valid"
  },
  {
    "path": "networks/bostrom/gentxs/gentx-PLap.json",
    "chars": 1155,
    "preview": "{\"body\":{\"messages\":[{\"@type\":\"/cosmos.staking.v1beta1.MsgCreateValidator\",\"description\":{\"moniker\":\"PLap\",\"identity\":\"\""
  },
  {
    "path": "networks/bostrom/gentxs/gentx-POSTHUMAN.json",
    "chars": 1221,
    "preview": "{\"body\":{\"messages\":[{\"@type\":\"/cosmos.staking.v1beta1.MsgCreateValidator\",\"description\":{\"moniker\":\"POSTHUMAN\",\"identit"
  },
  {
    "path": "networks/bostrom/gentxs/gentx-StakeAngle.json",
    "chars": 1226,
    "preview": "{\"body\":{\"messages\":[{\"@type\":\"/cosmos.staking.v1beta1.MsgCreateValidator\",\"description\":{\"moniker\":\"StakeAngle\",\"identi"
  },
  {
    "path": "networks/bostrom/gentxs/gentx-a99b8bcb07d027895bcc2abe6baa866174b5ec23.json",
    "chars": 1161,
    "preview": "{\"body\":{\"messages\":[{\"@type\":\"/cosmos.staking.v1beta1.MsgCreateValidator\",\"description\":{\"moniker\":\"DragonBall\",\"identi"
  },
  {
    "path": "networks/bostrom/gentxs/gentx-alinode.json",
    "chars": 1158,
    "preview": "{\"body\":{\"messages\":[{\"@type\":\"/cosmos.staking.v1beta1.MsgCreateValidator\",\"description\":{\"moniker\":\"alinode\",\"identity\""
  },
  {
    "path": "networks/bostrom/gentxs/gentx-blue.json",
    "chars": 1200,
    "preview": "{\"body\":{\"messages\":[{\"@type\":\"/cosmos.staking.v1beta1.MsgCreateValidator\",\"description\":{\"moniker\":\"blue\",\"identity\":\"4"
  },
  {
    "path": "networks/bostrom/gentxs/gentx-citizen-cosmos.json",
    "chars": 1180,
    "preview": "{\"body\":{\"messages\":[{\"@type\":\"/cosmos.staking.v1beta1.MsgCreateValidator\",\"description\":{\"moniker\":\"Citizen Cosmos\",\"id"
  },
  {
    "path": "networks/bostrom/gentxs/gentx-csaxial.json",
    "chars": 1158,
    "preview": "{\"body\":{\"messages\":[{\"@type\":\"/cosmos.staking.v1beta1.MsgCreateValidator\",\"description\":{\"moniker\":\"csaxial\",\"identity\""
  },
  {
    "path": "networks/bostrom/gentxs/gentx-dd4dd317f85209964232cbbe772c242c50bbbe58.json",
    "chars": 1157,
    "preview": "{\"body\":{\"messages\":[{\"@type\":\"/cosmos.staking.v1beta1.MsgCreateValidator\",\"description\":{\"moniker\":\"Space\",\"identity\":\""
  },
  {
    "path": "networks/bostrom/gentxs/gentx-dobry.json",
    "chars": 1155,
    "preview": "{\"body\":{\"messages\":[{\"@type\":\"/cosmos.staking.v1beta1.MsgCreateValidator\",\"description\":{\"moniker\":\"dobry\",\"identity\":\""
  },
  {
    "path": "networks/bostrom/gentxs/gentx-f1b4b596730ed81d33dbcf051870f0b7b50d6306.json",
    "chars": 1162,
    "preview": "{\"body\":{\"messages\":[{\"@type\":\"/cosmos.staking.v1beta1.MsgCreateValidator\",\"description\":{\"moniker\":\"DemonKing\",\"identit"
  },
  {
    "path": "networks/bostrom/gentxs/gentx-goto5k.json",
    "chars": 1212,
    "preview": "{\"body\":{\"messages\":[{\"@type\":\"/cosmos.staking.v1beta1.MsgCreateValidator\",\"description\":{\"moniker\":\"goto5k\",\"identity\":"
  },
  {
    "path": "networks/bostrom/gentxs/gentx-kiwi.json",
    "chars": 1152,
    "preview": "{\"body\":{\"messages\":[{\"@type\":\"/cosmos.staking.v1beta1.MsgCreateValidator\",\"description\":{\"moniker\":\"kiwi\",\"identity\":\"\""
  },
  {
    "path": "networks/bostrom/gentxs/gentx-qwertys318.json",
    "chars": 1161,
    "preview": "{\"body\":{\"messages\":[{\"@type\":\"/cosmos.staking.v1beta1.MsgCreateValidator\",\"description\":{\"moniker\":\"qwertys318\",\"identi"
  },
  {
    "path": "networks/bostrom/gentxs/gentx-spectrum.json",
    "chars": 1202,
    "preview": "{\"body\":{\"messages\":[{\"@type\":\"/cosmos.staking.v1beta1.MsgCreateValidator\",\"description\":{\"moniker\":\"spectrum\",\"identity"
  },
  {
    "path": "networks/bostrom/gentxs/gentx-sta.json",
    "chars": 1296,
    "preview": "{\"body\":{\"messages\":[{\"@type\":\"/cosmos.staking.v1beta1.MsgCreateValidator\",\"description\":{\"moniker\":\"sta\",\"identity\":\"60"
  },
  {
    "path": "networks/bostrom/gentxs/gentx.json",
    "chars": 1158,
    "preview": "{\"body\":{\"messages\":[{\"@type\":\"/cosmos.staking.v1beta1.MsgCreateValidator\",\"description\":{\"moniker\":\"Adorid\",\"identity\":"
  },
  {
    "path": "networks/bostrom/peers.md",
    "chars": 1680,
    "preview": "# Here you may fing peers and seeds to hop on bostrom chain\n\n## Seeds:\n\ncybercongress\n\n```bash\nd0518ce9881a4b0c5872e5e9b"
  },
  {
    "path": "networks/bostrom/unsigned-genesis.json",
    "chars": 442651,
    "preview": "{\n    \"genesis_time\": \"2021-11-05T13:22:42Z\",\n    \"chain_id\": \"bostrom\",\n    \"initial_height\": \"1\",\n    \"consensus_param"
  },
  {
    "path": "networks/bostrom/v3-upgrade-guide.md",
    "chars": 3097,
    "preview": "# How to prepare your node for v3 upgrade\n\nThis guide includes all the steps you need to get ready for the `v3` upgrade "
  },
  {
    "path": "networks/bostrom/v4-upgrade-guide.md",
    "chars": 3972,
    "preview": "# How to prepare your node for v4 upgrade\n\nThis guide describes all the steps you need to get ready for the `v4` upgrade"
  },
  {
    "path": "networks/space-pussy/deploy_node_from_snapshot.md",
    "chars": 2096,
    "preview": "# Deploy bostrom node from snapshot\n\n## Download snapshot\nFirst, go to [Cyber Snapshot Robot](https://cyb.ai/network/bos"
  },
  {
    "path": "networks/space-pussy/genesis-validator.md",
    "chars": 10232,
    "preview": "# Setting up space-pussy Genesis Validator\n\nThis guide will provide detailed instructions on how to submit gentx for the"
  },
  {
    "path": "networks/space-pussy/genesis.json",
    "chars": 72999,
    "preview": "{\n  \"genesis_time\": \"2022-10-03T19:55:00Z\",\n  \"chain_id\": \"space-pussy\",\n  \"initial_height\": \"1\",\n  \"consensus_params\": "
  },
  {
    "path": "networks/space-pussy/gentxs/bloqhub.json",
    "chars": 1159,
    "preview": "{\"body\":{\"messages\":[{\"@type\":\"/cosmos.staking.v1beta1.MsgCreateValidator\",\"description\":{\"moniker\":\"Bloqhub\",\"identity\""
  },
  {
    "path": "networks/space-pussy/gentxs/gentx-Citizen-Cosmos.json",
    "chars": 1250,
    "preview": "{\"body\":{\"messages\":[{\"@type\":\"/cosmos.staking.v1beta1.MsgCreateValidator\",\"description\":{\"moniker\":\"Citizen Cosmos\",\"id"
  },
  {
    "path": "networks/space-pussy/gentxs/gentx-Developer.json",
    "chars": 1159,
    "preview": "{\"body\":{\"messages\":[{\"@type\":\"/cosmos.staking.v1beta1.MsgCreateValidator\",\"description\":{\"moniker\":\"Developer\",\"identit"
  },
  {
    "path": "networks/space-pussy/gentxs/gentx-Kerman.json",
    "chars": 1157,
    "preview": "{\"body\":{\"messages\":[{\"@type\":\"/cosmos.staking.v1beta1.MsgCreateValidator\",\"description\":{\"moniker\":\"Kerman\",\"identity\":"
  },
  {
    "path": "networks/space-pussy/gentxs/gentx-MikeLitoris.json",
    "chars": 1162,
    "preview": "{\"body\":{\"messages\":[{\"@type\":\"/cosmos.staking.v1beta1.MsgCreateValidator\",\"description\":{\"moniker\":\"MikeLitoris\",\"ident"
  },
  {
    "path": "networks/space-pussy/gentxs/gentx-POSTHUMAN.json",
    "chars": 1314,
    "preview": "{\"body\":{\"messages\":[{\"@type\":\"/cosmos.staking.v1beta1.MsgCreateValidator\",\"description\":{\"moniker\":\"POSTHUMAN ꝏ DVS\",\"i"
  },
  {
    "path": "networks/space-pussy/gentxs/gentx-Papsan.json",
    "chars": 1174,
    "preview": "{\"body\":{\"messages\":[{\"@type\":\"/cosmos.staking.v1beta1.MsgCreateValidator\",\"description\":{\"moniker\":\"Papsan\",\"identity\":"
  },
  {
    "path": "networks/space-pussy/gentxs/gentx-SAMPLE.json",
    "chars": 1091,
    "preview": "{\"body\":{\"messages\":[{\"@type\":\"/cosmos.staking.v1beta1.MsgCreateValidator\",\"description\":{\"moniker\":\"hacker\",\"identity\":"
  },
  {
    "path": "networks/space-pussy/gentxs/gentx-Stigga.json",
    "chars": 1268,
    "preview": "{\"body\":{\"messages\":[{\"@type\":\"/cosmos.staking.v1beta1.MsgCreateValidator\",\"description\":{\"moniker\":\"Stigga\",\"identity\":"
  },
  {
    "path": "networks/space-pussy/gentxs/gentx-ToTheMars.json",
    "chars": 1160,
    "preview": "{\"body\":{\"messages\":[{\"@type\":\"/cosmos.staking.v1beta1.MsgCreateValidator\",\"description\":{\"moniker\":\"ToTheMars\",\"identit"
  },
  {
    "path": "networks/space-pussy/gentxs/gentx-Traneco.json",
    "chars": 1172,
    "preview": "{\"body\":{\"messages\":[{\"@type\":\"/cosmos.staking.v1beta1.MsgCreateValidator\",\"des\ncription\":{\"moniker\":\"Traneco\",\"identity"
  },
  {
    "path": "networks/space-pussy/gentxs/gentx-bro-n-bro.json",
    "chars": 1191,
    "preview": "{\"body\":{\"messages\":[{\"@type\":\"/cosmos.staking.v1beta1.MsgCreateValidator\",\"description\":{\"moniker\":\"Bro_n_Bro\",\"identit"
  },
  {
    "path": "networks/space-pussy/gentxs/gentx-chainmaniacs.json",
    "chars": 1197,
    "preview": "{\"body\":{\"messages\":[{\"@type\":\"/cosmos.staking.v1beta1.MsgCreateValidator\",\"description\":{\"moniker\":\"ChainManiacs | Real"
  },
  {
    "path": "networks/space-pussy/gentxs/gentx-cyberG.json",
    "chars": 1157,
    "preview": "{\"body\":{\"messages\":[{\"@type\":\"/cosmos.staking.v1beta1.MsgCreateValidator\",\"description\":{\"moniker\":\"cyberG\",\"identity\":"
  },
  {
    "path": "networks/space-pussy/gentxs/gentx-denwer.json",
    "chars": 1156,
    "preview": "{\"body\":{\"messages\":[{\"@type\":\"/cosmos.staking.v1beta1.MsgCreateValidator\",\"description\":{\"moniker\":\"Denwer\",\"identity\":"
  },
  {
    "path": "networks/space-pussy/gentxs/gentx-goto5k.json",
    "chars": 1225,
    "preview": "{\"body\":{\"messages\":[{\"@type\":\"/cosmos.staking.v1beta1.MsgCreateValidator\",\"description\":{\"moniker\":\"goto5k\",\"identity\":"
  },
  {
    "path": "networks/space-pussy/gentxs/gentx-joy_prophet.json",
    "chars": 1163,
    "preview": "{\"body\":{\"messages\":[{\"@type\":\"/cosmos.staking.v1beta1.MsgCreateValidator\",\"description\":{\"moniker\":\"Joy prophet\",\"ident"
  },
  {
    "path": "networks/space-pussy/gentxs/gentx-linak.json",
    "chars": 1172,
    "preview": "{\"body\":{\"messages\":[{\"@type\":\"/cosmos.staking.v1beta1.MsgCreateValidator\",\"description\":{\"moniker\":\"linak\",\"identity\":\""
  },
  {
    "path": "networks/space-pussy/gentxs/gentx-lux8net.json",
    "chars": 1216,
    "preview": "{\"body\":{\"messages\":[{\"@type\":\"/cosmos.staking.v1beta1.MsgCreateValidator\",\"description\":{\"moniker\":\"lux8.net\",\"identity"
  },
  {
    "path": "networks/space-pussy/gentxs/gentx-space.json",
    "chars": 1183,
    "preview": "{\"body\":{\"messages\":[{\"@type\":\"/cosmos.staking.v1beta1.MsgCreateValidator\",\"description\":{\"moniker\":\"space\",\"identity\":\""
  },
  {
    "path": "networks/space-pussy/gentxs/gentx-web34ever.json",
    "chars": 1202,
    "preview": "{\"body\":{\"messages\":[{\"@type\":\"/cosmos.staking.v1beta1.MsgCreateValidator\",\"description\":{\"moniker\":\"web34ever\",\"identit"
  },
  {
    "path": "networks/space-pussy/gentxs/mimino.json",
    "chars": 1156,
    "preview": "{\"body\":{\"messages\":[{\"@type\":\"/cosmos.staking.v1beta1.MsgCreateValidator\",\"description\":{\"moniker\":\"Mimino\",\"identity\":"
  },
  {
    "path": "networks/space-pussy/get_peers/getpeers.nu",
    "chars": 288,
    "preview": "## Script pull peers from RPC Node \nhttp get https ://rpc.space-pussy.cybernode.ai:443/net_info | get result.peers | eac"
  },
  {
    "path": "networks/space-pussy/get_peers/getpeers.sh",
    "chars": 1452,
    "preview": "#!/bin/bash\n\n## https://gist.github.com/Cordtus/87b147862627d3039f394695b78e4361\n## dump connected peers to comma separa"
  },
  {
    "path": "networks/space-pussy/peers.md",
    "chars": 346,
    "preview": "# Here you may fing peers and seeds to hop on bostrom chain\n\n## Peers:\n\ncyberongress:\n\n```bash\n0b2689ae3b712adbaf4f3a124"
  },
  {
    "path": "networks/space-pussy/pussy_snapshot_deploy_guide.md",
    "chars": 2220,
    "preview": "# ![](https://ipfs.io/ipfs/QmWeAd87fZm1pMYyX9BmhnTrXYKCZLoyzMJMcSwNHfB6gU) Deploy Pussy node from snapshot\n\n## Download "
  },
  {
    "path": "networks/space-pussy/unsigned-genesis.json",
    "chars": 29148,
    "preview": "{\n  \"genesis_time\": \"2022-10-03T19:55:00Z\",\n  \"chain_id\": \"space-pussy\",\n  \"initial_height\": \"1\",\n  \"consensus_params\": "
  },
  {
    "path": "plugins/types/custom_querier.go",
    "chars": 5669,
    "preview": "package types\n\nimport (\n\terrorsmod \"cosmossdk.io/errors\"\n\t\"encoding/json\"\n\t\"errors\"\n\twasmvmtypes \"github.com/CosmWasm/wa"
  },
  {
    "path": "plugins/types/dispatch_msg.go",
    "chars": 6186,
    "preview": "package types\n\nimport (\n\t\"encoding/json\"\n\t\"errors\"\n\tbankkeeper \"github.com/cosmos/cosmos-sdk/x/bank/keeper\"\n\tdmnkeeper \""
  },
  {
    "path": "plugins/types/stargate_querier.go",
    "chars": 2122,
    "preview": "package types\n\nimport (\n\t\"fmt\"\n\twasmvmtypes \"github.com/CosmWasm/wasmvm/types\"\n\tabci \"github.com/cometbft/cometbft/abci/"
  },
  {
    "path": "plugins/types/stargate_queries.go",
    "chars": 5918,
    "preview": "package types\n\nimport (\n\t\"fmt\"\n\twasmvmtypes \"github.com/CosmWasm/wasmvm/types\"\n\t\"github.com/cosmos/cosmos-sdk/codec\"\n\tau"
  },
  {
    "path": "plugins/types/types.go",
    "chars": 3833,
    "preview": "package types\n\nimport (\n\tbandwidthtypes \"github.com/cybercongress/go-cyber/v7/x/bandwidth/types\"\n\tdmntypes \"github.com/c"
  },
  {
    "path": "plugins/wasm.go",
    "chars": 4484,
    "preview": "package plugins\n\nimport (\n\t\"github.com/CosmWasm/wasmd/x/wasm\"\n\twasmkeeper \"github.com/CosmWasm/wasmd/x/wasm/keeper\"\n\t\"gi"
  },
  {
    "path": "proto/buf.gen.doc.yaml",
    "chars": 135,
    "preview": "version: v1\nplugins:\n  - name: doc\n    out: ../docs/proto\n    opt: ../docs/proto/protodoc-markdown.tmpl,proto-docs.md\n  "
  },
  {
    "path": "proto/buf.gen.gogo.yaml",
    "chars": 234,
    "preview": "version: v1\nplugins:\n  - name: gocosmos\n    out: ..\n    opt: plugins=grpc,Mgoogle/protobuf/any.proto=github.com/cosmos/c"
  },
  {
    "path": "proto/buf.gen.swagger.yaml",
    "chars": 144,
    "preview": "version: v1\nplugins:\n  - name: swagger\n    out: ../tmp-swagger-gen\n    opt: logtostderr=true,fqn_for_swagger_name=true,s"
  },
  {
    "path": "proto/buf.yaml",
    "chars": 975,
    "preview": "# Generated by \"buf config migrate-v1beta1\". Edit as necessary, and\n# remove this comment when you're finished.\n#\n# This"
  },
  {
    "path": "proto/cyber/bandwidth/v1beta1/genesis.proto",
    "chars": 284,
    "preview": "syntax = \"proto3\";\npackage cyber.bandwidth.v1beta1;\n\nimport \"gogoproto/gogo.proto\";\n\nimport \"cyber/bandwidth/v1beta1/typ"
  },
  {
    "path": "proto/cyber/bandwidth/v1beta1/query.proto",
    "chars": 1862,
    "preview": "syntax = \"proto3\";\npackage cyber.bandwidth.v1beta1;\n\nimport \"gogoproto/gogo.proto\";\nimport \"google/api/annotations.proto"
  },
  {
    "path": "proto/cyber/bandwidth/v1beta1/tx.proto",
    "chars": 606,
    "preview": "syntax = \"proto3\";\npackage cyber.bandwidth.v1beta1;\n\nimport \"gogoproto/gogo.proto\";\nimport \"cosmos/msg/v1/msg.proto\";\nim"
  },
  {
    "path": "proto/cyber/bandwidth/v1beta1/types.proto",
    "chars": 1034,
    "preview": "syntax = \"proto3\";\npackage cyber.bandwidth.v1beta1;\n\nimport \"gogoproto/gogo.proto\";\n\noption go_package = \"github.com/cyb"
  },
  {
    "path": "proto/cyber/clock/v1/clock.proto",
    "chars": 359,
    "preview": "syntax = \"proto3\";\npackage cyber.clock.v1;\n\noption go_package = \"github.com/cybercongress/go-cyber/x/clock/types\";\n\n// T"
  },
  {
    "path": "proto/cyber/clock/v1/genesis.proto",
    "chars": 665,
    "preview": "syntax = \"proto3\";\npackage cyber.clock.v1;\n\nimport \"gogoproto/gogo.proto\";\n\noption go_package = \"github.com/cybercongres"
  },
  {
    "path": "proto/cyber/clock/v1/query.proto",
    "chars": 2244,
    "preview": "syntax = \"proto3\";\npackage cyber.clock.v1;\n\nimport \"cosmos/base/query/v1beta1/pagination.proto\";\nimport \"gogoproto/gogo."
  },
  {
    "path": "proto/cyber/clock/v1/tx.proto",
    "chars": 3271,
    "preview": "syntax = \"proto3\";\npackage cyber.clock.v1;\n\noption go_package = \"github.com/cybercongress/go-cyber/x/clock/types\";\n\nimpo"
  },
  {
    "path": "proto/cyber/dmn/v1beta1/genesis.proto",
    "chars": 266,
    "preview": "syntax = \"proto3\";\npackage cyber.dmn.v1beta1;\n\nimport \"gogoproto/gogo.proto\";\n\nimport \"cyber/dmn/v1beta1/types.proto\";\n\n"
  },
  {
    "path": "proto/cyber/dmn/v1beta1/query.proto",
    "chars": 2248,
    "preview": "syntax = \"proto3\";\npackage cyber.dmn.v1beta1;\n\nimport \"gogoproto/gogo.proto\";\nimport \"google/api/annotations.proto\";\nimp"
  },
  {
    "path": "proto/cyber/dmn/v1beta1/tx.proto",
    "chars": 2680,
    "preview": "syntax = \"proto3\";\npackage cyber.dmn.v1beta1;\n\nimport \"gogoproto/gogo.proto\";\nimport \"cosmos/msg/v1/msg.proto\";\nimport \""
  },
  {
    "path": "proto/cyber/dmn/v1beta1/types.proto",
    "chars": 1237,
    "preview": "syntax = \"proto3\";\npackage cyber.dmn.v1beta1;\n\nimport \"gogoproto/gogo.proto\";\n\nimport \"cosmos/base/v1beta1/coin.proto\";\n"
  },
  {
    "path": "proto/cyber/graph/v1beta1/query.proto",
    "chars": 719,
    "preview": "syntax = \"proto3\";\npackage cyber.graph.v1beta1;\n\nimport \"google/api/annotations.proto\";\n\noption go_package = \"github.com"
  },
  {
    "path": "proto/cyber/graph/v1beta1/tx.proto",
    "chars": 513,
    "preview": "syntax = \"proto3\";\npackage cyber.graph.v1beta1;\n\nimport \"gogoproto/gogo.proto\";\nimport \"cyber/graph/v1beta1/types.proto\""
  },
  {
    "path": "proto/cyber/graph/v1beta1/types.proto",
    "chars": 289,
    "preview": "syntax = \"proto3\";\npackage cyber.graph.v1beta1;\n\nimport \"gogoproto/gogo.proto\";\n\noption go_package = \"github.com/cyberco"
  },
  {
    "path": "proto/cyber/grid/v1beta1/genesis.proto",
    "chars": 376,
    "preview": "syntax = \"proto3\";\npackage cyber.grid.v1beta1;\n\nimport \"gogoproto/gogo.proto\";\n\nimport \"cyber/grid/v1beta1/types.proto\";"
  },
  {
    "path": "proto/cyber/grid/v1beta1/query.proto",
    "chars": 2341,
    "preview": "syntax = \"proto3\";\npackage cyber.grid.v1beta1;\n\nimport \"gogoproto/gogo.proto\";\nimport \"google/api/annotations.proto\";\n\ni"
  },
  {
    "path": "proto/cyber/grid/v1beta1/tx.proto",
    "chars": 1526,
    "preview": "syntax = \"proto3\";\npackage cyber.grid.v1beta1;\n\nimport \"gogoproto/gogo.proto\";\nimport \"cosmos/msg/v1/msg.proto\";\nimport "
  },
  {
    "path": "proto/cyber/grid/v1beta1/types.proto",
    "chars": 864,
    "preview": "syntax = \"proto3\";\npackage cyber.grid.v1beta1;\n\nimport \"gogoproto/gogo.proto\";\n\nimport \"cosmos/base/v1beta1/coin.proto\";"
  },
  {
    "path": "proto/cyber/liquidity/v1beta1/genesis.proto",
    "chars": 1514,
    "preview": "syntax = \"proto3\";\npackage cyber.liquidity.v1beta1;\n\nimport \"cyber/liquidity/v1beta1/liquidity.proto\";\nimport \"gogoproto"
  },
  {
    "path": "proto/cyber/liquidity/v1beta1/liquidity.proto",
    "chars": 11120,
    "preview": "syntax = \"proto3\";\npackage cyber.liquidity.v1beta1;\n\nimport \"cyber/liquidity/v1beta1/tx.proto\";\nimport \"gogoproto/gogo.p"
  }
]

// ... and 382 more files (download for full content)

About this extraction

This page contains the full source code of the cybercongress/go-cyber GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 582 files (7.9 MB), approximately 2.1M tokens, and a symbol index with 6107 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!